2026年6月22日 2 分钟阅读

AI Agent 的会话历史去哪了?用 Callimachus 一次性搜索 11 个编码工具的每一段对话

tinyash 0 条评论

你用多少个 AI 编码工具?Claude Code、Codex、Cursor、Gemini CLI、OpenCode……你可能在不同项目里用不同工具,甚至同一个项目里也会换着用。

然后问题来了。上周用 Claude Code 重构的那个模块,当时的决策是什么来着?三天前 Codex 跑的那个数据库迁移脚本放在哪了?上个月 Gemini CLI 给项目生成过什么测试配置,现在怎么找?

你开始在终端里翻命令行历史,在 .chat 目录里 grep,在 VS Code 的搜索框里输入各种关键字……半小时过去了,什么也没找到。你知道自己曾经在某个 Agent 对话里讨论过这个问题,但就是找不到具体是哪一次对话、在哪一个工具里。这个「信息已检索,但记忆已丢失」的痛点,每个重度 AI 编码用户都懂。

为什么它是个真问题

当编码工作流从「手动写代码 → git commit」变成「AI Agent 生成代码 → 审查 → git commit」后,决策过程的载体变了。以前决策在 PR 评论或 Slack 消息里,现在决策藏在 Agent 对话的角落。后果是:

  • 重复决策:上周决定了「用 sqlite-vec 做 KNN 搜索」,这周又从头讨论了一遍
  • 上下文碎片化:在三个不同的 CLI 工具里各有一段对话,每段只覆盖了一个侧面
  • 知识无法复用:新同事没人告诉他之前踩过什么坑,于是重蹈覆辙

传统做法是维护一个「Agent 对话日志」,每次对话结束手动把决策和陷阱抄到 Markdown 里。坚持两周就放弃了——太耗时,总会漏。

手动方案的局限

方案问题
终端 history \grep只看到命令,看不到对话内容
在 chat 目录里搜索每个工具的存储格式不同,搜索词不统一
自己做笔记难以坚持,遗漏率高,无法回溯
翻 git log只有最终代码,没有决策过程

这些方案的共同问题:数据源分散,搜索入口不统一。你的知识散落在 3-5 个不同的 AI 编码工具中,每个工具的日志格式、存储位置、搜索方式都不一样。

Callimachus:给 AI 编码 Agent 做的「个人搜索引擎」

Callimachus 是一个本地优先的 AI Agent 会话索引和搜索工具。它会把你在 11 个主流的 AI 编码工具中的每一次对话都索引到一个统一的本地 SQLite 数据库中,然后提供全文搜索、语义搜索、MCP 集成、知识蒸馏等一系列能力。它的名字来源于整理亚历山大图书馆目录的希腊学者 Callimachus。

安装

macOS、Windows 和 Linux 都有预编译安装包:


下载后启动桌面应用,它就会自动开始索引你已有的 Agent 会话。选择”全量索引”后,首次索引约 90,000 条消息在 25 秒内完成——之后只有新增的会话需要处理。

搜索:从「我知道有讨论过」到「就在第三个结果里」

Callimachus 的核心能力是搜索。安装了桌面应用后,你可以在搜索框里输入任何内容,它会用混合检索(BM25 全文搜索 + 本地语义向量搜索)返回结果:

cal search "postgres migration strategy"
cal search "vector index embedding dims" -y    # -y 启用混合搜索
cal search -s claude-code "rate limiting"        # 只搜 Claude Code 的会话

代码相关的搜索更直观——直接搜文件名:

cal files src/embed/mod.rs    # 找到所有触及这个文件的线程

在搜索框里输入 file:embed/mod.rs 效果也一样。这背后的原理是:Callimachus 在索引阶段就建立了「文件路径 → 会话」的映射表,所以搜文件比全文搜索更快更准。

MCP Server:让 Agent 自己搜索历史

Callimachus 捆绑了一个 MCP 服务器 callimachus-mcp,可以让你的 AI Agent 在运行过程中主动查询历史对话:

claude mcp add callimachus -- callimachus-mcp

这个 MCP 服务器提供了 16 个工具,分为读和写两组。读工具包括:search_threadssearch_current_project(自动限定到当前仓库)、recent_threadsget_threadrecall_decisionsrecall_gotchasfind_prior_work(”我之前做过这个吗?”守卫)等。

更强大的是写入工具——Agent 可以通过 MCP 把当前决策和陷阱写回 Callimachus 的持久化内存中:record_decisionrecord_gotchacomplete_todo。这意味着 Agent 自身成为了知识管理链条的一环。

知识蒸馏:从对话中自动提取决策和陷阱

Callimachus 支持可选的 LLM 蒸馏功能。它会自动扫描你的 Agent 对话历史,提取出决策(decisions)、陷阱(gotchas)和 TODO 三类信息,然后在一个”Projects”面板中按项目聚合:

cal memory              # 查看当前仓库的蒸馏记忆
cal distill             # 手动触发蒸馏
cal decisions           # 只看所有历史决策
cal gotchas             # 只看所有历史陷阱

这些蒸馏结果可以被注入到 Agent 的上下文中:

cal agents              # 将仓库记忆写入 AGENTS.md / CLAUDE.md
cal hook                # 打印仓库记忆(用于 Claude Code SessionStart hook)

下次你让 Claude Code 处理同一个项目时,它会自动加载之前所有 Agent 对话中得出的决策和陷阱。

VS Code / Cursor 扩展

Callimachus 在 VS Code Marketplace 和 Open VSX 上都发布了扩展,可以直接在编辑器的侧边栏中搜索 Agent 历史,而不用切到桌面应用。这个扩展通过 shell 调用 cal CLI 实现搜索、插入和复制会话的功能。

如何融入日常工作流

Callimachus 的价值取决于你用得多深。以下是三个递进的使用层次:

层次一:被动索引——安装桌面应用,让它自动索引所有 Agent 对话。当需要查找信息时,打开搜索框输入关键词。这是最轻量的使用方式。

层次二:主动查询——配置 callimachus-mcp MCP 服务器,让 Agent 在运行中自动搜索历史。配合 cal agents 将项目记忆写入 AGENTS.md,确保每次新会话都加载历史上下文。

层次三:闭环知识管理——开启自动蒸馏,让 Agent 通过 MCP 写入工具记录决策和陷阱。项目成员的每一次 Agent 使用都在充实项目知识库,而不仅仅是消耗 Token。

注意事项

  • 双许可:Callimachus 采用 AGPL-3.0-or-later 开源许可。如果你需要闭源/商业使用,需要商业许可。
  • 本地优先:所有索引数据存储在本地,API 密钥放在 OS 钥匙串中(macOS Keychain / Windows Credential Manager / Linux Secret Service),唯一的出站流量是你选择的 LLM 提供商。
  • Mac-only 的 CLI 启动:”Open in CLI”功能在 macOS 上使用 AppleScript 驱动终端,Windows/Linux 暂不支持,但搜索、聊天、导出等功能在所有平台上都正常。
  • Cursor 限制:Cursor 不存储线程工作区信息,因此线程没有项目路径映射。
  • 首次索引稍慢:如果历史会话很多(~90k 消息),首次全量索引约 25 秒;后续增量索引极快。

总结

如果你同时在用两个或以上的 AI 编码工具,Callimachus 几乎是一个「装了就会感谢自己」的工具。它解决的痛点——跨越工具的会话历史搜索——在当前的 AI 编码生态中几乎没有任何竞品。更重要的是,它的 MCP 和蒸馏能力让 Agent 本身成为知识管理的一环,而不是知识遗忘的源头。

Callimachus 是 AGPL-3.0 开源项目,GitHub 仓库在此,macOS / Windows / Linux 三平台都可用。建议先装桌面应用体验被动索引,再逐步接入 MCP 和蒸馏功能。

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。