乐于分享
好东西不私藏

我的三个AI助手,终于开始说同一种语言了

我的三个AI助手,终于开始说同一种语言了

你好,我是彬少。 一个经手过的东西都会变好用的人。


昨天我打开电脑,看到家目录底下 122 个条目,头开始疼了。

.py 脚本散落在根目录、node_modules 占了 82M、还有几个叫 fix_tables.pyfix_tables_v2.py 的东西——我甚至不知道它们是干什么用的。整个家目录就像一张堆了半年杂物的桌面。

我知道问题在哪:每次让 AI 帮我干活,它都往 ~/ 下面吐文件。临时脚本、导出数据、翻网页保存的 HTML……吐完就跑,从不收拾。

折腾,是为了更好用。但前提是,折腾完得知道东西在哪。

于是我开始想,怎么让这个状态不再复发。


[1] 第一步:先清一次

我和 Hermes(我用的 AI 助手)把 122 条条目分了类:

  • 系统文件夹(Desktop、Documents、Library)→ 不动

  • 软件安装残留(Adobe Creative Cloud、向日葵、Xmind 的 node_modules)→ 不动

  • 开发项目 → 统一移到 ~/Projects/

  • Agent 临时文件(.py、.json、.html)→ 确认无用后删除

  • 播客草稿 → 归入 Obsidian

清完之后从 122 降到了 102,但还是不够。根因是:下次会话,Agent 还是会往 ~/ 吐文件。

所以我建了一个 ~/workspace/ 目录,告诉 Hermes「这是你的沙盒,临时文件放这里,随时可以清空」。配了一行配置:

bashhermes config set terminal.cwd ~/workspace/

这样它的终端默认从这里启动,临时产出也落在这里,不污染家目录。

当时觉得,问题解决了。


[2] 第二步:Agent 之间不说话

我是多个 AI 在用的:Hermes 做主要工作,另一个 AI 助手跑一些后台任务,Claude Code 偶尔写代码。它们各有一套记忆系统,彼此不知道对方知道什么。

这个会话我跟 Hermes 说了「工作目录在 workspace」,下个会话另一个 AI 助手完全不知道——它得重新问一遍。

我有过一本参考库(一套 markdown 文件,存着账号、工具链、决策记录),每个 Agent 都被告知「先读参考库」。但问题是:Hermes 发现了新事实,不会自动写到参考库里。 每次都要我说「把这笔记到参考库」,它手动打开文件、找到位置、写进去——经常写错路径、忘了格式、漏了时间戳。

我在想,有没有办法让 Agent 之间自动共享知识?


[3] 第三步:发现 Cavemem

我在网上找到了一个叫 Cavemem 的产品,标语很对胃口:

"why agent forget when agent can remember"

它是一个跨 Agent 的持久记忆服务,通过 MCP 协议(Model Context Protocol —— 一种 AI 工具之间的通信标准)让不同的 Agent 共享同一份记忆。装好之后,Claude Code、Codex、Copilot 都可以读取和写入同一份记忆。

但仔细一看——Cavemem 不支持 Hermes。 它的 hooks(自动捕获会话事件的机制)是为 IDE 类 Agent 设计的,Hermes 接上去只能查询,不能自动写入。而且想让它写入,得额外写一个定时任务——跟手动记到参考库的成本一模一样。

好的产品不一定适合你。适合你的,往往是能和你现有的东西握手的产品。


[4] 第四步:那就自己写一个

Cavemem 走 MCP 协议,MCP 现在是 Agent 的标配——Hermes 支持、Claude Code 支持、Codex 支持。既然没有现成的,我就让 Hermes 帮我写一个。

我跟它说:写一个 MCP Server,让我所有的 Agent 通过这个工具统一操作参考库。

需求很简单:

功能
说明
搜索
全文搜参考库,不用记路径
读取
按编号、中文名、子路径都能找到文件
目录浏览
看有什么文件
状态总览
总共多少个文件、多大
编辑
先出修改方案,我确认了再执行

我让它写一个 MCP Server,让我所有的 Agent 通过这个工具统一操作参考库。我把它取名 binshao-trove,trove 就是「宝藏库」的意思。


[5] 第五步:踩坑

版本一写出来,另一个 AI 助手连上了,能看到工具列表,但一调用就返回空。

排查了一轮,发现是 MCP 协议的返回格式问题。协议的 tools/call 返回必须用 content 包一层:

json// 错误写法{"result": {"total_files": 16}}// 正确写法{"result": {"content": [{"type": "text", "text": "{\"total_files\": 16}"}]}}

Hermes 能容忍我写错,但另一个 AI 助手严格按照规范来,直接显示「(No output)」。

修了这一个,又发现另外几个:

  • 文件名中的全角竖杠 | 和半角竖杠 | 必须归一化处理,否则按编号 06 找不到 06|学习资产.md

  • 第一次运行显示 41 个文件,结果 25 个是 Obsidian 插件自带的 README,不是参考库内容——得排除 .obsidian 目录

  • 按编号 03 搜索时,同时匹配了根目录的 03|工具偏好.md 和子目录的 Hermes/03|Skill清单.md——得让根目录优先

每一个坑都不大,但不踩一遍就是不知道。


[6] 最终版

前后一个多小时,最终版本长这样:

安装到新 Agent 只需要一行命令:

bashpython3 ~/bin/binshao-trove-mcp.py install

它会自动检测当前电脑上装了哪些 Agent,写对配置文件,一键搞定。

日常使用变成了这样:

以前我说「看看参考库有什么要改的」,Hermes 手动打开一个个文件检查、数行数、看结构,经常忘记更新时间戳。

现在它调 ref_status 秒出全貌,调 ref_edit 出修改方案,我确认了再执行——格式、时间戳全自动。

另一个 AI 助手也能用了,Claude Code 也接上了。三个 Agent,读同一份参考库,走同一个 MCP 工具。

一个经手过的东西都会变好用的人——包括自己的工具链。


[7] 一点心得

这次折腾下来,几个感受:

问题是最好的老师。 如果不是家目录乱了,我不会想到建 workspace;如果不是多个 Agent 信息不同步,我不会去折腾 MCP。

标准很重要。 MCP 协议让我写的工具能同时被 Hermes、Claude Code、WorkBuddy 使用——如果每个 Agent 用不同的协议,我就要写三套。

自己动手不一定比买现成的差。 Cavemem 很好,但不支持我的主力 Agent。与其等它适配,不如写一个刚好贴合自己场景的。


如果你也用 Hermes、也维护了一本参考库,可以顺着这个思路给自己的工具链也配一个。

因为每个人的环境和使用习惯不同,实际用起来可能会遇到我没碰到过的问题。欢迎在评论区反馈。

相关学习资料