跳到主内容
概念Agent 记忆Memory长期记忆向量库CLAUDE.mdAGENTS.md上下文工程

Agent 记忆(Memory)

上下文窗口是 Agent 的短期记忆,装不下也留不久;长期记忆要把关键信息写进外部存储再按需检索。CLAUDE.md / AGENTS.md 是最朴素的长期记忆,也是当前工程上最有效的方案。

发布 2026-08-30更新 2026-08-30

为什么 Agent 需要记忆

把 Agent 当实习生看就懂了:实习生入职第一天能干活,是因为记住了团队约定(用 pnpm 不用 npm、提交前跑 lint)。而一个没有记忆的 Agent,每次会话都像失忆重来——你反复教它同样的事,它反复犯同样的错。

更硬的约束来自上下文窗口本身:

  • 容量有限:Context Rot 证明输入一长质量就掉,窗口远未满就已退化
  • 生命周期短:会话结束、compaction 压缩之后,早期内容就没了
  • 按 token 计费:每次都重读全部历史,账单撑不住

记忆系统的本质:把「每次都要重学」的东西挪到窗口外面,按需取回。

两层记忆:短期与长期

短期记忆长期记忆
载体上下文窗口外部存储(文件/向量库/数据库)
生命周期单次会话内跨会话、跨项目
容量几十~几百 K token无上限
读写模型原生需要 Agent 主动调用工具
典型内容当前任务步骤、刚读过的文件项目约定、踩过的坑、用户偏好

学术界的分层更细(受认知科学启发,MemGPT/Letta 一系把这套发扬光大):

  • 工作记忆:当前上下文里的活跃内容
  • 情景记忆(episodic):过去发生的事件流水——「上次重构是怎么失败的」
  • 语义记忆(semantic):沉淀下来的事实与偏好——「这个项目用 pnpm」
  • 程序记忆(procedural):固化成规则的操作流程——「提交前必须跑测试」

工程上不必照搬四层,但**「事件流 → 提炼 → 沉淀」**这个方向是共通的:先记录发生了什么,再总结成可复用的结论,最后固化到规则文件里。

工程实现的三条路线

1. 记忆文件:CLAUDE.md / AGENTS.md(最朴素,最有效)

把项目约定写成 Markdown 放在仓库根目录,Agent 每次启动自动读取:

  • CLAUDE.md:Claude Code 的记忆文件,写技术栈、命令、代码风格
  • AGENTS.md:2026 年已成跨工具的事实标准,Codex、Gemini CLI、OpenCode 等都认

它同时解决两件事:人也是读者(新人 onboarding 看同一份文件),版本可管理(记忆跟着 git 走,可 review、可回滚)。这比任何智能记忆系统都可靠——因为它简单到不会出错。

写法要点:只写 Agent 会反复用到的稳定约定(构建命令、目录结构、禁区),别写成需求文档。详见 AGENTS.md 详解。

2. 向量检索:记忆库 + RAG

把历史会话、踩坑记录切块后存进向量库(embedding),新任务开始时先检索相关记忆注入上下文:

  • 优点:能记住海量历史,按语义召回
  • 风险:检索质量决定一切——召回错了等于给 Agent 喂错误记忆,比没有记忆更糟

适合多项目、长周期积累的个人助手型 Agent;单仓库编程场景下,记忆文件通常够用。

3. 内置记忆系统:工具厂商的尝试

MiMo Code 把记忆系统做进了 Agent 本体——跨会话记住项目上下文与用户习惯。方向正确,但注意两点:记忆存在哪(本地 or 云端)决定隐私边界;记忆能否查看、编辑、清除决定可控性。闭源记忆系统在这两点上天然存疑,选型时要看厂商的披露。

记忆的坑:污染与过时

记忆系统不是纯增益,它引入两类新故障:

  1. 记忆污染:早期学到的错误约定(比如某个已废弃的构建命令)被反复注入,Agent 把错误越滚越扎实。解法:记忆要可编辑、可清除,且标注来源与时间
  2. 记忆过时:项目演进后旧约定失效(monorepo 拆分了、框架升级了),记忆文件没跟着更新。解法:把记忆文件纳入维护流程,lastVerified 思维同样适用于记忆

一个实用习惯:让 Agent 在每次踩坑后主动提议把教训写进 AGENTS.md——人审核后合入。记忆的写入路径有人把关,污染速度就可控。

和上下文工程的关系

记忆是上下文工程的子问题:后者管「这一次请求的窗口里放什么」,前者管「跨请求的沉淀与召回」。完整链路是:

踩坑/约定 → 沉淀进记忆(AGENTS.md / 向量库) → 下次任务按需召回注入 → 窗口内只保留当前任务的高信噪比内容

三层各司其职,缺哪层都会退化:没记忆则反复重学,没检索则记了找不到,没上下文工程则找到了也淹没在噪声里。

常见误区

  • 「上下文窗口够大就不需要记忆」:错。窗口再大也跨不了会话,且长输入直接触发 Context Rot
  • 「记忆文件是给模型写的文档」:错。AGENTS.md 首先写给人看——它是一份恰好能被机器消费的工程约定
  • 「记忆越多越好」:错。污染与过时的记忆是负资产,宁缺毋滥,定期清理
  • 「向量库是记忆的标准答案」:过度设计。单项目编程场景,一个 Markdown 文件解决 80% 的问题

相关阅读

相关模型

相关对比

Aider vs Claude Code:终端 AI 编程双雄怎么选

Aider vs Claude Code 2026 选型对比:开源 BYOK 多模型 vs Anthropic 订阅长任务 Agent,从编程能力、多模型支持、价格、Git 集成、国内可用性和适合人群判断,帮你选对终端 AI 编程工具。

Claude Code vs Cline:CLI AI Agent 怎么选?2026 对比

Claude Code vs Cline 2026 选型对比:Anthropic 官方闭源 CLI Agent vs Apache-2.0 开源 VS Code 插件。从模型绑定、工作流、MCP 支持、价格、隐私和适合人群 6 个维度帮你选对 CLI AI 编程工具。

Claude Code vs Codex CLI:终端 AI Agent 双雄对比

Claude Code vs Codex CLI 2026 选型对比:Anthropic 与 OpenAI 两大官方终端 Agent 的模型、长任务、MCP 生态、Windows 支持、订阅打包价格和国内可用性全方位对比,帮你判断该用哪个终端 AI Agent,以及能不能两个一起用。

Claude Code vs Crush:Anthropic 官方 vs 多模型 TUI(2026 实测选型)

Claude Code vs Crush 2026 选型对比:Anthropic 官方 CLI Agent(Claude only + 长任务最稳 + MCP 一等公民)vs Charmbracelet 开源 TUI Agent(多模型 mid-session 切换 + LSP + FSL-1.1-MIT)。从模型、长任务、生态、价格、国内可用性帮你选对终端 AI 编程工具。

Cursor vs Claude Code:什么时候用哪个?(2026 实测选型)

Cursor 和 Claude Code 到底怎么选?一句话结论 + 决策树 + 价格实测 + 国内可用性对比。GUI 派选 Cursor,终端长任务派选 Claude Code,最优解其实是共存。

Devin vs Claude Code:AI 编程 Agent 怎么选?异步自主 vs 终端同步对比

Devin vs Claude Code 2026 选型对比:Cognition 异步自主 Cloud Agent vs Anthropic 终端同步 CLI Agent,从形态、工作模式、长任务能力、并发、价格、中文支持和适合人群 8 个维度判断,帮你选对 AI 编程 Agent。