在我上一篇文章中,我提到如何把 Forem 的效能與維護工作,搬到建立在 OpenHands 之上的自動化迴圈裡。經過一個多月,這些迴圈已經送出 351 個 pull request,將 Rails 平均請求時間從 70ms 降到 16ms,並且讓我不用再當在人類儀表板和終端機之間來回搬運資訊的「人工剪貼簿」。
一旦你從日常執行迴圈中抽身,馬上就會出現另一個問題:當工廠開始自己運作之後,你要怎麼真正「看見」它?
以文字為主的介面永遠都會很重要。終端機、提示框,以及 Markdown 日誌,都是語言模型運作方式與開發者表達臨時意圖的原生形式。這些都不會消失。
奇怪的是,如今圍繞 AI 工具的 UI 幾乎完全缺乏創意。我們擁有史上最強大的軟體生成引擎,而我們操作它們時幾乎通用的介面,卻是一個深色模式的聊天視窗,帶著閃爍的游標,以及一整面可捲動的 JSON 工具呼叫紀錄。
聊天框很適合用來對話,但它是很糟的儀表板,而且每個平台看起來都一模一樣。
在單一互動式工作階段中,你可以把整個世界的狀態記在腦中。你知道分支、模型,以及測試為什麼失敗,因為你一路看著文字流過去。
但當你切換到八個自動化迴圈,每十分鐘在彼此隔離的 git worktree、三個前沿模型訂閱,以及數十個進行中的 pull request 上同時運作時,聊天視窗的捲動歷史紀錄就會失效了。只靠一串聊天轉錄來回答基本營運問題,你很快就會又變回「肉身路由器」:
WIP <= 1 門檻已滿,還是因為過時的 .gitconfig.lock 卡住了 worktree?#24547 是不是在每 10 分鐘一次的 CI 健檢中自我修復,還是已經因為同一個失敗的 spec 燒掉三輪修復機會了?如果你得點進五份對話紀錄,或執行四個 CLI 指令,才能重建這個畫面,那這個介面就是在辜負你。好的可觀測性,重點不是把所有日誌都放在某個地方;而是要把資料整理成讓你能在五秒內做出明確判斷的樣子。
AI 介面之所以平庸,諷刺之處就在於:我們現在盯著看的那些工具,正好也讓我們能輕易打造更好的介面。
我並不幻想自己下午隨手做出的儀表板,一年或兩年後能比專門做 AI 可觀測性的最佳產品還出色。我們仍然還在摸索如何為自治軟體建立視覺語法的早期階段,而專門的平台最終一定會把這件事做好。
在那之前,你不必接受通用的預設方案。專為你的系統實際控制桿量身打造的介面,永遠會比千篇一律的聊天外殼更好用,而 AI 寫程式工具也讓你能像底層系統演進一樣快地反覆迭代這個介面。
為了不只是抱怨,我把打造自訂控制中心,和這些迴圈本身放在同樣優先順序。

我捨棄了預設的 OpenHands 主題與首頁,改成一個自訂的可觀測性平台。我認為這是我至少該做的事,但維護工作本身也包含持續改善工具,因此這還是進行中的作品,我希望它最後能產生一些有創意的成果。它被打包成 Schema v1 Canvas 擴充功能,因此即使上游升級,也不需要分叉核心應用程式。
每個區塊都對應到我在調校這座工廠時必須做出的具體決策:
1. 自動化迴圈登錄表。 取代最近的聊天紀錄,主視覺是一個類似 Airtable 的總表,列出全部九個工作流程(perf-loop、rust-loop、error-loop、test-loop、deps-loop、issue-loop、github-pr-reviewer、pr-merge-loop 和 worktree-pruner)。每一列都顯示即時狀態、執行頻率、WIP 上限與開啟中的 PR,並提供內嵌控制項,可暫停、觸發執行,或固定特定模型供應商。
2. 前沿模型訂閱餘額與冷卻期。 一個三欄工作表追蹤我們的模型路由器,涵蓋 Gemini 4 Argon(agy-acp)、Claude Opus 5.5(claude-acp)與 GPT-6.1 Sol(codex-acp),顯示執行分佈、是否有任何供應商正處於 8 小時冷卻期,以及在憑證更新後可一鍵重置。
3. 開啟中 PR 健檢雷達。 每個自動化 PR 都會依照 5 -> 10 -> 20 -> 40 分鐘的指數退避排程,持續監看 CI 失敗或審查留言。雷達會列出這個佇列中的每一個開啟中 PR、目前的退避步階、已嘗試的修復輪數,以及到下一次健檢的即時倒數。
4. 臨時 worktree 清理狀態。 底部總表追蹤隔離的 /data/worktrees/* checkout 數量與年齡、唯讀 Postgres 健康狀態,以及 Mac bridge 狀態。當平行的 git gc 讓一些孤兒目錄殘留下來時,這裡會立刻顯示出來,因為 worktree 的年齡開始超過一小時。
這些都不能取代文字。當我想探索一個 feed 排序的想法,或是一起處理四階段的 JavaScript 資產清理時,我還是會點「New Chat」或打開終端機。
但把「對話」和「監督」分開之後,整個系統的使用感受就完全不同了。好的介面會把營運雜訊壓縮到周邊視野裡。我可以邊喝咖啡邊瞄一眼 Almanac,看到八個迴圈全都綠燈,注意到 rust-loop 被固定在 Argon,還有一個 PR 正在審查中,然後關掉分頁。
我們對於代理式系統的人機介面應該長什麼樣子,還只是剛碰到皮毛而已。至少目前,擁有會寫程式的代理,最棒的一點就是:你不必再等別人來設計駕駛艙。