博客

多个 AI 智能体共用一块看板:实战指南

如何让 Claude Code、Codex 和 ChatGPT 共用一块看板而不重复劳动:任务契约、原子认领、租约,以及唯一的审阅队列。

Weft 是为独立创业者和小团队打造的 AI 任务管理工具。

全部文章

作者: Andrei Finogeev ·

可以,两三个 AI 客户端完全能共用一块看板,只要由看板来决定每个任务归谁。在 Weft 里,Claude Code、Codex 和 ChatGPT 都连到同一个 MCP 端点。每个客户端用 start_task 认领任务,用心跳维持它,最后交回一张回执。如果两个客户端伸手去拿同一张卡片,第二个会被告知 already_claimed,谁也不会把活干两遍。

Weft 是我们做的。关于其他产品的事实来自它们的官方页面,核对于 2026年10月27日。

这篇指南写给同时运行两三个 AI 客户端、而它们总是互相踩脚的独立创业者或小团队。

什么时候第二个智能体真的有用?

智能体多了,工作并不会自动变快。当工作能拆成互不相干的几块时,它们有帮助;当它们共用文件、测试数据库,或者共同等着一个还没人做的决定时,它们反而添乱。

情况一个智能体还是多个?原因
一个仓库里的一个功能,一口气做完一个智能体(如果它有子智能体,就用它自己的)一个上下文装得下所有东西;看板只会增加开销
代码不同区域里的两个独立修复两个智能体,各用独立的分支或 worktree没有共用文件,唯一的风险是挑中同一张卡片
在 ChatGPT 里做规划和分拣,在终端智能体里写代码两个客户端,分工不同ChatGPT 编写和整理任务;编程智能体认领它们
几个智能体都在等同一个产品决定一个智能体,等你决定之后并行的智能体会各猜各的

如果你不会在没商量过的情况下把两件活交给两个人,那也别交给两个智能体。

任务要写清楚什么,智能体才能接?

智能体会照字面理解任务,而且很少发问。在卡片离开 Backlog 之前,给它写上:

  • 一个可以核查的结果。不是“改进新手引导”,而是“在项目页面加一个带创建按钮的空状态”。
  • 范围。它可以动哪些文件、页面或系统,哪些是禁区。
  • 完成标准。能证明它成功的测试、构建或 URL。
  • 你想拿回的证据。pull request 链接、提交哈希、已部署的 URL。
  • 在哪里停下。任何不可逆的事(发布、生产环境、钱)都应该以向你提问结束,而不是直接动手。

Weft 的默认列是 Backlog、Todo、Doing 和 Done。一个简单的约定就很好用:只有 Todo 里的卡片才可以认领。项目则把一个仓库或一个客户和其余部分隔开。

两个智能体对同一张卡片调用 start_task 时会发生什么?

把卡片移到 Doing 不是锁:两个智能体可能读到同一张 Todo 卡片,然后都开工。所以在 Weft 里,认领本身就是锁。

一次 start_task 调用就是一次由唯一索引把关的数据库插入,所以由数据库裁定谁赢。赢的一方拿到 runId 和 leaseToken,卡片移到 Doing。输的一方收到 already_claimed,附带任务 id、标题和一条不要重复劳动的提示。一个客户端是终端智能体、另一个是聊天应用,这都无所谓。

对智能体来说,already_claimed 是正常的答复,不是错误。正确的做法是再调用一次 get_my_work,去拿下一张卡片。完整的循环我们写在了认领、心跳与回执循环里。

心跳和 20 分钟租约是怎么运作的?

认领是租约,不是永久分配。start_task 给出 20 分钟的租约,并告诉智能体每 300 秒续一次。智能体通过带着 runId 和 leaseToken 调用 report_progress 来续租。如果智能体在此期间已经丢了租约,调用会返回 lease_lost,它就应该停下,而不是继续改。

会话挂掉时,没有人能出来说一声。沉默是看板唯一能收到的信号,所以 Weft 就把沉默当作信号:

  • 20 分钟没有心跳,这次运行就被标记为过期,令牌被清除,任务回到未分配状态。
  • 每 10 分钟有一次清扫,而当另一个客户端尝试认领时,过期的任务也会立即被释放。
  • 智能体在等你回答问题时,会保留任务 60 分钟。之后租约失效,但问题仍然开着。

心跳也是工具调用。一个 40 分钟的任务,每 5 分钟一次心跳,大约要花掉 8 次调用;免费版每月 200 次调用,所以三个天天在跑的智能体很快就会超出。Pro 没有调用上限。

看板怎么知道哪个智能体做了什么?

每个登录 Weft 的 OAuth 客户端都是一个独立的操作者。Claude Code、Codex 和 ChatGPT 各自单独注册,看板上显示每个客户端注册时用的名字。每条历史事件都会记录是哪个客户端产生的。

不支持 OAuth 的客户端可以用个人访问令牌;每个令牌也是一个独立的操作者,但令牌没有权限范围(访问令牌)。权限按 OAuth 连接设置:

  • full(默认):全部 32 个工具。
  • write:除三个破坏性工具(移入回收站、归档、完成冲刺)之外的全部。
  • read:只有 11 个只读工具。

一种合理的分配:编程智能体用 write,任何实验性质的用 read。断开一个客户端会撤销它的令牌,而不影响其他客户端。Weft 发放刷新令牌,所以已连接的客户端会自己续期登录。

看板上的身份不等于磁盘上的隔离。两个名字不同的智能体,在同一个检出目录里照样会互相覆盖。给每个编程智能体单独的分支或 worktree。

完成的工作落在哪里?最多能有多少在等你?

默认情况下,完成的任务直接进 Done。当任务需要审阅,或验证检查没通过时,它会停在你的收件箱里。你在那里选择“接受”、“返工”、“以后再说”或“放弃”。选“返工”时要写一条备注。来自 request_input 的问题也会进同一个收件箱,并以推送形式发到你的手机上,所以不管是哪个智能体在问,你都只需要看一个地方。

complete_task 的回执里有结果、你可以核查的产物、没做的部分、未知项和一个 nextStep。nextStep 显示在“接受”按钮上方,所以接受批准的恰好就是那一步。更多内容见我的 AI 智能体到底做了什么。

收件箱有上限,而有了几个智能体,你一定会碰到它。单人工作区最多 5 项,团队 10 项,或者预估审阅时间 45 分钟,以先到者为准。提问也算在内。满了之后,start_task 会用 attention_queue_full 拒绝,并告诉智能体它还能做什么,比如汇报进度或读看板。三个智能体产出工作的速度,可能比一个人审阅的速度快;这个上限能防止它们堆出一堆你永远不会看的结果。

会出什么故障,怎么恢复?

故障你看到的Weft 怎么处理你该做什么
两个客户端开始同一个任务一张卡片在 Doing,一个客户端被告知 already_claimed数据库只让一个认领胜出;另一个被拒绝如果输的智能体转去做别的,那就什么都不用做。如果它还是继续干,就收紧它的指令
会话崩溃或笔记本休眠Doing 里有张卡片毫无进展20 分钟没有心跳,这次运行就过期,任务回到未分配在另一个智能体接手之前,检查分支上有没有做了一半的工作
智能体做完了,却没调用 complete_task工作已合并,卡片还在 Doing租约过期;任务被释放,而不是被关闭自己关掉它,或者让一个智能体带上证据把它完成
智能体需要一个只有你能做的决定收件箱里有个问题,可能还有推送认领保留 60 分钟;答案会在智能体下一次调用 start_task 或 get_my_work 时送达从它给的选项里选一个作答
等你处理的东西太多收件箱满了start_task 用 attention_queue_full 拒绝审阅或放弃一些项目;队列减少后,智能体就能重新开工
两个智能体改同一个检出目录不相干的改动混在同一个 diff 里什么都不做;Weft 看不到你的文件在并行运行智能体之前,先分好 worktree 或分支

怎么配置两三个客户端?

三个客户端都连到同一个端点,都通过浏览器登录,没有密钥要复制。

# Claude Code
claude mcp add --transport http weft https://letsweft.com/api/mcp

# Codex: add to ~/.codex/config.toml, then sign in
[mcp_servers.weft]
url = "https://letsweft.com/api/mcp"

codex mcp login weft

ChatGPT 通过其应用目录里的 Weft 应用连接,所有方案都能用,包括免费版。分步设置页面:Claude Code、Codex、ChatGPT、Cursor(一键安装)。登录流程遵循 MCP 授权规范。

ChatGPT 是按轮次工作的:只有你在对话里时它才会行动。它适合做规划、写任务和回答问题。长时间的编程运行更适合终端智能体,因为每几分钟一次的心跳需要一个持续运行的会话。

为期一周的试用是什么样的?

  1. 第 1 天:连接两个客户端。Claude Code 和 Codex,或者一个编程智能体加 ChatGPT。给编程智能体 write 权限。
  2. 第 1–2 天:按上面的契约写五到十个任务。一个结果、范围、完成标准、证据。把它们放在 Todo。如果你在 Linear、Jira、Notion 或 Trello 里已经有任务,先导入;所有方案都能免费导入。
  3. 第 2–5 天:让两个智能体处理同一个 Todo 队列,各自在自己的 worktree 里,都被要求用 start_task 认领、用 complete_task 加产物完成。
  4. 第 5 天:故意制造故障。让两个智能体指向同一张卡片,看其中一个收到 already_claimed。在任务中途杀掉一个会话,检查 20 分钟后卡片是否重新空出来。
  5. 第 7 天:只凭看板做一次审计。有没有任务被跑了两遍,或者做完后还留在 Doing?每个结果你都能通过产物核查吗?在加第三个智能体之前,先把任务模板改好。

这和 Hypertask 的做法相比如何?

Hypertask 的租约模型是靠谱的:认领、心跳、释放,带过期时间。区别在于这个模型放在哪里。Hypertask 的文档把任务租约、证据和升级请求列为只有 REST 端点,有意为之;它的工具参考里有 21 个 MCP 工具,其中没有租约工具(MCP 概览)。在 Weft 里,认领、心跳、提问和回执都是 MCP 工具,所以任何 MCP 客户端不用额外写代码就能用。

WeftHypertask
认领与租约在 MCP 里:start_task、report_progress(20 分钟租约)只有 REST 端点,有意为之(文档)
MCP 工具3221(文档)
登录浏览器里 OAuth,带刷新令牌;可选个人访问令牌文档中的设置方式是复制一个 30 天后过期的 API 密钥;浏览器批准的连接可用 90 天,不能刷新(文档)
智能体身份每个 OAuth 客户端或令牌都是独立的操作者智能体作为拥有独立身份的服务账号
ChatGPT 接入ChatGPT 应用目录里的已发布应用,所有方案都能用,包括免费版按 Hypertask 的说法,是带 OpenAPI Actions 的自定义 GPT,或开发者模式下的自定义连接器(文档)
CLI 和 REST API没有npm 上的 CLI 和 REST API(文档)
移动应用iOS 和 Android没有原生 iOS 应用(主屏幕上的网页应用);没有上架 Google Play(文档)
语言27只有英语
每席位价格免费版:50 个任务,每月 200 次 AI 调用。Pro:每月 $7 或每年 $60免费版:每人 3 块看板。BYOK 按年 $8 / 按月 $10。Pro 按年 $16 / 按月 $20(价格)
AI 点数不需要:思考发生在你自己的 AI 客户端里内置 AI;BYOK 方案使用你自己的模型密钥

如果你的智能体从脚本或 CI 运行、你想要 CLI 和 REST API,如果你想把智能体当作像用户一样管理的服务账号,或者你想要内置 AI(写任务、智能标签、分拣)、键盘优先的速度和时间追踪,Hypertask 是更好的选择。Weft 没有 CLI,没有 REST API,没有 webhook,也没有 GitHub 或 Slack 集成。当你的智能体就是你已经在用的 MCP 客户端(ChatGPT 也在其中),而你想在手机上回复它们时,Weft 才合适。

更全面的对比,见 MCP 任务管理器对比和 Hypertask 替代方案。

我的智能体之间需要互相通信吗?
不需要。它们通过看板协调:认领、回执和提问。Weft 从不主动调用智能体;每个智能体自己用 get_my_work 拉取下一个任务。
崩溃的智能体会让任务永远卡在 Doing 里吗?
不会。20 分钟没有心跳,这次运行就被标记为过期,任务回到未分配状态,其他客户端就可以认领。先检查一下分支上有没有做了一半的工作。
三个智能体不会让我被审阅淹没吗?
收件箱上限是单人 5 项(团队 10 项)或 45 分钟的审阅量;满了之后,智能体就不能开始新任务。大多数完成的任务会直接进 Done。
运行多个智能体会更贵吗?
Weft 按席位收费,不按智能体收费:Pro 每人每月 $7 或每年 $60。免费方案的 AI 调用上限是每月 200 次,多个智能体的心跳会很快用完。参见价格。