100% LOCAL · RUST KERNEL · MCP & CLI · $0 API COST

专为 AI Coding Agent 打造的
本地记忆与代码图系统

告别全文件倾倒与跨会话失忆。符号级精准切片,向量+BM25 混合召回,艾宾浩斯抗遗忘。为 Coding Agent 减少最高 98% 上下文 Token。

一句话 Agent 自动安装(推荐)
粘贴给 Cursor / Claude Code / Codex,Agent 自动安装、建图并配置 MCP
Install cam from https://github.com/HanochZhu/codeagent_memory: require a working Rust toolchain (rustup), run `cargo install --git https://github.com/HanochZhu/codeagent_memory --locked`, ensure ~/.cargo/bin (or %USERPROFILE%\.cargo\bin on Windows) is on PATH, then verify with `cam --help`. In this repo run `cam index`. For the main agent, register MCP stdio: command `cam`, args `["mcp"]` (Cursor: .cursor/mcp.json; Claude Code: .mcp.json). Subagents call `cam --json` in the shell. Do not add extra docs.
传统 Agent (grep + 整文件 read)
Token 膨胀 · 跨会话失忆
$ grep -rn "fuse_rrf" src/
# 匹配 14 个文件,缺乏调用拓扑
$ cat src/memory/recall/mod.rs 711 行整文件全量灌入
$ cat src/memory/recall/fuse.rs 1,200 行再次塞进窗口
⚠️ 单次任务消耗 63,000+ tokens,上下文迅速拥塞
❌ 新会话开启:排查成果全部丢失,从零再来
cam 赋能 Agent (代码图 + 记忆树)
减少 98% Token · 永久记忆
> cam recall "how does hybrid recall fuse BM25 and vectors"
⚡ 命中沉淀方案 (RRF 1.98),无需重复探索
> cam read src/memory/recall/fuse.rs/fuse_rrf
外科手术读取:只返回 32 行函数切片
> cam ref fuse_rrf --dir in # 秒级获取调用拓扑
✅ 沉淀原子事实,--link 关联知识图谱
1.000 R@5 coding-agent-life 会话记忆召回率
98% 节省 代码读取上下文 Token 降幅
5.2 ms LongMemCode P95 代码图查询延迟
0.909 R@5 LongMemEval-S 长期记忆召回基准
9 门语言 Tree-sitter 原生符号与调用解析
$0 开销 100% 本地模型与 SQLite,零 API 费用
1.000 R@5 coding-agent-life 会话记忆召回率
98% 节省 代码读取上下文 Token 降幅
5.2 ms LongMemCode P95 代码图查询延迟
0.909 R@5 LongMemEval-S 长期记忆召回基准
9 门语言 Tree-sitter 原生符号与调用解析
$0 开销 100% 本地模型与 SQLite,零 API 费用
Interactive Dual-Plane Playground

cam 双检索平面:代码图与记忆树

同一本地二进制下的双检索平面:代码拓扑理解与长期知识沉淀。

虚拟文件系统 (虚拟路径寻址) cam ls
📁 src/main.rs/main fn
📁 src/memory/recall/fuse.rs/fuse_rrf fn
📁 src/graph/callers.rs/trace_callers fn
💡 虚拟路径原理:src/main.rs 返回大纲;src/main.rs/main 直接返回函数源码切片。
src/main.rs/main
节省 94.6% Token
pub fn main() -> Result<()> {
    let cli = Cli::parse();
    let project_root = resolve_project_root(&cli.project)?;

    match cli.command {
        Commands::Mcp => run_mcp_server(project_root),
        Commands::Recall(args) => run_recall(&project_root, args),
        Commands::Read(args) => run_surgical_read(&project_root, args),
        Commands::Ref(args) => run_ref_graph(&project_root, args),
        Commands::Index => rebuild_code_graph(&project_root),
        Commands::Sync => incremental_sync(&project_root),
    }
}
试试预设查询:
mem_01J9X8K4
latest RRF 融合分: 1.98
Hybrid recall fuses model2vec dense vectors and identifier-aware BM25 with RRF
Vectors provide semantic similarity while BM25 preserves exact token/camelCase matches. Both lists are filtered by top-score thresholds (80% vector, 30% BM25) and fused via Reciprocal Rank Fusion (k=60).
Standardized Agent Loop

AI Coding Agent 的 4 步无损工作流

从探索到沉淀,全链路形成标准化记忆闭环。

01

先查记忆 (Recall)

探索前先问 cam。命中 latest 记忆直接复用,杜绝重复排查。

cam recall "<query>"
02

确认建图 (Index)

提示 not_indexed 时,执行一次 cam index 完成符号与调用边建图。

cam index
03

精准切片 (Read & Ref)

未命中时用 find 搜符号,read 读切片,ref 追溯调用链路。

cam read file/symbol
04

原子写回 (Add & Link)

解完后一条记忆存一条原子事实,用 --link 关联知识网络。

cam add --summary "..."

主 Agent 与 Subagent 双门并立架构

主 Agent 调 MCP,Subagent 调 CLI。共享本地 .cam/cam.db,彻底打破多智能体协作壁垒。

cam 原理架构图
Core Capabilities

专为 AI Agent 量身打造的六大能力

代码拓扑与长效记忆,融于 10MB 单一本地 Rust 二进制。

100% 本地与隐私安全

零外部 API Key,零代码外泄。本地嵌入模型推理,图与记忆全存在项目内 .cam/cam.db。

$0 Cloud API Cost · 100% On-Device

虚拟路径外科手术读取

告别整文件倾倒。file/symbol 精准取函数切片,cam ref 秒查一跳调用。评测实测减少 98% Token。

cam read src/main.rs/main ➔ 仅返回 24 行切片而非 2,800 行整文件

原子事实与知识图谱连接

单条记忆只存一个原子事实。--link 织成知识网,--parent 结构分层,--supersedes 线性版本替代。

cam add --summary "..." --link ID_1 --link ID_2

艾宾浩斯抗遗忘衰减曲线

保留率 \(R = e^{-t / S}\) 温和调权(\(\le 10\%\))。每次命中稳定性 \(\times 1.7\)。永不硬删,遗忘区标记 needs_update。

Score = Relevance × (0.9 + 0.1 × R)

MCP + CLI 双门并立架构

主 Agent 调 MCP 工具,Subagent 在终端调 cam --json。彻底解决子智能体无法继承 MCP 的通病。

Main Agent: cam mcp (JSON-RPC) | Subagent: cam --json

增量哈希同步与实时监听

cam sync 基于内容哈希增量更新;cam watch 后台监听源码变动,保存文件即自动增量同步。

cam watch --debounce-ms 300
Rigorous Benchmarks

严苛对标评测:数据说明一切

在相同权威公开语料上对照测试,数据验证真实收益。

会话记忆召回率 (coding-agent-life-v1)

15 段会话,15 个查询,k=5,理论天花板为 0.240 P@5
cam (RRF 混合召回) 1.000 R@5 (满分命中)
agentmemory (hybrid) 1.000 R@5
传统 tokenized grep 0.967 R@5

多轮 Token 节省幅度 (DeepSeek 评测)

全量上下文塞入 vs 每轮注入 cam 精准切片与召回
代码读取 (Code Track) 节省 98% Token (63k ➔ 1k)
会话记忆 (Memory Track) 节省 57% Token
Agent 每日对话轮数: 50 轮

拖动滑块估算使用 cam 替代传统全文件倾倒所节省的 Token 与 API 账单。

2.7M
每日节省 Token 数
$241
每月节省 API 账单估算
P95 ~5.2ms
代码图毫秒级检索延迟
$0
cam 软件授权与使用费用
Universal IDE Support

全宿主即插即用:一键获取接入配置

原生支持主流 AI 编辑器与终端智能体。

主 Agent MCP 配置 (.cursor/mcp.json)
{
  "mcpServers": {
    "cam": {
      "command": "cam",
      "args": ["mcp"]
    }
  }
}
Subagent CLI 终端委派说明
Subagent (Task / explore) 无法继承 MCP,在终端中直接执行:

cam --json --project /path/to/repo <command>
在 Cursor Agent 中粘贴一句话安装 Prompt,即可全自动配置。
Language Coverage

原生支持 9 种主流编程语言

🦀 Rust (.rs) 🐍 Python (.py) 🔷 TypeScript (.ts, .tsx) 🟨 JavaScript (.js, .jsx) 🐹 Go (.go) ☕ Java (.java) ⚡ C (.c) ⚙️ C++ (.cc, .cpp, .hpp) 🟣 C# (.cs)
Frequently Asked Questions

常见问题解答

cam 与通用记忆框架(Mem0、Letta)有何不同?
通用对话框架面向日常聊天日志;cam 专为代码场景定制。内置 tree-sitter 代码图(支持符号切片与 1-hop 调用边),记忆与代码图共用本地 SQLite,专为编程原子事实与线性修订链设计,无需云端依赖或 Python 常驻服务。
为什么一定要区分主 Agent(MCP)与 Subagent(CLI)?
在 Cursor、Claude Code 等宿主中,主 Agent 委派子任务(Task/explore 或 Bash)时通常不向子进程传递 MCP。cam 提供双接口:主 Agent 调 MCP,Subagent 跑 cam --json,两者共享本地 .cam/cam.db,全链路无缝衔接。
纯离线断网环境下可以使用吗?
完全可以。无网络或无预训练模型时,cam 会自动平滑回退到词面 hash embedder,结合标识符感知 BM25 提供高精度的混合检索,零网络依赖。
什么是“虚拟路径”(Virtual Path)?
cam 独创的代码寻址机制。例如 src/main.rs 仅返回大纲;src/main.rs/main 精确返回该函数的源码切片。让 Agent 像查目录一样按需读代码,杜绝上下文浪费。

立即为你的 AI Agent 接入本地代码记忆

100% 本地开源,零 API 费用。体验外科手术式代码阅读与永久长效记忆。

前往 GitHub 仓库 (Star & Fork)