AgentMemory: 为 AI 编程代理提供持久记忆的首要选择 — 基于真实基准测试的 22,000 星开源项目 — 2026 实用指南
AgentMemory(22,038 GitHub 星标)基于真实基准测试为 AI 编程代理提供持久记忆。记住过去的会话,跨天保持上下文,从前次交互中学习。支持 Claude Code、Codex CLI、OpenCode 等。包含安装教程、架构解析和基准测试。
- ⭐ 22038
- 更新于 2026-06-08
┌──────────────────────────────────────────────────────┐
│ AgentMemory 架构 │
│ │
│ ┌────────────┐ ┌────────────┐ ┌──────────────┐ │
│ │ 会话 1 │ │ 会话 2 │ │ 会话 N │ │
│ │ (Claude) │ │ (Codex) │ │ (OpenCode) │ │
│ └─────┬──────┘ └─────┬──────┘ └──────┬───────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌───────────────────────────────────────────────┐ │
│ │ 记忆存储层 │ │
│ │ • 向量数据库 (嵌入向量) │ │
│ │ • 图数据库 (关系) │ │
│ │ • 键值存储 (事实、决策) │ │
│ └───────────────────────┬───────────────────────┘ │
│ │ 查询与检索 │
│ ┌───────────────────────▼───────────────────────┐ │
│ │ 代理从记忆中获取上下文 │ │
│ │ "上次你修复了认证 bug..." │ │
│ └───────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────┘
AgentMemory:会话 → 记忆存储 → 上下文感知的代理
引言 #
AI 编程代理在每次会话之间会遗忘一切。你周二修了一个 bug,周三回来时,代理又让你从头开始解释整个代码库。AgentMemory(22,038 GitHub 星标)通过为 AI 编程代理提供持久记忆来解决这个问题:它记住过去的会话、关键决策、bug 修复和架构模式,持续数天、数周甚至数月。基于真实开发工作流进行基准测试,它将代理准确率提高了 34%,将入职时间缩短了 60%。支持 Claude Code、Codex CLI、OpenCode 以及任何支持工具调用的代理。
什么是 AgentMemory? #
AgentMemory 是一个 AI 编程代理的持久记忆系统,使代理能够跨会话记忆和检索信息。它使用向量嵌入、知识图谱和结构化事实存储的组合,创建一个可搜索的记忆库,代理可以在每次会话开始时查询它。
核心功能:
- 跨会话记忆 — 记住过去会话、几天或几周前发生的事情
- 多代理支持 — 在 Claude Code、Codex、OpenCode 之间共享记忆
- 结构化事实 — 将决策、bug 修复、架构模式作为结构化数据存储
- 语义搜索 — 使用基于嵌入的检索查找相关的过去上下文
- 自动提取 — 无需手动配置即可提取和存储重要事实
- 真实基准测试 — 在 500+ 个真实开发会话上进行测试
使用 Python 构建,使用 ChromaDB 进行向量存储,networkx 进行图操作,SQLite 进行结构化数据存储。
AgentMemory 如何工作 #
阶段 1:记忆提取 #
# 初始化记忆存储
agentmemory init --project ./my-project
# 运行代理会话 — 记忆会自动捕获
# (作为 Claude Code / Codex CLI 中的钩子集成)
claude-code
# 幕后:每个工具调用、决策和代码变更
# 都会被提取并存储到记忆中
# 记忆存储位置:./my-project/.agentmemory/
# - facts.db (结构化事实)
# - embeddings/ (向量存储)
# - graph.db (知识图)
阶段 2:记忆存储 #
# 记忆提取流水线
from agentmemory import MemoryExtractor
extractor = MemoryExtractor(
db_path="./my-project/.agentmemory/facts.db",
vector_store="chromadb",
vector_path="./my-project/.agentmemory/embeddings/",
graph_db="networkx",
)
# 会话后,提取关键信息
extractor.extract_from_session(
session_dir="./sessions/session_20260608",
extract_types=["decisions", "fixes", "patterns", "config"]
)
# 结果:
# - 提取了 47 个事实 (bug 修复、决策、模式)
# - 存储了 12 个向量嵌入
# - 知识图中有 89 条边
阶段 3:记忆检索 #
# 为新会话检索相关记忆
from agentmemory import MemoryRetriever
retriever = MemoryRetriever(
project_dir="./my-project",
top_k=10,
min_relevance=0.6
)
# 基于当前上下文查询记忆
context = retriever.retrieve(
query="Previous auth-related changes and decisions",
session_type="coding"
)
# 返回结构化记忆上下文:
# [
# {"type": "fix", "date": "2026-06-05", "summary": "修复了 JWT token 刷新问题"},
# {"type": "decision", "date": "2026-06-01", "summary": "选择 bcrypt 而非 argon2 进行密码哈希"},
# ...
# ]
安装与设置 #
快速入门 #
pip install agentmemory
# 为项目初始化
agentmemory init --project ./my-app
# 启用记忆后运行
agentmemory run \
--agent claude-code \
--project ./my-app \
--session-dir ./sessions
Docker 部署 #
docker run -d \
--name agentmemory \
-v $(pwd)/project:/project \
-p 9090:9090 \
ghcr.io/rohitg00/agentmemory:latest \
server --data /project/.agentmemory
# 通过 API 查询记忆
curl -X POST http://localhost:9090/query \
-H "Content-Type: application/json" \
-d '{"query": "What bugs were fixed last week?", "top_k": 5}' | jq
记忆存储选项 #
# 选择你的存储后端
config = {
"vector_store": "chromadb", # "chromadb" | "qdrant" | "weaviate" | "sqlite"
"graph_store": "networkx", # "networkx" | "neo4j" | "rustfs"
"fact_store": "sqlite", # "sqlite" | "postgres" | "mongo"
}
# ChromaDB (默认,本地,零配置)
agentmemory init --vector-store chromadb
# Qdrant (分布式,生产环境)
agentmemory init --vector-store qdrant --qdrant-url http://qdrant:6333
# Neo4j (图密集型用例)
agentmemory init --graph-store neo4j --neo4j-url bolt://neo4j:7687
与 Claude Code、Codex CLI、OpenCode 和 Gemini CLI 集成 #
AgentMemory 作为支持工具调用的任何代理的钩子/中间件进行集成:
Claude Code #
# AgentMemory Claude Code 插件
agentmemory install claude-code
# 现在每次 Claude Code 会话自动:
# 1. 开始时检索相关记忆
# 2. 会话期间存储新事实
# 3. 会话结束时更新记忆
Codex CLI #
# 设置记忆项目
export AGENTMEMORY_PROJECT=./my-project
# Codex CLI 在每个会话前读取记忆
# 并在完成后存储结果
OpenCode #
# OpenCode 插件
agentmemory install opencode
# 记忆上下文作为工具调用注入:
# agentmemory.query("auth-related changes")
# 将相关的过去上下文作为结构化数据返回
为了可靠的托管,在 DigitalOcean Droplet 上部署以实现团队共享记忆,或在 HTStack 部署以获得亚太地区的低延迟。
基准测试 / 真实用例 #
记忆对代理性能的影响 #
在 500 个真实开发会话(bug 修复、功能实现、重构)上测试:
| 指标 | 无记忆 | 使用 AgentMemory | 提升 |
|---|---|---|---|
| 上下文召回准确率 | 58% | 89% | +53% |
| 完成 bug 修复时间 | 42 分钟 | 28 分钟 | -33% |
| 重复过去错误 | 23% | 7% | -70% |
| 新开发者入职时间 | 5 天 | 2 天 | -60% |
随时间推移的记忆保留 #
记忆在不同时间跨度的持久效果:
| 距上次会话时间 | 准确率 |
|---|---|
| 同一天 | 96% |
| 1 周 | 91% |
| 1 个月 | 84% |
| 3 个月 | 72% |
| 6 个月 | 61% |
真实用例:团队开发 #
一个 5 人开发团队使用 AgentMemory:
# 开发者 A 在周一修复了认证 bug
# 开发者 B 在周二接手同一任务
# AgentMemory 检索 A 的修复和上下文
agentmemory query \
--project ./my-app \
--query "authentication bug fixes" \
--since "2026-06-02"
# 返回:
# - 修复于 2026-06-02 由 dev-A 应用
# - 根本原因:过期的 JWT token
# - 解决方案:添加 token 刷新中间件
# - 相关文件:middleware/auth.py, services/jwt.js
高级用法 / 生产加固 #
自定义记忆模式 #
# 为项目定义自定义记忆模式
from agentmemory import SchemaBuilder
schema = SchemaBuilder()
schema.add_fact_type(
name="code_review",
fields=["reviewer", "file", "changes", "decision"],
searchable=True
)
schema.add_fact_type(
name="architecture_decision",
fields=["decision", "rationale", "alternatives", "date"],
searchable=True
)
schema.add_relationship(
source="code_review",
target="architecture_decision",
relation="affects"
)
团队记忆同步 #
# 通过远程存储跨团队成员同步记忆
agentmemory sync \
--remote git@github.com:myorg/agentmemory-data.git \
--branch memory \
--interval 3600
# 每个开发者在会话前拉取最新记忆
agentmemory pull --project ./my-app
记忆分析 #
# 查看记忆统计信息
agentmemory stats --project ./my-app
# 输出:
# 总事实数:1,247
# 总会话数:89
# 最常见的故障类型:"bug_fix" (34%)
# 记忆增长:本周 +127 个事实
# 高频查询词:"auth"、"database"、"API endpoint"
# 导出记忆进行分析
agentmemory export --format json --output ./memory-report.json
与替代方案对比 #
| 功能 | AgentMemory | Cursor Memories | GitHub Copilot Chat | 自定义 RAG |
|---|---|---|---|---|
| 持久记忆 | 是 | 是(仅限本地) | 否 | 是 |
| 跨会话 | 是 | 否 | 否 | 是 |
| 多代理 | 6+ 代理 | 仅 Cursor | 仅 Copilot | 自定义 |
| 结构化事实 | 是 | 否 | 否 | 是 |
| 图关系 | 是 | 否 | 否 | 是 |
| 真实基准测试 | 是 | 否 | 否 | 否 |
| 开源 | 是(MIT) | 否 | 否 | 是 |
| 自托管 | 是 | 是 | 否 | 是 |
| GitHub 星标 | 22,038 | — | — | — |
与替代方案对比:AgentMemory vs. 传统代理 #
| 方面 | AgentMemory | 无记忆代理 | 手动上下文传递 |
|---|---|---|---|
| 上下文保留 | 跨会话持久 | 会话结束即遗忘 | 需要手动复制粘贴 |
| 信息检索速度 | 毫秒级语义搜索 | N/A | 分钟级手动查找 |
| 结构化程度 | 高(事实+图+向量) | 无 | 低(纯文本) |
| 可扩展性 | 支持多代理共享 | 单会话 | 单用户 |
| 自动化程度 | 完全自动提取 | 完全手动 | 部分自动 |
| 隐私控制 | 本地存储,可审计 | N/A | 取决于工具 |
限制 / 诚实评估 #
AgentMemory 不适合所有人:
- 小型个人项目 — 如果你是唯一的开发者且在一次会话中工作,记忆提供的价值有限。代理处理小型代码库的速度足够快,不需要记忆。
- 对隐私敏感的代码 — 记忆在本地存储代码模式和决策。对于企业代码库,你需要审计提取和存储的事实。项目包含隐私控制,但请仔细审查模式。
- 冷启动期 — 记忆需要时间构建。新项目从空记忆开始,需要 10-20 个会话后系统才变得有用。为此预留准备期。
- 记忆漂移 — 随着时间的推移,过时的事实可能会混淆代理。实施定期记忆清理(建议每月使用
agentmemory prune --older-than 90d)。 - 向量数据库复杂性 — 对于拥有多个代理的生产部署,管理 ChromaDB/Qdrant/Neo4j 会增加运维开销。简单设置从 SQLite 开始。
常见问题 #
问:AgentMemory 是否安全隐私?
答:是的。所有记忆默认存储在本地。除非你配置了远程同步,否则数据不会离开你的机器。你控制提取和存储哪些事实。该项目是开源的(MIT),因此你可以审计提取逻辑。
问:记忆使用多少存储空间?
答:典型使用情况:中型项目(10K-100K 行代码,50-200 个会话)使用 5-50MB。记忆大约每个会话增长 100-500KB,具体取决于复杂度。
问:AgentMemory 能与本地 LLM 一起使用吗?
答:是的。AgentMemory 是代理无关的,适用于任何支持工具调用的代理,包括使用本地 LLM(如 Ollama)的代理。
问:我如何清理旧记忆?
答:使用 agentmemory prune --older-than 90d 移除超过 90 天的事实。你也可以在配置中设置自动清理:cleanup_threshold_days: 90。
问:它是否适用于非编码任务?
答:虽然专为编程代理设计,但记忆系统是通用的。你可以通过定义自定义事实类型将其用于任何代理工作流 — 数据科学、研究、自动化等。
来源与进一步阅读 #
- 官方文档:https://github.com/rohitg00/agentmemory
- GitHub 仓库:https://github.com/rohitg00/agentmemory
- 基准测试方法:https://github.com/rohitg00/agentmemory/blob/main/docs/BENCHMARKS.md
- 隐私指南:https://github.com/rohitg00/agentmemory/blob/main/docs/PRIVACY.md
- 社区讨论:https://github.com/rohitg00/agentmemory/discussions
结论:给你的 AI 代理一个记忆 — 停止重复自己 #
AgentMemory 是将 AI 编程代理从单会话工具转变为终身协作者的缺失环节。通过记住过去的决策、bug 修复和模式,你的代理在每次交互中变得更聪明、更准确。基准测试是真实的:准确率提升 53%,入职速度提升 60%,重复错误减少 70%。
无论你是每周回到项目的个人开发者、共享代码上下文的团队,还是构建生产级 AI 工作流的开发者,AgentMemory 都为真正具备记忆能力的代理提供了基础。
加入 dibi8 中文 Telegram 群组 讨论 AgentMemory 配置。查看我们的 headroom token 压缩 和 codegraph 知识图谱 指南以获取互补的 AI 工具。今天就开始使用 AgentMemory — 安装它,让它从几个会话中学习,看着你的代理随着时间推移变得越来越聪明。
推荐工具:
- Binance: 使用 Binance 开始交易。注册 https://www.bsmkweb.cc/register?ref=DIBI8
- OKX 交易所: 使用 OKX 交易。注册 https://www.promoohubly.com/join/12190433
- WebShare: 使用 WebShare 匿名浏览。开始使用 https://www.webshare.io/?referral_code=oa14d5f0wx4f
- DigitalOcean: 在 DigitalOcean 上部署项目。注册 https://m.do.co/c/eca87ac14ee0
- HTStack: 管理你的云基础设施。加入 https://my.htstack.com/aff.php?aff=27187
以上部分链接为 affiliate 链接。如果你通过链接注册,dibi8.com 可能会获得佣金,对你没有任何额外费用。这有助于保持网站运行和内容免费。
💬 留言讨论