部落格

多個 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 之前,給它:

  • 一個你能檢查的結果。 不是「改善新手引導」,而是「在專案頁面加一個空狀態,附上建立按鈕」。
  • 範圍。 它可以碰哪些檔案、頁面或系統,哪些是禁區。
  • 完成的檢查方式。 能證明它成功的測試、建置或網址。
  • 你要拿回的證據。 一個 pull request 連結、一個 commit 雜湊值、一個已部署的網址。
  • 它在哪裡停下。 任何不可逆的事(發布、正式環境、金錢)都應該以一個問你的問題結束,而不是直接動手。

Weft 的預設欄位是 Backlog、Todo、Doing 和 Done。有一個簡單的慣例很好用:只有 Todo 裡的卡片可以被認領。專案則讓一個程式庫或一個客戶跟其他的分開。

兩個代理人對同一張卡呼叫 start_task 時,會發生什麼事?

把卡片移到 Doing 不是一把鎖:兩個代理人可能讀到同一張 Todo 卡,然後都開始做。所以在 Weft 裡,認領本身就是那把鎖。

一次 start_task 呼叫是一次由唯一索引把關的資料庫寫入,所以由資料庫決定誰贏。贏的一方拿到 runId 和 leaseToken,卡片移到 Doing。輸的一方拿到 already_claimed,附上任務 id、標題,以及不要重複工作的提示。一個客戶端是終端機代理人、另一個是聊天 App,都沒有差別。

對代理人來說,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 會發 refresh token,所以已連接的客戶端會自己續期登入。

看板上的身分不等於硬碟上的隔離。兩個名字不同的代理人,在同一個 checkout 裡還是可能互相覆寫。給每個寫程式的代理人各自的分支或 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 拒絕審閱或捨棄項目;佇列消化後代理人就能再開始
兩個代理人改同一個 checkout不相干的變更混在同一個 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 App 連接,所有方案都能用,包含免費版。逐步設定頁面: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,有 refresh token;可選用個人存取權杖文件裡的設定方式是複製一把 30 天後過期的 API 金鑰;透過瀏覽器核准的連線可撐 90 天,沒有 refresh(文件)
代理人身分每個 OAuth 客戶端或權杖都是獨立的行為者代理人是擁有自己身分的服務帳號
ChatGPT 的接法ChatGPT 目錄裡已上架的 App,所有方案都能用,包含免費版根據 Hypertask,用 OpenAPI Actions 做成的自訂 GPT,或開發者模式的自訂連接器(文件)
CLI 與 REST API沒有npm 上的 CLI 和 REST API(文件)
手機 AppiOS 和 Android沒有原生 iOS App(加到主畫面的網頁 App);沒有上架 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 次,好幾個代理人的心跳很快就會用完。請看定價。