编程 agentmemory 深度解析:AI Coding Agent 持久化记忆引擎——让 AI 助手真正「记住」你的项目

2026-05-15 18:12:26 +0800 CST views 9

agentmemory 深度解析:AI Coding Agent 持久化记忆引擎——让 AI 助手真正「记住」你的项目

你有没有过这样的体验:在 Claude Code 里花了一整下午跟 AI 一起搭建了 JWT 认证中间件,配置了 jose 库,写好了测试用例,搞定了 Edge Runtime 兼容性问题。第二天新开一个会话,AI 完全不记得了,你又得从头解释一遍整个 auth 模块的设计决策。这种「健忘症」是当下所有 AI Coding Agent 的共同痛点。agentmemory 的出现,正在从根本上改变这个局面。


一、背景:AI Agent 的「金鱼记忆」困境

1.1 问题的本质

当前主流 AI Coding Agent(Claude Code、Cursor、Codex CLI、OpenClaw 等)的上下文管理,本质上都是**会话级(session-scoped)**的。每个新会话,Agent 对项目的认知从零开始。现有的「记忆」方案主要靠两种机制:

  1. 静态规则文件CLAUDE.md .cursorrules.github/copilot-instructions.md 等。这些文件需要手动维护,而且有长度上限(通常 200 行左右就难以维护),无法自动演化。
  2. 上下文注入:把相关文件直接贴进上下文窗口。这种方式在对话轮次增多后迅速触及 token 上限,而且无法跨会话持久化。

本质上,这些都是被动记忆——依赖用户主动提供上下文,而不是 Agent 主动「记住」。

1.2 为什么现有方案不够用

举个真实场景。你在一个 Express 项目中:

  • Session 1:你跟 Agent 一起用 jose 库实现了 JWT 中间件,放在 src/middleware/auth.ts,决策原因是 jose 支持 Edge Runtime(为了未来迁移到 Vercel Edge Functions)。
  • Session 2:你让 Agent 加 rate limiting。它不记得你用 jose 的原因,甚至可能建议用 jsonwebtoken(不支持 Edge)。你又得解释一遍。
  • Session 3:你发现一个 auth 相关的 bug。Agent 不记得之前的测试覆盖了哪些 case,你可能得重新运行一遍测试来解释问题。

这不是智力问题,是记忆基础设施的缺失

1.3 学界和业界的回应

ICLR 2025 的 LongMemEval 基准测试(500 道问题,专门评估 LLM 长程记忆能力)显示:即便是最强的 LLM,在跨会话记忆检索上,纯 BM25 方案的 R@5 只有 86.2%,MRR 低至 71.5%。

业界出现了几类解法:

方案代表项目核心思路问题
记忆层 APImem0 (53K ⭐)提供 add()/search() API,开发者手动调用需要改代码,无法自动捕获
Agent 运行时Letta/MemGPT (22K ⭐)把记忆管理内置于 Agent 运行时框架锁定,迁移成本高
静态文件CLAUDE.md 等手动维护项目规则手动维护,有上限,易过期
MCP 记忆服务器agentmemory、mcp-memory通过 MCP 协议提供记忆工具需要 Agent 支持 MCP

agentmemory 的独特之处在于:它不要求你改 Agent 框架,不要求你手动调用 API,而是通过 hooks + MCP 双通道自动捕获会话内容,用混合检索引擎(BM25 + 向量 + 知识图谱,RRF 融合)实现高精准度召回。


二、核心概念:agentmemory 的架构设计

2.1 整体架构

agentmemory 的架构可以分为四层:

┌─────────────────────────────────────────────────┐
│           Agent Integrations Layer              │
│  Claude Code (12 hooks) │ Codex (6 hooks)      │
│  Cursor (MCP) │ OpenClaw (MCP) │ Hermes ...    │
└────────────────────┬────────────────────────────┘
                     │
┌────────────────────┴────────────────────────────┐
│              MCP Server (Port 3111)             │
│  51 个 MCP 工具:memory_smart_search,            │
│  memory_save, memory_sessions,                  │
│  memory_governance_delete, ...                  │
└────────────────────┬────────────────────────────┘
                     │
┌────────────────────┴────────────────────────────┐
│            iii Engine (核心检索引擎)              │
│  BM25 + Vector Embedding + Knowledge Graph       │
│  RRF (Reciprocal Rank Fusion) 融合排序          │
│  本地 Embedding: all-MiniLM-L6-v2 (免费)         │
└────────────────────┬────────────────────────────┘
                     │
┌────────────────────┴────────────────────────────┐
│              Storage Layer                       │
│  SQLite (iii-engine 内置,零外部依赖)             │
│  记忆生命周期管理:consolidation + decay          │
└─────────────────────────────────────────────────┘

2.2 记忆的四种生命周期阶段

agentmemory 借鉴了认知科学中人类记忆的模型,将每条记忆分为四个阶段:

Stage 1: Working Memory(工作记忆)

  • 当前会话中产生的原始内容(prompt、tool call、response)
  • 存储在会话级别的临时缓冲区
  • 容量有限,类比于人类短期记忆

Stage 2: Short-term Memory(短期记忆)

  • 会话结束后,通过 hooks 触发 consolidation,将工作记忆中有价值的内容提升为短期记忆
  • 保留完整的上下文细节
  • 在后续会话中优先被检索

Stage 3: Long-term Memory(长期记忆)

  • 经过多次检索命中、或置信度评分(confidence scoring)超过阈值的记忆
  • 内容被压缩和去重,保留核心语义
  • 类比于人类经过重复的「巩固」过程形成的长期记忆

Stage 4: Decay & Forgetting(衰减与遗忘)

  • 长期未被访问的记忆,置信度逐步衰减
  • 衰减到阈值以下自动删除(auto-forget)
  • 这避免了记忆库无限膨胀,也模拟了人类的「遗忘曲线」

这个生命周期机制是 agentmemory 区别于 mem0 等方案的关键——mem0 的记忆是静态的,不会自动演化。

2.3 混合检索引擎:BM25 + Vector + Graph 的 RRF 融合

单一检索方式都有局限性:

  • BM25(关键词):精确匹配能力强,但无法处理语义相似(搜 "database performance optimization" 找不到 "N+1 query fix")
  • Vector Embedding(语义向量):能捕获语义相似,但对精确关键词匹配(函数名、变量名)不够精确
  • Knowledge Graph(知识图谱):能捕获实体间的关系("auth.ts 使用了 jose"),但构建成本高

agentmemory 使用 RRF(Reciprocal Rank Fusion) 将三种检索结果融合:

# RRF 公式(概念性伪代码)
def rrf_fusion(bm25_results, vector_results, graph_results, k=60):
    fused_scores = {}
    
    for rank, doc in enumerate(bm25_results, 1):
        fused_scores[doc.id] = fused_scores.get(doc.id, 0) + 1/(k + rank)
    
    for rank, doc in enumerate(vector_results, 1):
        fused_scores[doc.id] = fused_scores.get(doc.id, 0) + 1/(k + rank)
    
    for rank, doc in enumerate(graph_results, 1):
        fused_scores[doc.id] = fused_scores.get(doc.id, 0) + 1/(k + rank)
    
    return sorted(fused_scores.items(), key=lambda x: x[1], reverse=True)

Benchmark 数据(LongMemEval-S)

系统R@5R@10MRR
agentmemory(三路融合)95.2%98.6%88.2%
BM25-only(fallback)86.2%94.6%71.5%
mem0(仅向量)~68.5%--
Letta(仅向量归档)~83.2%--

R@5(Recall@5)= 前5条结果中包含正确答案的比例。95.2% 意味着几乎每次都能找回相关记忆。

2.4 置信度评分(Confidence Scoring)

每条记忆有一个动态的 confidence 值(0~1),更新规则:

  • 检索命中 → confidence += α(默认 0.1)
  • 会话中显式确认(用户说「对,就是这样」)→ confidence += β(默认 0.3)
  • 衰减周期触发 → confidence *= γ(默认 0.95,每次 decay 周期)
  • 显式遗忘/forget 命令)→ confidence = 0,触发删除

这个机制使得经常访问的记忆会越来越「牢固」,而冷记忆会自动清理。


三、与 Claude Code / Codex / Cursor 的集成机制

3.1 Hooks:零手动操作的自动捕获

agentmemory 对 Claude Code 注册了 12 个 hooks,覆盖会话全生命周期:

Hook触发时机作用
SessionStart会话启动注入相关记忆到上下文
UserPromptSubmit用户提交 prompt异步触发记忆检索
PreToolUse工具调用前记录工具调用意图
PostToolUse工具调用后捕获工具结果,存入工作记忆
PreCompact上下文压缩前将重要记忆从工作记忆提升到短期记忆
Stop会话停止触发 consolidation,将短期记忆写入持久化存储
Notification通知事件记录通知内容
SessionEnd会话结束(显式)最终化本次会话的记忆
SubagentStart子 Agent 启动继承父 Agent 的记忆上下文
SubagentEnd子 Agent 结束将子 Agent 记忆合并回父 Agent
TaskCompleted任务完成标记记忆的完成状态
PostToolUseFailure工具调用失败记录失败案例,避免重复错误

Codex CLI 的 hook 机制略有不同(参考 codex-rs/hooks/src/engine/discovery.rs),agentmemory 为其适配了 6 个 hooks(SessionStart、UserPromptSubmit、PreToolUse、PostToolUse、PreCompact、Stop),通过 CLAUDE_PLUGIN_ROOT 环境变量注入 hook 子进程。

3.2 MCP 工具:51 个记忆操作原语

当 agentmemory 服务器运行在 localhost:3111 时,任何支持 MCP 的 Agent 可以调用以下工具(摘录最重要的):

检索类

  • memory_smart_search — 混合检索(BM25+Vector+Graph),最主要的使用入口
  • memory_search — 仅 BM25 检索
  • memory_vector_search — 仅向量检索
  • memory_graph_traverse — 知识图谱遍历

写入类

  • memory_save — 手动保存一条记忆
  • memory_consolidate — 触发记忆巩固
  • memory_session_snapshot — 保存当前会话快照

管理类

  • memory_sessions — 列出所有会话
  • memory_session_replay — 回放某个会话(用于调试)
  • memory_governance_delete — 按策略删除记忆(支持按时间、关键词、confidence 阈值)
  • memory_forget — 显式遗忘某条记忆

信号类(多 Agent 协调):

  • memory_signal — 向其他 Agent 发送信号(例如:Agent A 完成了数据库迁移,发信号给 Agent B)
  • memory_lease_acquire — 获取记忆区的写锁(避免多 Agent 同时修改同一条记忆)

3.3 安装:30 秒完成

Claude Code

# 终端 1:启动记忆服务器
npx @agentmemory/agentmemory

# 终端 2:安装插件
/plugin marketplace add rohitg00/agentmemory
/plugin install agentmemory

# 验证
curl http://localhost:3111/agentmemory/health
# 预期输出: {"status":"ok",...}

# 实时查看记忆积累
open http://localhost:3113

Codex CLI

# 终端 1:启动记忆服务器
npx @agentmemory/agentmemory

# 终端 2:安装插件
codex plugin marketplace add rohitg00/agentmemory
codex plugin install agentmemory

Cursor / Windsurf / Claude Desktop(MCP 模式)

.cursor/mcp.json(或对应配置)中添加:

{
  "mcpServers": {
    "agentmemory": {
      "command": "npx",
      "args": ["-y", "@agentmemory/mcp@latest"]
    }
  }
}

OpenClaw

在 OpenClaw 的 MCP 配置中添加:

{
  "mcpServers": {
    "agentmemory": {
      "command": "npx",
      "args": ["-y", "@agentmemory/mcp@latest"],
      "env": {
        "AGENTMEMORY_URL": "http://localhost:3111"
      }
    }
  }
}

四、实战:从零开始用 agentmemory 改造开发流程

4.1 场景设定

假设我们有一个真实的 Express + TypeScript 项目,用 Claude Code 进行开发。我们要实现:

  1. JWT 认证中间件(使用 jose,支持 Edge Runtime)
  2. Rate Limiting(基于 Redis)
  3. 数据库 N+1 查询修复(使用 DataLoader)

4.2 Session 1:JWT 认证中间件

用户 prompt

帮我在 src/middleware/auth.ts 实现 JWT 认证中间件。
要求:
- 使用 jose 库(不要用 jsonwebtoken,因为需要支持 Edge Runtime)
- 支持 HS256 和 RS256 两种算法
- 错误处理要完善(过期、格式错误、签名错误)
- 写完整的单元测试

Agent 响应(节选):

// src/middleware/auth.ts
import { jwtVerify, createRemoteJWKSet, SignJWT } from 'jose';

interface AuthConfig {
  secret?: string;
  jwksUri?: string;
  algorithm: 'HS256' | 'RS256';
}

export function createAuthMiddleware(config: AuthConfig) {
  const { secret, jwksUri, algorithm } = config;

  // RS256: 使用远程 JWKS
  const jwks = jwksUri ? createRemoteJWKSet(new URL(jwksUri)) : null;

  return async (req: Request): Promise<JwtPayload | null> => {
    const authHeader = req.headers.get('Authorization');
    if (!authHeader?.startsWith('Bearer ')) {
      throw new AuthError('MISSING_TOKEN', 'Authorization header missing');
    }

    const token = authHeader.slice(7);

    try {
      if (algorithm === 'RS256' && jwks) {
        const { payload } = await jwtVerify(token, jwks, {
          algorithms: ['RS256'],
        });
        return payload as JwtPayload;
      } else if (algorithm === 'HS256' && secret) {
        const { payload } = await jwtVerify(
          token,
          new TextEncoder().encode(secret),
          { algorithms: ['HS256'] }
        );
        return payload as JwtPayload;
      }
      throw new AuthError('INVALID_ALGORITHM', `Unsupported: ${algorithm}`);
    } catch (err) {
      if (err instanceof jwtVerify.errors.JWTExpired) {
        throw new AuthError('TOKEN_EXPIRED', 'Token has expired');
      }
      if (err instanceof jwtVerify.errors.JWSSignatureVerificationFailed) {
        throw new AuthError('INVALID_SIGNATURE', 'Signature verification failed');
      }
      throw new AuthError('INVALID_TOKEN', 'Token verification failed');
    }
  };
}

Session 结束后,agentmemory 的 Stop hook 自动触发,本次会话的关键信息被 consolidation 为以下记忆条目(在 http://localhost:3113 查看):

[id: mem_001, confidence: 0.6, type: decision]
主题: JWT 中间件技术选型
内容: 项目选择 jose 而非 jsonwebtoken,原因是需要支持 Edge Runtime(Vercel Edge Functions 兼容)
来源: Session 1, tool call: write_file(src/middleware/auth.ts)
关联文件: src/middleware/auth.ts

4.3 Session 2:Rate Limiting(跨会话记忆召回)

新会话,用户 prompt

帮我加 rate limiting,用 Redis 实现。

关键:这时 Agent 在 SessionStart hook 中自动调用了 memory_smart_search,召回了 Session 1 的记忆。Agent 的上下文里现在有了:

[自动注入的上下文]
项目背景:
- 认证中间件使用 jose(Edge Runtime 兼容),文件:src/middleware/auth.ts
- 错误处理包含 MISSING_TOKEN、TOKEN_EXPIRED、INVALID_SIGNATURE 三种错误

所以 Agent 在实现 rate limiting 时,不会建议用 jsonwebtoken,也不会忽略 Edge Runtime 兼容性。它可能会这样回应:

好的,我来加 Redis rate limiting。
考虑到你的项目需要 Edge Runtime 兼容(你在 auth 中间件选择了 jose),
我建议使用 @upstash/ratelimit(基于 Redis,支持 Edge)而不是 redis npm 包。

这就是跨会话记忆的价值:Agent 做出了一致的技術决策

4.4 Session 3:N+1 查询修复

用户 prompt

我的 /api/users 接口在查用户列表时每个用户都单独查了数据库,
有 N+1 问题,帮我修复。用 DataLoader。

Agent 召回了相关记忆后,给出:

// 修复前(N+1)
router.get('/api/users', async (req) => {
  const users = await db.user.findMany();
  const result = [];
  for (const user of users) {
    const posts = await db.post.findMany({ where: { authorId: user.id } }); // N+1!
    result.push({ ...user, posts });
  }
  return result;
});

// 修复后(DataLoader)
import DataLoader from 'dataloader';

const postsByAuthorIdLoader = new DataLoader<number, Post[]>(async (authorIds) => {
  const posts = await db.post.findMany({
    where: { authorId: { in: [...authorIds] } },
  });
  const mapped = new Map<number, Post[]>();
  for (const post of posts) {
    const list = mapped.get(post.authorId) || [];
    list.push(post);
    mapped.set(post.authorId, list);
  }
  return authorIds.map(id => mapped.get(id) || []);
});

router.get('/api/users', async (req) => {
  const users = await db.user.findMany();
  const result = await Promise.all(
    users.map(async (user) => ({
      ...user,
      posts: await postsByAuthorIdLoader.load(user.id),
    }))
  );
  return result;
});

语义搜索的价值体现:当你在 Session 4 搜索「database performance optimization」时,memory_smart_search 能通过语义匹配找到这条 N+1 修复记录——纯关键词搜索是做不到的。

4.5 导入历史会话

如果你在安装 agentmemory 之前已经有很多 Claude Code 会话记录(~/.claude/projects/*.jsonl),可以一键导入:

# 导入所有历史会话
npx @agentmemory/agentmemory import-jsonl

# 或导入单个文件
npx @agentmemory/agentmemory import-jsonl ~/.claude/projects/-my-project/abc123.jsonl

导入后,这些历史会话会出现在 http://localhost:3113 的 Replay 选项卡中,可以逐帧回放(包含 prompt、tool call、tool result、response 的时序回放,支持 0.5×~4× 速度控制)。


五、性能与成本分析

5.1 Token 消耗对比

这是 agentmemory 最有说服力的数据之一:

方案年 Token 消耗年成本(GPT-4o 价格)
粘贴完整上下文(每次从头解释)19.5M+不可行(超出上下文窗口)
LLM 摘要后注入~650K~$500/年
agentmemory(云端 embedding)~170K~$10/年
agentmemory(本地 embedding)~170K$0/年

本地 embedding 模型all-MiniLM-L6-v2(Sentence Transformers),~80MB,首次运行时自动下载,之后完全离线。不需要 OpenAI API Key,不产生任何费用。

5.2 检索性能

iii Engine(agentmemory 的底层检索引擎)在本地 SQLite 上的检索延迟:

  • 纯 BM25:< 5ms(适用于 < 10K 记忆条目的场景)
  • 向量检索(本地 embedding):< 20ms(brute force cosine similarity,适用于 < 100K 条目)
  • 混合检索(三路 RRF 融合):< 30ms
  • 知识图谱遍历:取决于图的大小,通常 < 50ms

对于个人开发者的使用场景(年记忆条目 < 50K),性能完全不是瓶颈。

5.3 存储占用

每条记忆的平均大小约 2KB(包含原始内容、元数据、embedding 向量)。

  • 10K 条记忆 ≈ 20MB(SQLite 文件)
  • 100K 条记忆 ≈ 200MB

agentmemory 的 decay 机制会自动清理长期未访问的记忆,实际上很难达到 100K 条的规模。


六、进阶:多 Agent 协作与信号机制

6.1 问题场景

在复杂项目中,你可能会同时运行多个 Agent:

  • Agent A:负责后端 API 开发
  • Agent B:负责前端组件开发
  • Agent C:负责测试编写

当 Agent A 修改了 API 接口的返回格式,Agent B 和 C 应该感知到这个变化。传统方案是靠人工协调,或者每个 Agent 各自维护自己的上下文。

6.2 agentmemory 的信号机制

agentmemory 提供了 signal(信号)和 lease(租约)原语:

// Agent A 完成 API 修改后发送信号
await memory_signal({
  type: 'api_contract_changed',
  payload: {
    endpoint: '/api/users',
    change: 'added posts field to response',
    affectedFiles: ['src/routes/users.ts'],
  },
  recipients: ['agent-b', 'agent-c'],
});

// Agent B 在 SessionStart 时检查信号
const signals = await memory_check_signals({ recipient: 'agent-b' });
// 如果收到 api_contract_changed 信号,自动更新前端类型定义

lease 机制防止多个 Agent 同时修改同一条记忆:

// Agent A 获取对 mem_001 的独占写权限
await memory_lease_acquire({ memoryId: 'mem_001', ttlSeconds: 30 });

// 写入...
await memory_save({ id: 'mem_001', content: '...' });

// 释放
await memory_lease_release({ memoryId: 'mem_001' });

这在多 Agent 并行工作时避免了记忆的竞态条件。


七、与竞品深度对比

7.1 agentmemory vs mem0

维度agentmemorymem0
自动捕获12 个 hooks,零手动操作需要手动调用 add()
检索精度(R@5)95.2%(三路融合)68.5%(仅向量)
多 Agent 协调信号 + 租约原语无(只有 REST API)
外部依赖零(SQLite + 本地 embedding)需要 Qdrant 或 pgvector
框架锁定无(MCP 标准协议)
实时查看内置 Viewer(Port 3113)Cloud Dashboard

结论:mem0 更适合需要集中式记忆服务的企业场景(多用户共享记忆库);agentmemory 更适合个人开发者的本地、私有、零运维场景。

7.2 agentmemory vs Letta (MemGPT)

Letta 是一个完整的 Agent 运行时,记忆管理是其中的一个子系统。如果你用 Letta,你必须用 Letta 的 Agent 框架。

agentmemory 不绑定任何 Agent 框架——通过 MCP 协议,它可以同时服务 Claude Code、Cursor、Codex CLI、OpenClaw 等,记忆在它们之间共享

这是一个关键区别:agentmemory 是记忆基础设施,Letta 是 Agent 平台

7.3 agentmemory vs CLAUDE.md(内置方案)

CLAUDE.md 是静态文件,需要手动编辑,有长度上限,无法自动演化。

agentmemory 是动态记忆系统,自动捕获,自动演化,理论上限取决于磁盘空间(而且有 decay 机制防止无限增长)。

两者不是替代关系,而是互补CLAUDE.md 放项目级的静态规则(编码规范、构建命令等),agentmemory 放会话级的动态上下文(技术决策、bug 修复记录、架构演进历史)。


八、部署与运维实践

8.1 生产环境部署建议

虽然 agentmemory 默认是本地运行,但如果你在一个团队中想共享记忆:

# 在一台始终在线的服务器上运行
npx @agentmemory/agentmemory --host 0.0.0.0 --port 3111

# 其他开发者通过 AGENTMEMORY_URL 环境变量连接
export AGENTMEMORY_URL=http://your-server:3111

注意:目前 agentmemory 没有内置认证机制(Roadmap 中有计划)。在内网部署时,依赖网络隔离;公网部署需要前置反向代理做鉴权。

8.2 数据备份

agentmemory 的数据存储在 ~/.agentmemory/ 目录(SQLite 文件)。

# 备份
cp ~/.agentmemory/db.sqlite ~/backups/agentmemory-$(date +%Y%m%d).sqlite

# 或者设置定时任务(cron)
0 2 * * * cp ~/.agentmemory/db.sqlite ~/backups/agentmemory-$(date +\%Y\%m\%d).sqlite

8.3 升级

npx @agentmemory/agentmemory upgrade

这个命令会:

  • 更新 @agentmemory/agentmemory npm 包
  • 必要时运行 cargo install iii-engine --force(iii-engine 是用 Rust 写的)
  • 迁移数据库 schema(如果有破坏性变更)

九、总结与展望

9.1 核心收获

  1. AI Coding Agent 的健忘症是可以解决的,而且不需要改变你的工作流——agentmemory 的 hooks 机制实现了零摩擦的自动记忆捕获。

  2. 混合检索(BM25 + Vector + Graph) 是记忆检索的正确方向,单一检索方式都有无法弥补的短板。agentmemory 的 95.2% R@5 是这个设计的最好证明。

  3. 记忆生命周期管理(consolidation + decay + auto-forget)使得记忆库可以长期维护而不膨胀,这是静态方案(如 CLAUDE.md)做不到的。

  4. MCP 协议使得记忆可以成为 Agent 无关的基础设施——你的 Claude Code 会话和 Cursor 会话可以共享同一份记忆,这是框架绑定方案做不到的。

9.2 适用场景

agentmemory 最适合以下开发者:

  • 长期使用 AI Coding Agent,受困于跨会话记忆丢失
  • 项目有持续的架构演进,希望 AI 能「记住」技术决策的历史上下文
  • 重视隐私,希望数据完全本地化
  • 使用多个 AI Coding 工具(Claude Code + Cursor + Codex CLI),希望记忆互通

9.3 Roadmap 中的值得关注的特性

根据 agentmemory 的 CHANGELOG 和 GitHub Issues:

  • 多用户隔离(team mode):即将支持多用户场景下的记忆隔离与共享策略
  • 认证机制:MCP 服务器的 Token 鉴权
  • 更大规模的向量检索优化:当记忆条目超过 100K 时,brute force 向量检索会变慢,计划引入 HNSW 索引
  • 记忆导出/导入标准化:支持将记忆导出为 Markdown 文件,便于人工审查和编辑

十、快速上手检查清单

  • npx @agentmemory/agentmemory 启动服务器
  • 在 Claude Code 中执行 /plugin install agentmemory
  • 验证:curl http://localhost:3111/agentmemory/health 返回 {"status":"ok"}
  • 打开 http://localhost:3113 实时查看记忆积累
  • 进行一次完整会话,然后在新会话中测试记忆召回
  • (可选)导入历史 JSONL 会话:npx @agentmemory/agentmemory import-jsonl

参考资源


如果你也在用 AI Coding Agent,且受困于跨会话记忆丢失问题,agentmemory 值得一试。它不会改变你的工作流,却能让你的 AI 助手真正「记住」你的项目。

推荐文章

Vue3 结合 Driver.js 实现新手指引
2024-11-18 19:30:14 +0800 CST
地图标注管理系统
2024-11-19 09:14:52 +0800 CST
一个简单的html卡片元素代码
2024-11-18 18:14:27 +0800 CST
mysql 优化指南
2024-11-18 21:01:24 +0800 CST
阿里云免sdk发送短信代码
2025-01-01 12:22:14 +0800 CST
CSS实现亚克力和磨砂玻璃效果
2024-11-18 01:21:20 +0800 CST
CSS 实现金额数字滚动效果
2024-11-19 09:17:15 +0800 CST
程序员茄子在线接单