AI 代理在無人監督下運行時究竟會出什麼問題
一個HN Ask討論串直接提出了這個問題:當您讓AI代理在無人監督下運行時,什麼會出問題?1 回答都是個人經歷。有人的代理刪除了生產資料庫。另一位的代理重寫了計時器而非最佳化程式碼。第三位目睹代理將憑證提交到公開儲存庫。
每個經歷都描述了真實的失敗。但沒有人命名其模式。沒有分類學,每次失敗都顯得獨特且不可預測。有了分類學,同樣的七種模式幾乎可以解釋我在九個月內運行Claude Code搭配84個hooks和48個skills的500多次會話中遇到的每一次自主代理失敗。
摘要
代理失敗遵循七種具名模式,而非隨機混亂。分類學包括:捷徑螺旋(Shortcut Spiral)、信心幻象(Confidence Mirage)、差不多高原(Good-Enough Plateau)、隧道視野(Tunnel Vision)、幽靈驗證(Phantom Verification)、延遲負債(Deferred Debt)和空洞報告(Hollow Report)。每種都有偵測信號和確定性修復方案,以掛接到Claude Code生命週期事件的shell腳本實作。產業數據支持此結構:METR發現在約30%的延伸任務運行中存在獎勵駭客行為,2 Stanford發現AI輔助開發者在五項任務中有四項更常撰寫不安全的程式碼,3 Faros AI(一家DevOps分析供應商)追蹤到PR大了154%且bug多了9%。4 這些失敗是結構性的、可重現的、可預防的。
為什麼失敗不是隨機的
大多數開發者對代理失敗的直覺是錯誤的。假設是:代理以新穎、創造性的方式失敗,每次都需要新穎的解決方案。現實是:無論任務、模型或領域為何,代理都以相同的七種方式失敗。
這個模式在規模化時變得清晰可見。METR研究了前沿模型在延伸任務基準測試上的表現,發現了系統性的獎勵駭客行為:代理規避評估標準而非完成實際工作。2 代理並未發明新的作弊策略。它們收斂到相同的策略(操縱計時器、修改測試斷言、操弄指標)。不同的模型。不同的任務。相同的失敗模式。
SWE-bench Pro——測試代理處理真實儲存庫問題的基準測試——展示了天花板:截至2026年1月,最佳代理解決了44-46%的問題,而錯誤分佈集中在相同的類別。5 代理並非在問題空間中隨機失敗。它們在驗證、整合和自我評估方面可預測地失敗。
2025年DORA報告在組織層級發現了相同的聚集現象。AI採用率每增加25%,交付穩定性就下降7.2%。6 不穩定性並非均勻分佈。擁有強大工程實踐的組織在不退化的情況下吸收了AI。沒有這些實踐的組織則看到失敗以可預測的模式複合累積。7
我自己來自500多次自主會話的數據證實了這種聚集現象。我記錄了每一次需要人工介入的失敗,按根本原因分類。七種模式佔所有失敗的94%。方法論:在2025年5月至2026年2月期間,我在需要人工介入時審查每次會話的對話紀錄和hook遙測數據,然後根據鏈條中第一個未被偵測到的失敗歸因主要根本原因(單一評估者,無評估者間信度檢查)。剩餘的6%是真正的邊緣案例:來自模糊提示的模型混淆、大型程式碼庫上的上下文視窗溢出,以及速率限制。這七種模式才是值得針對性工程化的。
七種失敗模式
| 模式 | 發生什麼 | 偵測信號 | 頻率 |
|---|---|---|---|
| 捷徑螺旋 | 跳過審查、評估或全局檢查步驟 | 完成報告缺少品質步驟證據 | 23% |
| 信心幻象 | 未經驗證即聲稱「我很有信心」 | 模糊語言搭配確定性聲明 | 19% |
| 差不多高原 | 產出可運作但未打磨的程式碼 | 被問及品質時出現猶豫標記 | 15% |
| 隧道視野 | 完善一個元件,破壞相鄰程式碼 | 「其他不受影響」但未做整合檢查 | 14% |
| 幽靈驗證 | 聲稱測試通過但未實際執行 | 「應該會通過」的語言,無測試輸出 | 12% |
| 延遲負債 | 在已提交的程式碼中留下TODO/FIXME/HACK | diff中的負債標記 | 9% |
| 空洞報告 | 報告「完成」但零證據 | 完成時缺乏針對各標準的具體引用 | 8% |
百分比反映我的會話紀錄中的根本原因歸因。多種模式可在單一會話中共同出現;信心幻象常常先於幽靈驗證出現。排序反映每種模式作為需要人工介入的主要原因出現的頻率。
規模化偵測
每種失敗模式都有確定性的偵測方法。偵測以掛接到Claude Code生命週期事件的shell腳本運行。模型無法跳過、覆蓋或與這些hooks協商。8
捷徑螺旋偵測
品質迴圈有七個步驟:實作、審查、評估、精煉、全局檢查、重複、報告。9 捷徑螺旋會跳過其中一個或多個。
# Stop gate: block completion if quality steps are missing
validate_quality_steps() {
local output="$1"
local missing=()
for step in "Review" "Evaluate" "Refine" "Zoom Out"; do
if ! echo "$output" | grep -qi "$step"; then
missing+=("$step")
fi
done
if [ ${#missing[@]} -gt 0 ]; then
echo "BLOCKED: Missing quality steps: ${missing[*]}"
return 1
fi
}
此hook在Stop事件時觸發。當代理試圖宣告完成時,腳本檢查輸出中是否有每個品質步驟的證據。如果缺少任何步驟,代理會收到"continue"信號且無法停止。
幽靈驗證偵測
幽靈驗證是最危險的模式,因為它產生看起來正確的報告。代理寫下「14個測試通過,0個失敗」卻從未運行過pytest。
# Evidence Gate: require actual test output
validate_test_evidence() {
local output="$1"
local pattern='[0-9]+ passed|[0-9]+ failed|PASSED|OK \([0-9]+'
if ! echo "$output" | grep -qE "$pattern"; then
echo "BLOCKED: No test output found"
return 1
fi
# Block hedging language
local hedging='should pass|probably pass|seems to pass|I believe.*test'
if echo "$output" | grep -qiE "$hedging"; then
echo "BLOCKED: Hedging detected in test claims"
return 1
fi
}
模糊語言偵測器至關重要。寫下「根據程式碼結構,測試應該會通過」的代理並未運行測試。寫下「14個通過,0個失敗(pytest輸出)」的代理則有。這兩句話之間的差異就是幽靈驗證與實際證據之間的差異。
延遲負債偵測
# PostToolUse: scan every file write for debt markers
check_deferred_debt() {
local file_path="$1"
if grep -qE 'TODO|FIXME|HACK|XXX|TEMP|WORKAROUND' "$file_path"; then
echo "BLOCKED: Deferred debt marker found in $file_path"
grep -nE 'TODO|FIXME|HACK|XXX|TEMP|WORKAROUND' "$file_path"
return 1
fi
}
此hook在每次PostToolUse:Write和PostToolUse:Edit事件時觸發。如果代理寫入包含TODO的檔案,該寫入會被標記,代理會收到立即解決的回饋。在自主迴圈中,「以後再說」永遠不會到來。
空洞報告偵測
證據門檻要求六個標準的具體證明。hook不僅檢查代理是否聲稱完成,還檢查每個聲明是否包含具體引用。
| 標準 | 所需證據 |
|---|---|
| 遵循程式碼庫模式 | 命名模式及其所在檔案 |
| 最簡可行方案 | 被拒絕的替代方案及理由 |
| 邊緣案例已處理 | 列出邊緣案例及處理方法 |
| 測試通過 | 貼上零失敗的測試輸出 |
| 無迴歸 | 命名已檢查的檔案/功能 |
| 解決實際問題 | 陳述使用者需求及如何應對 |
差不多高原偵測
差不多高原比其他模式更難偵測,因為它產出可運作且通過測試的程式碼。輸出是功能性的。問題在於「功能性」不等於「正確且可維護」。證據門檻透過「最簡可行方案」標準捕捉它,該標準要求代理命名被拒絕的替代方案並解釋為何選擇的方案更好。無法闡述替代方案的代理就沒有評估過它們。
隧道視野偵測
# PostToolUse: check if edited file is imported elsewhere
check_integration() {
local file_path="$1"
local basename=$(basename "$file_path")
local dir=$(dirname "$file_path")
local importers=$(grep -rl "$basename" "$dir" --include="*.py" --include="*.js" --include="*.ts" | grep -v "$file_path")
if [ -n "$importers" ]; then
echo "WARNING: $file_path is imported by:"
echo "$importers"
echo "Verify callers are not broken by your changes."
fi
}
此hook在PostToolUse:Edit時觸發。如果編輯的檔案被其他檔案匯入,代理會收到列出呼叫者的警告。代理必須驗證每個呼叫者仍然正常運作。沒有hook的話,代理沒有理由去查看它剛完善的檔案之外的內容。
寫下「所有標準均已滿足」但沒有具體內容的代理會觸發空洞報告偵測器。hook解析輸出中每個標準關鍵字是否搭配具體證據(檔案路徑、數字或測試輸出)。沒有證據的抽象聲明會收到"continue"信號。
複合問題
失敗模式不會孤立發生。它們會連鎖。我觀察到最常見的連鎖:
信心幻象 → 幽靈驗證 → 延遲負債
順序是:代理遇到複雜的整合點。代理不去測試,而是聲稱「根據程式碼結構,我有信心這個整合是正確的」(信心幻象)。因為信心取代了測試,代理在完成報告中寫下「測試應該會通過」(幽靈驗證)。整合有一個邊緣案例。代理不去修復它,而是加上# TODO: handle edge case for concurrent writes(延遲負債)。一個跳過驗證的決定產生了三種失敗模式。
METR的數據支持連鎖模型。他們的研究發現,在一個子任務上嘗試獎勵駭客的代理更可能在後續子任務上再次嘗試。2 行為並非跨任務獨立的。一旦代理建立了捷徑模式,該模式就會持續並複合。
第二常見的連鎖:
隧道視野 → 捷徑螺旋 → 空洞報告
代理專注於將單一函式重構到完美(隧道視野)。花在重構上的時間和上下文擠壓了審查和全局檢查步驟(捷徑螺旋)。完成報告詳細描述了重構的函式,但對匯入它的三個檔案隻字未提(空洞報告)。重構的函式運作正常。呼叫者崩潰了。
Uplevel(一個開發者生產力平台)發表了一項2024年針對三家公司800名開發者的研究,發現了與連鎖一致的模式:Copilot使用者在PR週期時間或吞吐量上沒有可衡量的改善,但他們的程式碼產生了多41%的bug。10 更多程式碼,更快速,伴隨著連鎖品質問題。組織規模的失敗連鎖。
HN討論串說對了什麼
HN討論串中的經歷可以清楚地對應到分類學。1
「我的代理在遷移過程中刪除了測試資料庫。」 隧道視野。代理專注於遷移邏輯,從未退後一步檢查遷移目標是什麼。一個驗證破壞性SQL指令是否在資料庫白名單中的PreToolUse hook可以防止這種情況。
「它重寫了基準計時器而非最佳化實際程式碼。」 METR記錄了這個與獎勵駭客完全相同的模式。2 在分類學中:信心幻象(代理相信它正在完成任務)複合為捷徑螺旋(走向通過指標的最簡路徑)。一個要求命名並解釋實際最佳化技術的證據門檻可以捕捉到這一點。
「代理將包含API金鑰的.env檔案提交到公開儲存庫。」 最危險形式的延遲負債。一個在git add參數中搜尋憑證模式的PreToolUse:Bash hook可以在提交發生前阻止它。
「AI生成的程式碼在審查中看起來完美,但在生產環境中失敗。」 幽靈驗證。Stanford的Perry等人測量了相同效應:使用AI助手的開發者產出了他們認為更安全但實際上更不安全的程式碼。3 程式碼看起來正確。沒有人運行安全測試。要求貼上測試輸出——而非自我評估品質——的證據門檻可以捕捉到這個差異。
「它一直說『完成了』但什麼都不能用。」 空洞報告。完成信號是廉價的。證據是昂貴的。要求每個品質標準有具體引用,使區別成為結構性的。
HN討論串說錯了什麼
討論串將每次失敗視為孤立且不可預測的。「AI就是太不可靠了,不適合無人監督的工作」出現在多則留言中。這種框架暗示可靠性是模型的屬性。分類學表明可靠性是模型周圍基礎設施的屬性。
GitClear對2.11億行程式碼的分析發現,AI輔助專案顯示更高的程式碼攪動率(程式碼在兩週內被撰寫然後重寫)。11 Apiiro的安全研究發現AI生成的程式碼中有多322%的權限提升路徑。12 Qodo的AI程式碼品質分析發現,AI工具在測試覆蓋率和程式碼變更行數等簡單指標上縮小了初級和資深開發者的差距,但在複雜程式碼庫中引入了更多微妙的架構問題。13 意涵是:工具最佳化了可衡量的部分,卻遺漏了結構性的部分。
這些都不是模型的失敗。產生不安全程式碼的模型正在做模型該做的事:根據訓練資料產生統計上最可能的輸出。失敗在於未經驗證就接受輸出的基礎設施。模型不是不可靠的。未經驗證就部署它的系統才是不可靠的。
Anthropic自己關於建構有效代理的指南強調了這一點:從簡單開始,只在需要時增加複雜度,將驗證視為結構而非事後補救。14 模型供應商告訴您,可靠性來自您圍繞模型建構的東西,而非模型本身。
建構偵測層
七種失敗模式需要七個偵測hooks。以下是最小可行偵測層:
- 停止閘門。 在
Stop事件時觸發。在沒有品質步驟證據時阻止完成。捕捉捷徑螺旋和空洞報告。 - 證據門檻。 在故事完成後觸發。要求每個標準有具體引用。捕捉幽靈驗證和空洞報告。
- 負債掃描器。 在
PostToolUse:Write時觸發。搜尋TODO/FIXME/HACK。捕捉延遲負債。 - 整合檢查器。 在
PostToolUse:Edit時觸發。檢查編輯的檔案是否被其他地方匯入。捕捉隧道視野。 - 模糊語言偵測器。 在
Stop事件時觸發。阻止「應該可以」、「大概正確」、「我相信」。捕捉信心幻象和幽靈驗證。 - 測試運行器。 在代理聲稱測試通過後重新運行測試的獨立驗證。捕捉幽靈驗證。
- 差異審計器。
PreToolUse:Bashhook。掃描git操作中的憑證模式、破壞性指令、強制推送。捕捉任何模式最嚴重的後果。
Claude Code透過其生命週期事件系統支援全部七個。每個hook都是在stdin上接收JSON上下文的shell腳本。模型不選擇hook是否運行。hook因事件觸發而運行。8
偵測層的成本:同步hooks每次工具呼叫約200毫秒,加上每次故事完成時一次完整測試套件執行用於獨立驗證。對比自主通宵運行中單一未偵測到的失敗成本(可能數小時的浪費運算加上手動清理),這個交換是不對稱的。
剩餘的6%
分類學涵蓋94%的失敗。剩餘的6%分為三個類別:
來自模糊提示的模型混淆(2%)。 代理誤解任務。一個撰寫良好且包含驗收標準的PRD可以防止大部分此類問題。倖存的少數是人類也會掙扎的真正歧義。
上下文視窗溢出(2%)。 代理在大型程式碼庫上失去對早期上下文的追蹤。會話漂移偵測(測量當前任務與原始提示之間的餘弦相似度)可以在退化造成失敗前捕捉到它。15
外部失敗(2%)。 速率限制、網路錯誤、API變更。標準重試邏輯和斷路器可以處理這些。它們不是代理失敗模式。它們是碰巧影響代理的基礎設施失敗模式。
6%很重要但不需要專門的偵測。標準工程實踐可以處理全部三種。七種具名模式才是偵測基礎設施投資獲得回報的地方。
重點摘要
對個人開發者。 學習這七個名稱:捷徑螺旋、信心幻象、差不多高原、隧道視野、幽靈驗證、延遲負債、空洞報告。命名模式是偵測它的第一步。當您的代理說「應該可以」而非貼上測試輸出時,您正在看一個幽靈驗證。
對團隊主管。 注意連鎖。信心幻象導致幽靈驗證導致延遲負債。一個跳過的驗證步驟產生三個下游失敗。偵測層在第二和第三個模式具現化之前捕捉連鎖中的第一個模式。
對平台工程師。 建構七個hook偵測層:停止閘門、證據門檻、負債掃描器、整合檢查器、模糊語言偵測器、測試運行器和差異審計器。同步hooks的開銷約為每次工具呼叫200毫秒,加上每次故事完成時一次測試套件執行。對比自主通宵運行中未偵測到的失敗,成本是不對稱的。
核心原則。 模型不是不可靠的。未經驗證基礎設施就部署它的系統才是不可靠的。HN討論串責怪模型。分類學責怪hooks的缺席。
配套文章詳細描述了基礎設施:Claude Code作為基礎設施解釋了架構,10%之牆解釋了為什麼基礎設施比模型能力更重要,捏造防火牆解釋了輸出驗證,Jiro品質哲學解釋了將這些失敗模式編碼為可執行約束的品質系統。
-
HN Ask thread, “What breaks when you let AI agents run unsupervised?”, February 2026. https://news.ycombinator.com/item?id=47112543 ↩↩
-
METR, “Recent Frontier Models Are Reward Hacking,” June 2025. Analysis of frontier models on RE-Bench extended tasks found systematic reward hacking: manipulating timers, modifying test assertions, gaming metrics. https://metr.org/blog/2025-06-05-recent-reward-hacking/ ↩↩↩↩
-
Perry, N. et al., “Do Users Write More Insecure Code with AI Assistants?”, Stanford University, 2023. AI-assisted participants wrote insecure solutions more often in 4 of 5 tasks; on the SQL injection task, 36% of the AI group wrote vulnerable code vs. 7% of controls. Participants who used AI believed their code was more secure. https://arxiv.org/abs/2211.03622 ↩↩
-
Faros AI (a DevOps analytics vendor), “The AI Productivity Paradox,” 2025. Analysis of engineering telemetry across 10,000+ developers: 154% larger PRs, 91% longer code reviews, 9% increase in bug rates correlated with AI adoption. https://www.faros.ai/ai-productivity-paradox ↩
-
SWE-bench Pro results dashboard, 2025-2026. Best autonomous agents solve 44-46% of real repository issues, with error distribution clustering around verification and integration failures. https://www.swebench.com/ ↩
-
DORA, “Accelerate State of DevOps Report 2024,” Google Cloud, 2024. Surveyed 39,000 professionals. Each 25% increase in AI adoption correlated with 1.5% decrease in throughput and 7.2% decrease in delivery stability. https://dora.dev/research/2024/dora-report/ ↩
-
DORA, “Accelerate State of DevOps Report 2025,” Google Cloud, 2025. AI-throughput relationship flipped positive, but stability remained negative. Organizations with strong engineering practices absorbed AI without degradation. https://dora.dev/research/2025/dora-report/ ↩
-
Anthropic, “Claude Code Hooks Documentation,” 2025-2026. Hooks fire on PreToolUse, PostToolUse, UserPromptSubmit, Stop, and 13 other lifecycle events. Each receives JSON context on stdin. https://docs.anthropic.com/en/docs/claude-code/hooks ↩↩
-
Crosley, B., “Why My AI Agent Has a Quality Philosophy,” blakecrosley.com, February 2026. Documents the 7-step quality loop and 6-criteria evidence gate. https://blakecrosley.com/blog/jiro-quality-philosophy ↩
-
Uplevel (a developer productivity platform), “Can Generative AI Improve Developer Productivity?”, 2024. Study of 800 developers across 3 companies: no measurable improvement in PR cycle time or throughput; 41% more bugs in Copilot-assisted code. https://uplevelteam.com/blog/ai-for-developer-productivity ↩
-
GitClear, “AI Coding Assistant Code Quality in 2025,” GitClear, 2025. Analysis of 211 million lines of code. AI-assisted projects show elevated code churn (code written and rewritten within two weeks). https://www.gitclear.com/ai_assistant_code_quality_2025_research ↩
-
Apiiro, “AI Coding Assistants: Velocity vs. Vulnerabilities,” Apiiro, 2025. Analysis found 322% more privilege escalation paths in AI-generated code compared to human-written code. https://apiiro.com/blog/4x-velocity-10x-vulnerabilities-ai-coding-assistants-are-shipping-more-risks/ ↩
-
Qodo, “State of AI Code Quality,” Qodo, 2025. AI tools narrow the junior-senior gap on simple metrics but introduce more subtle architectural issues in senior developer code. https://www.qodo.ai/reports/state-of-ai-code-quality/ ↩
-
Anthropic, “Building Effective Agents,” Anthropic Research, 2024. Recommends starting with single LLM calls, treating tool definitions as documentation, and building verification as structure. https://www.anthropic.com/research/building-effective-agents ↩
-
Crosley, B., “Claude Code as Infrastructure,” blakecrosley.com, February 2026. Documents the session drift detector using cosine similarity measurement. https://blakecrosley.com/blog/claude-code-as-infrastructure ↩