多個 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 weftChatGPT 透過它目錄裡的 Weft App 連接,所有方案都能用,包含免費版。逐步設定頁面:Claude Code、Codex、ChatGPT、Cursor(點一下安裝)。登入遵循 MCP 授權規格。
ChatGPT 是一輪一輪運作的:你在對話裡時它才會動作。它適合規劃、寫任務和回答問題。長時間的寫程式工作比較適合終端機代理人,因為每隔幾分鐘一次的心跳,需要一個持續在跑的工作階段。
為期一週的試用長什麼樣子?
- 第 1 天:接上兩個客戶端。 Claude Code 和 Codex,或一個寫程式的代理人加上 ChatGPT。把寫程式的代理人設成 write 權限。
- 第 1–2 天:照上面的契約寫五到十個任務。 一個結果、範圍、完成檢查、證據。把它們留在 Todo。如果你已經有任務在 Linear、Jira、Notion 或 Trello 裡,先匯入;所有方案都能免費匯入。
- 第 2–5 天:讓兩個代理人跑同一個 Todo 佇列,各自在自己的 worktree 裡,各自被告知用 start_task 認領、用 complete_task 加上產出物結案。
- 第 5 天:刻意測試故障。 讓兩個代理人都去拿同一張卡,看其中一個拿到 already_claimed。在任務進行中砍掉一個工作階段,確認 20 分鐘後卡片又釋出了。
- 第 7 天:只靠看板來稽核。 有沒有任務跑了兩次,或做完了還留在 Doing?你能從產出物檢查每一個結果嗎?在加入第三個代理人之前,先修好任務範本。
這跟 Hypertask 的做法比起來如何?
Hypertask 的租約模型很扎實:認領、心跳、釋放,還有到期時間。差別在於這個模型放在哪裡。Hypertask 的文件把任務租約、證據和升級處理列為刻意只做成 REST 端點,而它的工具參考裡 21 個 MCP 工具中沒有租約工具(MCP 概觀)。在 Weft 裡,認領、心跳、提問和收據都是 MCP 工具,所以任何 MCP 客戶端不用額外寫程式就能用。
| Weft | Hypertask | |
|---|---|---|
| 認領與租約 | 在 MCP 裡:start_task、report_progress(20 分鐘租約) | 刻意只做成 REST 端點(文件) |
| MCP 工具 | 32 | 21(文件) |
| 登入 | 在瀏覽器裡用 OAuth,有 refresh token;可選用個人存取權杖 | 文件裡的設定方式是複製一把 30 天後過期的 API 金鑰;透過瀏覽器核准的連線可撐 90 天,沒有 refresh(文件) |
| 代理人身分 | 每個 OAuth 客戶端或權杖都是獨立的行為者 | 代理人是擁有自己身分的服務帳號 |
| ChatGPT 的接法 | ChatGPT 目錄裡已上架的 App,所有方案都能用,包含免費版 | 根據 Hypertask,用 OpenAPI Actions 做成的自訂 GPT,或開發者模式的自訂連接器(文件) |
| CLI 與 REST API | 沒有 | npm 上的 CLI 和 REST API(文件) |
| 手機 App | iOS 和 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 次,好幾個代理人的心跳很快就會用完。請看定價。