Back to all posts

急速に変化するAPIに対してAIエージェントスキルを自動テストする方法

vm0-ai/vm0-skillsリポジトリでは、さまざまなサードパーティSaaSプラットフォームとの統合のために数十のスキルを開発してきました。これらのスキルにより、Claude CodeとCodexエージェントは、GitHub、Slack、Discordなど多くのサービスとシームレスに連携できます。

これらの統合は非常に価値がありますが、重要なテストの課題を提示します。適切なテストインフラストラクチャがなければ、スキルが期待通りに機能するかを確実に検証したり、サードパーティAPIが進化した際の破壊的変更を検出したりすることができません。

サードパーティAIエージェントスキルのテストが難しい理由

サードパーティ統合のテストは本質的に困難です。各スキルは予告なく変更される可能性のある外部APIに依存しており、信頼性を維持するために常に警戒が必要です。従来のユニットテストは、実際のAPI動作、認証フロー、本番環境でのみ発生するエッジケースを再現できないため、不十分であることがよくあります。

包括的なテストがなければ、いくつかの重要な問題が未解決のままになります。

  • 機能検証: 実際の使用シナリオでスキルが意図通りに機能することを確認できません
  • 破壊的変更の検出: サードパーティSaaS APIが進化した際、互換性の問題を自動的に特定する方法がありません
  • 認証検証: OAuthフロー、トークン更新メカニズム、権限スコープには継続的な検証が必要です
  • エラーハンドリング: 外部サービスが利用できない場合に、適切な機能低下を保証する必要があります

これにより、大きなメンテナンス負担と、本番ワークフローに影響を与える可能性のある信頼性の問題が発生します。

AIエージェントを使用して実環境でAIエージェントスキルをテストする

これらのスキルはClaude CodeとCodexエージェント専用に設計されているため、最も自然で効果的なアプローチは、これらの同じエージェントを使用してテストすることです。これにより、ツールが意図された環境で自身をテストする自己検証エコシステムが作成されます。

VM0は、Claude CodeとCodexエージェントを確実に実行するために必要なクラウドインフラストラクチャを提供し、このテスト戦略を実装するための理想的なプラットフォームとなっています。

AIエージェントスキルをテストするためのエンドツーエンドの自動化ワークフロー

自動化されたスキルテストの完全なワークフローを以下に説明します。このエージェントは、リポジトリ内のすべてのスキルを体系的にテストし、包括的なレポートを生成し、複数のチャネルを通じてチームに通知します。

# スキルテスターエージェント

## 概要

このエージェントは、vm0-skillsリポジトリ内のすべてのスキルの自動テストを実行します。

## 重要な要件

**必須: すべてのテストを例外なく完了させる**

- タスクにどれだけ時間がかかっても、完全に完了させる必要があります
- `TODO.md`内のすべての項目がテストされるまで継続 - 早期終了なし
- **タスクのスキップ禁止** - すべてのスキルをテストする必要があります
- **選択的テスト禁止** - どのスキルをテストするかを選択しない
- **すべての例に結果が必要** - 各スキルのSKILL.md内の各サンプルコマンドを実行し記録する必要があります
- テストが失敗した場合は、失敗を記録して次のテストに進みます
- テストスイート全体が完了するまで停止または一時停止しません

## 手順

1. **クローンと初期化**
   - リポジトリ`vm0-ai/vm0-skills`をクローンします
   - テスト進捗を追跡するために`TODO.md`ファイルを作成します

2. **Todoリストの生成**
   - リポジトリ内の各スキルフォルダーに対して、`TODO.md`にTodo項目を追加します

3. **各スキルをテスト**
   - テストする各スキルのサブエージェントを作成します
   - 各サブエージェントは以下を実行する必要があります:
     - すべての必要な環境変数が存在することを確認
     - スキルのSKILL.md内の各サンプルコマンドをテスト
     - 一時的なテスト結果マークダウンファイルを作成
     - テストが成功したかどうかを記録し、特にシェルコマンドの失敗やjqパースエラーを記録

4. **結果のサマリー**
   - すべてのテスト結果を`result.md`に集約します

5. **READMEの更新**
   - `result.md`に基づいて`README.md`を更新します
   - スキルリストセクションを更新または挿入し、以下を含めます:
     - 各スキルの機能の簡単な説明
     - テストステータス(成功/失敗)

6. **コミットとプッシュ**
   - `README.md`のみをコミットします
   - 認証に`GITHUB_TOKEN`を使用してリポジトリにプッシュします

7. **問題の報告**
   - テストに失敗したスキルについては、すべての問題を要約するGitHub Issueを作成します

8. **Slack通知**
   - Slackチャネル`#dev`に以下の内容のメッセージを投稿します:
     - スキルの総数
     - 成功したテストの数
     - 失敗したテストの数
     - 問題の簡単な要約
     - GitHub Issueへのリンク(作成された場合)

9. **Discord通知**
   - Discordの`skills`チャネルに以下の内容のメッセージを投稿します:
     - ルーチンテストが完了したことの確認
     - 成功したスキルの数
     - テストされたスキルの総数

vm0.yamlでエージェントを設定する

次に、このワークフローを実行するようにVM0をスケジュールするだけです。エージェントコンテナの設定を記述するvm0.yamlファイルを作成します。このファイルは、エージェントが必要とするスキル、注入する環境変数、テストワークフローの実行方法を指定します。

version: "1.0"

agents:
  skills-tester:
    image: skills-tester:latest
    provider: claude-code
    instructions: AGENTS.md
    skills:
      - https://github.com/vm0-ai/vm0-skills/tree/main/github
      - https://github.com/vm0-ai/vm0-skills/tree/main/slack
      - https://github.com/vm0-ai/vm0-skills/tree/main/discord
    environment:
      CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
      DISCORD_BOT_TOKEN: ${{ secrets.DISCORD_BOT_TOKEN }}
      # ... 必要に応じて追加の環境変数

完全な設定ファイルについては、vm0-skills/.vm0/vm0.yamlを参照してください。この例では、簡潔にするために一部の環境変数が省略されています。

このエージェント設定には、3つの重要なスキルが含まれています。

  • GitHubスキル: リポジトリ操作、Issue作成、README更新用
  • Slackスキル: チームチャネルへのテスト結果の投稿用
  • Discordスキル: テスト完了に関するコミュニティ通知用

Dockerイメージの作成

また、必要な依存関係、特にエージェントがリポジトリ操作に使用するGitHub CLI(gh)をインストールするDockerイメージを設定する必要があります。

Dockerfileを作成します:

FROM node:20-slim

RUN apt-get update && apt-get install -y \\
    git \\
    curl \\
    python3 \\
    python3-pip \\
    python3-venv \\
    jq \\
    && rm -rf /var/lib/apt/lists/*

RUN curl -fsSL <https://cli.github.com/packages/githubcli-archive-keyring.gpg> | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \\
    && chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \\
    && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] <https://cli.github.com/packages> stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \\
    && apt-get update \\
    && apt-get install -y gh \\
    && rm -rf /var/lib/apt/lists/*

RUN npm install -g @anthropic-ai/claude-code

このDockerfileは、以下を含む軽量なコンテナを作成します。

  • Node.js 20: Claude Codeのランタイム環境
  • Git: バージョン管理操作
  • GitHub CLI: GitHub APIとの効率的な対話
  • Python 3: スキルテストスクリプトの実行用
  • jq: シェルコマンドでのJSON解析

AIスキルテストシステムの構築

これで必要なものがすべて揃いました!これら3つのファイル(AGENTS.mdDockerfilevm0.yaml)があれば、完全な自動テストシステムが完成します。完全な実装はvm0-skills/.vm0で確認できます。

プロジェクトディレクトリで以下のコマンドを実行して、エージェントをビルドしてデプロイします。

$ vm0 image build -f Dockerfile --name skills-tester
$ vm0 compose vm0.yaml

最初のコマンドは、必要なすべての依存関係を含むDockerイメージをビルドします。2番目のコマンドは、エージェント設定をVM0のプラットフォームに登録します。

ワークフローの実行

これで、単一のコマンドでテストワークフロー全体を実行できます。

$ vm0 run skills-tester "do the job"

エージェントは自律的に以下を実行します。

  1. vm0-skillsリポジトリをクローン
  2. すべてのスキルのテストチェックリストを生成
  3. 各スキルのテストを体系的に実行
  4. 包括的な結果をコンパイル
  5. リポジトリのREADMEを更新
  6. 失敗のGitHub Issueを作成
  7. SlackとDiscordに通知を送信

ステップバイステップのデバッグ

ワークフローを段階的にデバッグしたい場合や、最初に単一のスキルをテストしたい場合は、ターゲットを絞ったプロンプトを使用できます。

$ vm0 run skills-tester "Only do the first step, using a single skill."

エージェントが最初のステップを完了した後、出力に表示されたセッションIDに基づいてセッションを続行できます。

$ vm0 run continue SESSION_ID "Do the next step."

この対話型アプローチにより、以下が可能になります。

  • 進む前に各ステップを確認
  • 中間結果を検査
  • 必要に応じてワークフローを調整
  • より効果的に問題をデバッグ

結果と通知

ワークフローが完了すると、テスト結果を確認する複数のチャネルで通知を受け取ります。

discord-test-notification.png テスト完了の概要を示すDiscordコミュニティ通知

slack-test-notification.png 詳細なテスト結果を含むSlackチーム通知

テストに失敗したスキルについては、エージェントが包括的な失敗の詳細を含むGitHub Issueを自動的に作成します。生成されたIssue形式の例については、Skill Test Failures - Issue #2を参照してください。

AIエージェントスキルテストの自動化から得られる重要な教訓

VM0エージェントを使用した自動スキルテストの実装は、いくつかの重要な利点を提供します。

  • 継続的な検証: サードパーティAPIからの破壊的変更を本番環境に影響を与える前に即座にキャッチ
  • 現実的なテスト環境: エージェントは、使用される正確なコンテキストでスキルをテストし、テストと本番環境の間のギャップを排除
  • 手動作業ゼロ: 一度設定すると、テストワークフローはスケジュールに従って自動的に実行され、人間の介入は不要
  • 包括的なカバレッジ: すべてのスキルが体系的にテストされ、何も見落とされないことを保証
  • チームの認識: マルチチャネル通知により、すべてのメンバーがテスト結果と問題について情報を得られます

VM0のクラウドインフラストラクチャとClaudeのエージェント機能を活用することで、継続的なメンテナンス負担を最小限に抑えながら、外部サービスとの信頼性の高い統合を維持できます。このアプローチは、スキルテストを手動でエラーが発生しやすいプロセスから、完全に自動化された品質保証システムに変革します。

今すぐVM0を始めましょう

AIエージェントで独自のワークフローを自動化する準備はできていますか?VM0を使用すれば、数週間ではなく数分で本番環境対応のエージェントを簡単にデプロイできます。

VM0で構築できるもの

  • 自動テストパイプライン

    このスキルテスターのような定期的なテストジョブを実行して、サードパーティAPIの破壊的変更を早期にキャッチします。

  • コンテンツ生成ワークフロー

    リサーチ、メモ、または生の入力を、手動でコピー&ペーストすることなく、ブログ投稿、ドキュメント、またはリリースノートに変換します。

  • データ処理エージェント

    複数のソースからデータを取得し、クリーンアップして下流に移動させながら、失敗と再試行を明示的に処理します。

  • カスタマーサポートの自動化

    受信リクエストをトリアージし、返信を下書きし、必要に応じてエッジケースを人間に引き渡します。

  • コードレビューと分析

    プルリクエストをレビューし、潜在的な問題にフラグを立て、人間がコードを確認する前に基本的なルールを適用します。

vm0.aiにアクセスして、無料アカウントを作成し、今すぐ最初のエージェントをデプロイしましょう。Discordコミュニティに参加して、他のビルダーとつながり、ワークフローを共有し、チームからサポートを受けましょう。

自動化されたワークフローの未来を構築し始めましょう。

Stay in the loop

// Get the latest insights on AI teammates and collaboration.

SubscribeJoin Discord