Skip to content

VS Codeでのエージェントのデバッグ

VS Codeでは、エージェント開発サーバーを強化するのと同じdev.pyスクリプトを実行できるため、リモートデバッガーを接続せずに、リクエストのステップ実行、変数の確認、プロンプトの再生ができます。 agent-applicationのクローンを作成した後に必要な操作は、エージェントの仮想環境でVS Codeを指定して、dev.pyをターゲットとする起動設定を作成し、デバッガーがリッスンしている間にCLIからプロンプトを実行するだけです。

このガイドはPyCharmのワークフローに準拠し、VS Codeの準備、デバッガーの起動、および一般的な問題のトラブルシューティングについて順を追って説明します。

前提条件

VS Codeのデバッグを設定する前に、以下が揃っていることを確認します。

  • VS Code + Python拡張機能:デバッグをサポートするため、Microsoft公式のPython拡張機能をインストールします。設定のガイダンスが必要な場合は、ドキュメントを参照してください。
  • エージェントアプリケーションの設定インストールを完了し、task startを実行して、エージェントの仮想環境を作成します。
  • 環境変数.envDATAROBOT_API_TOKENDATAROBOT_ENDPOINT、およびツール固有の変数を設定します。
  • CLIへのアクセス:デバッガーの動作中にターミナルからtask <agent>:cliコマンドを実行し、処理をトリガーできます。

Configure Python interpreter

Run task start first

task startは、依存関係と.venvインタプリタをプロビジョニングします。 VS Codeでインタプリタを選択する前に実行します。

  1. VS Codeでエージェントアプリケーションフォルダー(writer_agentなど)を開きます。
  2. Command+Shift+P(macOS)またはCtrl+Shift+P(Windows/Linux)を押してコマンドパレットを開きます。
  3. Python: Select Interpreterを実行します。
  4. エージェントの.venvパス内にあるインタプリタを選択します。 writer_agentの場合、エントリーは通常次のようになります。

    $workspace/writer_agent/.venv/bin/python 
    

VS Codeでは、このインタプリタをリンティング、統合ターミナル、デバッガーに使用します。これにより、環境がtaskによって作成されたものと一致します。

Run Agentの起動設定を行う

VS Codeのデバッガーは、.vscode/launch.jsonを使用します。 dev.pyを指すRun Agent設定を作成することで、PyCharmガイドと同じレイアウトを再利用できます。

  1. Run and Debugビュー(サイドバーの再生アイコン)を開き、create a launch.jsonファイルをクリックします。
  2. デバッガーとしてPython Debuggerを選択します。
  3. デバッグ設定としてPython Fileを選択します。
  4. 自動生成された.vscode/launch.json設定を以下のスニペットのようなものに置き換え、エージェントへのパスを調整します。
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Run Agent",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/writer_agent/dev.py",
            "cwd": "${workspaceFolder}/writer_agent",
            "envFile": "${workspaceFolder}/.env",
            "console": "integratedTerminal",
            "python": "${workspaceFolder}/writer_agent/.venv/bin/python",
            "justMyCode": true
        }
    ]
} 
  • program:エージェントのdev.pyを指します。
  • cwd:相対インポートとファイルパスがエージェントディレクトリから解決されるようにします。
  • envFile:CLIが使用するのと同じ.env設定をロードします。
  • python:選択済みの.venvインタプリタをデバッガーで使用するように強制します。

ワークスペースに複数のエージェントが含まれている場合は、定期的にデバッグするエージェントごとに、異なる名前とパスで設定を複製します。

開発サーバーの実行

開発サーバーを起動するには: 1. Run and DebugビューでRun Agent設定を開きます。 2. Runをクリックし(またはF5を押し)、デバッガーで開発サーバーを起動します。 3. Debug ConsoleまたはTerminalで起動メッセージ(例:Running development server on http://localhost:8842)を確認します。

VS Codeはリクエストをリッスンするようになり、ブレークポイントを設定すると一時停止します。

Trigger agent execution from the CLI

開発サーバーがリッスンしている場合は、任意のターミナルセッションからプロンプトを送信できます。 CLIでwriter_agentを呼び出す例:

task writer_agent:cli -- execute --user_prompt "Artificial Intelligence" 

すべてのCLIリクエストはVS Codeのデバッガーセッションを経由するため、問題を特定するまで同じプロンプトを繰り返したり、引数を調整したりできます。

Debug with breakpoints

ブレークポイントを使用したデバッグを設定するには: 1. writer_agent/custom_model/agent.pyのようなファイルにブレークポイントを設定します。 2. Run > Start Debuggingをクリックして(またはF5を押して)、デバッガーがアクティブになっていることを確認します。 3. Re-run your CLI command. 実行がブレークポイントに達すると、VS Codeは一時停止し、その行を強調表示します。 4. デバッグツールバーを使用して、ステップオーバー、ステップイン、または実行の継続を行います。

VS Codeのデバッグツールを使う

以下のセクションでは、VS Codeのデバッグでサポートされている各種ツールについて説明します。

Inspect variables

  • Variablesペインには、一時停止したフレームのローカル、グローバル、および環境データが表示されます。
  • 変数を右クリックしてAdd to Watchを選択し、フレーム間で永続的に追跡します。

Evaluate expressions

  • Debug Consoleを使用して、一時停止中のコンテキストでPython式を実行します(例:import osの後にos.environ["DATAROBOT_ENDPOINT"]を実行)。
  • コードのステップ実行中に式を監視する必要がある場合は、Watchに式を追加します。

コールスタックの確認

  • Call Stackビューには、ブレークポイントにつながるすべてのフレームが表示されます。
  • フレームを選択すると、エディター、Variablesペイン、Debug Consoleのコンテキストが更新され、以前のコールを確認できるようになります。

よくある問題

起動設定がない

問題Run Agentオプションが表示されません。

Solution:

  • ワークスペース内に.vscode/launch.jsonが存在し、設定が含まれていることを確認します。
  • ファイルが削除された場合は、コマンドパレットオプションPython Debugger: Debug using launch.jsonを使用してファイルを再生成します。

インタプリタが間違っている

問題:VS Codeでパッケージをインポートできません。または、Pythonのバージョンに関するエラーが表示されます。

Solution:

  • Python: Select Interpreterを実行し、task startによって作成された.venvインタプリタを選択します。
  • 環境を再構築した場合は、ウィンドウをリロードし(Developer: Reload Window)、インタプリタを選択し直します。
  • .vscode/launch.jsonpythonエントリーが、選択した.venv/bin/pythonパスを指していることを確認します。これにより、デバッガーが正しいランタイムで起動します。

環境変数がロードされていない

問題:デバッグ中に資格情報が見つからないため、エージェントが失敗します。

Solution:

  • リポジトリのルートに.envファイルが存在し、DATAROBOT_API_TOKENDATAROBOT_ENDPOINTが含まれていることを確認します。
  • launch.jsonenvFileエントリーが.envパスに一致することを確認します。

CLIがブレークポイントにヒットせずに終了する

問題:CLIコマンドは完了しますが、デバッガーが想定どおりに一時停止しません。

Solution:

  • CLIコマンドを起動する前に、デバッガが実行されていること(VS Codeの緑色のバー)を確認します。
  • ブレークポイントが赤で塗りつぶされ(白抜きではない)、選択したプロンプトに対して実行されるコード内にあることを確認します。
  • デバッガーを再起動した後、CLIコマンドを再実行します。開発サーバーは一度に1つのリクエストを処理します。

デバッガーがアタッチされていない

問題:VS Codeは起動しますが、サーバーバナーの表示やブレークポイントでの停止がありません。

Solution:

  • セッションを停止して再起動し、dev.pyが正常に再起動したことを確認します。
  • programcwdが同じエージェントディレクトリを参照していることを確認します。パスが一致しないと、VS Codeでは、コードの間違ったコピーがデバッグされます。
  • Debug Consoleで、依存関係がないことを示すスタックトレースの有無を調べ、必要に応じてtask startを再実行します。