Apidog CLIのHermes Agentでの使い方

AGENTS.mdファイルでHermes AgentにAPIテストのワークフローを教え込み、その後、Hermes Agentのターミナルツールが`apidog run`を実行し、その終了コードを読み取ります。また、Apidog MCPサーバーにも対応しています。

INEZA Felin-Michel

INEZA Felin-Michel

6 7月 2026

Apidog CLIのHermes Agentでの使い方

Apidog エンタープライズ

オンプレミスデプロイ

SSO & RBAC

SOC 2 準拠

Apidog Enterpriseを見る

Hermes Agentはターミナルから実行され、セッション間で学習したことを記憶し、実際のシェルコマンドを利用して作業を完了します。最後の部分が重要です。コマンドを実行できるのであれば、APIテストも実行できます。

これらを繋ぐランナーは、npmパッケージ apidog-cli であるApidog CLIです。Apidogで視覚的に構築したテストシナリオをターミナルから直接実行し、Hermesが対応できるステータスコードで終了します。このガイドでは、Hermesに特化した側面について説明します。つまり、コマンドを実行する terminal ツール、Hermesにワークフローを教えるコンテキストファイル、実行がそのループにどのように組み込まれるか、そしてHermesが作業中にAPI仕様を受け取るオプションのApidog MCPサーバーです。

CLIがまだインストールされていない場合は、AIコーディングエージェントを使用したApidog CLIのインストール方法から始めてください。これはエージェントがインストールと認証を行う手順を説明していますapidog --versionがバージョン番号を表示したら戻ってきてください。また、少なくとも1つの保存されたテストシナリオを含むApidogアカウントが必要です。アカウントをお持ちでない場合は、Apidogをダウンロードしてください。

ダウンロードボタン

「HermesでCLIを使用する」とは

Nous Researchによって構築されたHermes Agentは、ターミナルで実行され、AIモデルと対話し、組み込みツールを介して動作します。ここで重要なのは terminal ツールです。Hermesは、作業ディレクトリで terminal ツールを呼び出すことでシェルコマンドを実行し、その出力を推論に読み戻します。インストールするApidogプラグインはなく、必要ありません。HermesでApidog CLIを使用することは、次の3つのことを意味します。

  1. 一度Hermesにワークフローを教える。Hermesが起動時に読み込むコンテキストファイルにワークフローを書き込むことで、Hermesはコマンド、フラグ、および終了コードが信頼できる情報源であることを認識します。
  2. 他のコマンドと同様に、terminal ツールを介してHermesに apidog run を実行させる
  3. オプションでApidog MCPサーバーを接続する。これにより、Hermesはテストがチェックするコードを作成中にAPI仕様を読み取ることができます。

このコンテキストファイルこそが、一般的な「ターミナルを開いて入力する」ガイドではなく、Hermesに特化したものにする理由であり、一度きりの「テストを実行する」ことを、Hermesが自ら利用するものに変えます。

メカニズム: チャットのリマインダーではなくコンテキストファイル

Hermesはセッション開始時にプロジェクトコンテキストをロードします。そのコンテキストエンジンは、作業ディレクトリ内の CLAUDE.mdAGENTS.md を含む指示ファイルをスキャンし、それらをシステムプロンプトに注入します。これはClaude CodeやCodexが使用するのと同じ規約であるため、リポジトリにすでに AGENTS.md がある場合、Hermesもそれを読み取ります。

これが、CLIをチャットで言及するのではなく、コンテキストファイルに記述する理由です。セッションに入力されたシナリオIDはセッション終了とともに消えますが、AGENTS.mdにあるものは、今後すべてのチームメイトとすべてのHermes実行のために存在します。(Hermesは SOUL.md も読み取りますが、それはエージェントのペルソナ用であり、プロジェクト用ではありません。テスト指示は AGENTS.md に保持してください。)

ステップ1: コンテキストファイルにApidogブロックを追加する

リポジトリのルートにある AGENTS.md を開くか、作成し、CLIが存在すること、その実行方法、結果の読み取り方法をHermesに伝えるセクションを追加します。説明ではなく、実際のコマンドとIDを記述してください。

## Apidog CLIによるAPIテスト

このリポジトリは、Apidog CLI(`apidog-cli`、`apidog`コマンド)を使用してAPI
テストシナリオを実行します。シナリオは、このリポジトリではなく、Apidogプロジェクトに存在します。

APIハンドラ、ルート、またはレスポンスの形状を変更した場合、変更が完了したと
見なす前に、関連するApidogシナリオをterminalツールを通じて実行してください:

    apidog run -t 605067 -e 1629989 -n 1 -r cli

- `-t 605067` はチェックアウトフローのテストシナリオです。
- `-e 1629989` はステージング環境です。
- マシンは`apidog login`によって既に認証されているため、
  アクセストークンを渡したり、出力したりしないでください。

終了コードを信頼できる情報源として扱います:`0`はすべてのアサーションが成功したことを意味し、
非ゼロは失敗を意味します。非ゼロで終了した場合は、レポート内の失敗したアサーションを読み、
コードを修正してから再実行してください。非ゼロ終了の場合に成功を報告しないでください。

605067を実際のシナリオIDに、1629989をHermesが通常作業中にアクセスすべき環境(通常はステージングまたはローカル開発環境であり、決して本番環境ではない)に置き換えてください。正しいIDを取得するには、シナリオのCI/CDタブでApidogが生成する apidog run コマンドをコピーし(次のセクションで説明)、アクセストークンを削除してから貼り付けてください。これは、マシンがすでにログインしており、トークンがコミットされたファイルに属すべきではないためです。

このブロックが機能するには2つの点があります。コマンドを正確に指定するため、Hermesはフラグを推測しません。そして、合否ルールが平易な言葉で記述されているため、Hermesは終了コードが自身のサマリーよりも優先されることを認識します。これにより、最も一般的なエージェントの失敗、つまり赤い実行結果の上での自信に満ちた「テスト成功」を回避できます。

ステップ2: Apidogからコマンドを取得する

Hermesに何かを実行させる前に、正しく機能するコマンドを取得してください。Apidogでシナリオを開き、CI/CDタブに切り替えて、コマンドラインオプションを選択します。Apidogは、IDとアクセストークンがすでに記入された完全な apidog run コマンドを生成します。

apidog run --access-token YOUR_ACCESS_TOKEN -t 605067 -e 1629989 -n 1 -r cli

605067はシナリオID、1629989は環境IDです。これらは異なる場合があります。インストール時にCLIを認証済みであるため、--access-tokenの部分を削除し、IDは保持してください。これが、コンテキストファイルがHermesに指示したコマンドです。

ステップ3: Hermesにテストを実行させる

リポジトリでHermesを起動し、チェックを実行するように指示します。ブロックが配置されていれば、プロンプトは短くなります。

AGENTS.mdに記述されている通りに、Apidog APIテストシナリオを実行してください。私はすでに認証済みなので、アクセストークンは渡さないでください。apidog run -t 605067 -e 1629989 -n 1 -r cliを使用してください。完全な出力と終了コードを教えてください。

Hermesは terminal ツールを呼び出して作業ディレクトリでコマンドを実行し、-r cli レポーターはステップバイステップの結果をHermesのコンテキストにストリーム配信します。そこで、各リクエストとアサーションを監視できます。Hermesは承認レイヤーを介してコマンドをルーティングするため、設定によっては実行前にプロンプトが表示される場合があります。ステージング環境に対する読み取り専用のテストシナリオは、許可しても問題ない安全なワークスペース内コマンドの典型です。

あなたのチェック: サマリーではなく、終了コードを確認してください。apidog runは、すべてのアサーションがパスした場合に0で終了し、1つでも失敗した場合に非ゼロで終了します。この動作こそが、CIとHermesにとってこれがゲートとして機能する理由です。Hermesが「テストはパスしました」と言っても、終了コードが非ゼロだった場合は誤りです。コードを信頼してください。これはステップ1のブロックが防ぐ失敗です。

異なるレポート形式やより多くのイテレーションが必要な場合は、Hermesに apidog run --help を実行させて、実際のフラグリストを読み取らせてください。Apidog CLI完全ガイドには、htmljsonjunitレポーターを含むすべてのフラグが文書化されています。

ステップ4: Hermes自身のループ内でのテスト

重要なのは、あなたが指示するのをやめても、AGENTS.mdが指示した通りにHermesがシナリオを自律的に実行したときに何が起こるかです。チェックアウトレスポンスを構築するハンドラを編集する様子を想像してください。Hermesはコードを編集し、terminal ツールを介してステージング環境に対してApidogシナリオを実行し、終了コードを読み取り、それに基づいて行動します。緑色の場合は次に進みます。赤色の場合はレポートを開き、どのアサーションが失敗したか(ステータスコード、欠落しているフィールド、間違った値など)を読み取り、修正を試み、再実行します。APIテストは、すでにユニットテストを実行しているのと同じ編集-テスト-修正ループの一部となります。あなたは1つの指示を書き込んだだけで、Hermesはそれを既存の動作に組み込みました。

これは、エージェントのワークフローを安全にする「委任して検証する」モデルです。Hermesはコマンドを実行し、結果を読み取ります。あなたはApidogでシナリオを作成し続け、Hermesが終了コードを正直に読み取っているかを確認します。実行が遅い場合、大きなフォルダーの場合、またはイテレーション数が多い場合は、terminal ツールは background=true フラグを受け取るため、Hermesはスイープを開始し、作業を続け、ブロックせずに終了コードをポーリングできます。より広範なパターンについては、APIテストにAIエージェントを使用する方法およびApidog AIテストハーネスを参照してください。

オプション: Apidog MCPサーバーを接続する

CLIはHermesにテストを実行させますが、Apidog MCPサーバーはHermesがコードを書いている間にAPI仕様を読み取ることを可能にします。この2つは連携します。MCPはHermesにスキーマを提供し、契約に一致するコードを生成させ、CLIはそのコードを実際のシナリオに対して検証します。

HermesはModel Context Protocolをすぐにサポートしています。~/.hermes/config.yamlを編集し、mcp_serversセクションの下にエントリを追加します。Apidogのようなローカルのstdioサーバーの場合、それはcommandargs配列、および任意のenv値です。

mcp_servers:
  apidog:
    command: "npx"
    args: ["-y", "apidog-mcp-server@latest", "--project=YOUR_PROJECT_ID"]
    env:
      APIDOG_ACCESS_TOKEN: "YOUR_ACCESS_TOKEN"

保存後、Hermes内で/reload-mcpを実行するか、Hermesを再起動してください。Hermesは起動時にMCPサーバーを検出し、そのツールを通常のレジストリにmcp_apidog_<tool>として名前空間付きで登録するため、エージェントは通常の推論中にそれらを利用します。プロジェクトIDとトークンを含む完全なセットアップについては、Apidog MCPサーバーガイドを参照してください。このループのパッケージ化されたバージョンについては、Claude SkillsとApidog CLIガイドを参照してください。

ローカルループからCIへ

Hermesがローカルでシナリオを実行し、終了コードに基づいて行動したら、パイプラインが使用する正確なコマンドが検証されたことになります。CIへの移行は簡単です。同じ apidog run ですが、トークンは保存されたログインではなくマスクされたシークレットとして渡されます。Hermesはコンテキストファイルからコマンドを知っているので、ステップを作成するようにHermesに依頼してください。

apidog-cliをインストールし、リポジトリシークレットAPIDOG_ACCESS_TOKENからアクセストークンを読み取ってapidog run -t 605067 -e 1629989 -r junitを実行するGitHub Actionsステップを記述してください。

このステップの仕組み(シークレット、レポーター、終了コードゲート)は、GitHub ActionsでのApidog CLIに記載されています。同じコマンドが、あなたのターミナル、Hermesのループ、そしてCIの3か所で、すべて1つの終了コードに基づいて実行されます。

よくある落とし穴

Hermesがコンテキストブロックを無視する。 もし一般的なコマンドを実行したり、まったくコマンドを実行しなかったりする場合は、ファイル名が正確に AGENTS.md (または CLAUDE.md )であり、Hermesが起動したディレクトリに存在することを確認してください。セッションを再起動すると、強制的に再読み込みが行われます。

コマンドを実行する代わりに提案するだけ。 Hermesは、承認レイヤーを介して terminal ツールでコマンドを実行します。待機中の実行を承認してください。設定でターミナルコマンドが拒否されている場合は、apidog run の権限を緩和してください。

apidog whoami が認証されていないと表示される。 ログイン情報はHermesではなく、あなたのマシンに保存されます。新しいトークンで apidog login --with-token を自分で実行し、その後Hermesに apidog whoami で確認するよう依頼してください。トークンはチャットに出力しないでください。

フラグをでっち上げる。 「不明なオプション」エラーは、Hermesがあなたのバージョンには存在しないフラグを推測したことを意味します。apidog run --help を実行させ、実際のフラグをコピーさせてください。

失敗した実行をパスとして報告する。 これは最も費用のかかる問題であり、終了コードのルールが AGENTS.md と手動チェックの両方にある理由です。サマリーと終了コードが一致しない場合、コードが優先されます。

まとめ

Hermesのセットアップは、1つのファイルと1つの習慣で構成されます。コマンド、認証元、終了コードルールを固定する AGENTS.md ブロックと、Hermesに terminal ツールを介して apidog run を実行させ、自分で終了コードを確認する習慣です。~/.hermes/config.yaml を介してApidog MCPサーバーを追加すれば、Hermesはコード作成中に仕様を読み取ることもできます。

あなたはApidogで視覚的にシナリオを作成し続けます。Hermesはそれらを実行するだけです。ここから、GitHub ActionsのApidog CLIを使用してパイプラインに同じコマンドを向けたり、完全ガイドで完全なフラグリファレンスを読んだりできます。

よくある質問

Apidog CLIを使用するためにHermesプラグインは必要ですか?

いいえ。Hermesは terminal ツールを介してシェルコマンドを実行するため、apidog run を直接呼び出します。Hermesに固有のセットアップは、AGENTS.md ブロックとオプションのMCPサーバーだけです。

Hermesにワークフローを教える指示はどこに置けばよいですか?

Hermesが起動時にロードするコンテキストファイルに置きます。そのコンテキストエンジンは、作業ディレクトリで AGENTS.mdCLAUDE.md のようなファイルをスキャンし、それらをシステムプロンプトに注入します。Apidogブロックをリポジトリルートの AGENTS.md に配置すると、そのリポジトリ内のすべてのセッションがそれを読み取ります。

Hermesがテスト成功を偽装しないようにするにはどうすればよいですか?

サマリーだけでなく、終了コードを報告させ、そのコードを自分で確認してください。apidog run は、すべてのアサーションがパスした場合にのみ 0 で終了します。テキストとコードが食い違う場合は、コードを信頼してください。

Apidog MCPサーバーをHermesに接続するにはどうすればよいですか?

~/.hermes/config.yamlapidog-mcp-server コマンドとプロジェクトIDを含む mcp_servers エントリを追加し、その後 /reload-mcp を実行するかHermesを再起動してください。Hermesは起動時にサーバーを検出し、そのツールを登録します。Apidog MCPサーバーガイドにプロジェクトIDとトークンについて記載されています。

これは他のAIコーディングエージェントでも同じように機能しますか?

CLIはどこでも同じですが、エージェントに教える方法だけが異なります。Hermesは AGENTS.md を読み込み、terminal ツールを介してコマンドを実行します。他のエージェントは独自の指示ファイルを使用します。インストールと認証は同じなので、インストールガイドはどのエージェントにも適用されます。

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる