Agent Memory and Dreaming
在生产环境中,上下文工程(Context Engineering)是决定大模型转化为“稳定、可持续改进”产品的重要杠杆。Anthropic 团队在实践中探索出了基于 Markdown 文件系统的智能体带内(In-band)记忆与带外(Out-of-band)梦境净化自愈系统架构。
1. 记忆系统的演进路线与最佳实践
从早期的配置文件到如今的自治文件系统,智能体记忆经历了如下四个演进阶段:
- Markdown Preference Files (
.claude.md):
在 Claude Code 启动时在会话头部注入一个简单的人类可读、智能体可写的 Markdown 文件,用以对齐用户偏好和项目结构。实践证明这种方法在引导 Agent 对齐上“无理有效”。 - Autonomous Memory Tools (自治内存工具):
赋予 Agent 专用的 Read/Write/Update Memory 接口,让其在会话期间自主决定何时读写内存。 - Skills with Progressive Disclosure (渐进式披露技能):
为了防范配置膨胀导致上下文超载(Context Bloat),采用技能(Skills)架构。Agent 仅读取 Skills 头部简短的 YAML Frontmatter,需要时才通过渐进式披露动态拉入具体的 Skills 细节,类似于从书架上按需取书。 - Flat File System Memory (扁平文件系统内存,最佳实践):
Anthropic 当前的最佳实践是直接将智能体记忆建模为原生的文件系统(Markdown 文件夹)。不再设计定制的读写 API,直接给 Agent 赋予原生的bash、grep等文件系统操作工具,由 Agent 自主在目录中搜索和维护 markdown 内存。
2. 生产级高并发治理与 Guardrails
当成百上千个 Agent 协作并长期在复杂代码库运行内存系统时,必须引入以下工程约束:
- 并发控制:哈希乐观锁 (Concurrency Control via Hashing):
为了避免多 Agent 并发写入导致记忆覆盖,引入哈希校验锁。Agent 在草拟编辑前获取当前 Memory 文件的哈希值,在 commit 写入前再次获取哈希值进行比对。若二者不符,说明中途有其他 Agent 提交了修改,当前 Agent 必须回滚并重读重新合并。 - 权限分级隔离 (Permissioning):
区分全局只读配置(如组织大纲、核心基建规则)与 Agent 会话私有的读写草稿本(Scratchpad),防止单一 Agent 的运行错误或 Prompt Injection 恶意修改污染组织全局共识。 - API 独立可移植性 (Portability):
将记忆层设计为独立的可移植服务,支持跨不同 Product Surfaces 的共享调用。
3. 带外梦境系统 (Out-of-band Dreaming)
带内(In-band)记忆的天然瓶颈
带内记忆指 Agent 在当前 session 中边执行任务边整理内存。其瓶颈在于:
- 资源竞争:Agent 难以在全力完成当前任务和投资长远内存整理之间找到最佳算力分配平衡。
- 视野局限:Agent 只能看到自己当前会话的上下文,无法察觉跨 Session 或跨 Fleet 的系统性错误。
- 内存陈旧污染:缺乏自我净化机制,陈旧或恶意的内存无法被清除。
梦境系统(Dreaming)的机制
梦境(Dreaming)是一个运行在带外的、异步运行的批处理自愈过程。
graph TD A[Agent Fleet Session Transcripts & Tool Calls] -->|收集| B(Dreaming Job Orchestrator) C[Current Memory Store] -->|读取| B B -->|部署| D[Sub-agent Fleet] D -->|交叉分析| E[识别共性错误/缺失主题/坏工具配置] E -->|汇总合并| F[Orchestrator 生成 Memory 净化提案] F -->|人工审核/直接批准| G[New Consolidated Memory Store]
- 运作方式:在系统空闲期,Orchestrator 调度专门的 Sub-agents 算力,批量读取大量 Agent 的运行 Transcripts(包含对话、Tool calls 和失败元数据),与当前的 Memory Store 对比,寻找规律。
- 知识库自愈(Self-Healing):
- 发现缺失:如发现所有学生地理题都答错,归纳出 Memory Store 缺少相关主题,自动补齐。
- 修正配置:如发现所有 Agent 都因工具配置错误输出 radians 而非 degrees,自动修正内存中的工具调用指令。
- 淘汰陈旧:清理不再适用或已被恶意 Prompt 注入的污染内存。
- 降本增效:虽然 Dreaming 消耗了额外的带外 Token,但它通过使 Agent 记忆体系不断自愈进化,使得下一次执行能够高概率“一次过(One-shot success)”,从而大幅缩减了整体的带内 Token 开销与运行延迟。
Source: 2026-06-28-xiaohongshu-xhslink-com-o-6QHUG4IwGOS(来源未公开), 2026-06-28-xiaohongshu-xhslink-com-o-9Y8WA9SAMVO(来源未公开)