AI工程SynapseB类

Agent记忆协作机制设计:让AI在下一次会话中'记得'上一次做了什么决策

通过产品管线信息归档实现跨会话知识传递,分析这种'外置记忆+委员会调用'模式的架构设计与适用场景

  • 跨会话记忆靠结构化文件而非向量数据库
  • 三层记忆架构:任务快照→产品上下文→决策日志
  • 委员会调用实现并行专家 Agent 协作
  • YAML+Markdown 保证确定性记忆读取
  • 每次会话加载约2秒完成上下文注入

问题背景

我们在构建多 Agent 协作系统时遇到了一个典型困境:总裁 Agent 下达了一个涉及"呼吸机产品线降价策略"的指令,派单到智囊团后,子 Agent 问的第一句话是"这个降价决策的背景是什么?是临时促销还是战略调整?"——因为新会话完全没有上下文。人工转述耗时且容易出错,而如果每次都要从聊天记录里翻找,会话效率会下降 40% 左右。更严重的是,当同一任务跨 3 个会话处理时,第二、第三个 Agent 完全不知道前一位做了什么决策,导致重复劳动甚至方向冲突。

我们的 Agent 系统峰值每天处理约 120 个任务,其中超过 60% 是跨会话延续的任务。缺乏记忆机制意味着每个 Agent 都要从零开始理解上下文,这成为了协作效率的瓶颈。

为什么这个决策难做

我们一开始以为这个问题可以用向量数据库解决——把所有历史对话向量化,新会话开始时检索相关上下文,语义相似性匹配应该够用了。但实际上,在 Agent 协作场景里,模糊匹配恰恰是最要命的问题。当一个任务的当前阶段是 stage 3,下一步应该是"确认供应商合同"时,你不能接受系统返回"stage 3 相关度 73%"的模糊结果。Agent 需要的是确定性记忆——明确知道这个任务当前卡在哪儿,不能有任何歧义。

另一个误区是认为记忆机制需要独立服务。我们一开始评估过 Redis + 索引的方案,但问题在于:如果 Agent 跑在网络隔离环境里,或者 API 限额导致外部服务不可用,整个系统就会瘫痪。记忆机制不应该成为依赖链上的一环,它需要内嵌到文件系统里,随时可读。

根因/核心设计决策

经过三轮迭代,我们设计出了"外置长期记忆+委员会调用"的架构,由三个文件层共同实现。

第一层是任务快照层。`agent-CEO/config/active_tasks.yaml` 存储所有进行中任务的状态,每个任务条目必须包含三个强制字段:stage(当前阶段)、blocker(阻塞原因)、next_step(下一步行动)。文件大小硬性控制在 5KB 以内,确保每次会话都能在约 2 秒内完整加载。

# agent-CEO/config/active_tasks.yaml 示例片段
tasks:
  - id: T-2024-089
    product: 呼吸机-X7
    stage: 3
    blocker: 供应商合同条款待确认
    next_step: 法务审核后进入报价阶段
    owner: 产品部-李明
    wbs: WBS-2024-Q4-004

  - id: T-2024-090
    product: 监护仪-M5
    stage: 1
    blocker: null
    next_step: 收集竞品价格数据
    owner: 市场部-王华

第二层是产品上下文层。`obs/02-product-knowledge/` 目录下按产品线分级存储 `product-profile.md`,每份约 400-600 字,记录版本历史、关键决策、当前负责人及活跃 WBS 编号。总裁 Agent 在派单时会读取对应产品的 profile,将约 800 字的上下文包注入到子 Agent 的 prompt 中。

第三层是决策记忆层。`obs/04-decision-knowledge/decision-log/` 下以 D-编号归档的决策文件,用于跨会话溯源。当 Agent 需要回答"当时为什么这样决定"时,直接读取决策文件而非翻聊天记录。

这种架构最关键的设计哲学是:拒绝了向量数据库,选择纯文件方案。原因很直接——Agent 协作需要确定性,结构化 YAML + Markdown 可以用普通 Read 工具读取,不依赖任何外部服务,在网络隔离或 API 限额场景下依然可用。

如果你在设计 Agent 记忆系统,优先考虑确定性而非语义匹配——"当前任务是 stage 3"比"语义相似度 78%"更有价值。

可移植的原则

  1. 如果你在设计跨会话记忆机制,用结构化文件替代向量检索,确保每次读取的结果是确定的、可验证的。
  2. 如果你在划分记忆层次,按信息变更频率分层——任务状态高频变更放在 YAML,产品上下文低频变更放在 Markdown,决策历史只读不写。
  3. 如果你在实现委员会调用模式,让多个 Agent 读取同一份产品 profile 但从不同角度分析,而非各自维护独立的上下文副本。
  4. 如果你在选择技术栈,把记忆机制的依赖降到最低——用文件系统而非外部服务,让系统在网络隔离时依然可用。
  5. 如果你在设计 Agent 的启动流程,在派单 prompt 中注入约 800 字的上下文包,让子 Agent 启动时已具备足够的背景知识,无需人工重新交代。

结尾

这套"外置记忆+委员会调用"的模式解决了一个核心问题:让 AI 在下一次会话中真正"记得"上一次做了什么,而不是依赖人工转述或模糊的语义检索。如果你正在构建多 Agent 协作系统,文件系统的确定性记忆值得优先考虑。后续我会分享具体实现委员会调用模式的 prompt 模板设计。关注后回复"记忆"可获取完整配置文件示例。