问题出在哪里

消息总线那套方案放弃之后,我坐下来想了一下,问题到底出在哪。

根本原因是:消息总线是对等的,每个 bot 都可以给任何人发消息。这种自由度在人类团队里没问题,因为人有判断力,知道什么时候该说话、什么时候不该插嘴。但 LLM 不一样,它的"判断"是概率性的,今天遵守规则,明天又忘了。你加再多提示词约束它,它该乱的时候还是会乱。

既然对等通信管不住,那就换成单向调用——上级调下级,下级只干自己的事,不主动找别人。

新的设计

重构后的 tclaw,多 agent 协作的方式变成了这样:

list_categories → list_agents → run_agent

用户或者顶层 agent 先用 list_categories 看看现在有哪些领域,再用 list_agents 列出某个领域下的所有 agent,然后用 run_agent 调用具体的 agent 去做事。

就像公司里的层级结构:你要找人做事,先找到对应的部门,再找到对应的人,直接下任务。这个人完成任务后把结果交回来,不会自己跑去找别的部门。

这样一来,协作的控制权始终在调用方手里,被调用的 agent 只负责完成自己的任务,不能主动发起新的协作链路。

pcclaw → tclaw

这次重构等于把整个架构重新来过,代码改动很大,干脆起了个新名字:tclaw。t 是我名字的首字母。

2026 年 4 月 21 日,tclaw 第一次提交。从 pcclaw 的第一次提交到现在,差不多过了五周。

新架构稳定多了。agent 之间的协作变得可预测,出了问题也知道去哪里找。当然也不是完美的——有时候顶层 agent 该调用专业 agent 的时候,它自己就把事情做了,没有委托出去。但比起消息总线那套,已经好太多了。

同期做的其他事

重构完内核,顺手把周边也整理了一遍:

  • 把引擎抽成独立包,方便后续扩展
  • 加了 WebSocket server,可以用浏览器访问
  • 做了 WebGUI,有 tool call 展示
  • 加了 session 历史侧边栏
  • 做了 onboarding wizard,引导新用户配置

从只能在命令行用的小工具,开始变成一个像样的产品。

调试日志是其中一个顺手的功能——可以看到每次调用发给 LLM 的完整提示词,方便调试 agent 行为。

调试日志


tclaw 提供 Mac、Linux、Windows 版下载,Mac 版支持最好,感兴趣可以去 tclaw-releases 体验。

也可以先玩玩 tclaw 用 AI 做的几个小游戏:→ 点这里玩