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

提早發現失控的 AI 代理迴圈:費用飆升是警訊

AI 程式碼代理在執行任務時,可能會陷入無聲且耗費成本的迴圈,不斷重複操作卻毫無進展。與其觀察終端機輸出,監控代理的費用曲線是更有效的早期警示。本文將探討失控迴圈的樣貌、發生原因,並提供簡單方法來及早發現並避免不必要的開銷。

提早發現失控的 AI 代理迴圈:費用飆升是警訊
圖片來源:DEV Community (Claude Code)

一個陷入迴圈的 AI 程式碼代理是安靜無聲的,它不會當機。它會不斷讀取檔案、執行測試、編輯相同的功能並重新執行測試,而每一次迭代都會消耗代幣(tokens)。等你午餐回來時,一個原本只需十分鐘的任務可能已經變成一場漫長且昂貴的會話,卻沒有任何成果。

最便宜的錯誤訊號並非來自終端機輸出,而是費用曲線。本文將探討失控迴圈的樣貌、發生的原因,以及如何在造成重大損失前及早發現它們的簡單方法。

失控迴圈的常見模式,在使用 Claude Code、Codex CLI、Cursor 代理模式及類似工具時,包括:修復-測試-失敗循環。代理編輯程式碼,測試失敗,它再次編輯,相同的測試又以略微不同的方式失敗。十輪之後,差異變得更大,但沒有任何測試通過。

重複讀取環境。代理會重複搜尋(grep)或讀取大型檔案,因為它在上下文壓縮後失去了追蹤。工具錯誤重試。某個指令失敗(缺少依賴、路徑錯誤、權限提示),代理卻不斷嘗試不同的變體。

範圍蔓延。代理「注意到」相關問題,並開始重構你從未要求它處理的部分。這些情況在日誌中看起來都像是進展,但在費用圖表上卻截然不同。

為什麼費用是比輸出更好的警報:正常工作是突發性的,一開始會進行大量讀取,然後是一些編輯、一次測試執行,然後完成。費用會上升然後趨於平穩。

而迴圈則呈現穩定的斜率,不會趨於平穩,因為代理在每一輪都會不斷重新發送大量的上下文。隨著會話的進行,上下文大小會增加,因此每次迴圈迭代的成本往往會比上次更高。

觀察終端機時,你會看到看似合理的訊息。但觀察費用時,你會看到一條線在二十分鐘內以相同的速度持續攀升。第二種視角更容易一目了然地判斷。

設定自己的閾值:沒有一個通用的數字。請根據你自己的歷史記錄進行校準:查看一週內的正常會話。記下一個典型的小任務和一個大任務的成本。

將軟性警報設定為你典型大任務成本的兩倍左右,這表示「去看看」。將硬性停止點設定為你在單次會話中會感到惱火的損失金額。

對於獨立開發者來說,軟性警報可能是幾美元,硬性停止點會更高一些。對於在 CI(持續整合)中運行代理的團隊來說,這應該在程式碼中強制執行。

實用防護措施:限制回合數或時間。許多代理工具允許你限制迭代次數,或以無頭模式(headless mode)搭配最大回合數設定運行。在無人看管的運行中使用此功能。

縮小任務範圍。迴圈在模糊的任務上更為常見。「讓測試通過」容易導致反覆無效的嘗試。「修復 parseConfig 中的空值檢查,讓 config.test.ts 通過」則不會。

首先修復環境。許多重試迴圈來自於損壞的設定:缺少環境變數、錯誤的 Node 版本、不穩定的測試。如果代理兩次執行指令失敗,問題通常不在代理本身。

提交檢查點。要求代理在每個通過的步驟後提交,或使用 git worktrees。如果迴圈開始,你可以重設到最後一個良好狀態,而不是解開一個巨大的差異。

刻意清除上下文。長時間的會話會累積上下文。以簡短的摘要重新開始,通常比讓會話拖延下去更便宜、更聰明。

一個簡單的例行公事:開始任務並記下當前費用。每 10-15 分鐘或收到通知時,瞥一眼費用。如果斜率沒有趨於平穩,且代理沒有提交任何有用的東西,就中斷它。

要求它總結嘗試了什麼以及是什麼阻礙了進展。通常,摘要會在一句話中揭示真正的問題。然後,用更精確的提示詞重新開始,或者自己解決阻礙。

關鍵習慣是讓數字在不打開儀表板的情況下可見。如果你必須登入帳單頁面才能查看,你就不會去查看。我使用 TokenBar,這是一個 Mac 選單列應用程式,可以追蹤 Claude Code、Codex、Cursor 及相關 AI 的使用情況,因此今天的消耗總是一目了然。

它終身費用為 15 美元,並基於 MIT 授權的 CodexBar 專案構建。聲明:我開發了 TokenBar(Aura Technologies)。它不會替你做決定,但它會將數字呈現在你眼前,讓你有時間採取行動。

迴圈發生後該怎麼辦:將其視為一次廉價的事後檢討。提示詞是什麼?它是否模糊?代理卡在哪裡?是環境問題、測試不穩定,還是缺少上下文?

是否有規則可以預防它?在 CLAUDE.md 或 AGENTS.md 中添加一行,例如「如果一個指令因相同錯誤失敗兩次,請停止並詢問。」僅僅這條規則就能防止驚人數量的迴圈。

代理很擅長遵循明確的停止條件,只是它們通常沒有被給予太多。總結:失控的迴圈並不是停止使用代理的理由。它們是提醒我們要關注那個能一次捕捉所有故障模式的指標。

當代理不斷重複工作時,輸出可能看起來正常,但費用不會說謊,它會顯示重複了多少工作。

Share

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

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

Newsletter

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

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

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