microsoft/debug-gym

A Text-Based Environment for Interactive Debugging

何を解決するか

debug-gym は、Python コードリポジトリ内のバグを修正する LLM ベースのエージェントのトレーニングと評価に使用できる標準化されたインタラクティブ環境を提供します。単なるコード編集ではなく、実際のデバッグツール(例:pdb)を使ってコードの振る舞いを調査した上で修正案を提案できるようにすることで、現実世界のデバッグとシンプルなコード編集のギャップを埋めます。

動作方法

このフレームワークは Gymnasium パラダイムに従うシミュレーション環境として動作します。エージェントはツール群を通じてコードリポジトリとやり取りし、環境状態のテキストベースの観測を受け取り、情報を収集し、最終的にパッチを適用するためのコマンドを段階的に生成します。

  • 環境とツール:RepoEnv はコードベースを管理し、bash、view(ファイルの焦点)、eval(テスト実行)、pdb(インタラクティブデバッグ)、grep、listdir、edit などのツールを提供します。
  • ターミナル:隔離性とスケーラビリティを確保するため、DockerTerminal および KubernetesTerminal バックエンドをサポートしてコマンドを実行します。
  • エージェント:Jinja テンプレートを使用してカスタムシステムプロンプトを設定可能な LLM ベースのエージェント(例:froggy_agent)を提供します。
  • 統合:SWE-bench、SWE-smith、R2E-Gym などのベンチマークと統合され、標準化されたデバッグタスクを提供します。

対象ユーザー

  • 自律的なソフトウェアエンジニアリングエージェントを開発する AI 研究者。
  • 自動バグ修正やプログラム分析用の LLM ベースのツールを開発する開発者。
  • 現実世界の Python リポジトリを使って LLM エージェントのデバッグ能力を評価したいユーザー。

特徴

  • インタラクティブデバッグ:pdb を統合し、エージェントが実行中にブレークポイントを設定し、状態を確認できるようにします。
  • 拡張可能なツールセット:ユーザーは簡単に新しいツールを作成・登録でき、エージェントの行動と観測空間を拡張できます。
  • 隔離された実行:Docker および Kubernetes をサポートし、エージェント生成コードの安全かつスケーラブルな実行を実現します。
  • カスタマイズ可能なプロンプト:Jinja テンプレートを使用して柔軟なシステムプロンプト設計が可能です。
  • 人間が関与するモード:ツール呼び出しワークフローのテスト用に「人間モード」を含んでおり、手動での環境操作が可能です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト