07|Agent 记忆系统:短期上下文、长期规则和项目知识

简介: 编程Agent的记忆并非“永久记住所有内容”,而是科学的上下文工程。本文厘清三类记忆:短期上下文(任务现场)、长期规则(团队约定)和项目知识(按需检索),强调分类管理、避免污染,并给出落地实践与判断标准,助你构建清晰、可维护的Agent记忆体系。(239字)

ScreenShot_2026-06-02_212013_590.png

编程 Agent 的记忆问题,很容易被误解。

很多人以为“记忆”就是让模型永远记住所有对话。真实情况不是这样。模型本身不会自动带着你上周的项目细节进入今天的任务。Harness 必须把需要保留的信息,以某种形式重新加载进上下文。

所以,Agent 记忆不是玄学,而是上下文工程。

三类记忆

在工程实践里,可以把 Agent 记忆分成三类。

第一类是短期上下文。它存在于当前会话里,包括用户任务、对话历史、文件内容、工具输出、测试结果。会话结束后,它通常不会自动进入下一次任务。

第二类是长期规则。比如 CLAUDE.md、AGENTS.md、Cursor Rules。这些文件记录项目约定、构建命令、代码风格、架构边界,每次会话开始时加载。

第三类是项目知识。比如代码图谱、文档索引、历史故障记录、接口说明、设计决策。这类知识通常不应该全部塞进上下文,而应该按需检索。

image.png

这三类记忆不能混用。把所有项目知识都塞进长期规则,会让上下文变脏;把关键团队规范只放在对话里,下次就会丢。

短期上下文:任务现场

短期上下文是 Agent 当前正在处理的现场。

比如你让它修一个 bug,它会逐步收集:

  • 报错信息;
  • 相关文件;
  • 测试输出;
  • Git diff;
  • 用户补充说明;
  • 中间计划。

短期上下文适合放当前任务相关的信息,不适合承载长期规范。

一个常见问题是长任务做着做着上下文满了。Harness 会压缩或摘要旧内容,但摘要一定会丢细节。重要规则如果只在对话开头说过,后面可能不再可靠。

解决方法是:长期规则写进规则文件,任务关键点阶段性复述,复杂任务拆小。

长期规则:团队约定

长期规则的价值,是减少重复解释。

比如:

本项目后端使用 Java 21 和 Spring Boot。
数据库迁移脚本放在 sql/migration。
所有接口错误返回 ApiError。
提交前必须运行 mvn test。
不要修改 generated 目录。

这些信息每次任务都可能有用,适合写进 CLAUDE.md、AGENTS.md 或 .cursor/rules

但长期规则要克制。Claude Code 官方文档也提醒,CLAUDE.md 内容越具体、越简洁,越容易被遵守;太大、冲突或模糊都会降低效果。

一个经验是:项目级规则控制在 100-200 行以内。超过这个长度,就应该拆成路径规则或 Skills。

项目知识:按需召回

项目知识往往很大。

比如:

  • 全部 API 文档;
  • 历史 PR;
  • 事故复盘;
  • 代码调用图;
  • 数据库表结构;
  • 产品需求;
  • 设计稿说明。

这些信息不能每次都加载。正确方式是索引起来,任务需要时按需召回。

这就是 CodeGraph、Understand-Anything、RAG、MCP 文档服务的价值。它们不只是“存资料”,而是帮助 Agent 在合适时间找到相关知识。

记忆污染

记忆不是越多越好。

记忆污染常见于三种情况。

第一,旧规则没删。项目已经从 npm 切到 pnpm,但规则里还写 npm。

第二,个人偏好混进团队规则。某个开发者喜欢某种写法,不代表团队都应该遵守。

第三,临时结论变成长期事实。一次排障时的猜测被写进记忆,下次 Agent 当成真相。

所以记忆需要维护。规则文件要像代码一样 Review,过期内容要删,冲突规则要合并。

真实落地方式

一个团队可以这样组织记忆:

AGENTS.md
  通用 Agent 指令,供多种工具读取

CLAUDE.md
  Claude Code 专用补充

.cursor/rules/
  Cursor 路径级规则

docs/architecture.md
  架构说明,按需引用

.codegraph/
  代码索引,本地生成

规则里只写长期稳定的事。复杂流程放 Skills。大量知识放索引系统。临时任务信息留在会话里。

什么时候该写入记忆

可以用四个判断标准。

第一,Agent 第二次犯同样错误。

第二,Code Review 提醒了某个项目规则。

第三,新人也需要知道这条信息。

第四,这条信息未来多个任务都会用到。

如果只对当前任务有用,不要写进长期规则。

总结

Agent 记忆的核心不是“让模型什么都记住”,而是把信息放到正确位置。

当前任务信息:放短期上下文
团队稳定约定:放长期规则
大量项目资料:放知识索引
必须强制执行:放权限和 hooks

记忆系统做得好,Agent 会越来越懂项目;做得差,它只会越来越混乱。

目录
相关文章
|
19天前
|
JavaScript 定位技术 API
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
CodeGraph 是一款爆火的本地代码智能工具,通过 tree-sitter 解析 AST 构建结构化知识图谱(存于 SQLite),为编程 Agent 提前生成“代码地图”。它显著降低 Agent 在中大型项目中的探索成本——实测工具调用减少71%、Token 降57%、速度提升46%,支持19+语言及主流框架路由识别,完全离线、无需 API Key。
974 12
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
|
17天前
|
人工智能 开发框架 JavaScript
一篇文章告诉你,Spec-Kit、OpenSpec哪个适合你
本文深度对比GitHub官方的Spec-Kit(重型、流程严、适配大团队新项目)与社区驱动的OpenSpec(轻量、灵活、专为存量迭代优化),助你基于项目规模、阶段和团队能力,快速选对AI规范驱动开发工具。
156 0
一篇文章告诉你,Spec-Kit、OpenSpec哪个适合你
|
17天前
|
人工智能 API 开发工具
Opencode必看!Spec-kit(SDD)让你AI编程事半功倍
本文介绍GitHub官方推出的Spec-Kit工具,它作为标准化软件设计文档(SDD)方案,深度适配OpenCode,解决AI编程中需求模糊、改动困难、质量不稳、版本混乱等痛点。5步即可上手:定原则、写需求、定方案、拆任务、自动生成代码,大幅提升AI编程效率与工程规范性。(239字)
198 1
|
存储 分布式计算 Java
软件体系结构 - 架构风格(1)批处理架构风格
【4月更文挑战第21天】软件体系结构 - 架构风格(1)批处理架构风格
999 0
|
运维 监控 前端开发
Qcon演讲实录|手机淘宝客户端的攻防演练实践
混沌工程是一个业界比较流行的防范系统性风险的方法论, 其核心思想是通过不断地失败来避免失败,以主动制造故障的方法来宏观地验证业务的容灾和恢复能力。这一概念在服务端存在大量的实践和落地, 在客户端还是属于探索阶段,业界甚少甚至没有类似尝试。手机淘宝等大型应用其实是一个广义概念上的分布式系统, 混沌工程理念是否也可以在这类型广义分布式系统上产生价值呢?答案是肯定的,本次分享将向大家介绍手机淘宝客户端是如何使用攻防演练来降低客户端系统风险、提高快速交付能力的。
|
Java C# Android开发
Xamarin.Android | 界面跳转到手机自带的自启动管理界面,引导用户将APP加入自启动
为了帮助用户在使用 APP 时提高其稳定性和使用体验,有时候我们需要让安卓手机的界面跳转到手机自带的自启动管理界面,以此来引导用户将 APP 加入自启动,确保应用程序在后台运行时不被系统杀死,从而保证应用程序服务的稳定性和可靠性。同时,这也可以提高用户的使用体验,使用户能够更好地享受应用程序的功能和服务。
1590 0
Xamarin.Android | 界面跳转到手机自带的自启动管理界面,引导用户将APP加入自启动
|
3月前
|
机器学习/深度学习 编解码 JSON
从踩坑到高效落地:淘宝拍立淘图片搜索API的实操心得
淘宝拍立淘API提供高精度以图搜品服务,支持Base64/URL传图,基于MobileNet/ResNet提取200+图像特征,毫秒级匹配相似商品。关键需控主体占比≥70%、签名严格ASCII排序、阈值设0.8,单次返回50条结构化结果。(239字)
|
10月前
|
XML Java Maven
@Bean`注解的使用方法及其作用
本文介绍了Spring框架中`@Bean`注解的使用方法及其作用,包括如何将第三方类库加入Spring容器,配置类与`@Configuration`的配合使用,以及通过`@ConditionalOnClass`、`@ConditionalOnMissingBean`等条件注解控制Bean的加载。同时讲解了Maven父子模块间的依赖关系及配置方式,帮助开发者更好地管理项目结构与依赖注入。
|
19天前
|
人工智能 运维 安全
Hermes Agent 核心必学:SubAgent 子代理的 5 个实战技巧,多任务处理效率翻倍
Hermes Agent SubAgent子代理完整教程:掌握delegate_task并行委派、上下文隔离与多任务处理核心能力,提升开发效率。
337 1
|
19天前
|
JSON 测试技术 API
爆肝3周,开源一套通用测试Skills框架:支持Web/App/接口统一技能调用
本文介绍一款通用测试Skills框架,通过“Skill抽象+注册中心+动态调度”三层设计,实现Web/App/接口三端技能统一调用。告别重复编码与工具绑定,一套YAML用例驱动多端执行,大幅提升资产复用率与团队协作效率。