Agentive
AIエージェント活用

AIエージェントの自律デバッグ — エラーを自分で見つけて直す

約6分で読めます

自律デバッグ

エラー発生→ログ分析→原因特定→修正生成→テスト→完了。人間不要のデバッグサイクルを構築する方法を解説する。

自律デバッグの4ステップサイクル

AIエージェントによるデバッグは以下のサイクルで回す。

  1. ログ収集 — スタックトレース、stderr、アプリケーションログを一括取得
  2. 仮説生成 — エラーメッセージとコード文脈から原因候補を3つ以上列挙
  3. 検証 — 最も可能性の高い仮説からテストコードで確認
  4. 修正とリグレッション確認 — パッチ適用後に既存テストを全実行

このサイクルを最大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エージェントを実際に使い倒す個人開発者。サイト制作の自動化を実践しながら、その知見を発信しています。