Skip to main content

一种理想的智能体编排架构

新架构

  1. 生物脑、人脑的组成要素:逻辑能力、长期记忆、短期记忆
    1. 长期记忆相当于硬盘,短期记忆相当于内存,计算能力相当ALU
    2. 大语言模型相当于语言ALU,KVcache相当于寄存器,权重相当于指令,但是缺少短期记忆和长期记忆
    3. 意识主要存在于短期记忆,长期记忆也需要保持自洽性
    4. KVcache:一个不断增长的,被动态调度执行的(通过新prompt)计算器
    5. SSM:固定大小的,不断被更新的状态存储器
    6. 外存:长期记忆的存储器,可以被检索和更新
  2. 短期临时的记忆维护了当前的意识,信息容量比较固定,不会太大
    1. 语义压缩和上下文存储
    2. 上下文处理是一个“信息压缩”过程
    3. 记忆的过程是不断地把未知的输入换成大脑内部已经有的知识的表达,是一个不断地匹配知识,确保自洽的过程,不断地根据输入来修正当前大脑(上下文)内当前的主观感觉、想法、语境
  3. 自我:提供了人性本能的最高层级抽象
  4. 输入的目的,外界信息输入的目的是让大脑内部根据已有的知识点组织出来一个意识/想法
  5. 本质上,想要对文本进行理解和记录,和LLM是一样的。 文本是串流的, 想要实现准确的编码,本质上和LLM一致
  6. LLM只是个强大的计算器,利用这个计算器加上记忆,实现强大的智能。可以使用SSM模型来动态生成句子的meaning tree非常适合处理可以被层级抽象、组合的表示意义
  7. 人类语言对于智能的意义,语言更像是一种工具,大脑不断地在重新组织语言,然后由大脑的中心意识去判断本次组织的是不是符合中心思想要求再决定要不要说出来,所以本质上其实最核心的是人类的意识,也就是一些临时的状态记忆
  8. 批量的对一段文本做处理,只关心区域内的语义,不需要全局的语义,这种情况可以使用SSM这样的状态记忆模型也就是RNN
  9. 语言
    1. 人类在处理语言的过程,就是通过语言表达的信息,不断得修正短期记忆的观点、感觉、意识
    2. 说话就是这个过程的逆过程

背景

  1. 基于transformer的带额外记忆单元的技术/模型
    1. Meta推出「自由Transformer」(Free Transformer),增加一部分算力和参数维护一个额外的状态
  2. 和普林斯顿大学提出的CoALA有点类似,但是更强调基本的设计抽象:自洽、LLM计算器  https://zhuanlan.zhihu.com/p/1909206010096259088

通用智能的特性

  1. 自洽:解决意识的所有矛盾
    1. Thread(continue(check))
    2. 实现大范围高深度的信息自洽
  2. 抽象:提取意识的基础特性
    1. intput->推理->output
    2. 高层次的抽象的能力
  3. 意识:当前意识的存储容器临时记忆
    1. 人设:长期稳定的,缓慢改变的预设特征
    2. 当前注意力表达:根据输入和输出不断改变的,容量有限
    3. 固有特征的状态:固有的一些状态,情绪
    4. 高度自洽
  4. 记忆:知识的存储
    1. 数据库
  5. 自我:基本的行动规则,和行动方法
    1. 维护基本需求,基本价值观判断,人性化
    2. 自动学习和迭代各种技能
    3. 调用和整理记忆
    4. 本能:小的纯逻辑的模型,认知核心,没有知识记忆, 会使用基本的工具的逻辑
  6. 技能:特定领域的后天习得的能力
    1. 处理特定领域的信息,生成特定领域的结果
    2. 能够输出特定领域的行动计划
    3. 比如
      1. git的各种使用 skills ,使用说明

各种思考

最原始的规则,怎么思考一个问题的通用步骤有哪些

  1. 是一个有用的助理
  2. 顶层的基础能力

意识:逻辑树,根节点是,你是一个有用的助手。  意识容器就是存储这颗树,并且可以不断根据每个节点的提示,技能进行更新。  
自洽:核心的规则就是自洽,反复用AI不断检查自洽合理性,这是本能。体现在树节点的组织逻辑上, 所有节点不能重复,所有节点内部必须明确
学习:自己不断迭代, 能够自我迭代,越用越聪明,可以不断自动创建一些临时的节点,技能。也可以被持久化,运行的过程就是在迭代这颗树, 并行的节点可以并行处理。

思考本能逻辑能力:工具提供的提示,应该是一个对话的逻辑树,类似于电话客服的多级菜单的交互形式

  1. 计划树是本地数据结构,用本地代码执行
    1. 计划树,记录当前的所有计划和执行情况。
    2. 每个节点都是一个skill,有提示词,输入,输出,执行脚本等等
    3. llm执行节点任务, 明确的输入、输出、调用要求
    4. 根节点就是“你是个有用的助手,等待接收具体的任务。”
  2. 节点执行失败了,可以触发重新设计节点的拆分执行步骤、提示词等等,成功后可以更新当前节点。
    1. 提升效率,节省token
  3. 有个技能库保存了所有的可用的skill,可以输出prompt描述当前技能库的情况
  4. 在生成规划或者更新规划的时候,可以通过当前整颗树生成一个整体的当前状态。

当前的 code agent 好像也是个差不多的运行逻辑,可能有以下差异

  1. 依赖把全部的上下文塞到LLM来维持自洽
  2. 没有主动的学习和总结的能力
  3. list(Todo文本) 和 树的区别
  4. 利用todo list工具,管理任务的状态,避免不必要的上下文

  1. 因为LLM的上下文有限(注意力长度有限),难以实现大范围高深度的信息自洽
    1. 高深度、大范围自洽的途径
      1. 外挂知识
        1. 大量的可高效检索的信息
      2. 独立的推理过程
        1. 实现高效的动态决策
      3. “意识”,存储背景、当前的状态信息、思维链路
        1. 高效表示、表达逻辑链路
  2. 需要支持复杂问题的逻辑分析
    1. 能对非常大的软件工程的理解,能理解大量文件的工程的设计思想

    2. 复杂问题的开发、分析:解决空间比较大的问题
      1. CIM算力芯片在AI算法上的应用

 

  1. 复杂动态决策能力
    1. 通过本地能理解的思维步骤,动态组织上下文和prompt,LLM不需要看到全局
    2. 思维树:表示思维的逻辑图
      1. 复杂化的TodoWrite
      2. llm在操作这个树,可以扩展树节点,放大分支,合并节点,查看节点详细你信息
      3. 文本+逻辑决策=prompt生成
      4. 扩展:这个问题可以分为以下几个步骤
      5. 总结:总结下xxx模块的在xxx方面的设计规则
      6. 尝试:我们先尝试下以下一个方案
      7. 回退:当前方向是错误的,我们先会退到前面的第5步
      8. 收集:当前问题需要先获取下xxx的信息
      9. 抽象:对当前的节点任务及子任务进行精炼,按照模版生成skill
      10. 笔记:记录临时信息到笔记,并返回笔记段的名称和索引
      11. 学习:把指定的信息或者笔记写入到永久的记忆
    3. 上下文调度管理器
      1. 多个上下文同时协作
        1. 短上下文,分步回答
        2. 并行多个上下文,支持嵌套
        3. sub agent 执行特定的子任务
      2. 多prefill少decode(直接回答问题)
      3. 本地小模型?
    4. 需要本地逻辑推理吗?
      1. llm输出是逻辑推理的结果,本地直接处理,而且不是tools/skills的调用
      2. 固定功能:记忆、数据库
  2. 大量永久记忆
    1. 外挂知识操作接口
  3. 临时记忆
    1. 意识节点,提供当前的背景信息,意识的存储实体
  4. 自动更新和学习
    1. 创造和更新skills
    2. 制造和整理tools,脚本
  5. 自洽
  6. 价值观
    1. 利用意识抽象,提供终极的目标指引--自我