AgentMemory:AI编码代理持久记忆

AgentMemory(22,038 GitHub 星标)基于true实基准测试为 AI 编程代理提供持久记忆。记住过去的会话,跨天保持上下文,从前次交互中学习。支持 Claude Code、Codex CLI、OpenCode 等。包含安装教程、架构解析和基准测试。

  • 更新于 2026-06-08
┌──────────────────────────────────────────────────────┐
│              AgentMemory 架构                          │
│                                                      │
│  ┌────────────┐  ┌────────────┐  ┌──────────────┐   │
│  │ 会话 1     │  │ 会话 2     │  │   会话 N     │   │
│  │ (Claude)   │  │ (Codex)    │  │  (OpenCode)   │   │
│  └─────┬──────┘  └─────┬──────┘  └──────┬───────┘   │
│        │               │                 │          │
│        ▼               ▼                 ▼          │
│  ┌───────────────────────────────────────────────┐   │
│  │         记忆存储层                              │   │
│  │  • 向量数据库 (嵌入向量)                        │   │
│  │  • 图数据库 (关系)                              │   │
│  │  • 键值存储 (事实、决策)                        │   │
│  └───────────────────────┬───────────────────────┘   │
│                          │ 查询与检索                   │
│  ┌───────────────────────▼───────────────────────┐   │
│  │       代理从记忆中获取上下文                      │   │
│  │  "上次你修复了认证 bug..."                       │   │
│  └───────────────────────────────────────────────┘   │
└──────────────────────────────────────────────────────┘

AgentMemory:会话 → 记忆存储 → 上下文感知的代理

引言 #

AI 编程代理在每次会话之间会遗忘一切。你周二修了一个 bug,周三回来时,代理又让你从头开始解释整个代码库。AgentMemory(22,038 GitHub 星标)通过为 AI 编程代理提供持久记忆来解决这个问题:它记住过去的会话、关键决策、bug 修复和架构模式,持续数天、数周甚至数月。基于true实开发工作流进行基准测试,它将代理准确率提高了 34%,将入职时间缩短了 60%。支持 Claude Code、Codex CLI、OpenCode 以及任何支持工具调用的代理。

什么是 AgentMemory? #

AgentMemory 是一个 AI 编程代理的持久记忆系统,使代理能够跨会话记忆和检索信息。它使用向量嵌入、知识图谱和结构化事实存储的组合,创建一个可搜索的记忆库,代理可以在每次会话开始时查询它。

核心功能:

  • 跨会话记忆 — 记住过去会话、几天或几周前发生的事情
  • 多代理支持 — 在 Claude Code、Codex、OpenCode 之间共享记忆
  • 结构化事实 — 将决策、bug 修复、架构模式作为结构化数据存储
  • 语义搜索 — 使用基于嵌入的检索查找相关的过去上下文
  • 自动提取 — 无需手动配置即可提取和存储重要事实
  • true实基准测试 — 在 500+ 个true实开发会话上进行测试

使用 Python 构建,使用 ChromaDB 进行向量存储,networkx 进行图操作,SQLite 进行结构化数据存储。

AgentMemory 如何工作 #

阶段 1:记忆提取 #

a
s
h
# 初始化记忆存储
agentmemory init --project ./my-project

# 运行代理会话 — 记忆会自动捕获
# (作为 Claude Code / Codex CLI 中的钩子集成)
claude-code
# 幕后:每个工具调用、决策和代码变更
# 都会被提取并存储到记忆中

# 记忆存储位置:./my-project/.agentmemory/
# - facts.db (结构化事实)
# - embeddings/ (向量存储)
# - graph.db (知识图)

阶段 2:记忆存储 #

h
o
n
# 记忆提取流水线
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:记忆检索 #

h
o
n
# 为新会话检索相关记忆
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 进行密码哈希"},
#   ...
# ]

安装与设置 #

快速入门 #

a
s
h
pip install agentmemory

# 为项目初始化
agentmemory init --project ./my-app

# 启用记忆后运行
agentmemory run \
  --agent claude-code \
  --project ./my-app \
  --session-dir ./sessions

Docker 部署 #

a
s
h
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

记忆存储选项 #

h
o
n
# 选择你的存储后端
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 #

a
s
h
# AgentMemory Claude Code 插件
agentmemory install claude-code

# 现在每次 Claude Code 会话自动:
# 1. 开始时检索相关记忆
# 2. 会话期间存储新事实
# 3. 会话结束时更新记忆

Codex CLI #

a
s
h
# 设置记忆项目
export AGENTMEMORY_PROJECT=./my-project
# Codex CLI 在每个会话前读取记忆
# 并在完成后存储结果

OpenCode #

a
s
h
# OpenCode 插件
agentmemory install opencode

# 记忆上下文作为工具调用注入:
# agentmemory.query("auth-related changes")
# 将相关的过去上下文作为结构化数据返回

为了可靠的托管,在 DigitalOcean Droplet 上部署以实现团队共享记忆,或在 HTStack 部署以获得亚太地区的低延迟。

基准测试 / true实用例 #

记忆对代理性能的影响 #

在 500 个true实开发会话(bug 修复、功能实现、重构)上测试:

| 指标 | 无记忆 | 使用 AgentMemory | 提升 | |——

|——–

|—————–

|——

| | 上下文召回准确率 | 58% | 89% | +53% | | 完成 bug 修复时间 | 42 分钟 | 28 分钟 | -33% | | 重复过去错误 | 23% | 7% | -70% | | 新开发者入职时间 | 5 天 | 2 天 | -60% |

随时间推移的记忆保留 #

记忆在不同时间跨度的持久效果:

| 距上次会话时间 | 准确率 | |—————

|——–

| | 同一天 | 96% | | 1 周 | 91% | | 1 个月 | 84% | | 3 个月 | 72% | | 6 个月 | 61% |

true实用例:团队开发 #

一个 5 人开发团队使用 AgentMemory:

a
s
h
# 开发者 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

高级用法 / 生产加固 #

自定义记忆模式 #

h
o
n
# 为项目定义自定义记忆模式
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"
)

团队记忆同步 #

a
s
h
# 通过远程存储跨团队成员同步记忆
agentmemory sync \
  --remote git@github.com: myorg/agentmemory-data.git \
  --branch memory \
  --interval 3600

# 每个开发者在会话前拉取最新记忆
agentmemory pull --project ./my-app

记忆分析 #

a
s
h
# 查看记忆统计信息
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 | 自定义 | | 结构化事实 | 是 | 否 | 否 | 是 | | 图关系 | 是 | 否 | 否 | 是 | | true实基准测试 | 是 | 否 | 否 | 否 | | Open Source | 是(MIT) | 否 | 否 | 是 | | 自托管 | 是 | 是 | 否 | 是 | | GitHub 星标 | 22,038 | — | — | — |

与替代方案对比:AgentMemory vs. 传统代理 #

| 方面 | AgentMemory | 无记忆代理 | 手动上下文传递 | |——

|————

|———–

|—————

| | 上下文保留 | 跨会话持久 | 会话结束即遗忘 | 需要手动复制粘贴 | | 信息检索速度 | 毫秒级语义搜索 | N/A | 分钟级手动查找 | | 结构化程度 | 高(事实+图+向量) | 无 | 低(纯文本) | | 可扩展性 | 支持多代理共享 | 单会话 | 单用户 | | 自动化程度 | 完全自动提取 | 完全手动 | 部分自动 | | 隐私控制 | 本地存储,可审计 | N/A | 取决于工具 |

限制 / 诚实评估 #

AgentMemory 不适合所有人:

  1. 小型个人项目 — 如果你是唯一的开发者且在一次会话中工作,记忆提供的价值有限。代理处理小型代码库的速度足够快,不需要记忆。
  2. 对隐私敏感的代码 — 记忆在本地存储代码模式和决策。对于企业代码库,你需要审计提取和存储的事实。项目包含隐私控制,但请仔细审查模式。
  3. 冷启动期 — 记忆需要时间构建。新项目从空记忆开始,需要 10-20 个会话后系统才变得有用。为此预留准备期。
  4. 记忆漂移 — 随着时间的推移,过时的事实可能会混淆代理。实施定期记忆清理(建议每月使用 agentmemory prune --older-than 90d)。
  5. 向量数据库复杂性 — 对于拥有多个代理的生产部署,管理 ChromaDB/Qdrant/Neo4j 会增加运维开销。简单设置从 SQLite 开始。

常见问题 #

问:AgentMemory 是否安全隐私?

答:是的。所有记忆默认存储在本地。除非你配置了远程同步,否则数据不会离开你的机器。你控制提取和存储哪些事实。该项目是Open Source的(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 修复和模式,你的代理在每次交互中变得更聪明、更准确。基准测试是true实的:准确率提升 53%,入职速度提升 60%,重复错误减少 70%。

无论你是每周回到项目的个人开发者、共享代码上下文的团队,还是构建生产级 AI 工作流的开发者,AgentMemory 都为true正具备记忆能力的代理提供了基础。

加入 dibi8 中文 Telegram 群组 讨论 AgentMemory 配置。查看我们的 headroom token 压缩 和 codegraph 知识图谱 指南以获取互补的 AI 工具。今天就开始使用 AgentMemory — 安装它,让它从几个会话中学习,看着你的代理随着时间推移变得越来越聪明。

推荐工具:

以上部分链接为 affiliate 链接。如果你通过链接注册,dibi8.com 可能会获得佣金,对你没有任何额外费用。这有助于保持网站运行和内容免费。

💬 留言讨论