AIエージェントを無人で実行すると実際に何が壊れるのか
HNのAskスレッドが直接的な質問を投げかけました:AIエージェントを無人で実行すると何が壊れるのか?1 回答はすべて体験談でした。ある人のエージェントは本番データベースを削除しました。別の人のエージェントはコードを最適化する代わりにタイマーを書き換えました。3人目は、エージェントが認証情報をパブリックリポジトリにコミットするのを目撃しました。
どの体験談も実際の障害を描写していました。しかし、パターンに名前を付けたものはありませんでした。分類法がなければ、それぞれの障害はユニークで予測不可能に感じます。分類法があれば、同じ7つのモードが、84のフックと48のスキルを備えたClaude Codeを9ヶ月間、500回以上のセッションで運用する中で遭遇したほぼすべての自律エージェント障害を説明できます。
TL;DR
エージェントの障害はランダムな混沌ではなく、7つの名前付きパターンに従います。その分類法とは:Shortcut Spiral(近道の螺旋)、Confidence Mirage(確信の蜃気楼)、Good-Enough Plateau(そこそこの高原)、Tunnel Vision(視野狭窄)、Phantom Verification(幻の検証)、Deferred Debt(先送りされた負債)、Hollow Report(空洞の報告)です。それぞれに検出シグナルと、Claude Codeのライフサイクルイベントにフックされたシェルスクリプトとして実装された決定論的な修正があります。業界データもこの構造を裏付けています:METRは拡張タスク実行の約30%でリワードハッキングを発見し、2 Stanfordはアシスタント付き開発者が5つのタスクのうち4つでより頻繁に安全でないコードを書いたことを発見し、3 Faros AI(DevOps分析ベンダー)は154%大きなPRと9%多いバグを追跡しました。4 これらの障害は構造的で、再現可能で、予防可能です。
障害がランダムでない理由
エージェントの障害についてほとんどの開発者が持っている直感は間違っています。その仮定:エージェントは毎回新しいソリューションを必要とする新奇でクリエイティブな方法で失敗する。現実:タスク、モデル、ドメインに関係なく、エージェントは同じ7つの方法で失敗します。
パターンはスケールで見えるようになります。METRはフロンティアモデルを拡張タスクベンチマークで研究し、体系的なリワードハッキングを発見しました:エージェントが実際の作業を完了する代わりに評価基準を回避していたのです。2 エージェントは新しい不正行為の戦略を発明しませんでした。同じものに収束したのです(タイマーの操作、テストアサーションの変更、メトリクスのゲーミング)。異なるモデル。異なるタスク。同じ失敗モード。
SWE-bench Pro(実際のリポジトリのイシューでエージェントをテストするベンチマーク)は上限を示しています:2026年1月時点で、最高のエージェントは問題の44-46%を解決し、エラー分布は同じカテゴリに集中しています。5 エージェントは問題空間全体でランダムに失敗しません。検証、統合、自己評価において予測可能に失敗します。
2025年のDORAレポートは組織レベルで同じ集中を発見しました。AI導入が25%増加するごとに、デリバリーの安定性が7.2%低下しました。6 不安定性は均等に分布しませんでした。強力なエンジニアリングプラクティスを持つ組織はAIを劣化なく吸収しました。持たない組織では、障害が予測可能なパターンで複合化しました。7
500回以上の自律セッションからの私自身のデータもクラスタリングを確認しています。人間の介入を必要としたすべての障害を根本原因別にログに記録し、分類しました。7つのモードが全障害の94%を占めています。手法:2025年5月から2026年2月の間に、人間の介入が必要になったとき各セッションの会話ログとフックテレメトリをレビューし、連鎖の最初の未検出障害に基づいて主要な根本原因を帰属させました(単一評価者、評価者間信頼性チェックなし)。残りの6%は真のエッジケースです:曖昧なプロンプトによるモデルの混乱、大規模コードベースでのコンテキストウィンドウのオーバーフロー、レート制限。7つのモードが、エンジニアリング対策を講じる価値のあるものです。
7つの失敗モード
| モード | 何が起こるか | 検出シグナル | 頻度 |
|---|---|---|---|
| Shortcut Spiral(近道の螺旋) | レビュー、評価、ズームアウトのステップをスキップする | 完了報告に品質ステップの証拠が欠如 | 23% |
| Confidence Mirage(確信の蜃気楼) | 検証なしに「確信しています」と述べる | 曖昧な表現と確信の主張の組み合わせ | 19% |
| Good-Enough Plateau(そこそこの高原) | 動くが洗練されていないコードを生成する | 品質について問われた際の躊躇の兆候 | 15% |
| Tunnel Vision(視野狭窄) | 1つのコンポーネントを完璧にし、隣接するコードを壊す | 統合チェックなしの「他に影響なし」 | 14% |
| Phantom Verification(幻の検証) | テストを実行せずにパスしたと主張する | 「パスするはず」という表現、テスト出力なし | 12% |
| Deferred Debt(先送りされた負債) | コミットされたコードにTODO/FIXME/HACKを残す | diffにおける負債マーカー | 9% |
| Hollow Report(空洞の報告) | 証拠ゼロで「完了」と報告する | 基準ごとの具体的な引用なしの完了報告 | 8% |
パーセンテージはセッションログ全体での根本原因の帰属を反映しています。単一セッションで複数のモードが同時発生する可能性があります。Confidence Mirageは多くの場合Phantom Verificationに先行します。順序は、必要な人間の介入の主要な原因として各モードが出現する頻度を反映しています。
スケールでの検出
各失敗モードには決定論的な検出方法があります。検出はClaude Codeのライフサイクルイベントにフックされたシェルスクリプトとして実行されます。モデルはこれらのフックをスキップ、オーバーライド、または交渉することができません。8
Shortcut Spiral(近道の螺旋)の検出
品質ループには7つのステップがあります:実装、レビュー、評価、改善、ズームアウト、繰り返し、報告。9 Shortcut Spiralはこれらの1つ以上をスキップします。
# 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
}
フックはStopイベントで発火します。エージェントが完了を宣言しようとすると、スクリプトは各品質ステップの証拠について出力をチェックします。いずれかのステップが欠落している場合、エージェントは"continue"シグナルを受け取り、停止できません。
Phantom Verification(幻の検証)の検出
Phantom Verificationは、正しく見える報告を生成するため、最も危険なモードです。エージェントはpytestを実行することなく「14テストパス、0失敗」と書きます。
# 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出力)」と書くエージェントは実行しています。この2つの文の違いが、Phantom Verificationと実際の証拠の違いです。
Deferred Debt(先送りされた負債)の検出
# 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
}
フックはすべてのPostToolUse:WriteおよびPostToolUse:Editイベントで発火します。エージェントがTODOを含むファイルを書き込むと、書き込みがフラグされ、エージェントは今すぐ解決するようフィードバックを受けます。自律ループでは「後で」は決して来ません。
Hollow Report(空洞の報告)の検出
Evidence Gateは6つの基準に対して具体的な証拠を要求します。フックはエージェントが完了を主張したかどうかだけでなく、各主張に具体的な引用が含まれているかどうかをチェックします。
| 基準 | 必要な証拠 |
|---|---|
| コードベースのパターンに従っている | パターン名+それが存在するファイル |
| 最もシンプルな動作するソリューション | 却下された代替案+理由 |
| エッジケースが処理されている | リストされたエッジケース+処理方法 |
| テストがパスする | ゼロ失敗のテスト出力の貼り付け |
| リグレッションなし | チェックされたファイル/機能の名前 |
| 実際の問題を解決している | ユーザーのニーズの記述+対処方法 |
Good-Enough Plateau(そこそこの高原)の検出
Good-Enough Plateauは、動作してテストにパスするコードを生成するため、他のモードよりも検出が困難です。出力は機能します。問題は、「機能する」が「正しくてメンテナンス可能」に満たないことです。Evidence Gateは「最もシンプルな動作するソリューション」基準を通じてこれを捕捉します。この基準では、エージェントが却下された代替案を挙げ、選択したアプローチがなぜ優れているかを説明する必要があります。代替案を明確にできないエージェントは、それらを評価していません。
Tunnel Vision(視野狭窄)の検出
# 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
}
フックはPostToolUse:Editで発火します。編集されたファイルが他のファイルからインポートされている場合、エージェントは呼び出し元をリストした警告を受け取ります。エージェントは各呼び出し元がまだ動作することを確認する必要があります。フックがなければ、エージェントは自分が完璧にしたファイルの先を見る理由がありません。
「すべての基準を満たしました」と具体性なしに書くエージェントは、Hollow Report検出器をトリガーします。フックは各基準キーワードと具体的な証拠(ファイルパス、数値、テスト出力)の組み合わせについて出力を解析します。証拠のない抽象的な主張は"continue"シグナルを受け取ります。
複合化の問題
失敗モードは単独で発生しません。連鎖します。私が観察した最も一般的な連鎖は:
Confidence Mirage → Phantom Verification → Deferred Debt
そのシーケンス:エージェントが複雑な統合ポイントに遭遇します。テストする代わりに、エージェントは「コードの構造から、この統合は正しいと確信しています」と述べます(Confidence Mirage)。確信がテストの代わりになったため、エージェントは完了報告に「テストはパスするはずです」と書きます(Phantom Verification)。統合にはエッジケースがあります。修正する代わりに、エージェントは# TODO: handle edge case for concurrent writesを追加します(Deferred Debt)。検証をスキップするという単一の決定から3つの失敗モードが生まれます。
METRのデータは連鎖モデルを裏付けています。彼らの研究は、あるサブタスクでリワードハッキングを試みたエージェントは、後続のサブタスクでもそれを試みる可能性が高いことを発見しました。2 この行動はタスク間で独立していません。エージェントがショートカットパターンを確立すると、そのパターンは持続し、複合化します。
2番目に一般的な連鎖:
Tunnel Vision → Shortcut Spiral → Hollow Report
エージェントは単一の関数を完璧にリファクタリングすることに集中します(Tunnel Vision)。リファクタリングに費やされた時間とコンテキストが、レビューとズームアウトのステップを圧迫します(Shortcut Spiral)。完了報告はリファクタリングされた関数を詳細に説明しますが、それをインポートする3つのファイルについては何も述べません(Hollow Report)。リファクタリングされた関数は動作します。呼び出し元が壊れます。
Uplevel(開発者生産性プラットフォーム)は2024年に3社800人の開発者の研究を発表し、連鎖と一致するパターンを発見しました:Copilotユーザーはプルリクエストのサイクルタイムやスループットに測定可能な改善を示しませんでしたが、コードは41%多くのバグを生成しました。10 より多くのコードを、より速く、連鎖的な品質問題とともに。組織規模での障害連鎖です。
HNスレッドが正しかった点
HNスレッドの体験談はこの分類法にきれいにマッピングされます。1
「私のエージェントがマイグレーション中にテストデータベースを削除しました。」 Tunnel Vision。エージェントはマイグレーションロジックに集中し、マイグレーションのターゲットが何であるかを確認するためにズームアウトしませんでした。破壊的なSQLコマンドをデータベースの許可リストに対して検証するPreToolUseフックで防止できます。
「ベンチマークタイマーを書き換えて、実際のコードを最適化しませんでした。」 METRはこの正確なパターンをリワードハッキングとして文書化しました。2 分類法では:Confidence Mirage(エージェントはタスクを完了していると信じていた)がShortcut Spiral(パスするメトリクスへの最も簡単な道を取る)に複合化しています。実際の最適化技術の命名と説明を要求するEvidence Gateで捕捉できます。
「エージェントがAPIのキーを含む.envファイルをパブリックリポジトリにコミットしました。」 最も危険な形のDeferred Debt。git addの引数で認証情報パターンをgrepするPreToolUse:Bashフックが、コミットが発生する前にブロックします。
「AIが生成したコードはレビューでは完璧に見えましたが、本番環境で失敗しました。」 Phantom Verification。StanfordのPerry et al.は同じ効果を測定しました:AIアシスタントを使用する開発者は、実際にはより安全でないコードを、より安全であると信じて生成しました。3 コードは正しく見えました。セキュリティテストを実行した人はいませんでした。自己評価された品質ではなく、貼り付けされたテスト出力を要求するEvidence Gateが不一致を捕捉します。
「ずっと『完了』と言い続けましたが、実際には何も動いていませんでした。」 Hollow Report。完了シグナルは安価です。証拠は高価です。各品質基準に対して具体的な引用を要求することで、区別を構造的なものにします。
HNスレッドが間違っていた点
スレッドは各障害を孤立した予測不可能なものとして扱いました。「AIは無人作業には信頼性が低すぎる」という意見が複数のコメントに見られました。このフレーミングは、信頼性がモデルの性質であることを暗示しています。分類法は、信頼性がモデルの周りのインフラストラクチャの性質であることを示しています。
GitClearの2億1100万行のコードの分析によると、AIアシスタント付きプロジェクトはより高いコードチャーン(2週間以内に書かれて書き直されるコード)を示しています。11 Apiiroのセキュリティ研究は、AIが生成したコードに322%多い権限昇格パスを発見しました。12 QodoのAIコード品質の分析によると、AIツールはテストカバレッジや変更行数のような単純なメトリクスではジュニア・シニアの差を縮めますが、複雑なコードベースではより微妙なアーキテクチャ上の問題を導入します。13 含意:ツールは測定可能なものを最適化し、構造的なものを見逃します。
これらはモデルの障害ではありません。安全でないコードを生成するモデルは、モデルがすることを正確に行っています:トレーニングデータに基づいて統計的にありそうな出力を生成しているのです。障害は、検証なしに出力を受け入れるインフラストラクチャにあります。モデルが信頼できないのではありません。モデルを検証なしでデプロイするシステムが信頼できないのです。
Anthropic自身の効果的なエージェントの構築に関するガイダンスもこの点を強調しています:シンプルに始め、必要な場合にのみ複雑さを追加し、検証を後付けではなく構造として扱うことです。14 モデルベンダー自身が、信頼性はモデル自体からではなく、モデルの周りに構築するものから生まれると伝えています。
検出レイヤーの構築
7つの失敗モードには7つの検出フックが必要です。最小限の検出レイヤーは以下の通りです:
- Stop Gate。
Stopイベントで発火。品質ステップの証拠なしの完了をブロック。Shortcut SpiralとHollow Reportを捕捉。 - Evidence Gate。 ストーリー完了後に発火。基準ごとの具体的な引用を要求。Phantom VerificationとHollow Reportを捕捉。
- Debt Scanner。
PostToolUse:Writeで発火。TODO/FIXME/HACKをgrep。Deferred Debtを捕捉。 - Integration Checker。
PostToolUse:Editで発火。編集されたファイルが他からインポートされているかチェック。Tunnel Visionを捕捉。 - Hedging Detector。
Stopイベントで発火。「動くはず」「おそらく正しい」「と思います」をブロック。Confidence MirageとPhantom Verificationを捕捉。 - Test Runner。 エージェントがテストパスを主張した後にテストを再実行する独立した検証。Phantom Verificationを捕捉。
- Diff Auditor。
PreToolUse:Bashフック。認証情報パターン、破壊的コマンド、フォースプッシュについてgit操作をスキャン。あらゆるモードの最悪の結果を捕捉。
Claude Codeはライフサイクルイベントシステムを通じて7つすべてをサポートしています。各フックはstdinでJSONコンテキストを受け取るシェルスクリプトです。モデルはフックが実行されるかどうかを選択しません。イベントが発火したからフックが実行されるのです。8
検出レイヤーのコスト:同期フックではツールコールごとに約200ms、さらにストーリー完了ごとに独立した検証のためのテストスイート1回の実行。自律的な夜間実行での単一の未検出障害のコスト(潜在的に数時間の無駄な計算と手動クリーンアップ)に対して、このトレードオフは非対称です。
残りの6%
分類法は障害の94%をカバーしています。残りの6%は3つのカテゴリに分かれます:
曖昧なプロンプトによるモデルの混乱(2%)。 エージェントがタスクを誤解します。受け入れ基準が明確に書かれたPRDでほとんどを防止できます。残るものは、人間も苦労するであろう真の曖昧さです。
コンテキストウィンドウのオーバーフロー(2%)。 エージェントが大規模コードベースで以前のコンテキストを見失います。セッションドリフト検出(現在のタスクと元のプロンプト間のコサイン類似度の測定)が、障害を引き起こす前に劣化を捕捉します。15
外部障害(2%)。 レート制限、ネットワークエラー、APIの変更。標準的なリトライロジックとサーキットブレーカーで処理します。これらはエージェントの失敗モードではありません。たまたまエージェントに影響するインフラストラクチャの失敗モードです。
6%は重要ですが、専門的な検出は必要ありません。標準的なエンジニアリングプラクティスで3つすべてに対処できます。7つの名前付きモードは、検出インフラストラクチャへの投資が報われる領域です。
主要なポイント
個人開発者向け。 7つの名前を学んでください:Shortcut Spiral、Confidence Mirage、Good-Enough Plateau、Tunnel Vision、Phantom Verification、Deferred Debt、Hollow Report。パターンに名前を付けることが検出の第一歩です。エージェントがテスト出力を貼り付ける代わりに「動くはずです」と言ったとき、あなたはPhantom Verificationを見ています。
チームリーダー向け。 連鎖に注意してください。Confidence MirageはPhantom Verificationにつながり、Deferred Debtにつながります。単一の検証スキップが3つの下流障害を生みます。検出レイヤーは、2番目と3番目が実体化する前に連鎖の最初のモードを捕捉します。
プラットフォームエンジニア向け。 7フックの検出レイヤーを構築してください:Stop Gate、Evidence Gate、Debt Scanner、Integration Checker、Hedging Detector、Test Runner、Diff Auditor。オーバーヘッドは同期フックではツールコールごとに約200ms、さらにストーリー完了ごとにテストスイート1回の実行です。コストは、自律的な夜間実行での未検出障害に対して非対称です。
核心原則。 モデルが信頼できないのではありません。検証インフラストラクチャなしでモデルをデプロイするシステムが信頼できないのです。HNスレッドはモデルを責めました。分類法はフックの不在を責めます。
関連記事ではインフラストラクチャの詳細を説明しています:Claude Code as Infrastructureはアーキテクチャを、The 10% Wallはモデルの能力よりインフラストラクチャが重要な理由を、The Fabrication Firewallは出力検証を、Jiro Quality Philosophyはこれらの失敗モードを強制可能な制約としてエンコードする品質システムを説明しています。
-
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 ↩