Anthropic 說 agent 有八成時間在等人,我在床上用 Telegram 叫了一天,隔天就換成自己架的 T3 Code
10 月 13 日,我在家裡的伺服器上開了一臺叫 agent-hub 的容器,讓 Claude Code、Codex、OpenCode、Kimi Code 都能從手機的 Telegram 叫得動。原因是生活上的:照顧我的人常催我早點上床,可是專案還沒做完;睡覺時 Mac 闔上放進包包,隔天要帶出門。我想躺在床上繼續做。
同一天,我讓 Claude Code 用假的 API 錯誤測了一輪,看手機上會收到什麼。Claude 碰到 429 或 500,會自己重試十次,前後大約三分鐘,這段時間手機上那則訊息停住不動。Kimi 失敗的時候,原因只寫在 stderr,手機上只有一行 kimi failed (rc=1).。坐在 Mac 前面,這些看終端機就知道;躺在床上,我只看得到那一則訊息,分不出它是在等、在重試,還是已經掛了。
Anthropic 數了自己的人在等什麼
Anthropic 在 10 月 16 日發了一份報告,用公司內部的人事、agent 使用紀錄、行事曆和訪談,看 AI 怎麼改變他們自己的工作。TechCrunch 這類報導多半抓初階技術職的比例,從 21% 降到 14%。我比較在意中間講瓶頸的那一節。
報告說,在多輪互動的 session 裡,Claude 大約八成的時間是閒著,在等人回話。有位工程師把這比成當保母:一個孩子要人幫他打開果汁盒,講得跟另一個割到手指流血的孩子一樣緊急,每個 Claude 也都是這樣來找他。員工的對策,報告叫它 meta-work,就是管 agent 本身的工作:替多個 agent 寫規格、讓一個 agent 審另一個的產出、盯著流程跑。這類工作在員工互動 session 裡的比例,從 2025 年秋天的 10% 漲到 2026 年春天的 22%。
照這個定義,我 13 號那天做的也是 meta-work。我給 agent-hub 寫了一段例外指示:無頭模式沒有互動確認,有問題就寫在回覆裡;因為是用手機看,先講結論;做完可以 commit,push 要等我說。錯誤顯示也補了,失敗時把原因附在訊息裡,Claude、Codex、Kimi 各自的重試,合成一行原地更新的「重試 N/M」。最後是 Telegram 的結構:私訊模式下,每家引擎只記一段對話,不分專案,切專案的時候,我回的那句話會被接到別的專案的 session 去,只好改成群組主題,一個專案一個主題。
這些修完,每一則訊息都比較好讀。可是回頭看,它們改的都是同一件事:agent 來叫我的那一則訊息怎麼寫。狀態本身還是沒有地方放。它在跑、在等我、還是已經失敗,要靠它主動發一則訊息出來,再靠我讀懂。訊息沒來,我就只能猜。
14 號,我換成自己架的 T3 Code
Telegram 本身也一直卡住。對寫程式的人來說,它也不太好用,code block 那些在聊天視窗裡很難看。我中間還想過,乾脆改用我平常拿來處理生活和寫稿的那個 AI 助理來寫程式,後來覺得還是分開比較好,寫程式就交給寫程式的工具。
隔天我就換了做法。agent-hub 上改跑 T3 Code 的伺服器,沒有畫面,只綁在我自己的 tailnet 上,不對外開。T3 Code 是 Theo 那邊做的開放原始碼介面,可以接 Claude Code、Codex、OpenCode 這些代理工具,用的是我自己的訂閱。我跑的是自己 fork 的版本,加了 OMP 這個 provider,也把介面翻成臺灣正體中文。
手機這端,我用 fork 的原始碼自己編了一個 Android App。官方商店那個是英文的,而且 App 和伺服器之間有一個通訊協定版本號,兩邊要一模一樣才連得上。官方 App 跟著官方版本走,伺服器是我的 fork,所以手機端也只能從同一份原始碼編,兩邊現在都是 2。Telegram bot 還開著,只是我已經沒在用了。
兩天後,10 月 16 日,T3 Code 出了第一個正式版 v0.1.0。這一版加了 delegate_task,一個 agent 可以把工作交給另一家的 agent,例如 Claude 規劃、Codex 動手。佇列改放在伺服器上,重開也不會不見。碰到用量上限停下來的對話串會標成受限,可以等額度重設再接著跑。側欄上每個對話串的狀態,直接寫著進行中、在等你、受限,或是失敗。Git 和連結的 pull request,也都收在對話串的詳細資料裡。
狀態放在對話串上,不在訊息裡
我在意的是最後那幾種狀態。Telegram 那一套,再怎麼修,狀態都活在訊息裡:重試幾次、失敗原因、這句話是回哪個專案,全都要擠進一則推送,等我去讀。T3 Code 是反過來的,狀態就掛在對話串本身。我在床上打開手機,先看到的是一排對話串,哪個在跑、哪個在等我、哪個卡在用量、哪個掛了,旁邊就標著,不必先點進去讀一段話。Claude 安靜重試三分鐘、Kimi 只丟一行 rc=1、回覆接錯專案,這三件事在那邊都有地方放。
報告那個保母的比喻,問題不只是孩子很多,是每個孩子喊的音量都一樣。Telegram 那一版,我做的是教每個孩子喊得清楚一點;換到 T3 Code,是每個孩子身上自己掛著牌子。牌子不會告訴我哪個是果汁盒、哪個在流血,但至少我掃一眼就知道誰在等我、誰還在忙。我打字靠右手食指和語音輸入,躺在床上只剩一支手機,每點進去讀一則、再回一句,都比坐在桌前貴。能少點進去幾次,對我就是省下來的力氣。不過我沒量過,換過去之後 agent 等我的時間到底少了多少,這篇不寫數字。
push 那一下,我還是留著
報告也寫到,那邊的人一直有壓力,要把自己從瓶頸的位置上拿掉。我沒有要全部拿掉。10 月 17 日那篇寫過,我的線畫在 push 前,代理做到那裡就停,等我說放行(〈Theo 叫 AI 做到 merge 前停,我改用航管的 HOLD SHORT〉)。換到 T3 Code 之後,這條也沒變:可以改、可以 commit,push 等我。部落格的 main 一推就上線,這一下我不打算交出去。
所以報告裡那八成的等待,換到我這裡,有一段是我自己要的。我想縮短的是 push 之前那些:它到底在跑還是卡住了,以前要等一則訊息來告訴我,現在對話串自己就寫著。

COMMENTS 留言討論
載入留言系統中...
無法載入留言系統。您可以前往 GitHub Discussions 參與討論。