一、TL;DR(先看结论)

你的诉求 推荐方案 备选
给 Claude Code + Codex 装一套"自动捕获 + 跨会话记忆",零运维 agentmemory mem0(更通用)
想搭一个"个人 / 团队大脑",沉淀想法、人脉、会议、决策 GBrain Cognee
业务侧要给应用做"个性化用户画像 + 长期记忆 API" mem0 Letta
需要"时间维度"的事实演化追踪(who said what, when) Graphiti GBrain
想要"自管理记忆 + 自我进化"的有状态 Agent 平台 Letta Cognee
想统一摄入企业数据、做知识图谱沉淀 Cognee Graphiti

对你这个具体场景(Claude Code + Codex)我的最终建议是:

  1. 主线选 agentmemory:唯一一个原生同时支持 Claude Code(12 hooks + 53 MCP tools)和 Codex CLI(6 hooks + plugin)的方案,自动捕获 + 本地零依赖(SQLite + iii-engine),开箱即用。
  2. 如果你想顺便建"个人/团队知识大脑",叠加 GBrain 作为 MCP server:两者职责互补,agentmemory 管"会话过程记忆",GBrain 管"沉淀后的可检索知识库"。
  3. 避免一开始就上 Letta:它是"Agent 运行时"而非"记忆插件",绑定深,不适合作为已有 Claude Code/Codex 的辅助记忆。

二、agentmemory 深度解读与最佳实践

1. 项目概述

“Your coding agent remembers everything. No more re-explaining.”
GitHub: https://github.com/rohitg00/agentmemory
协议:Apache-2.0 | 基于 iii-engine 构建

AgentMemory 是一个面向编码 Agent场景的持久记忆服务,核心定位是 Memory engine + MCP server(不是 Agent 运行时)。它解决的问题非常直接:每次编码 Agent 会话结束后,Agent 就忘了你之前做的所有事情——你设置的 JWT 认证、你修复的 N+1 查询 bug、你对 jose 而非 jsonwebtoken 的选择偏好。AgentMemory 在后台静默捕获 Agent 的所有操作,将其压缩为可检索的记忆,并在下次会话开始时自动注入正确的上下文。

该项目明确针对 Claude Code、Codex CLI、Cursor、Gemini CLI、OpenCode、OpenClaw、Hermes、pi 等主流编码 Agent,并且在 Trendshift 上已成为 code agent memory 赛道的头部项目。截至 2026 年 5 月,项目已通过 950+ 测试,维护活跃(v0.9.22 版本于 2026-05-22 发布),社区贡献者持续增长。

2. 核心特性总览

维度 实现
自动捕获 12 个 Claude Code hooks(SessionStart / UserPromptSubmit / PreToolUse / PostToolUse / PreCompact / Stop / SubagentStart/Stop / SessionEnd / PostToolUseFailure 等);Codex 6 个 hooks;OpenCode 22 个 hooks
检索算法 BM25 + Vector + Graph 三流融合(RRF, k=60),LongMemEval R@5 95.2%,比 BM25 单流高 9pp
4 层记忆架构 Working → Episodic → Semantic → Procedural(类海马回-皮层巩固机制)
遗忘机制 Ebbinghaus 衰减曲线 + TTL + 矛盾检测 + 自动逐出
存储 SQLite + iii-engine(零外部依赖
MCP 工具数 53 个(memory_recall / smart_search / save / patterns / consolidate / governance_delete / sentinel / lease / signal …)
REST 端点数 124 个
可视化 自带 Real-time Viewer(localhost:3113)+ iii Console(3114)查 OTEL trace
隐私 默认本地存储;写入前自动剥离 API key / secrets / PEM 私钥 / JWT token / <private> 标签
多 Agent AGENT_ID + AGENTMEMORY_AGENT_SCOPE=isolated 隔离不同角色的记忆
本地 LLM 支持 Ollama / LM Studio / vLLM / llama.cpp,零成本运行 compress / summarize
协议许可 Apache-2.0

3. 安装与快速开始

3.1 基础安装(推荐方式)
# 全局安装(推荐,安装后 agentmemory 命令全局可用)
npm install -g @agentmemory/agentmemory

# 启动记忆服务
agentmemory                    # 启动服务,监听 :3111

# 或者不安装直接用 npx(适合试用)
npx @agentmemory/agentmemory

首次启动时会进入交互式引导向导,包含 Agent 选择、LLM Provider 选择等步骤。

3.2 iii-engine 安装

AgentMemory 依赖 iii-engine 作为底层运行时。当前版本 pin 在 v0.11.2。

macOS arm64(推荐):

mkdir -p ~/.local/bin
curl -fsSL https://github.com/iii-hq/iii/releases/download/iii/v0.11.2/iii-aarch64-apple-darwin.tar.gz \
  | tar -xz -C ~/.local/bin
chmod +x ~/.local/bin/iii

macOS x64:aarch64-apple-darwin 替换为 x86_64-apple-darwin

Linux x64: 替换为 x86_64-unknown-linux-gnu

Linux arm64: 替换为 aarch64-unknown-linux-gnu

Windows:iii-hq/iii releases v0.11.2 下载 iii-x86_64-pc-windows-msvc.zip,解压 iii.exe 并添加到 PATH。

也可以使用 Docker(自带的 docker-compose.yml 会拉取 iiidev/iii:0.11.2)。

3.3 接入 Claude Code
# 方式一:Plugin 方式(推荐)
# 在 Claude Code 里执行:
/plugin marketplace add rohitg00/agentmemory
/plugin install agentmemory
# 自动注册 12 hooks + 8 skills + 53 MCP tools,无需额外配置

# 方式二:CLI 方式
agentmemory connect claude-code

# 验证安装
curl http://localhost:3111/agentmemory/health
open http://localhost:3113                  # 打开实时记忆可视化界面

注意事项: 如果你直接通过 ~/.claude.json 手动配置 MCP server 而非使用 /plugin install,Claude Code 无法解析 ${CLAUDE_PLUGIN_ROOT},你需要使用绝对路径指向 hook 脚本。这些路径通常包含版本号,升级后会静默失效。推荐解法:

agentmemory connect claude-code --with-hooks

此命令将 hook 命令以绝对路径写入 ~/.claude/settings.json,升级后重新运行即可刷新路径。

3.4 接入 Codex CLI
# 启动记忆服务(在另一个终端)
npx @agentmemory/agentmemory

# 注册 marketplace 并安装插件
codex plugin marketplace add rohitg00/agentmemory
codex plugin add agentmemory@agentmemory

Codex 插件注册内容包括:MCP server(53 工具)、6 个生命周期 hooks(SessionStart / UserPromptSubmit / PreToolUse / PostToolUse / PreCompact / Stop)、8 个 skills(/recall/remember/session-history/forget/recap/handoff/commit-context/commit-history)。

重要: Codex Desktop 当前构建版本不会分发插件本地 hooks.json(openai/codex#16430),MCP 工具正常工作但生命周期 hook 不会触发。在上游修复前,需要手动将 hook 命令写入全局配置:

agentmemory connect codex --with-hooks
3.5 接入其他 Agent(通用 MCP 方式)

对于 Cursor、Claude Desktop、Cline、Roo Code、Windsurf、Gemini CLI 等支持 MCP 的 Agent,将以下配置合并到各自的 mcpServers 配置中:

{
  "mcpServers": {
    "agentmemory": {
      "command": "npx",
      "args": ["-y", "@agentmemory/mcp"],
      "env": {
        "AGENTMEMORY_URL": "${AGENTMEMORY_URL}",
        "AGENTMEMORY_SECRET": "${AGENTMEMORY_SECRET}"
      }
    }
  }
}

各 Agent 的具体配置文件位置:

Agent 配置文件
Cursor ~/.cursor/mcp.json
Claude Desktop claude_desktop_config.json(Application Support 目录)
Cline / Roo Code Cline MCP settings UI
Windsurf ~/.codeium/windsurf/mcp_config.json
Gemini CLI ~/.gemini/settings.json(或 gemini mcp add agentmemory npx -y @agentmemory/mcp --scope user
OpenCode opencode.json(注意格式不同,使用 mcp 顶层 key)
3.6 快速体验 Demo
# 终端 1:启动服务
npx @agentmemory/agentmemory

# 终端 2:运行 demo(种子 3 个真实会话并测试检索)
npx @agentmemory/agentmemory demo

# 打开可视化界面观察
open http://localhost:3113

Demo 会种入 3 个真实场景的会话(JWT 认证、N+1 查询修复、限流),并运行语义搜索进行验证。当你搜索 “database performance optimization” 时,它能找到 “N+1 query fix”——关键词匹配做不到这一点。

4. 工作原理与架构

4.1 数据流管线
PostToolUse hook 触发
  → SHA-256 去重(5分钟窗口)
  → 隐私过滤器(剥离 secrets、API keys、PEM 私钥、JWT token)
  → 存储原始观察
  → LLM 压缩 → 结构化 facts + concepts + narrative(或合成压缩)
  → 向量嵌入(6 种 provider + 本地嵌入)
  → 索引到 BM25 + 向量库

Stop / SessionEnd hook 触发
  → 汇总会话
  → 知识图谱抽取(GRAPH_EXTRACTION_ENABLED=true 时)
  → Slot 反射(AGENTMEMORY_REFLECT=true 时)

SessionStart hook 触发
  → 加载项目 profile(核心概念、文件、模式)
  → 混合检索(BM25 + Vector + Graph)
  → Token 预算(默认 2000 tokens)
  → 注入到对话上下文
4.2 四层记忆架构

AgentMemory 的四层记忆体系灵感来源于人脑的记忆巩固机制(类似睡眠巩固):

层级 内容 类比
Working(工作记忆) 来自工具使用的原始观察 短期记忆
Episodic(情景记忆) 压缩后的会话摘要 “发生了什么”
Semantic(语义记忆) 提取出的事实和模式 “我知道什么”
Procedural(程序记忆) 工作流和决策模式 “怎么做”

记忆随时间按 Ebbinghaus 曲线衰减。经常被访问的记忆会增强。陈旧的记忆自动逐出。矛盾的记忆被检测并解决。

4.3 三流融合检索

AgentMemory 使用三路检索信号的融合机制:

作用 触发条件
BM25 词干关键词匹配 + 同义词扩展 始终开启
Vector 密集嵌入的余弦相似度 配置了嵌入提供者时
Graph 通过实体匹配的知识图谱遍历 查询中检测到实体时

三路结果通过 Reciprocal Rank Fusion(RRF, k=60)融合,并进行会话多样化(每个会话最多 3 条结果)。图检索在 v0.9.19 从 BFS 升级为 Dijkstra 算法(基于加权边),显著提升了检索质量。

BM25 原生支持希腊语、西里尔文、希伯来语、阿拉伯语和重音拉丁字母。对于中文/日文/韩文,需安装可选的分词器:

npm install @node-rs/jieba tiny-segmenter
4.4 嵌入模型选择
Provider 模型 费用 说明
Local(推荐) all-MiniLM-L6-v2 免费 离线运行,比纯 BM25 召回率高 8pp
Gemini gemini-embedding-001 免费额度 100+ 语言,768/1536/3072 维度
OpenAI text-embedding-3-small $0.02/1M 最高质量
Voyage AI voyage-code-3 付费 代码优化
Cohere embed-english-v3.0 免费试用 通用
OpenRouter 任意模型 不等 多模型代理

安装本地嵌入(推荐,免费):

npm install @xenova/transformers

5. 配置详解与最佳实践

5.1 配置文件位置

所有运行时配置放在 ~/.agentmemory/.env 中,格式为 KEY=value(不需要 export 前缀)。进程环境变量仍然生效且优先级高于文件值。

# 初始化配置文件
agentmemory init
# 将 .env.example 模板复制到 ~/.agentmemory/.env
5.2 LLM Provider 配置

AgentMemory 默认不进行 LLM 调用(noop 模式),除非你显式配置一个 provider 或开启 Claude 订阅回退。

推荐的低成本方案(~$0.40-0.55/35h 活跃使用):

# ~/.agentmemory/.env

# 推荐:DeepSeek V4 Pro 或 Qwen3 Coder(通过 OpenRouter)
OPENROUTER_API_KEY=sk-or-...
# OPENROUTER_MODEL=deepseek/deepseek-v4-pro  # ~$0.46/35h
# OPENROUTER_MODEL=qwen/qwen3-coder          # ~$0.55/35h

# 或直接使用 OpenAI 兼容接口(支持 Ollama / vLLM / LM Studio)
# OPENAI_API_KEY=sk-...
# OPENAI_BASE_URL=http://localhost:11434/v1   # Ollama 示例
# OPENAI_MODEL=qwen3:8b

成本对比(基于 635 请求 / 888K tokens / 35h 活跃使用的实测数据):

级别 模型 35h 成本 建议
推荐 deepseek/deepseek-v4-pro ~$0.46 压缩/摘要质量好,成本约为 Sonnet 的 1/10
推荐 qwen/qwen3-coder ~$0.55 代码场景推理能力强
高端 anthropic/claude-sonnet-4.6 ~$5.02 质量高但对后台压缩任务来说偏贵
避免 anthropic/claude-opus-4.6 ~$25+ 推理级模型,压缩任务严重浪费

关键经验: 压缩是一种宽松质量要求的摘要任务(Agent 重读摘要,用户不直接看),DeepSeek-V4-Pro 和 Qwen3-Coder 在此任务上与 Sonnet 的差距在误差范围内,但成本低 10 倍。把高端模型的预算留给你直接阅读的查询结果。

5.3 核心功能开关
# ~/.agentmemory/.env

# === 压缩(默认关闭,推荐开启) ===
AGENTMEMORY_AUTO_COMPRESS=true
# 开启后每个 PostToolUse hook 会调用 LLM 压缩观察
# 关闭时使用零 token 的合成压缩(从工具名/输入/输出直接提取结构化信息)

# === 上下文注入(默认关闭) ===
AGENTMEMORY_INJECT_CONTEXT=false
# 开启后 SessionStart 会注入 ~1-2K chars 的项目上下文到首轮对话
# PreToolUse 会在每次文件操作时调用 /agentmemory/enrich

# === 知识图谱(默认关闭) ===
GRAPH_EXTRACTION_ENABLED=false
# 开启后 Stop/SessionEnd 时自动提取实体和关系

# === 记忆巩固(默认开启) ===
CONSOLIDATION_ENABLED=true

# === Lesson 衰减(默认开启) ===
LESSON_DECAY_ENABLED=true

# === 记忆 Slots(默认关闭) ===
AGENTMEMORY_SLOTS=false
# 开启后提供可编辑的钉选记忆槽位:persona / user_preferences /
# tool_guidelines / project_context / guidance / pending_items /
# session_patterns / self_notes

# === Slot 反射(默认关闭,需 SLOTS=true) ===
AGENTMEMORY_REFLECT=false
# 开启后 Stop hook 触发 mem::slot-reflect:扫描近期观察,
# 自动追加 TODO 到 pending_items,计数 session_patterns 中的模式

# === Obsidian 导出(默认关闭) ===
OBSIDIAN_AUTO_EXPORT=false
AGENTMEMORY_EXPORT_ROOT=~/.agentmemory

# === Claude Memory Bridge(默认关闭) ===
CLAUDE_MEMORY_BRIDGE=false
# 开启后与 MEMORY.md 双向同步
5.4 检索调优
# BM25 和向量检索的权重配比
BM25_WEIGHT=0.4
VECTOR_WEIGHT=0.6

# 上下文 token 预算(SessionStart 注入的最大 token 数)
TOKEN_BUDGET=2000
5.5 安全配置
# 设置后所有 REST 端点需要 Bearer token 认证
AGENTMEMORY_SECRET=your-secret-here

# 远程部署时启动 Claude Code
# AGENTMEMORY_URL=https://your-remote-host:3111
# AGENTMEMORY_SECRET=your-secret-here
5.6 端口配置
端口 进程 用途 环境变量覆盖
3111 agentmemory REST API + MCP HTTP + 健康检查 III_REST_PORT
3112 iii-engine 内部流处理 III_STREAMS_PORT
3113 agentmemory 实时可视化界面 AGENTMEMORY_VIEWER_PORT
49134 iii-engine WebSocket(worker 注册 + OTEL 遥测) III_ENGINE_URL

6. 实际应用场景与代码示例

6.1 场景一:跨会话代码记忆

这是 AgentMemory 最核心的使用场景。安装后无需手动操作,Agent 自动记住一切:

Session 1: "给 API 添加认证"
  Agent 编写代码、运行测试、修复 bug
  agentmemory 静默捕获每一次工具调用
  会话结束 → 观察被压缩为结构化记忆

Session 2: "现在添加限流"
  Agent 已经知道:
    - 认证使用 src/middleware/auth.ts 中的 JWT 中间件
    - test/auth.test.ts 中的测试覆盖了 token 验证
    - 你选择了 jose 而不是 jsonwebtoken(因为 Edge 兼容性)
  零重复解释。直接开始工作。
6.2 场景二:使用 Slash Commands

AgentMemory 注册了 8 个 skill 命令,与 Claude Code/Codex 的 slash command 体系无缝集成:

  • /recall — 搜索记忆
  • /remember — 保存到长期记忆
  • /session-history — 查看近期会话摘要
  • /forget — 删除观察/会话
  • /recap — 获取当前项目的回顾
  • /handoff — Agent 之间的上下文交接
  • /commit-context — 保存 commit 相关的上下文
  • /commit-history — 查看 commit 关联的历史记忆
6.3 场景三:通过 REST API 集成
# 健康检查
curl http://localhost:3111/agentmemory/health

# 智能搜索(BM25 + Vector + Graph 融合)
curl -X POST http://localhost:3111/agentmemory/smart-search \
  -H "Content-Type: application/json" \
  -d '{"query": "how do tokens refresh"}'

# 保存记忆
curl -X POST http://localhost:3111/agentmemory/remember \
  -H "Content-Type: application/json" \
  -d '{
    "content": "我们选择 jose 而不是 jsonwebtoken 是因为 Edge 兼容性",
    "concepts": ["auth", "jwt", "edge"],
    "files": ["src/middleware/auth.ts"]
  }'

# 获取项目 profile
curl http://localhost:3111/agentmemory/profile

# 导出所有记忆数据
curl http://localhost:3111/agentmemory/export

# 查看 token 节约统计
npx @agentmemory/agentmemory status
6.4 场景四:通过 iii-sdk 多语言集成

AgentMemory 的核心操作注册为 iii 函数,任何语言的 iii SDK 都可以直接通过 WebSocket 调用,无需独立的 REST 客户端。

Python 示例:

pip install iii-sdk

from iii import register_worker

iii = register_worker("ws://localhost:49134")
iii.connect()

# 智能搜索
result = iii.trigger({
    "function_id": "mem::smart-search",
    "payload": {"project": "my-project", "query": "how do tokens refresh"},
})

# 保存记忆
iii.trigger({
    "function_id": "mem::remember",
    "payload": {
        "content": "N+1 查询修复方案:使用 DataLoader 批量加载",
        "concepts": ["performance", "database", "dataloader"]
    },
})

Rust / Node 也可用:

cargo add iii-sdk           # Rust
npm install iii-sdk          # Node
6.5 场景五:多 Agent 记忆隔离

在多 Agent 共享一个 AgentMemory 服务的场景下(如架构师 / 开发者 / 评审员),AGENT_ID 标记每次写入的角色,AGENTMEMORY_AGENT_SCOPE 控制检索是否过滤。

# Agent A 的环境变量
TEAM_ID=company
USER_ID=engineering-team
AGENT_ID=architect
AGENTMEMORY_AGENT_SCOPE=isolated  # 严格隔离:架构师看不到开发者的记忆

两种模式:

模式 标记写入 过滤检索 适用场景
shared(默认) 跨 Agent 上下文共享 + 审计追踪
isolated 严格隔离,各角色记忆完全独立
6.6 场景六:导入历史 Claude Code 会话

如果你已有之前的 Claude Code JSONL 会话记录:

# 导入 ~/.claude/projects 下的所有会话
npx @agentmemory/agentmemory import-jsonl

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

导入的会话会自动出现在 Replay 选择器中,并自动生成 lessons 和 crystals。

6.7 场景七:Session-to-Commit 关联

v0.9.19 新增功能:将会话与 Git 提交关联,回答"这段代码是哪个会话写的"和"这个会话提交了哪些 commit"。

# REST API
curl -X POST http://localhost:3111/agentmemory/session/commit \
  -H "Content-Type: application/json" \
  -d '{"sha": "abc123", "sessionId": "session-1"}'

# 反向查找:从 commit 找会话
curl http://localhost:3111/agentmemory/commits/abc123

# MCP 工具
# memory_commit_lookup / memory_commits

7. 可视化与调试工具

7.1 Real-time Viewer(端口 3113)

打开 http://localhost:3113 即可看到:

  • Dashboard — 会话计数、记忆计数、健康状态
  • Sessions — 会话列表,每个会话显示首条 prompt 预览(140 字符)
  • Memories — 记忆浏览器,显示记忆强度仪表
  • Knowledge Graph — 知识图谱可视化(支持 1000+ 节点)
  • Actions — 工作项管理
  • Lessons — 学习到的经验法则
  • Crystals — 晶化的行动链
  • Replay — 会话回放,支持播放/暂停、速度控制(0.5×–4×)、键盘快捷键

Viewer 首次启动时如果没有数据,会显示引导卡片提示运行 agentmemory demo。功能标志状态会以紧凑的横幅形式显示在每个标签页顶部。

7.2 iii Console(端口 3114)
iii console --port 3114

iii Console 展示 Agent 做了什么(与 Viewer 展示 Agent 记住了什么 互补):

页面 用途
Workers 查看所有连接的 worker(包括 agentmemory 实例本身)
Functions 直接调用 agentmemory 的任何函数(如 memory.recall / memory.consolidate
Triggers 重放 HTTP / cron / event / state 触发器
States KV 浏览器——会话、记忆槽位、生命周期定时器、嵌入索引,可原地编辑
Streams 实时 WebSocket 监控:记忆写入、hook 事件、观察更新
Queues 持久队列管理,可重放或丢弃失败的嵌入/压缩任务
Traces OpenTelemetry 瀑布/火焰/服务分解视图,追踪每一次 memory.search 的完整流程
Logs 结构化 OTEL 日志,关联到 trace/span ID
7.3 诊断命令
# 综合诊断
agentmemory doctor
# 检查:.env 配置、LLM key、引擎版本、Viewer 端口、PID 文件、API key 有效性等
# 支持 --all 自动修复

# 查看状态(含 token 节约统计)
agentmemory status

# 导出/导入
agentmemory export
agentmemory import

8. 部署方案

8.1 本地开发(推荐起步方式)
npm install -g @agentmemory/agentmemory
agentmemory

零外部依赖,SQLite 本地存储,默认绑定 127.0.0.1

8.2 远程/团队部署

提供一键部署模板(deploy/ 目录下),每个模板自包含 Dockerfile:

平台 特点
fly.io 单机 + auto_stop_machines = "stop",最低闲置成本
Railway Hobby plan 固定费用,Dashboard 管理存储卷
Render Blueprint 流程,付费计划自动磁盘快照
Coolify 自托管在自己的 VPS 上,完全控制数据

所有模板只暴露端口 3111(REST API)。Viewer 保持绑定在容器内的 loopback——通过 SSH 隧道访问:

ssh -L 3113:localhost:3113 your-server
open http://localhost:3113
8.3 Docker 部署注意事项
# 首次部署后运行(修复卷权限问题)
docker compose down && docker compose up -d

iii-engine 使用 distroless 镜像(UID 65532),Docker 初始化 named volumes 时默认 root:root mode 755,会导致写入失败。compose 文件已内置 init 服务自动修复权限。日志大小限制为 30MB(防止崩溃重启循环填满磁盘)。

9. 与 iii 生态的集成扩展

AgentMemory 本身就是一个运行中的 iii 实例,所有功能都是 iii 原语。通过 iii worker add 可以立即扩展能力:

iii worker add iii-pubsub          # 多实例记忆同步:每次 remember 广播,每次 search 读取联合集
iii worker add iii-cron            # 定时任务:夜间巩固、每周快照、定时衰减
iii worker add iii-queue           # 持久重试:嵌入/压缩任务在重启后恢复
iii worker add iii-observability   # OTEL 追踪(默认已开启)
iii worker add iii-sandbox         # 在隔离 microVM 中运行从 memory_recall 获取的代码
iii worker add iii-database        # SQL 后端状态适配器(超出内存 KV 时)

每个 iii worker add 将新函数和触发器注册到 AgentMemory 已在运行的同一个引擎中。Viewer 和 Console 立即识别它们——无需重载、无需新集成、无需新容器。

10. 与配套工具的组合使用

AgentMemory 设计上不与其他工具重叠,推荐以下组合方式:

项目 负责的层面 与 AgentMemory 的配合
codegraph 代码结构(符号、调用边、路由) AgentMemory 记住"过程",codegraph 提供"结构"
Understand Anything 代码架构 + 业务领域 + 架构图 图谱教你认识代码库,AgentMemory 记住你和 Agent 在其中的操作
Graphify 代码 + 文档 + PDF + 图片 + 视频的知识图谱 最广泛的制品扫描,AgentMemory 捕获探索过程

问题路由示例:

问题类型 最佳工具
“这个仓库的架构是什么?” Understand-Anything 或 Graphify
“符号 X 在哪里定义?谁调用它?” codegraph
“三个会话前我们为什么选了 X 而不是 Y?” agentmemory(memory_smart_search
“我们 4 月 8 日发布了什么?” agentmemory(memory_timeline

11. 最佳实践总结

11.1 初始配置建议

极简起步(推荐): 先不配置 LLM provider,使用合成压缩(零 token 成本)+ 本地嵌入(免费)。这已经能显著改善跨会话体验。

# ~/.agentmemory/.env(极简配置)
# 无需 LLM key,合成压缩 + 本地嵌入即可工作

进阶配置(使用几天后): 开启 LLM 压缩以获得更高质量的记忆摘要,选择低成本模型。

# ~/.agentmemory/.env(进阶配置)
OPENROUTER_API_KEY=sk-or-...
OPENROUTER_MODEL=deepseek/deepseek-v4-pro
AGENTMEMORY_AUTO_COMPRESS=true
GRAPH_EXTRACTION_ENABLED=true
CONSOLIDATION_ENABLED=true
11.2 性能与成本优化

AgentMemory 内置 token 节约计算器,运行 agentmemory status 可以查看实际节约量。年度成本对比:

方案 Token/年 费用/年
粘贴完整历史到上下文 19.5M+ 不可能(超出上下文窗口)
LLM 摘要记忆(提取式) ~650K ~$500
agentmemory(API 嵌入) ~170K ~$10
agentmemory(本地嵌入) ~170K $0

关键 tips:

  • 默认关闭 AGENTMEMORY_AUTO_COMPRESS(合成压缩零成本)
  • 使用本地嵌入 all-MiniLM-L6-v2(免费,比纯 BM25 高 8pp 召回率)
  • 如果开启 LLM 压缩,选择 DeepSeek 或 Qwen3(成本约 Sonnet 的 1/10)
  • TOKEN_BUDGET=2000 已经是很好的默认值
11.3 安全最佳实践
  • 始终设置 AGENTMEMORY_SECRET(生产环境):所有 REST 端点将需要 Bearer token
  • Viewer 和 Console 只绑定 127.0.0.1:永远不要暴露到公网
  • 远程部署用 SSH 隧道访问 Viewer
  • 隐私过滤器默认开启:API key、secrets、PEM 私钥、JWT token 在存储前自动剥离
  • 通过 AGENTMEMORY_REQUIRE_HTTPS=1 禁止明文 HTTP 传输 bearer token
11.4 升级与维护
# 升级到最新版
npx @agentmemory/agentmemory upgrade

# 停止服务
agentmemory stop

# 完全卸载
agentmemory remove

# 端口冲突排查
lsof -i :3111,3112,3113,49134
agentmemory stop  # 优雅关闭

升级后重新运行 connect 命令以刷新 hook 脚本路径:

agentmemory connect claude-code --with-hooks
agentmemory connect codex --with-hooks
11.5 常见问题排查
症状 排查方法
memory_smart_search 返回空 检查是否安装了嵌入模型;运行 agentmemory doctor
Viewer 显示空白 先运行 agentmemory demo 种入示例数据
Hook 不触发(Codex Desktop) 运行 agentmemory connect codex --with-hooks
引擎版本不匹配 确保 iii-engine 是 v0.11.2(iii --version
端口被占用 agentmemory stoplsof -i :3111 排查
Windows 启动失败 添加 --verbose 查看引擎 stderr
大语料库启动慢 rebuildIndex 现在后台运行(v0.9.21+),不阻塞启动
CJK 搜索不准 安装 @node-rs/jieba tiny-segmenter

12. 与竞品的对比优势

12.1 核心对比
agentmemory mem0 (53K ⭐) Letta/MemGPT (22K ⭐) 内置 (CLAUDE.md)
类型 Memory engine + MCP Memory layer API 完整 Agent 运行时 静态文件
检索 R@5 95.2% 68.5% (LoCoMo) 83.2% (LoCoMo) N/A (grep)
自动捕获 12 hooks(零手动操作) 手动 add() 调用 Agent 自编辑 手动编辑
搜索 BM25 + Vector + Graph (RRF) Vector + Graph Vector (archival) 全量加载到上下文
多 Agent MCP + REST + 租约 + 信号 API(无协调) 仅 Letta 运行时内 按 Agent 独立文件
框架绑定 无(任何 MCP 客户端) 高(必须用 Letta) 按 Agent 格式
外部依赖 无(SQLite + iii-engine) Qdrant / pgvector Postgres + vector DB
记忆生命周期 4 层巩固 + 衰减 + 自动遗忘 被动提取 Agent 管理 手动修剪
Token 效率 ~1,900 tokens/会话($10/年) 因集成而异 核心记忆在上下文中 22K+ tokens(240条观察时)
实时可视化 有(端口 3113) 云端 Dashboard 云端 Dashboard
隐私过滤 自动剥离 secrets/keys/PEM/JWT
审计追踪 所有变更已记录 有限
12.2 AgentMemory 的独特优势

AgentMemory 在编码 Agent 记忆赛道的决定性优势可以归纳为五点:

第一,原生全栈集成。它是唯一一个对 Claude Code 和 Codex CLI 同时提供"原生 plugin + 钩子 + skills + MCP"全套支持的项目。mem0 需要手动 add(),Letta 要替代你的 Agent,Cognee 虽有 hooks 但生态偏 Python。AgentMemory 是唯一一个装上就"零心智负担"的方案。

第二,零外部依赖。SQLite + iii-engine,不需要 Postgres、不需要 Qdrant、不需要 Redis。npm 一行装完。对比 mem0 需要向量数据库,Letta 需要 Postgres + vector DB,Graphiti 需要 Neo4j/FalkorDB。

第三,隐私优先设计。写入前自动剥离 API key、secrets、PEM 私钥、JWT token,默认本地存储。集成层面也有防护:向非 loopback 明文 HTTP 发送 bearer token 时自动警告,可通过 AGENTMEMORY_REQUIRE_HTTPS=1 升级为硬拒绝。这在所有竞品中是唯一的。

第四,经济性。本地嵌入 + 合成压缩 = $0/年。即使开启 LLM 压缩,使用 DeepSeek 也仅 ~$10/年。对比 mem0 的提取式方案约 ~$500/年。

第五,可观测性。Real-time Viewer + iii Console + OTEL 追踪,从"记住了什么"到"做了什么"全链路可视。这在同类项目中独一无二。


三、其他项目简要对比

GBrain(garrytan/gbrain)

“Search gives you raw pages. GBrain gives you the answer.”
作者:Garry Tan(YC President & CEO)

定位为个人/团队"大脑"——知识图谱 + 合成回答引擎。核心理念是搜索给你"相关页面",GBrain 给你"带引用的合成答案 + 你不知道什么(gap analysis)"。使用 PGLite(PostgreSQL WASM)或 Postgres + pgvector,零配置。与 agentmemory 完美互补:agentmemory 捕获过程态、短期记忆;GBrain 沉淀长期态、可对外引用的知识。MIT 许可。

mem0(mem0ai/mem0)

“The Memory Layer for Personalized AI” — 53k stars,YC S24。

通用 Memory Layer API,不绑定 Agent 框架。适合给自家产品加"长期记忆"。Library + Self-hosted Server + Cloud Platform 三件套。核心劣势:没有 hook 自动捕获,需要手动 add()。Apache-2.0 许可。

Letta / MemGPT(letta-ai/letta)

MemGPT 原作团队的完整 Agent 运行时。

不是插件,是替代品。适合从零构建有记忆的 Agent 产品。核心劣势:你已经在用 Claude Code/Codex,再换运行时是倒退。Apache-2.0 许可。

Graphiti(getzep/graphiti)

Zep 商业平台的开源核心;时间维度的 Context Graph 引擎。

核心创新是每个事实带"生效窗口"——旧事实不删除而是 invalidate。适合 CRM、医患记录、合规审计等场景。需要 Neo4j/FalkorDB 等图数据库。Apache-2.0 许可。

Cognee(topoteretes/cognee)

Memory control plane,强调 ingestion 任何格式。

数据摄入 + 图谱 + 检索全家桶。适合企业级统一摄入多源数据做"公司大脑"。有 Claude Code 插件(覆盖全 hook),但比 agentmemory 重很多。混合许可。


四、横向对比矩阵

4.1 总览

项目 定位 主语言 存储 Claude Code Codex CLI 自动捕获 许可
agentmemory Memory engine + MCP TS/Node SQLite + iii ⭐ Native plugin + 12 hooks + 53 MCP tools ⭐ Native plugin + 6 hooks ✅ Hook 自动 Apache-2.0
GBrain 知识合成大脑 TS (Bun) PGLite / Postgres MCP(30+ tools) MCP ❌ 主动 capture MIT
mem0 个性化 Memory API Python/Node Qdrant/pgvector Skill 包 Skill 包 ❌ 手动 add() Apache-2.0
Letta Agent 运行时 Python Postgres + vector 替代品 替代品 Agent 自管 Apache-2.0
Graphiti 时间图谱引擎 Python Neo4j/FalkorDB/Kuzu MCP server 需自配 ❌ 主动 add_episode Apache-2.0 (core)
Cognee 记忆控制平面 Python 多种 graph + vector ⭐ Plugin + 全 hooks 需自配 ✅ Hook 自动 见仓库

4.2 检索能力(公开 benchmark 数据)

项目 LongMemEval R@5 LoCoMo 备注
agentmemory 95.2% BM25+Vector+Graph RRF,本地 MiniLM 嵌入
mem0 v3 68.5% 单 LLM call
GBrain 自有 BrainBench,P@5 49.1 / R@5 97.9
Letta 83.2 LoCoMo 数据
Graphiti 强调 sub-second 延迟

4.3 适用场景速查

┌─────────────────────────────────────────────────────────────┐
│           你想干什么?                          推荐         │
├─────────────────────────────────────────────────────────────┤
│ 让 Claude Code / Codex 记住代码会话           → agentmemory │
│ 沉淀我的笔记/想法/人脉做"大脑"                → GBrain      │
│ 给自家产品加用户画像 API                      → mem0        │
│ 从头建一个有记忆的自学习 Agent                → Letta       │
│ 处理"事实随时间变化"的场景                    → Graphiti    │
│ 企业级统一摄入+知识图谱                        → Cognee      │
└─────────────────────────────────────────────────────────────┘

五、给你的最终建议:Claude Code + Codex 技术选型

推荐方案 A:极简单机(90% 用户)

只装 agentmemory,结束

落地动作:

npm install -g @agentmemory/agentmemory
agentmemory                                       # 启动
# Claude Code:
/plugin marketplace add rohitg00/agentmemory && /plugin install agentmemory
# Codex:
codex plugin marketplace add rohitg00/agentmemory && codex plugin add agentmemory@agentmemory
agentmemory connect codex --with-hooks            # 解决 Codex Desktop hook bug

推荐方案 B:会话记忆 + 知识大脑(中重度用户)

agentmemory(管会话) + GBrain(管沉淀)双引擎

职责切分:

  • agentmemory → 会话过程记忆:你刚才在改什么文件、调试到第几步、上次报错的原因、你对某个写法的偏好
  • GBrain → 长期沉淀:技术方案文档、架构决策记录、调研笔记、人脉、会议纪要

两者都暴露成 MCP server,Claude Code 同时挂载即可。工具命名不冲突(memory_* vs gbrain_*)。

⚠️ 不建议的组合

  • agentmemory + mem0:功能重叠且 mem0 不是 hook 模型,意义不大
  • 直接上 Letta:你已经有 Claude Code/Codex,再换运行时是倒退
  • 直接上 Graphiti:除非明确需要时间维度事实管理,否则图数据库运维成本不划算

附录:信息来源

项目 URL
agentmemory https://github.com/rohitg00/agentmemory
GBrain https://github.com/garrytan/gbrain
mem0 https://github.com/mem0ai/mem0
Letta / MemGPT https://github.com/letta-ai/letta
Graphiti https://github.com/getzep/graphiti
Cognee https://github.com/topoteretes/cognee
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐