tclaw 做到了,但不够

tclaw 现在用起来很顺手。让它帮我写代码、查文档、处理文件,基本的事情都能搞定。多 agent 这块,重构之后用的是 run_agent 的方式——主 agent 需要做某件事,就调用对应的专业 agent 去干,就像调用普通工具一样。

这套方案比之前的消息总线稳定多了。但有一个问题始终没解决:tclaw 是单进程的。

单进程意味着所有 agent 都跑在同一台机器的同一个进程里。如果我想在公司的开发环境里跑一个 coder agent,在另一台机器上跑一个 tester agent,让他们协同工作——tclaw 做不到。

每个 agent 都是孤岛,没有一个真正的多机协作机制。

一个更大的问题

往更深处想,单机只是一个限制,不是本质问题。

本质问题是:谁来分派任务?

在 tclaw 里,是主 agent(通常是 AI)决定调用哪个子 agent。这其实把"任务分配"这个职责压在了 AI 身上,而 AI 的行为是概率性的——有时候它会聪明地把任务委托出去,有时候它又自己把事情做了,绕过了专业 agent。

能不能把任务分配这件事从 AI 手里剥离出来,做成一个确定性的系统?

tbrain 的想法

由此有了 tbrain 的雏形。

设计理念很简单:tbrain 只做任务管理,不做 AI 推理。

tbrain 本身没有 AI 能力。它做的事情就是:

  1. 接收任务请求
  2. 按照顺序把任务分配给注册在系统上的 agent
  3. agent 完成后标记完成,继续下一个任务

AI 推理的部分交给一个特殊的 agent——brain agent(大脑)。brain agent 负责和用户聊需求,理解任务,然后向 tbrain 发出具体的任务指令,包括任务应该拆分成哪几步、分别交给哪个 agent 去做。

tbrain 拿到这个计划之后,就机械地执行——按顺序通知 agent,等完成,继续下一个。确定性的,可预测的,稳定的。

为什么这样设计

把 AI 推理和任务调度分开,是这套设计里最重要的一个决定。

之前消息总线的教训历历在目:靠 AI 去维护消息通知,本质上是用不确定的方式解决协调问题。AI 会瞎 @ 人,会越权,会忘记规则,会在你测试通过之后换个场景又乱跑。

tbrain 的思路反过来:让 AI 只做它擅长的事(理解需求、拆分任务),让确定性的系统只做它擅长的事(按顺序执行、状态追踪)。两件事不混在一起。

所有注册到 tbrain 的 agent,都可以通过接口查到当前在线的 agent 列表和各自的能力描述。brain agent 看到这个列表,就知道有哪些人可以用、分别能干什么,然后制定计划发给 tbrain。

整个系统极其简单,也极其稳定。


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

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