做Claw Agent的时候有个想法:既然Claude桌面端接了MCP,那WorkBuddy也接进来,三个AI互通,让它们能互相调工具。
理想很丰满,现实踩了四个坑。
第一坑:协议版本不兼容
MCP有版本号,我的mcp_server.py里写死了2025-11-05,WorkBuddy一连上就报错:
not supported: 2025-11-05
查了半天才发现WorkBuddy要求的是2025-03-26。两个版本号,一字之差,连接直接失败。改掉,重连,过了。
第二坑:字段名大小写问题
版本改完还是连不上,WorkBuddy认不出工具列表。
翻了半天发现问题在字段名。我代码里写的是input_schema(下划线蛇形命名),WorkBuddy要求的是inputSchema(驼峰命名)。
8个工具,每个工具都有这个字段,全部手动改了一遍。
第三坑:改字段名把文件编码改崩了
字段名改完,重启mcp_server.py,直接崩了。
看报错是中文字符全部乱码。排查半天,根因是Edit工具在改inputSchema的时候,把文件里的UTF-8中文字符写坏了——字符串到处断开,整个文件变成乱码大杂烩。
第四坑:越修越乱
以为恢复原文件就行,结果Python读文件用了Latin-1,写回去用UTF-8,这一个roundtrip把文件搞成了mojibake。越修越乱,改一处坏两处。
最后的解决方案很暴力:把整个MCP_TOOLS列表里的中文描述全部换成英文,彻底避开中文编码问题。从此不再在这个文件里写中文。
最终连上了
四个坑踩完,WorkBuddy Connector Trust之后,tools/list成功返回8个工具:search、read_file、run_python、run_command、write_file、edit_file、install_package、run_any_command。
WorkBuddy现在可以直接调Claw Agent的所有工具了。
但三端互通没做到
原本的设想是三端互通——Claude、WorkBuddy、Claw Agent能互相调用。现实是:
WorkBuddy → Claw Agent ✅(WorkBuddy作为Client调Claw的工具)
Claw Agent → WorkBuddy ❌(WorkBuddy没有入站API)
WorkBuddy是纯Client端,它会主动连别人,但不暴露端口让别人连它。翻遍文档,没有任何入站接口。
所以现在的架构不是三角互通,而是Hub & Spoke:Claw Agent是中心,Claude和WorkBuddy都连着它,但Claude和WorkBuddy之间不直接通信。
要让Claude驱动WorkBuddy做事,目前唯一的通道是:你跟我说一声,我告诉你怎么做,你去操作WorkBuddy。人肉桥接。
等WorkBuddy后续版本加了入站API再说。
GPT怎么看这个问题
把三端互通的困境发给GPT,让他想方案。
他给了一堆工程化思路——Webhook、消息队列、中间层转发,说得头头是道。然后我问现在要不要做,他自己说:
"你现在阶段是验证阶段,不是工程化阶段。现在正确策略:改→重启→测,别提前工程化。"
结论跟我说的一模一样。GPT有时候就是这样,先给你一堆方案,绕一圈再告诉你现在用不上。
现在的状态
三端互通没实现,但该有的都有了:
- Claude桌面端 → Claw Agent :check_mark_button:
- WorkBuddy → Claw Agent :check_mark_button:
- Claw Agent本身:搜索、文件、代码执行、PPT生成 :check_mark_button:
下一步等WorkBuddy开放入站API,或者给Claw加个消息队列,到时候再补全这个三角。