一种理想的智能体编排架构
一种理想的智能体编排架构
一、设计理念与理论基础
1.1 类比:生物脑 vs 计算机 vs LLM
生物脑/人脑的核心组成要素:逻辑能力、长期记忆、短期记忆。
| 组件 | 计算机类比 | LLM 对应 |
|---|---|---|
| 计算能力(ALU) | ALU | LLM 本体(语言 ALU) |
| 寄存器 | 寄存器 | KV cache |
| 指令 | 指令集 | 模型权重 |
| 内存(短期记忆) | RAM | **缺失**(需补充) |
| 硬盘(长期记忆) | 磁盘 | **缺失**(需补充) |
几种记忆/状态存储形态的对比:
- KV cache:不断增长的、被动态调度执行(通过新 prompt)的计算器。
- SSM / RNN 状态:固定大小、不断被更新的状态存储器。适合批量处理一段文本时只关心区域内语义、不需要全局语义的场景;也适合动态生成句子的 meaning tree,处理可被层级抽象、组合的表示意义。
- 外存:长期记忆的存储器,可被检索和更新。
1.2 关于"意识"与"语言"的基本观察
- 意识主要存在于短期记忆中,长期记忆也需要保持自洽性。
- 短期临时记忆维护了当前意识,信息容量相对固定,不会太大。其本质是:
- 语义压缩 + 上下文存储,上下文处理是一个"信息压缩"过程。
- 记忆过程 = 不断把未知输入换成大脑内部已有知识的表达,持续匹配知识、确保自洽,不断根据输入修正大脑(上下文)当前的主观感觉、想法、语境。
- 外界输入的目的:让大脑内部根据已有的知识点组织出一个意识/想法。对文本的理解和记录,本质上与 LLM 一致——文本是串流的,准确的编码过程与 LLM 一致。
- 语言是大脑的工具,不是智能本身:大脑不断重新组织语言,由中心意识判断是否符合中心思想再决定输出。最核心的是人类的意识(即临时的状态记忆)。
- 人类处理语言的过程 = 通过语言表达的信息不断修正短期记忆中的观点、感觉、意识。
- 说话是这个过程的逆过程。
- 自我提供了人性本能的最高层级抽象。
- LLM 只是个强大的计算器——利用这个计算器 + 记忆,就能实现强大的智能。
1.3 参考与相关工作
- 人脑的推理模型:https://agix.host/books/013d4/page/75fc0
- 基于 Transformer 的带额外记忆单元的技术/模型:
- Meta 的 Free Transformer(自由 Transformer):增加一部分算力和参数维护额外状态。
- 与普林斯顿的 CoALA 有相似之处,但本架构更强调基础设计抽象:自洽、LLM 即计算器。参考:https://zhuanlan.zhihu.com/p/1909206010096259088
二、通用智能的特性
2.1 意识(当前意识的存储容器,临时记忆)
- 人设:长期稳定、缓慢改变的预设特征。
- 当前注意力表达:根据输入输出不断改变,容量有限。
- 固有特征状态:固有状态、情绪。
- 高度自洽。
2.2 记忆(知识的存储)
- 强大的分级信息检索。
- 区分临时记忆与长期记忆。
- 自动遗忘、热度排序。
2.3 基本行动规则、准则与方法
- 自我、人性化:维护基本需求、价值观、好奇心、模仿学习。
- 总结抽象、自动学习和迭代各种技能。
- 自洽。
- 调用和整理记忆。
2.4 本能(认知核心,对所有任务都有效,全局的)
- 行动的规划、创建、调度、执行。
- 先思考,再行动。
- 自动触发记忆检索。
- 自动的反思总结、学习、记忆能力。
- 抽象能力:提取意识的基础特性,做高层次抽象。
- 自洽能力:
- 解决意识的所有矛盾。
- 实现大范围、高深度的信息自洽。
- 必须掌握足够多的项目信息后才能开始工作,否则主动探索、创建信息,并在执行任务后更新。
- 很多偏抽象的能力共同体现了"人性化",需要自我意识来调度这些本能。
2.5 技能(特定领域的后天习得能力)
- 各领域的方法学、科研能力。
- 能够输出特定领域的行动计划。
- 处理特定领域的信息,生成特定领域的结果。
- 能够影响到行动的核心决策逻辑。
三、编排器设计目标
-
自我意识、人性化
- 精心设计的 prompt。
- 把人格从大模型内部,移出来到编排器。
-
大范围、高深度的信息自洽
- 主动的检查和主动的行动逻辑判断。
- 不仅保证上下文/临时记忆的自洽,还能主动读取长期记忆进行判断与校准。
- 分层的信息组织方式。
- 包含任务控制的提示词 + LLM 显式的任务管理 + 本地运行的任务组织。
-
自动进化、自动学习
- 灵活的记忆接口 + 预设的学习本能任务。
-
降低对 LLM 上下文的需求
- Frame / 任务树的抽象。
- 快速、动态的逻辑推理:很短的上下文,形如"如果 xxx 是 xxx,那么 xxx 就是 xxx"。
- 本地可直接执行的逻辑操作:大量、大范围的明确逻辑操作。
-
支持高效的信息检索
- weavemind。
- 支持复杂的带逻辑条件的检索。
- 支持自然语言的语义检索。
-
核心优势/功能
- 逻辑思维链条的管理和总结
- 自动的总结和反思和改进
- 自洽的灵魂要求
- 多层,灵活,健壮,自洽的记忆系统
四、核心抽象与机制
4.1 智能主体的描述
- 人格与个性:价值观、灵魂。
- 核心动机:
- 行动力:总是为了解决任务,想着下一步干嘛,"完成任务"是重要目标。
- 自洽:保持信息合理性。
- 人性、自我:维持人性。
- 基本价值观、好奇心、模仿学习、总结抽象。
- 行为逻辑描述:
- 方法学、技能、计划树、todolist。
- 任务调度的方法学描述。
- 理性的行为逻辑模式。
- 感性的行为逻辑模式。
4.2 临时记忆(当前状态信息的记录)
- 作用:意识节点,提供当前的背景信息,是"意识"的存储实体。
- 标准操作接口:
- 临时记忆的加载与遗忘。
- 临时记忆的读取与分析。
- 寻找/创建/修改/删除。
- 通过 Frame 的包装接口访问。
4.3 长时记忆(通用存储容器,可存任意信息)
- 标准操作接口:
- 寻找/创建/修改/删除。
- 记忆之间有复杂的索引。
- 基于关键词的信息分类存储。
- 当前项目相关知识的多层级动态组织。
- 外挂知识操作接口(支持大量永久记忆)。
- 存储内容:
- 知识、信息。
- 各种 skills / tools 的使用方法与方法学:
- 使用文本描述。
- 编程执行任务。
- GSD 方法学的自动设计与自动优化。
- 外部工具、接口的使用方法(笔记本、计算器等)。
4.4 任务 / Frame 抽象(统一的任务与思维单元)
注:Frame 是最通用的抽象——表达大脑的一个思考任务、一个上下文片段、一个工作片段、一个 handle、一个阶段性思考过程。
4.4.1 任务/Frame 的上下文
- 任务的 ID、任务的存储空间。
- 任务的类型、性质:探索型 / 固定成熟任务 / 思考研究。
- 任务过程的描述。
- 任务创建的原因。
- 预期达到的结果、目标。
- 依赖的任务、前置任务、背景。
- 下一步的计划、规划。
4.4.2 任务/Frame 的状态
- 实际结果:失败 / 成功。
- 执行的所有过程。
- 执行的历史信息和当前状态。
- 思维逻辑的记录。
- 执行结果的总结、学习、记录。
4.4.3 组织形式:分层树状结构
- 通过分层的树状任务组织架构实现:细节分层隔离 + 全局信息全览。
- LLM 输出格式化的任务图(任务描述、功能、任务之间的关系),本地自动执行。
- SubFrame List nested to tree。
- 计划树 = 本地数据结构,用本地代码执行:
- 记录所有计划与执行情况。
- 每个节点是一个 skill,有 prompt、输入、输出、执行脚本。
- LLM 执行节点任务,有明确的输入、输出、调用要求。
- 根节点:"你是个有用的助手,等待接收具体的任务。"
- 节点执行失败可触发重新设计节点的拆分、提示词,成功后更新节点(提升效率、节省 token)。
- 技能库保存所有可用 skill,可输出 prompt 描述当前技能库情况。
- 生成/更新规划时,可基于整棵树生成整体状态快照。
4.4.4 自洽要求
- 创建的原因、逻辑关系、需要达到的效果都要明确。
- 所有的行动都要有合理的理由、逻辑链条、结果。
4.4.5 思维树操作(LLM 对 Frame 树的动作集)
这是"复杂化的 TodoWrite"——LLM 在操作这棵树,可扩展节点、放大分支、合并节点、查看节点详细信息。文本 + 逻辑决策 = prompt 生成。
- 扩展:这个问题可以分为以下几个步骤。
- 总结:总结下 xxx 模块在 xxx 方面的设计规则。
- 尝试:我们先尝试以下一个方案。
- 回退:当前方向是错的,回退到前面的第 5 步。
- 收集:当前问题需要先获取 xxx 的信息。
- 抽象:对当前节点任务及子任务进行精炼,按模板生成 skill。
- 笔记:记录临时信息到笔记,并返回笔记段的名称和索引。
- 学习:把指定的信息或笔记写入永久记忆。
- 搜索记忆 / 记录临时记忆 / 规划下一步行动。
- 判断问题需要采用的方法。
4.4.6 Frame 的接口
- 子任务/子 Frame 的回调。
- 父 Frame 的输入激励。
- 检查当前 Frame 的状态、历史、完整思维逻辑。
- Frame 与 Session 的接口交互:
- task 的格式化返回:失败 / 成功 + 结果。
- task 的创建:收集信息、分析当前问题。
- 每个 Frame 对应一个独立的上下文。session 上下文 与 Frame 状态 分离。
4.4.7 Frame 内的工具管理
- 文件操作类等工具。
- 工具的分层、分支组织,方便简短的多层索引和加载。
4.5 本能 / 调度器(主循环)
创建当前状态的下一步行动,是整个系统的主循环。
4.5.1 根任务:维持"自我意识"的入口
- 有固定的子任务,比如"维持自我"。
- 维护人性、人格、自我的行动,维护基本价值观、好奇心。
4.5.2 行动力:下一步任务的推进
每个任务独立循环执行,只关心自己的上下文。
-
下一步行动的决策:
- 主动维护自洽:通过任务上下文、子任务总结等进行自洽判断。
- 所有行动都要有合理的理由、逻辑链条、结果:
- 先仔细了解项目,清楚任务背景与逻辑关系后再行动。
- Frame 的思维逻辑链条就是方法学的原料,可总结成方法学,按逻辑关系、分层、树状存储。例如:
- "先尝试看看能不能快速解决问题"
- "看起来比较复杂,那我来找找有什么现成的方法学、经验,或者做一个规划"
- 自动总结 / 抽象 / 思考当前状态,规划下一步行动:
- 根据当前任务需求和状态分析,提出下一步计划。
- 方法学的选取、加载、知识获取:
- 寻找/创建/修改/删除方法学。
- 方法学作为所有工作经验的存储。
- 特殊领域的 task 必须有方法学才能工作。
- 方法学一定是包含多个步骤的、复杂、不确定流程的工作步骤。
- 方法学也可以只是一句话,指导具体的工作方法。
-
总结 / 抽象 / 记忆:
- 主动提取和组织框架性的知识,存储到基础知识框架。
- 自动进化、自动学习:对任务的基础知识保持持续记忆。
4.5.3 任务列表维护
- 创建、修改、查询、删除子任务。
4.5.4 循环闭环
本能的任务 / 功能不断产生记忆,存入临时记忆,作为下一次行动的依据——临时记忆 ↔ 本能目标 形成循环。
五、工程实现
5.1 存储与记忆基础设施
- 临时记忆模块:寻找/创建/修改/删除;通过 Frame 包装接口调用。
- 永久记忆模块:
- 寻找/创建/修改/删除。
- 基于关键词的分类存储。
- 当前项目相关知识的多层级动态组织。
- 公共存储区:当前基础信息,比如各个任务的状态、本能状态、精神状态。
- 分布式隔离:每个任务管理自己的存储,每个模块能一定程度独立工作。
5.2 Frame 模块(详见 §4.4)
- 表达大脑思考的一个任务、一个上下文片段、一个工作片段、一个 handle、一个阶段性思考过程。
- 提供下列能力:
- SubFrame List nested to tree。
- 自洽要求。
- 规划下一步行动(方法判断、搜索记忆、记录临时记忆)。
- Tool 管理(分层、分支组织)。
- 抽象 Agent 的所有行为(历史、状态、思维逻辑、结果总结)。
- Frame 接口(见 §4.4.6)。
- Session 与 Frame 状态分离。
5.3 Prompt 工程
- 基础 prompt 的维度:
- 人格、人性、自我。
- 自洽。
- 行动规划(基于当前任务需求与状态,提出下一步计划)。
- 学习、总结、抽象。
- 记忆(什么东西放进记忆里):
- 方法学相关。
- 技能(如 git 使用)。
- 当前项目知识检索:文件结构、程序设计架构。
- Prompt 的生成策略:
- 不同任务类型使用不同 system prompt,避免不必要的提示。
- 不同任务类型对应不同处理方式与方法学。
- Prompt 的多层级动态组织。
- Frame 分类 对应不同 prompt 模板。
- LLM 输入输出的抽象:格式化。
5.4 提供给 LLM 的基础设施总览
- 记忆与存储:知识、历史、状态的记录与检索。
- Frame / Action 管理:任务规划工具。
- 逻辑思维管理:思考历史与逻辑关系的记录与检索。
六、关键挑战与进一步思考
6.1 LLM 上下文有限,难以实现大范围高深度自洽
因为 LLM 注意力长度有限,实现高深度、大范围自洽的途径:
- 外挂知识:大量可高效检索的信息。
- 独立的推理过程:实现高效的动态决策。
- "意识"存储:背景、当前状态信息、思维链路——需要高效表示、表达逻辑链路。
6.2 复杂问题的逻辑分析能力
- 能理解非常大的软件工程,理解大量文件的工程设计思想。
- 复杂问题的开发、分析:解决空间较大的问题。
- 例:CIM 算力芯片在 AI 算法上的应用。
6.3 复杂动态决策能力
- 通过本地可理解的思维步骤动态组织上下文和 prompt,LLM 不需要每次都看到全局。
- 思维树:表示思维的逻辑图,LLM 通过定义好的动作集合操作这棵树。
- 上下文调度管理器:
- 多个上下文同时协作:
- 短上下文,分步回答。
- 并行多个上下文,支持嵌套。
- sub-agent 执行特定子任务。
- 多 prefill 少 decode(直接回答问题)。
- 本地小模型?(待探索)
- 多个上下文同时协作:
- 是否需要本地逻辑推理?
- LLM 输出作为逻辑推理的结果,本地直接处理,不一定走 tools/skills 调用。
- 固定功能:记忆、数据库。
6.4 自动更新与学习,动态、递归执行任务
- 创造和更新 skills。
- 制造和整理 tools、脚本。
- 学习的方法学:
- 软件工程开发流程:产品、规划、验收、测试、发布……
- 复杂任务可经过非常多次尝试后解决,并永久学习。
6.5 自洽
(贯穿全文,是核心准则。)
6.6 价值观
- 利用"自我"这一抽象,提供终极的目标指引。
No comments to display
No comments to display