告别全文件倾倒与跨会话失忆。符号级精准切片,向量+BM25 混合召回,艾宾浩斯抗遗忘。为 Coding Agent 减少最高 98% 上下文 Token。
同一本地二进制下的双检索平面:代码拓扑理解与长期知识沉淀。
src/main.rs 返回大纲;src/main.rs/main 直接返回函数源码切片。
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),
}
}
从探索到沉淀,全链路形成标准化记忆闭环。
探索前先问 cam。命中 latest 记忆直接复用,杜绝重复排查。
提示 not_indexed 时,执行一次 cam index 完成符号与调用边建图。
未命中时用 find 搜符号,read 读切片,ref 追溯调用链路。
解完后一条记忆存一条原子事实,用 --link 关联知识网络。
主 Agent 调 MCP,Subagent 调 CLI。共享本地 .cam/cam.db,彻底打破多智能体协作壁垒。
代码拓扑与长效记忆,融于 10MB 单一本地 Rust 二进制。
零外部 API Key,零代码外泄。本地嵌入模型推理,图与记忆全存在项目内 .cam/cam.db。
告别整文件倾倒。file/symbol 精准取函数切片,cam ref 秒查一跳调用。评测实测减少 98% Token。
单条记忆只存一个原子事实。--link 织成知识网,--parent 结构分层,--supersedes 线性版本替代。
保留率 \(R = e^{-t / S}\) 温和调权(\(\le 10\%\))。每次命中稳定性 \(\times 1.7\)。永不硬删,遗忘区标记 needs_update。
主 Agent 调 MCP 工具,Subagent 在终端调 cam --json。彻底解决子智能体无法继承 MCP 的通病。
cam sync 基于内容哈希增量更新;cam watch 后台监听源码变动,保存文件即自动增量同步。
在相同权威公开语料上对照测试,数据验证真实收益。
原生支持主流 AI 编辑器与终端智能体。
{
"mcpServers": {
"cam": {
"command": "cam",
"args": ["mcp"]
}
}
}
Subagent (Task / explore) 无法继承 MCP,在终端中直接执行:
cam --json --project /path/to/repo <command>
cam --json,两者共享本地 .cam/cam.db,全链路无缝衔接。
src/main.rs 仅返回大纲;src/main.rs/main 精确返回该函数的源码切片。让 Agent 像查目录一样按需读代码,杜绝上下文浪费。