OpenClawはループです。ワークスペースを読み込み、execツールを通じてシェルコマンドを実行し、その出力を読み取って次のアクションを決定します。では、なぜAPIテストがそのループに含まれていないのでしょうか?APIテストはGUIの背後にあるApidogに置かれ、誰かがクリックすることを覚えていれば実行されます。あなたのエージェントはそれに触れることはありません。
解決策は1つの設定ブロックです。Apidog CLIはnpmパッケージであるapidog-cliで、Apidogで作成したテストシナリオをターミナルから直接実行できます。CLIがインストールされ、OpenClawがその存在を認識すると、エージェントはユニットテストを実行するのと同じ方法でApidogシナリオを実行します。コマンドを発行し、終了コードを読み取り、赤(失敗)であればコードを修正します。
このガイドでは、一般的なインストールガイドでは省略されているOpenClaw固有の部分について説明します。エージェントがApidogルールを保持するためにどこに配置するか、OpenClawのexecツールが実際にapidog runをどのように実行するか、そして結果をどのように読み取るかです。
CLIをまだインストールしていない場合は、まずそれを行ってください。AIコーディングエージェントでApidog CLIをインストールする方法では、npmインストール、認証、および最初の実行について説明しています。この記事は、apidog --versionが数値を出力し、Apidogアカウントにサインインしていることを前提としています。
ここで対象とするOpenClaw
OpenClawは、あなたのマシンで動作するオープンソースのローカルファーストAIエージェントです。ワークスペース、スキルセット、そして実際のシェルコマンドを実行するexecツールを備えています。コード補完プラグインやホスト型チャットボットではありません。もしあなたがopenclawをローカルで実行し、ファイル編集やコマンド実行を観察したことがあるなら、あなたは正しい場所にいます。より広範な設定については、コマンドを渡す前にOpenClaw開発ワークフロー自動化および安全なOpenClawインストールのガイドを参照してください。
この区別が重要であるのは、OpenClawがワークスペースファイルからプロジェクトルールを学習し、そのメカニズムが一度きりの「テストを実行する」という指示を、OpenClawが自ら行うものに変えるからです。そのメカニズムこそがAGENTS.mdです。
ステップ1: ApidogルールをAGENTS.mdに追加する
OpenClawはワークスペースファイルを常設の指示として読み込み、それらをエージェントのコンテキストに注入します。あなたが必要とするのはAGENTS.mdで、これはエージェントに何をどうすべきかを伝える手続き的なルールブックです。Claude CodeにおけるCLAUDE.mdのようなものだと考えてください。OpenClawはワークスペースにコピーするデフォルトテンプレートも提供しており、同じ階層にあるCLAUDE.mdのシンボリックリンクも同じファイルとして扱います。ワークスペースはデフォルトで~/.openclaw/workspaceですが、agents.list[].workspaceを使ってエージェントをプロジェクトディレクトリに向けることができ、OpenClawはサブディレクトリごとのスコープ付きAGENTS.mdファイルをサポートしています(OpenClawのAGENTS.mdリファレンスを参照)。
あなたのAGENTS.mdに短いブロックを追加してください。
## API testing with Apidog
- APIテストを実行するには、Apidog CLIを使用します: `apidog run -t <scenario_id> -e <env_id> -r cli`。
- 終了コード0はすべてのアサーションが成功したことを意味します。0以外は何かが失敗したことを意味します。これを合否のゲートとして扱ってください。
- マシンは`apidog login`で既に認証されています。`--access-token`フラグを追加したり、このファイルにトークンを置いたりしないでください。
- 見慣れないフラグがある場合は、推測する代わりに`apidog run --help`を実行してください。
これが、チャットで言及するのではなく、CLIをAGENTS.mdに記述する理由です。セッションに入力されたシナリオIDはセッションが終了すると消えてしまいますが、AGENTS.mdにあるものは、今後すべてのチームメイトとすべてのOpenClawの実行のために存在します。
ステップ2: Apidogからコマンドを取得する
シナリオIDを手で記述する必要はありません。Apidogでテストシナリオを開き、CI/CDタブに移動して生成されたコマンドをコピーしてください。それは次のようになります。
apidog run -t 1234567 -e 890123 -r cli
-tはテストシナリオ、-eは環境、そして-r cliはレポーターです。OpenClawが常に正しい環境に対して正しいシナリオを呼び出すように、ステップ1のAGENTS.mdブロックに実際のIDを貼り付けてください。もし調整したい場合は、Apidog CLI完全ガイドとapidog runコマンドリファレンスで全てのフラグが説明されています。
ステップ3: エージェントにテストを実行させる
ブロックが配置されたら、プロジェクトに対してOpenClawを開始し、APIに影響する変更を加えるか、単にチェックの実行を依頼してください。AGENTS.mdが既にコンテキストにあるため、エージェントはCLIの存在を知っており、execツールを通じてapidog runコマンドを発行します。
execツールはワークスペースでシェルコマンドを実行し、OpenClawはこれをパーミッションモードで制御します。モードにはdeny、allowlist、ask、auto、fullがあります(OpenClawのパーミッションモードのページで文書化されています)。コーディングエージェントの場合、autoが適切な設定です。許可リストにあるコマンドはプロンプトなしで実行され、それ以外のものはあなたに尋ねる前にレビューを通ります。もしあなたのモードがaskであれば、OpenClawはapidog runを実行する前に一時停止して承認を求めます。一度承認するか、コマンドを許可リストに追加して、ステージングに対する読み取り専用テストが自動的に実行されるようにしてください。モードはopenclaw.jsonのtools.execの下で設定します。
ステップ4: OpenClaw内でレポートを読み取る
-r cliレポーターは、各リクエスト、各アサーション、および期待値と実際値で何が失敗したかという段階的な結果をターミナルに表示します。このインラインの内訳こそが、OpenClawが次のステップを決定するために読み取るものなので、リストにcliを残しておいてください。
ブラウザで開いたり、チームメイトに渡したりできるレポートが必要な場合は、HTMLレポーターを追加してください。
apidog run -t 1234567 -e 890123 -r cli,html
htmlレポーターは、自己完結型のファイルを./apidog-reportsに書き込みます。OpenClawが引き続きインライン出力を取得できるように、cliと併用してください。CIダッシュボードが解析するJUnit形式やその他のすべてのレポーターについては、Apidog CLIテストレポートガイドを参照してください。
OpenClaw自身のループ内でのテスト
重要なのは、あなたが尋ねるのをやめ、OpenClawがAGENTS.mdの指示に従ってシナリオを独自に実行するようになるということです。
OpenClawがチェックアウト応答を構築するハンドラーを編集している場面を想像してください。そのループは変化します。コードを編集した後、成功を宣言する代わりに、ステージングに対してApidogシナリオを実行し、終了コードを読み取り、それに基づいて行動します。グリーン(成功)なら次に進みます。レッド(失敗)なら、レポートを開いてどのアサーションが失敗したか(ステータスコード、欠落しているフィールド、間違った値など)を読み取り、修正を試みて再実行します。APIテストは、OpenClawがすでにユニットテストを実行しているのと同じ編集-テスト-修正ループの一部になります。あなたは一つの指示を書いただけで、エージェントはそのコマンドを既存の動作に組み込んだのです。
これは、エージェントのワークフローを安全にする「委任して検証する」モデルです。OpenClawがコマンドを実行し、結果を読み取ります。あなたはApidogで視覚的にシナリオを作成し続け、エージェントが終了コードを正直に読み取っているかを抜き打ちで確認します。より広範なパターンについては、APIテストにAIエージェントを使用する方法とApidog AIテストハーネスを参照してください。
OpenClawが実際にCLIを実行しているかを確認する
エージェントは、実際には達成していない成功を報告することがありますが、OpenClawも例外ではありません。問題を発見する頻度が高い順に3つのチェックがあります。
まず、コマンドが実際に実行されたかどうかを確認します。OpenClawのトランスクリプトには、実行されたexecコマンドとその出力が表示されます。apidog run ...という文字通りの行と、その下の結果を探してください。もしOpenClawがテストを実行したと言っているのにコマンドが見当たらない場合、それは実行していないことを要約しただけです。再度実行させ、生出力を表示するように依頼してください。
次に、重要な終了コードを確認します。直接尋ねてください。
そのapidog runコマンドの終了コードは何でしたか?
apidog runは、すべてのアサーションが成功した場合に0で終了し、何かが失敗した場合は0以外の値で終了します。この単一の動作により、OpenClawやパイプラインは実行を明確なゲートとして扱うことができます。「テスト合格」と記述されていても終了コードが0以外の場合、終了コードが正しいです。
第三に、それが実際のシナリオを使用したことを確認します。実行が「scenario not found」で失敗した場合、OpenClawがIDをでっち上げたか、誤って記憶している可能性があります。-tと-eの値をAGENTS.mdと、ApidogのCI/CDタブで生成されたコマンドと再照合してください。AGENTS.md内のIDが真実です。
オプション: Apidog MCPサーバーを接続する
execツールを通じてapidog runを実行すれば、ほとんどのニーズをカバーできます。さらに一歩進んだ方法が、モデルコンテキストプロトコル(MCP)です。
OpenClawはMCPサーバーをサポートしています。openclaw mcp add <name>で追加すると、~/.openclaw/openclaw.jsonのmcp.serversの下にサーバー定義が書き込まれ、--commandや--argのようなstdioフラグを受け入れます(OpenClawのMCPドキュメントを参照)。Apidog MCPサーバーは、MCPを介してあなたのAPI仕様を公開するため、OpenClawはコード作成後だけでなく、コードを書いている最中にスキーマを読み取ることができます。役割分担は明確です。CLIがテストを実行し、MCPがエージェントに仕様を供給します。
OpenClawが間違った場合
セットアップ中によく発生するいくつかの失敗があります。
AGENTS.mdブロックが無視される。もしOpenClawが一般的なコマンドを実行したり、何も実行しなかったりする場合、ファイルがコンテキストに読み込まれていない可能性があります。ブロックがエージェントのアクティブなワークスペースに属するAGENTS.md内に存在することを確認し、OpenClawがディレクトリごとにスコープ付きAGENTS.mdファイルをたどるため、間違ったサブツリーに埋もれたルールはスキップされることを覚えておいてください。セッションを再起動すると、新しい読み込みが強制されます。
execがブロックされているため、何も実行されない。OpenClawのデフォルトポリシーが厳格化されて以来、execは拒否されるか、許可リストの背後に保持される場合があります。もしapidog runが黙ってスキップされる場合、tools.execの下にあるパーミッションモードを確認し、autoに切り替えるか、apidogを許可リストに追加してください。すべてを開放せずにこのコマンドだけを開放する方法については、安全なOpenClawインストールガイドを参照してください。
アクセストークンを渡してしまう。もしOpenClawが--access-tokenを追加しようとする場合、それは公開されている例から推測しているだけです。マシンはapidog loginを介して認証済みであるため、ブロックにはそうしないようすでに指示されています。その行を強調し、AGENTS.mdに実際のトークンを絶対に入れないでください。正しいパターンについては、Apidog CLI認証を参照してください。
フラグをでっち上げる。「不明なオプション」エラーは、OpenClawがあなたのバージョンには存在しないフラグを推測したことを意味します。apidog run --helpを実行させ、そこから正確なフラグをコピーするように指示してください。それはあなたのインストールされているバージョンにとって常に正しいものです。
失敗した実行を合格と報告する。これが最もコストのかかる問題であり、AGENTS.mdに終了コードのルールと検証ステップが含まれている理由です。概要と終了コードが一致しない場合、終了コードが優先されます。もし他のエージェントでこれを使用した場合でも、同じルールが適用されます。このアプローチは、CodexにおけるApidog CLIと、Claude CodeとOpenClawの違いで説明されているものと類似しています。
日常的なエージェントからテスト済みループへ
これがセットアップです。インストールガイドに従って一度apidog-cliをインストールし、ワークスペースのAGENTS.mdに短いApidogブロックを追加し、コマンドが実行できるようにexecパーミッションモードを設定すれば、OpenClawはすでにコード編集に使用しているのと同じループ内でAPIテストを実行し、結果を読み取る方法を知るようになります。壊れたエンドポイントは、OpenClawが変更作業中に捕捉され、デプロイ後に発見されることはありません。
GUIの背後にあるテストは人間がクリックしたときに実行されますが、OpenClawが決定したときはいつでも一行コマンドが実行されます。あなたはApidogで視覚的にシナリオを構築し続け、エージェントはあなたが見ていない場所でそれらを実行します。Apidogをダウンロードし、1つのシナリオを構築し、そのapidog runコマンドをAGENTS.mdに配置して、次の変更でOpenClawがそれを検知するのを見てください。エージェントが不在のパイプラインで同じゲートが必要な場合は、GitHub ActionsにおけるApidog CLIがシークレット、レポーター、および終了コードによるゲートについて説明しています。
