跳到主要內容
maxstudioNews
AI 自動化DEV Community (Claude Code)約 7 分鐘

osFoundry:管理 Claude Code 代理的互動與審批流程

osFoundry 是一個整合開發環境,能讓使用者在單一介面中管理 Claude Code、Codex 等 AI 代理的工作階段。當 Claude Code 代理需要使用者許可時,osFoundry 會即時將其工作階段卡片移至「需要您」欄位,方便使用者快速回應並繼續工作。這個平台確保使用者對 AI 代理的編輯擁有完全控制權,並提供清晰的工作狀態追蹤。

osFoundry:管理 Claude Code 代理的互動與審批流程
圖片來源:DEV Community (Claude Code)

讀完本指南,您將能在一個終端機窗格中執行 Claude Code,另一個窗格執行 Codex,同時還有一些聊天和代理程式。osFoundry 的單一面板會顯示所有這些內容。當 Claude Code 停在「您是否要進行此編輯?」時,其卡片會在不到一秒鐘內移至「需要您」欄位。

只需點擊一下,相同的窗格就會在相同的提示詞處開啟。您做出回應後,卡片會立即回到「執行中」狀態。

誰負責什麼? osFoundry 桌面應用程式不會在您的程序中保留任何 Claude 登入資訊。它會移除應用程式自行啟動的代理程式所繼承的 ANTHROPIC_API_KEY,以確保訂閱執行不會以 API 形式計費。

在哪裡執行? 代理程式會在終端機畫面中一個真正的 PTY(偽終端機)裡執行,該 PTY 位於您的專案資料夾中,並保留螢幕的模擬副本。誰來批准? 您,Claude Code 絕不會代替您回答其許可提示詞,它只會移動卡片並開啟窗格。

如何得知狀態? Claude Code 會像往常一樣顯示其使用者介面,每 700 毫秒會根據已發布的規則讀取螢幕,並在啟動代理程式時接收掛鉤報告。資料儲存在哪裡? 您的檔案和終端機螢幕文字都只保留在 Mac 應用程式的記憶體中。代理程式工作階段結束時,會將摘要寫入您的知識檔案中。

設定 開啟終端機畫面(側邊欄中的「主頁」→「終端機」,/terminal),並像往常一樣啟動代理程式。每個窗格都有其獨立的 PTY。

例如,您可以在 ~/code/shop-api 資料夾中執行 $ claude,並在 ~/code/shop-web 資料夾中執行 $ codex。osFoundry 會透過佔用終端機的程式來識別 Claude Code,或者如果您是透過包裝器腳本啟動,則透過其螢幕來識別。

無需進行任何配置。開啟「工作階段」(側邊欄中的「主頁」→「工作階段」,/sessions)。每個聊天、單一代理程式、團隊、迴圈和終端機工作階段都是一張卡片。

欄位包括「執行中」、「需要您」、「已暫停」、「閒置」、「已完成」和「失敗」。您無法透過拖曳卡片來決定其狀態;欄位取決於執行時回報的內容。

點擊「篩選」(一旦應用篩選器,它會顯示為「已篩選」),然後勾選「僅限需要我」。種類(聊天、代理程式、團隊、迴圈、終端機)和時間視窗會保持不變。

此時會剩下兩張卡片:一個提出問題的聊天,以及 shop-api 中的 Claude Code 終端機。當聊天的最新訊息以等待回應的問題結束時,它會出現在這裡。

當終端機的狀態被阻擋,並且下一步顯示需要使用者輸入時,它也會出現在這裡。點擊 shop-api 卡片,終端機畫面會在同一個窗格中開啟,提示詞仍然存在。

左側的導覽列會顯示 Claude Code 為「需要您 · shop-api」,Codex 為「工作中 · shop-web」。如果開啟了多個窗格,您可以按下 Mod+.(在 Mac 上是 ⌘.)跳轉到下一個需要您處理的代理程式。狀態列中也會顯示:「⌘. 跳轉到需要您處理的項目」。

在窗格中回應 就像在其他地方一樣回應:按下 Enter 鍵選擇「1. Yes」。Claude Code 會繼續工作,在下一次掃描時,導覽列和面板會再次將其顯示為「工作中 / 執行中」。

當代理程式工作階段完成並處於「閒置」狀態時,將其卡片拖曳到「已完成」欄位。應用程式會先詢問您。確認後,會先寫入摘要,然後工作階段才會結束。

如果摘要寫入失敗,工作階段會保留在原處。正在執行的工作階段無法直接拖曳到「已完成」欄位,系統會提示:「此工作階段仍在執行中。請先暫停,然後再結束。」

實際執行範例 以下是一個帶有螢幕截圖的窗格,以及 osFoundry 從每個螢幕推斷出的內容。這些判斷來自 Claude Code 的規則檔案 claude.toml,該檔案隨應用程式提供,也可在 osfoundry.io/agent-detection/claude.toml 取得。

在 ~/code/shop-api 資料夾中,當您執行 $ claude 時,可能會看到以下輸出:● Retry now reuses the first charge. Updating the payment code. Edit file src/payments/charge.ts。

接著會顯示程式碼變更:41 - const intent = await stripe.paymentIntents.create(params) 變為 41 + const intent = await stripe.paymentIntents.create(params, { 42 + idempotencyKey: charge-${order.id}, 43 + })。

然後 Claude Code 會詢問:「您是否要對 charge.ts 進行此編輯?」並提供選項:「1. Yes」、「2. Yes, allow all edits during this session」、「3. No, and tell Claude what to do differently」。

此時,螢幕狀態會顯示為「blocked」,對應的規則會將卡片標記為「Needs you」。當您按下 Enter 鍵選擇「1. Yes」後,螢幕會再次顯示 spinner 和「esc to interrupt」,狀態變為「working」,卡片回到「Running」。

接著會顯示更新訊息:● Update(src/payments/charge.ts) ⎿ Updated src/payments/charge.ts with 3 additions and 1 removal,以及測試結果:● Bash(npm test -- payments) ⎿ Tests: 42 passed, 42 total。

最後,Claude Code 會報告:「● Fixed. A second press of Pay now reuses the first charge.」。

請注意,blocked 規則是故意放在 working 規則之上。只要提示詞開啟,Claude Code 的頁腳仍可能顯示「esc to interrupt」,但最先匹配的規則會優先。

限制 osFoundry 絕不會代替您回答任何提示詞。其他代理程式可以使用應用程式的 runtime_send 工具在窗格中輸入,但該工具會拒絕處理等待決策的窗格。

用於回應的工具是另一個名為 runtime_answer 的工具,並且每個回應都需要您確認。這項檢查不是基於上次掃描,而是在輸入的同一時刻重新讀取螢幕,以確保剛出現的提示詞不會截獲原本用於一般文字的按鍵。

如果 osFoundry 無法讀取螢幕,它會報告為「閒置」,而不是「需要您」。detect.rs 中的註解解釋了原因:只要出現一次誤報,人們就會停止信任徽章,之後即使是真實的警報也會變得無用。

因此,當規則不確定時,應用程式會選擇少報而不是多報。規則是資料,不是程式碼。下載的規則檔案只能改變哪些模式會匹配,而不能改變哪些程式會執行。

您的自訂覆寫檔案位於 ~/.osfoundry/agent-detection/claude.toml。終端機的文字只保留在桌面應用程式的記憶體中。

窗格之外的唯一痕跡是您結束的工作階段:其摘要會寫入您的知識檔案中,這是在任何內容被歸檔之前完成的。

接下來呢? 在另一個資料夾中啟動另一個 Claude Code 實例,並給予兩者都需要編輯的任務。然後在您處理其他事情時,將「工作階段」面板篩選為「僅限需要我」。如果您還沒有桌面應用程式,可以在下載頁面取得。

Share

覺得值得一看?分享給朋友。

以上為 AI 自動翻譯導讀。原文版權歸 DEV Community (Claude Code) 所有, 建議透過「閱讀原文」前往原始網站,以取得最完整資訊並支持原作者。

Newsletter

不用每天追,AI 重點每週寄給你

43 個來源、每 2 小時更新,太多看不完。電子報每週挑最值得看的幾則,附上 Max 的看法。

每週一封。Email 只用來寄電子報,每封信都能一鍵退訂。