如何在 Agent Builder 中用好 Memory:三招提升 Agent 表现

作者:Jacob Talbot
Agent Builder 会随着使用次数增加而变得更好,因为它会记住你的反馈。你做过的每一次纠正、分享过的每一条偏好、以及被验证有效的方法,Agent 都可以保留下来,并在下一次继续应用。
Memory 是 Agent Builder 之所以像“队友”的关键能力之一。但就像与任何队友协作一样,知道如何高效沟通会更有帮助。下面是三种实用方法,帮你最大化利用 Agent 的记忆能力。
先快速了解一下 memory 的工作方式
在进入技巧之前,先理解底层到底发生了什么会更有帮助。如果你愿意,也可以直接跳到后面的技巧部分。
Agent Builder 构建在 Deep Agents 之上,这是 LangChain 开源的 Agent harness,用于自主执行、长时运行的任务。你的 Agent 可以访问 LLM 做推理,可以调用工具执行动作(例如 web search、Slack、Google Sheets),还能派生 subagents,并且拥有一个文件系统。
Memory 就存放在这个文件系统里。它分为两类:
- 短期记忆(Short-term memory): Agent 在任务过程中创建的文件,例如计划、工具调用输出(如 web search 结果)和任务进度。这些内容只在当前对话(或 thread)期间存在,不会跨对话持久化。
- 长期记忆(Long-term memory): Agent 保存到持久路径(/memories/)的文件。它们会在所有对话中持续保留。Agent 的核心指令和 skills 就存放在这里。Memory 使用标准 Markdown 文件保存。
本质上就是这样。Memory 听起来很抽象,但其实就是一组 Agent 可读可写的文件,帮助它把工作做得越来越好。
直接告诉你的 Agent 去记住
当你和 Agent 协作时,会不断产生有价值的上下文。比如你迭代出了一个很好用的输出格式,或者你明确了自己希望结果如何呈现。这些信息默认存在短期记忆里,但不一定要停留在短期记忆。
你可以直接让 Agent 把学到的内容保存下来。比如这样说:
“这个方法效果很好。请更新你的指令,之后都按这个方式来。”
“记住,我更喜欢用 bullet points,而不是长段落。”
“把这次对话里学到的内容纳入你的 memory。”
Agent 会基于你的反馈更新长期指令,就像一位队友在一次高效协作后整理笔记一样。长期来看,这意味着你需要纠正的地方更少,而且从一开始就能拿到更好的结果。
在实际使用中,这一步并不总是必需的。如果你给出清晰反馈,比如“把写作风格改成直接、简洁的 prose”,Agent 通常会识别这是值得记住的信息。它会先提出要修改指令,并在保存前征求你的确认。显式要求 Agent “记住”最有价值的场景,是那些结论并不明显的时候:比如你们一起迭代问题,最终找到可行方案,但你从未把它明确说成一条规则。
0:00
/0:23
![]()
用 skills 管理专题上下文
skills 是长期记忆的一种形式,但有个关键区别:只有在任务需要时才会加载。你可以把它理解为给 Agent 建了一个参考资料库,而不是让它一开始就把所有内容都背下来。Agent 能看到书架上的目录,只有在相关时才会把某本书取下来。
这很重要,因为上下文并非越多越好。一个 Agent 如果试图同时记住一切,反而可能丢失对当前任务关键点的关注,从而导致 hallucinations。
举个实际例子。我有一个 Agent 用来写产品内容。写 LangSmith Deployment 时,我希望 Agent 引用该产品的功能、受众和定位;写 Agent Builder 时,它又需要完全不同的上下文;而写与产品无关的话题(比如 LangChain 即将举办的 Agent 大会 Interrupt)时,它根本不需要细粒度的产品背景。
所以我会为每个产品建立对应的 skills。Agent 的核心指令负责语气和写作风格,skills 负责产品特定上下文。Agent 会根据当前写作主题加载正确的 skill,并忽略其余内容。
你可以随时让 Agent 创建 skill:“Create a skill for [topic] that includes [what context the agent needs].”
0:00
/0:10
![]()
直接编辑 Agent 的 memory
你的 Agent 指令和配置文件都可以直接编辑。你并不一定非要这么做,因为 Agent Builder 本来就会根据你的反馈自动更新指令。但有两个充分理由值得考虑。
第一,它能帮助你理解 Agent 的思路。阅读 Agent 指令,就像在看队友的项目计划:你能看到它如何拆解问题、优先关注什么、有哪些默认假设可能和你不一致。如果你发现不合理之处,比如多余步骤或错误假设,可以直接修正。
第二,有时这样更快。如果你只是想调整定时任务的执行时间,或者微调指令里的某一行,直接改文件往往只要几秒。让 Agent 来改也可以,但对于小而精确的更新,手动编辑通常是最快路径。
要查看和编辑 Agent 指令,你可以进入该 Agent 的 memory 文件。
0:00
/0:15
![]()
开始构建
以上就是几种让 Agent 随时间变聪明的简单方法:主动让它记住、为它提供专题 skills、并且在需要时勇于“打开引擎盖”查看内部。
如果你做出了喜欢的作品,欢迎到 Community Slack 与我们分享。
订阅我们的 newsletter
来自 LangChain 团队与社区的最新动态
输入你的邮箱
正在处理你的申请...
成功!请检查收件箱并点击链接确认订阅。
抱歉,出了点问题。请重试。
