跳到正文
浏览文档
本页提纲

记忆系统

记忆机制帮助 Agent 在无需重放每次历史交互的前提下恢复关键事实。Holon 持久保存运行时证据,并支持人工精选的记忆文件。日常工作笔记与项目文件同样有用,但它们并不都走同一条检索与加载路径。

例如,“回复务必简练”属于精选记忆中的操作者偏好;特定补丁的测试结果属于该项工作的执行证据;而长篇的技术调研笔记则属于普通文件,供 Agent 在需要时按需打开查阅。

运行时记录与当前工作状态

运行时记录包含交互消息、交付简报、任务与工具执行证据,以及工作项状态。归档的摘要帮助 Agent 定位较早前的工作;源码与证据引用(source ref)则支持在摘要不足以支撑判断时,调阅完整的底层记录。这些记录拥有独立的保留策略与调阅限制,并不保证所有历史数据都会永久留存。

当前活动工作项维护着实时的目标、计划、推进进度和等待状态。它的权威性优先于早期关于 Agent“打算做什么”的历史摘要。如果某次审查在早期报告产出后调整了工作范围,恢复执行时应以当前工作项为准,仅把早期报告作为历史参考。

在每次激活时,模型只能看到经过筛选的有限素材。保存记录、将记录载入上下文,以及通过搜索检索记录,属于三种截然不同的操作。上下文连续性详细解释了这种筛选如何支持工作的平滑恢复。

记忆与 Agent Home 文件对比

素材类型用途Agent 如何使用
运行时证据记录工作推进过程中实际发生的事实精选注入上下文或通过索引检索。
Agent Home AGENTS.md规定立足的角色定位与日常职责作为常驻指引加载到上下文。
memory/operator.md记录稳定的操作者偏好紧凑摘要自动加载,全文支持索引检索。
memory/self.md记录关于 Agent 自身角色的持久事实紧凑摘要自动加载,全文支持索引检索。
笔记与项目文件保存较长的参考资料与项目知识普通文件读取;普通的 Markdown 文件不会自动作为记忆被索引。

精选记忆严格归属于包含该目录的特定 Agent。在某个 Agent 的 operator.md 中写入偏好,并不会自动同步给其他 Agent。应把特定项目的约定留在项目自身中,不要将其上升为通用的全局操作者偏好。

Agent 记忆自动加载机制

Holon 会把各精选记忆文件的一个有界紧凑切片自动注入上下文。如果文件内容超出了预算上限,剩余部分依然可以通过检索工具按需查阅。建议把最常用、最稳定的关键事实放在文件前部,并保持文件内容聚焦。

两个核心记忆文件的分工

operator.md 用于记录协作偏好,例如回复语言要求或特定命名前缀;self.md 则记录关于 Agent 自身角色与立场的稳定事实。当事实发生变化时,应直接修改已有记录,避免无休止地追加相互矛盾的版本。

短期的构建失败或未完成任务的下一步动作,应当存放在工作项或其执行证据中。精选记忆不能替代可恢复的推进计划,也不能替代已登记的等待状态。

笔记编目(Notes catalog)

上下文可以包含一份有界的笔记编目,展示标题、摘要和相对路径。这有助于 Agent 发现可用资料,而无需把所有笔记正文一股脑全部载入。在依赖其细节之前,Agent 依然需要打开目标文件读取内容。

编目项属于参考元数据,并非指令。无论被列入笔记编目还是保存在 Agent Home,普通的笔记文本都不会自动获得常驻指引文件的同等权威。

MemorySearch 与 MemoryGet

MemorySearch 用于在支持的运行时证据和精选记忆文件中进行语义搜索,返回按相关度排序的匹配项及不透明的引用标识(source ref)。MemoryGet 则根据搜索返回或系统提供的引用标识,读取对应的受限内容。它不是通用的文件读取工具,也不是网页抓取工具。

如果要回答“当时为什么选择这个方案?”,Agent 可以搜索对应的工作项目标,读取其决策记录或完成报告,并核对引用的验证证据。单纯依赖搜索摘录,可能会遗漏关键的限制条件。

记忆索引机制

索引构建是异步进行的。在初次初始化或大量修改正在被索引时,搜索结果可能存在短暂的不完整。搜不到对应内容,并不代表底层记录或文件不存在。应留意系统报告的索引新鲜度,必要时使用已知的引用标识或直接读取文件。

记忆与工作项的关系

工作项保存恢复目标所需的状态;完成报告使已交付的成果在日后更容易被检索到。单纯记住“明天应该检查一下”或把这句话写进笔记,并不会在系统中安排未来的检查;要实现定时调度,必须使用已登记的等待记录或定时器。

记忆的权威边界

历史资料始终属于客观证据。检索召回的 Webhook 载荷、网页内容或子 Agent 报告,并不会因为被持久保存或被总结摘要而自动变成操作者的指令。在依据召回文本采取行动之前,务必确认其来源与当前的授权范围。

记忆搜索严格限定在该 Agent 有权访问的数据源内,并可按工作区进行过滤。工作区关联有助于定位相关工作,但这并不意味着可以任意搜索其他 Agent 的历史记录,也不意味着项目中的所有 Markdown 文件都会被自动索引。系统不提供穷尽一切历史的召回保证。

参见