AIエージェントの自律デバッグ — エラーを自分で見つけて直す
約6分で読めます
自律デバッグ
エラー発生→ログ分析→原因特定→修正生成→テスト→完了。人間不要のデバッグサイクルを構築する方法を解説する。
自律デバッグの4ステップサイクル
AIエージェントによるデバッグは以下のサイクルで回す。
- ログ収集 — スタックトレース、stderr、アプリケーションログを一括取得
- 仮説生成 — エラーメッセージとコード文脈から原因候補を3つ以上列挙
- 検証 — 最も可能性の高い仮説からテストコードで確認
- 修正とリグレッション確認 — パッチ適用後に既存テストを全実行
このサイクルを最大3回繰り返し、解決しなければ人間にエスカレーションする設計が安全だ。
実装例: Pythonでの自律デバッグループ
import subprocess
import json
def autonomous_debug(test_command: str, max_retries: int = 3):
for attempt in range(max_retries):
result = subprocess.run(
test_command, shell=True,
capture_output=True, text=True
)
if result.returncode == 0:
print(f"修正完了 (試行 {attempt + 1}回目)")
return True
error_log = result.stderr[-2000:]
analysis = call_claude_api(
prompt=f"以下のエラーを分析し修正パッチを出力せよ:\n{error_log}"
)
apply_patch(analysis["diff"])
print(f"試行 {attempt + 1}: パッチ適用完了")
print("最大試行回数に到達。人間にエスカレーション")
return False
Claude Codeでの実践
Claude Codeは自律デバッグを標準で備えている。claude -p "このテストを通して" と指示すれば、内部で上記サイクルが自動実行される。ポイントは以下の通り。
- エラーメッセージ全文をコンテキストに含める — 省略すると仮説精度が下がる
- 関連ファイルを明示する —
claude -p "src/api/handler.py のテストを修正して"のように対象を絞る - テストコマンドを指定する —
pytest tests/ -xのように失敗時即停止オプションを付ける
よくある自律デバッグの失敗パターン
| パターン | 原因 | 対策 |
|---|---|---|
| 同じ修正を繰り返す | コンテキスト不足 | 過去の試行履歴を含める |
| テストは通るが本質的に間違い | テストカバレッジ不足 | 修正前にテスト追加を先行させる |
| 無限ループ | 最大試行回数未設定 | max_retries を必ず設定する |
まとめ
自律デバッグの成功率を上げる鍵は「十分なコンテキスト」「明確な成功条件(テスト)」「試行回数の上限」の3つだ。これらを揃えれば、8割以上のバグはAI単独で修正できる。
関連記事
A
Agentive 編集部
AIエージェントを実際に使い倒す個人開発者。サイト制作の自動化を実践しながら、その知見を発信しています。