一种理想的智能体编排架构 一、设计理念与理论基础 1.1 类比:生物脑 vs 计算机 vs LLM 生物脑/人脑的核心组成要素: 逻辑能力、长期记忆、短期记忆 。 计算能力(ALU) :计算机中是 ALU,LLM 对应为 LLM 本体(语言 ALU)。 寄存器 :计算机中是寄存器,LLM 对应为 KV cache。 指令 :计算机中是指令集,LLM 对应为模型权重。 内存(短期记忆) :计算机中是 RAM,LLM 缺失 (需补充)。 硬盘(长期记忆) :计算机中是磁盘,LLM 缺失 (需补充)。 几种记忆/状态存储形态的对比: 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 记忆(知识的存储) 强大的分级信息检索 。 区分临时记忆与长期记忆。 自动遗忘、热度排序。 旁注:自动遗忘与热度排序作为未来演进方向列出。当前 WeaveAgent 工程设计未采纳这两项——短时记忆随 Frame 生命期自然消亡,长时记忆以关键词树组织、不使用热度概念(详见 Agent/WeaveAgentDesign.md §13)。 2.3 基本行动规则、准则与方法 自我、人性化 :维护基本需求、价值观、好奇心、模仿学习。 总结抽象 、自动学习和迭代各种技能。 自洽 。 调用和整理记忆 。 2.4 本能(认知核心,对所有任务都有效,全局的) 行动的规划、创建、调度、执行 。 先思考,再行动。 自动触发记忆检索。 自动的反思总结、学习、记忆能力。 抽象能力 :提取意识的基础特性,做高层次抽象。 自洽能力 : 解决意识的所有矛盾。 实现大范围、高深度的信息自洽。 必须掌握足够多的项目信息后才能开始工作,否则主动探索、创建信息,并在执行任务后更新。 很多偏抽象的能力共同体现了"人性化",需要自我意识来调度这些本能。 2.5 技能(特定领域的后天习得能力) 各领域的方法学、科研能力。 能够输出特定领域的行动计划。 处理特定领域的信息,生成特定领域的结果。 能够影响到行动的核心决策逻辑 。 三、编排器设计目标 自我意识、人性化 精心设计的 prompt。 把人格从大模型内部,移出来到编排器。 大范围、高深度的信息自洽 主动的检查和主动的行动逻辑判断。 不仅保证上下文/临时记忆的自洽,还能主动读取长期记忆进行判断与校准。 分层的信息组织方式。 包含任务控制的提示词 + LLM 显式的任务管理 + 本地运行的任务组织。 自动进化、自动学习 灵活的记忆接口 + 预设的学习本能任务。 降低对 LLM 上下文的需求 Frame / 任务树的抽象。 快速、动态的逻辑推理:很短的上下文,形如"如果 xxx 是 xxx,那么 xxx 就是 xxx"。 本地可直接执行的逻辑操作:大量、大范围的明确逻辑操作。 支持高效的信息检索 weavemind。 支持复杂的带逻辑条件的检索。 支持自然语言的语义检索。 核心特点/功能/优势 逻辑思维链条的管理和总结 自动的总结和反思和改进 自洽的灵魂要求 多层,灵活,健壮,自洽的记忆系统 四、核心抽象与机制 4.1 智能主体的描述 人格与个性 :价值观、灵魂。 核心动机 : 行动力 :总是为了解决任务,想着下一步干嘛,"完成任务"是重要目标。 自洽 :保持信息合理性。 人性、自我 :维持人性。 基本价值观、好奇心、模仿学习、 总结抽象 。 行为逻辑描述 : 方法学、技能、计划树、todolist。 任务调度的方法学描述 。 理性的行为逻辑模式。 感性的行为逻辑模式。 4.2 临时记忆(当前状态信息的记录) 作用:意识节点,提供当前的背景信息,是"意识"的存储实体。 标准操作接口 : 临时记忆的加载与遗忘。 临时记忆的读取与分析。 寻找/创建/修改/删除。 通过 Frame 的包装接口访问。 4.3 长时记忆(通用存储容器,可存任意信息) 标准操作接口 : 寻找/创建/修改/删除。 记忆之间有复杂的索引。 基于 关键词 的信息分类存储。 当前项目相关知识的多层级动态组织 。 外挂知识操作接口(支持大量永久记忆)。 接口形态说明:长时记忆是结构化的知识图(关键词树 + Info 节点 + 多对多关联),其物理接口以 Search / CreateKeyword / CreateInfo / LinkInfo / MergeKeywords 等专用操作呈现,与短时记忆的通用 CRUD 基类不共享继承关系。两者概念上都是"寻找/创建/修改/删除",实现上是两套接口。详见 Agent/WeaveAgentDesign.md §8。 存储内容 : 知识、信息。 各种 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 的完成通知(经事件总线,非直接方法回调——子更新自身状态后由调度器通过 SUBFRAME_DONE 事件唤醒父)。 父 Frame 的输入激励。 检查当前 Frame 的状态、历史、完整思维逻辑。 Frame 与 Session 的接口交互: task 的格式化返回:失败 / 成功 + 结果。 task 的创建:收集信息、分析当前问题。 每个 Frame 对应一个独立的上下文。 session 上下文 与 Frame 状态 分离。 4.4.7 Frame 可见的工具 工具(文件操作、记忆读写、子 Frame 管理等)统一注册在 Agent 全局的 ToolRegistry ,Frame 不 持有本地工具实例。 工具以 分层路径 组织(如 memory/* 、 frame/* 、 file/* 、 skill/* ),支持简短的多层索引。 每个 Frame 只持有全局 Registry 的引用; Frame.Next() 在组装 prompt 时按当前状态 / 动作集按路径前缀拉取可见子集注入 System 段,达成"分层加载"的效果。 4.4.8 上下文布局与压缩策略("两端有用,中间可丢") 设计原则: 让上下文压缩变成一次安全的"中段截断",而不是一次复杂的摘要工程。 本架构对每一次送给 LLM 的上下文采用 严格三段式布局 : ┌──────────────────────────────────────────┐ │ [TOP] System 段 │ ← 长度可控、永远有用 │ 人格 / 价值观 / 当前 Frame 的 system │ │ prompt / 可见工具集(按 §4.4.7 注入) │ ├──────────────────────────────────────────┤ │ [MID] 历史段 — 思维过程、工具调用与返回 │ ← 长度可增长、可被安全裁剪 │ ……过去的思考轨迹…… │ │ ……过去的工具调用结果…… │ ├──────────────────────────────────────────┤ │ [BOT] 有效段 — 当前推进所需的最少信息 │ ← 长度已知、远小于 LLM 上限 │ 最近一段对话 / 最新工具返回 / │ │ 当前要回答的问题 / 当前 Frame 状态摘要 │ └──────────────────────────────────────────┘ 核心不变量 : TOP + BOT 在任意时刻都是一个可独立执行的最小完整上下文。 TOP 长度由人格 + system prompt + 可见工具集决定, 编排器静态可知 。 BOT 长度由 Frame 类型固定上限(如最近 N 轮对话 + Frame 状态摘要), 编排器静态可知 。 len(TOP) + len(BOT) << len(LLM_max_context) ——预留出来的"中段预算"全部留给 MID 。 压缩 = 直接删除 MID 中段 : 当 len(TOP) + len(MID) + len(BOT) > 阈值 (例如 LLM 窗口的 80%)时: 不做摘要、不做 LLM 调用、不做语义压缩 。 直接从 MID 段 从中向两端截断 (保留 MID 头若干 token 与 MID 尾若干 token,删除中间最久远的过程性记录)。 反复迭代直到总长度回到阈值以下。 为什么"删中段"不破坏信息完整性 : 关键信息类别 物理存放位置 受截断影响 人格 / 价值观 / 任务目标 TOP (System 段) ❌ 不影响 当前可见工具与动作集 TOP (按 §4.4.7 注入) ❌ 不影响 当前要做的事 / 最新工具返回 BOT (有效段) ❌ 不影响 Frame 的结论、状态、思维链路总结 Frame 状态字段 (§4.4.2,本地存储) ❌ 不影响(不在 prompt 里) 过去的工具调用过程性记录 MID ✅ 被裁剪——但 结论已沉淀到 Frame 状态/笔记/记忆 ,过程证据可丢 也就是说: MID 段是"过程性证据",不是"结论性事实" 。结论性事实由 §4.4.5 的"笔记 / 学习 / 抽象"动作主动落入: Frame 状态字段 (短时,随 Frame 生命期) 临时记忆 (短时,随 Session 生命期) 长时记忆 / 关键词树 (永久) MID 一旦被丢弃,agent 仍能从这三处"主存"中找回任何关键事实—— LLM 上下文只是高速缓存,不是事实的唯一存储位置 。 与 Anthropic Compaction 的对比 : 维度 Anthropic Claude Code 本架构 触发 接近窗口上限 接近预设阈值(如 80%) 方式 LLM 摘要历史, 保留架构决策与未解 bug 直接删除中段 ,无 LLM 调用 成本 每次压缩需要一次 LLM call 零 LLM 调用,O(1) 截断 不变量保障 依赖摘要质量 依赖 Frame 状态/记忆作为外部主存 失败模式 摘要丢关键信息 MID 段过大时 BOT 仍完整可用 工程上的额外约束 : BOT 段长度必须严格上限 :例如最近对话 ≤ 8K token、Frame 状态摘要 ≤ 2K token,超出就主动滚出到 MID 或落盘。 关键状态变更必须先写 Frame 状态再进入 MID :保证一旦 MID 被裁剪,状态没丢。 截断只发生在 Frame 调度边界 :不在工具执行中途截,避免破坏正在进行的 tool_call/tool_result 配对。 截断后无需通知 LLM :模型从 TOP + BOT 即可继续推进;如果某次推理需要历史细节,应通过显式工具调用从记忆中取回,而不是依赖 MID 仍在。 设计哲学 :把上下文压缩从一个"语义难题"降级为一个"长度算术问题"。代价是要求架构其他部分(Frame 状态、记忆系统)承担"事实主存"的责任——这与本架构 §4.5.2 "总结/抽象/记忆"和 §4.3 长时记忆的设计天然对齐。 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 价值观 利用"自我"这一抽象,提供终极的目标指引。