W
AI-Wiki
CONCEPT

文件系统外化记忆

定义

文件系统外化记忆,是指把 Agent 在任务执行过程中形成的长期状态、外部环境观测、阶段性结论、生成的中间文件与结果物,写入一个可读写的外部文件系统,由模型在后续步骤中按需读取、引用和更新,而不是把所有历史和全部观测始终保留在上下文窗口中。

它本质上是一种“把文件系统当长期记忆”的上下文工程方法:上下文里只保留当前决策真正需要的摘要、索引、路径和少量关键状态,大块原始材料则外置存放。这样做不是简单删减信息,而是把“始终常驻上下文”改成“需要时可恢复访问”。

在本文语境中的含义

ManusPeak 讨论的 Agent 上下文工程语境里,文件系统外化记忆属于一种面向长任务、长链路、多轮工具调用的上下文管理策略。

这类 Agent 的运行方式通常不是单轮问答,而是反复经历“选择动作—执行工具—获得观测—把结果送回模型—再选择下一步动作”的循环。随着循环次数增加,上下文会不断膨胀,而每一步真正新增的输出往往很短,导致输入远大于输出。

原文给出的 Manus 经验是,平均输入与输出 token 比例大约可达 100:1。这意味着如果把所有观测和中间产物都持续注入上下文,成本、首 token 延迟和整体稳定性都会迅速恶化。

因此,文件系统外化记忆在这里不是辅助技巧,而是与 KV缓存友好型上下文 一样,属于让 Agent 能长期运行的基础设施思路:把大体量信息移出上下文,把上下文保留给“当前一步所需的最小可行动信息”。

关键机制

把文件系统当长期记忆

核心做法是承认模型上下文不是长期记忆本体,只是当前工作集。长期保留的信息——例如任务计划、已完成步骤、抓取原文、网页快照、代码文件、日志、分析结果、阶段性报告——应该落到外部存储中,由 Agent 在需要时读取。

这种设计与把全部历史塞进提示词的思路不同。后者默认“模型每一步都要看到全部过去”,前者则默认“模型只在需要时读取相关过去”。

大观测结果写入外部文件

Agent 的工具调用经常产生很大的观测结果,例如网页正文、批量搜索结果、文档解析文本、运行日志、代码输出、数据表、截图说明等。这些内容如果逐轮原样追加到上下文,会迅速吞掉 token 预算。

文件系统外化记忆的典型做法,是把这类大块观测先写入外部文件,只在上下文中留下:

  • 该观测是什么;
  • 它保存在哪里;
  • 需要时应读取哪一部分;
  • 针对当前任务从中提炼出的简短结论。

这样,模型仍然可以在后续步骤回到原始材料,而不是被迫依赖一次性塞进上下文的长文本。

按需读写替代全量注入

文件系统外化记忆强调按需读取,而不是全量常驻。也就是说,并非每一步都重新注入所有已有文件,而是让 Agent 先根据当前子任务判断要读哪些文件、哪些片段,再把相关部分带回当前上下文。

这种方式把“记忆”变成一种可寻址资源,而不是无差别堆叠的对话历史。它通常表现为三层结构:

  • 上下文内保留最小必要状态;
  • 文件系统保存完整材料与中间产物;
  • 需要时再把某个文件或片段重新加载进当前推理过程。

压缩必须保持可还原

外化记忆不是粗暴删信息。压缩策略只有在“可还原”前提下才成立。

所谓可还原,意思是:如果当前上下文里只保留了摘要、索引或结论,那么系统仍应能够通过外部文件重新找到原始观测、原始证据和生成过程。否则压缩就变成不可逆丢失,一旦模型后面需要核对细节,就只能依赖幻觉补全。

因此,一个合格的文件系统外化记忆,不只是写文件,更要保留恢复路径,例如:

  • 摘要对应哪个原始文件;
  • 结论来自哪些原始观测;
  • 中间结论是在哪一步生成的;
  • 后续若发现推断有误,能否回溯到原始材料重做。

为什么它能降低长上下文成本与退化

长上下文不是免费午餐。即便模型支持更长窗口,把大量历史始终带着也会带来几类问题。

第一是成本与延迟上升。原文强调,生产级 Agent 中一个极重要的指标是 KV 缓存命中率,因为它直接影响推理成本和 TTFT。上下文越长,每轮预填充越重;如果还频繁改写前缀,缓存收益会更差。

第二是性能退化。上下文过长时,模型并不会同等重视每一段信息,容易出现注意力分散、关键信号被淹没、历史模式误导当前决策等问题。

第三是行为僵化。原文提到,过多相似的动作—观察对会让模型进入模仿惯性,重复沿用先前模式,哪怕当前情况已经不同。这说明并非“信息越多越好”,过长且重复的上下文本身会诱发漂移、过度泛化甚至幻觉。

文件系统外化记忆的作用,就是把大而全的历史从“每步必看”改成“必要时查”,从而减少上下文拥堵,降低长上下文带来的成本和退化。

与 KV 缓存的关系

文件系统外化记忆通常和 KV缓存友好型上下文 相互配合。

原文指出,提高 KV 缓存命中率需要保持提示前缀稳定、尽量让上下文追加式增长、避免改写旧动作和旧观察、保证序列化确定性,并在必要时明确设置缓存断点。文件系统外化记忆恰好有助于做到这一点:

  • 大块观测不必直接插入上下文前部;
  • 上下文主体可以只追加简要引用和新状态;
  • 已经写入文件的旧材料无需反复改写或重排;
  • 当前轮只读取相关片段,能减少不必要的上下文变动。

换言之,外化记忆不是只为节省 token,它也服务于稳定前缀、提高缓存复用率、避免每轮都让模型重新消化一大坨旧材料。

典型组成

一个完整的文件系统外化记忆,通常包含以下几类内容:

  • 长期任务状态:目标、约束、阶段进度、待办项、已完成项;
  • 原始观测归档:网页文本、搜索结果、运行日志、工具输出、解析结果;
  • 中间产物:草稿、代码、数据处理结果、阶段性报告;
  • 摘要与索引:帮助模型快速知道“有什么、在哪里、何时该读”;
  • 回溯线索:让压缩后的结论仍能指回原始材料。

真正关键的不只是“存了很多文件”,而是这些文件要能被 Agent 稳定读写,并形成可恢复、可追踪、可继续执行的工作现场。

细节与边界

外化不等于永不进上下文