尽管当前主流 Coding Agent 的上下文与记忆能力越来越完善,但在实际使用中还会遇到这样的挑战:多个 Agent 独立工作,大量事实与决策等常留在会话记录里,导致跨 Session / Agent / 团队的经验教训很难持续复用。

更有像笔者这样的重度 AI “患者”,常在多个 Coding 工具间切换,一些重复性任务也经常会掉进同一个“坑”里。放大到团队场景,类似问题会更加明显。

这就是开源项目AgentMemory(23k+ stars)试图解决的问题:

给 AI Coding 加一层共享、持久、易使用的记忆服务。

本文为大家拆解这款为 AI Coding 设计的 Memory 项目:

  • 为什么 AI Coding 还需要一套独立的记忆?
  • AgentMemory 拆解:如何把任务痕迹变成工程记忆?
  • 从 Hook 到 MCP:跑通 AgentMemory 的记忆闭环
  • 结束语:AgentMemory 的工程化价值

注意:本文的 AgentMemory 非腾讯开源的 TencentDB Agent Memory 项目。

01

为什么 AI Coding 还需要一套独立的记忆?

相信很多团队在 AI Coding 时遇到的最大挑战之一,是“上下文不够”。

在大型代码仓库上做 AI Coding,模型需要足够的上下文:业务背景、代码结构、接口约束、开发规范等,都会直接影响代码质量。

但问题在于,扩大上下文本身也并不是万能解法。

一方面,上下文窗口再大,也不代表模型一定能抓住真正相关的信息,关键信息可能会被淹没(强弱模型有差异)。另一方面,也是最重要的问题:

很多 AI Coding 过程中有价值的信息,并不都适合完整的塞进上下文。

考虑这样一个场景:

Agent A:

优化系统的登录模块,并自动引入了一个加密库,但你在测试后发现它会影响兼容性,因此要求放弃了该方案。

一段时间后…

Agent B:

遇到相同的优化任务,又引入了相同的加密库,相同的“坑”又掉一次…

注意 A 和 B 可能是不同的 Agent 工具、甚至是不同的操控人。

这里的问题是,后续的 Agent 无法知道:这个库之前试过,有兼容性问题。

很显然,这类信息并不适合塞进完整的上下文。它非长期规范,也并非所有任务都需要了解的背景,更像是一条阶段性的经验教训。

这体现了普通上下文知识库的一些短板:

场景 上下文的短板 需要的记忆能力
跨会话开发 新会话不知道上次改到哪 记录会话痕迹、执行摘要等
决策复用 聊天记录不方便检索 临时决策也需要结构化沉淀
多Agent分工 设计、开发、审核互不相通 一套可以共享的记忆服务
安全与合规 Agent 做了什么难以追踪 可以事后查看、回放、审计

所以企业 AI Coding 不仅需要让 Agent 多记一点,还需要它像一名靠谱的同事一样:

能够自动记录工作痕迹,沉淀工作过程中的关键经验,并在下一次相关任务中被检索和复用。

这就是 AgentMemory 体现的价值。它更适合沉淀这类知识:

无法预知、任务过程中出现、尚未稳定到可以写入上下文知识库(甚至还需要验证),但下一次任务很可能有用的经验教训。

Skill 能不能替代 AgentMemory?

提到经验的复用,很多人会想起 Skill。

但 Skill 更像是一套事前固化的工作流程和知识包。它和 Memory 之间是互补关系,一个更偏前置规则,一个则是后置沉淀。两者各有侧重:

所以,上下文知识库、Skills、AgentMemory 完全可以各司其职,完美搭配。

02

AgentMemory 拆解:如何把任务痕迹变成工程记忆

AgentMemory 核心定位是面向 Agent 的持久化记忆层。简单的说:

它把 Claude Code、Cursor、自研 Agent 等工具在会话过程中产生的经验,通过一个后端服务沉淀下来,再借助检索能力带入下一次相关任务。

核心概念

可以用下图来表示 AgentMemroy 的核心概念及其关系:

我们对重点概念举例解释,方便你快速理解。

  • Session:记忆的源头

Coding Agent 中一次相对完整的会话过程,通常包含多轮交互。比如,你让 Agent 排查某个 API 调用失败,从开始分析到最终结束。

  • Observation:会话痕迹

通过 Hooks 实时捕获的会话痕迹,包括用户提出了什么要求、Agent 调用了哪些工具、执行了什么命令、输出了哪些结果等。例如:

Agent 读取了 API 代码、查看了配置文件、运行测试并得到失败日志,这些过程会形成多个 Observation。

  • Memory:沉淀的事实

Memory 是长期存在的事实或判断,可以是偏好、模式、架构、Bug、流程等多种类型。比如:

某个 API 读取的配置来自项目目录下的 .envconfig.yaml

某个函数中的兼容性处理并非冗余代码,不能随意删除

修改代码时我更喜欢 Agent 先出报告而不是直接帮我修改

  • Lesson:经验教训

相比 Memory,Lesson 更强调“下次应该怎么做”或“不该怎么做”。例如:

排查某个组件异常时,应同时检查代码、配置和运行时环境

.doc 文档转换为 Markdown 时,应先使用 X 脚本转成 .docx

  • Graph:知识图谱

Graph 是基于 Observation 抽取形成的知识图谱。它可以把会话中提到的 file、function、service、error 等对象关联起来。例如:

API.tsconfig.yaml、timeout、失败日志、修复决策等抽取为节点,并用关系边连接起来,形成可检索的 Graph。

可以看到,AgentMemory 并不是很多开发者熟知的:把信息用 LLM 总结和向量化,而是针对 Coding Agent 场景设计了一套更完整的记忆模型。

那么这些实体(Observation、Memory等)是如何生成与使用呢?

关键流程

Observation 主要通过 Hooks 实时捕获:AgentMemory 提供了会话开始、工具调用、会话结束等不同阶段的 Hook,用于持续记录 Agent 工作过程中的关键事件。

Memory、Graph 等则更多是在后台沉淀生成,比如在会话结束后自动触发;也可通过 MCP/API 自行控制生成。

下图是实时捕获的大致处理过程:

Hook 捕获到的工作痕迹与事件会被送入 mem::observe,经过校验、脱敏、去重、压缩等步骤,形成压缩的 Observation(LLM 压缩需要显式开启)。

mem::xxxx 是 AgentMemory 所基于的 iii-engine 中的功能模块表示。iii 是一种组合式的、可扩展 Agent 系统框架,我们将在后续独立介绍。

后台沉淀则主要借助 LLM 从已经形成的 Observations 中判断哪些内容值得进一步沉淀为长期 Memory。实际使用中,Memory 会被细分为多种类型。

以下是从 Observations 中总结出 Memory 和 Graph 的简单过程:

MCP + REST API

AgentMemory 的大部分能力,包括 Memory、Lesson、Action 等对象的创建、抽取和检索,都通过 MCP Tools 与 REST API 对外提供接口。因此你可以比较方便地集成到 Claude Code、Cursor、自研 Agent中。

例如,你可以在自己的 Skill 中调用 AgentMemory,召回某些关联记忆,并将其注入当前任务上下文。

AgentMemory MCP Tools 一览

03

从 Hook 到 MCP:跑通 AgentMemory 的记忆闭环

接下来,我们来快速上手体验 AgentMemory。

安装、配置与启动记忆后台

你可以用 npx 快速安装+启动:

# 启动 AgentMemorynpx -y @agentmemory/agentmemory@latest

但如果是长期使用,更建议你使用 npm 直接安装。安装过程中会自动安装 iii-engine 等依赖。

安装后配置 ~/.agentmemory/.env。典型的配置包括 LLM、嵌入模型、访问 secret、 token 预算、是否自动 Consolidation等:

MINIMAX_API_KEY=MINIMAX_MODEL=EMBEDDING_PROVIDER=localAGENTMEMORY_AUTO_COMPRESS=trueGRAPH_EXTRACTION_ENABLED=trueCONSOLIDATION_ENABLED=trueTOKEN_BUDGET=2000AGENTMEMORY_SECRET={自行设置}

配置完成后执行 agentmemory 即可启动。成功后可以看到如下提示:

注意,AgentMemory 并不要求必须配置 LLM 和 embedding;但会退化成本地压缩算法与仅 BM25 关键词检索,无法实现 LLM 压缩与混合检索。另外,一些功能会依赖于 LLM,比如 Graph 抽取等。

配置 Agent Hooks

以 Claude Code 为例,运行:

agentmemory connect claude-code--with-hooks

则会自动在 ~/.claude/settings.json 中写入 Hooks 的设置。比如下面是 SessionStart(会话开始)的 Hook 动作,注意环境变量需要自己添加:

"env": {    "AGENTMEMORY_URL": "http://localhost:3111",    "AGENTMEMORY_SECRET": "my-team-secret-2024"  },...  "hooks": {...    "SessionStart": [      {        "hooks": [          {            "type": "command",            "command": "node \"/opt/homebrew/lib/node_modules/@agentmemory/agentmemory/plugin/scripts/session-start.mjs\""          }...

在 Claude Code 中启动会话

我们在 Claude Code 中启动一个会话。

由于设置了 Hook,后续的行为轨迹将会被自动捕获、压缩与保存成 Observations。这些 Observations 后续将用来总结抽取形成 Memory 与 Graph等。

后续在控制台可以看到类似这样的输出:

同时在 AgentMemory Viewer UI 可以看到你的session被“Observe”的细节:

AgentMemory 还会形成完整的、经过分类后的时间线。比如一次 Session 中的人物、Subagent 启动、Command 调用、文件编辑等都会被标记:

在 Claude Code 中启动任务

在 Claude Code 中正常完成自己的任务,比如让 Agent 对某个功能代码做code review。

你可以看到你的会话痕迹和事件会被捕获(Observations);在会话结束后,会启动一次 Consolidation,抽取出可能的 Memory。

比如,这里从对话中发现了我的偏好:

配置 MCP 客户端

现在来测试 MCP Tools 的接入和用法。这是 Cursor 中的配置:

"agentmemory": {      "command": "npx",      "args": [        "-y",        "@agentmemory/mcp"      ],      "env": {        "AGENTMEMORY_URL": "http://localhost:3111",        "AGENTMEMORY_SECRET": "my-team-secret-2024"      }    },

记住一条决策

在 Cursor 中打开一个测试项目,和 Agent 对话,比如:

当然在实际应用中,一般不会这么显式的让 Agent “记住”或者“召回”,更多应该是自动的。这里为了直观的观察,采取这种方式。

随后,Agent 会调用 remember 工具,把这条决策存成一条 memory。

再记录一条现象

模拟在实际任务中记住一些观察到的现象、测试结果等:

输出如下,注意这里的 Memory 类型是“bug”:

测试记忆召回

现在,换一个新的 Coding Agent(注意配置好 MCP)来召回记忆:

Agent 会调用 memory-*smart-*search 工具,召回关联的记忆 — 从而能够复用你、甚至团队成员的决策与工具经验。

使用 REST API

如果你是构建自己的独立 Agent (比如基于 LangChain、Google ADK等),也可以借助 REST API 直接访问 AgentMemroy 的记忆能力或者封装自己的 MCP Server。下面是一个调用样例代码:

...// 设置 AgentMemory 服务地址与secretconst base = process.env.AGENTMEMORY_URL || "http://127.0.0.1:3111";const secret = process.env.AGENTMEMORY_SECRET || "";// 一个简单的包装函数async function post(path, body) {const res = await fetch(`${base}${path}`, {    method: "POST",    headers: {      "Content-Type": "application/json",      ...(secret ? { Authorization: `Bearer ${secret}` } : {})    },    body: JSON.stringify(body)  });if (!res.ok) thrownewError(`${path}${res.status}: ${await res.text()}`);return res.json();}// API 调用const project = "pay-service";await post("/agentmemory/remember", {  project,type: "lesson",  content: "支付回调必须按 provider + event_id 做幂等唯一键;订单状态只允许 pending -> paid,重复 paid 事件应返回 200 但不再次扣款。",  tags: ["payment", "idempotency", "callback"]});

04

结束语:AgentMemory 的工程化价值

体验下来,AgentMemory 的核心能力特点表现在:

AgentMemory 未必能让 Coding Agent 立刻变得更聪明,但它可以降低 Agent 忘记已有决策、重复排查老问题、忽略历史测试结论的概率,从而提高任务处理的连续性和正确性,降低不必要的推理、返工与 Token 消耗。

如果说 Coding Agent 内置的 Memory 更像个人笔记本,那么 AgentMemory 更像一块可共享的工程白板:它可以跨会话、跨工具、跨团队记录关键经验,并具备更好的可观察性和扩展空间。

在这个意义上,它值得正在推进 AI Coding 工程化的团队试一试。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

在这里插入图片描述

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐