CopilotKit/aimock
Mock everything your AI app talks to — LLM APIs, MCP, A2A, AG-UI, vector DBs, search. One package, one port, zero dependencies.
aimock – AIアプリケーションテストのためのモックインフラストラクチャ
概要
- 外部依存関係ゼロのNode専用ライブラリ。単一のポートでローカルHTTPサーバーを実行し、コードから呼び出す可能性のある主要なLLM、画像/動画/音声、ベクトルストア、AIエージェントサービスをすべてシミュレートします。
- 使用しているSDK(OpenAI、Anthropic、Gemini、Bedrock、Ollamaなど)のベースURLをモックに向けることで、アプリケーションは決定論的なレスポンスを受け取ります。ネットワーク呼び出しやAPIキーは不要で、予期せぬ課金も発生しません。
重要性
- AI拡張アプリケーションのユニットテストおよび統合テストを信頼性が高く高速なものにします。
- レコード&リプレイをサポート:実際のAPIを一度プロキシし、正確なJSONフィクスチャ(トークン使用量、タイミング、ストリーミング順序を含む)を保存すれば、永続的にリプレイ可能です。
- 豊富なテスト用ノブを提供:カオス注入、モデルの誤動作シミュレーション、厳密モードマッチング、リクエストごとのコンテキストルーティングなどにより、エラー処理、レート制限の再試行、エッジケースの動作を検証できます。
主要コンポーネント
| コンポーネント | モック対象 |
|---|---|
| LLMock | 11のプロバイダー(OpenAI、Claude、Gemini、Bedrock、Azure、Vertex、Ollama、Cohere、OpenRouter、BytePlus、ElevenLabsなど)のチャット、埋め込み、リアルタイム、動画、画像、TTS、文字起こし、モデレーション |
| MCPMock | Copilot‑KitのMCPツール実行プロトコル |
| A2AMock | エージェント間ストリーミングプロトコル (SSE) |
| AGUIMock | フロントエンドテスト用のエージェント対UIイベントストリーム |
| VectorMock | Pinecone、Qdrant、ChromaDB互換のベクトルストアエンドポイント |
| Services | 検索 (Tavily)、リランク (Cohere)、モデレーション (OpenAI) |
主な機能(READMEより)
- レコード&リプレイ:タイミングを考慮した再生と、トークン使用量/コストのキャプチャ。
- マルチターン会話:ターンインデックス、ツール呼び出し、システムメッセージ、またはカスタム述語に基づいてマッチング可能なフィクスチャ。
- カオスエンジニアリング:500エラー、不正なJSON、切断、レート制限レスポンス、または人工的な遅延の注入。
- モデルの誤動作:多くのプロバイダーの「ワイヤー」全体で、無効な引数、スキーマ違反、拒否、コンテンツフィルターブロックなどを強制。
- ストリーミング物理特性:Time-to-First-Token (TTFT)、トークン毎秒、ジッター、ストリーミング使用チャンクの設定。
- WebSocketサポート:OpenAI Realtime、Responses、Gemini Liveに対応。
- メトリクス:Prometheus経由のメトリクス、CI/CD用Docker/Helmイメージ、およびゼロコンフィグテストライフサイクル用のVitest/Jestプラグイン (
useAimock())。 - フィクスチャ管理:コンテキストベースのルーティング、厳密モードのオーバーライド、リクエストジャーナル、OpenAPIカタログ、ドリフト検出CIチェック。
一般的な使用方法
npm install @copilotkit/aimock
import { LLMock } from "@copilotkit/aimock";
const mock = new LLMock({ port: 0 });
mock.onMessage("hello", { content: "Hi there!" });
await mock.start();
process.env.OPENAI_BASE_URL = `${mock.url}/v1`;
process.env.OPENAI_API_KEY = "mock"; // SDKで必須
// テストスイートを実行 …
await mock.stop();
CLIを使用してスイート全体を実行することも可能です:
npx @copilotkit/aimock --config aimock.json # すべてのモックを1つのポートで実行
または、GitHub Actionを使用してCIでサーバーを立ち上げ、テストをそこに向けることもできます。
対象ユーザー
- クラウドコストをかけずに、高速で再現性のあるテストが必要なAI駆動製品の開発者。
- エラー処理、レート制限のバックオフ、またはカスタムツール呼び出しロジックを検証したいチーム。
- 実際のAPIインタラクションを一度キャプチャし、オフライン開発のために決定論的にリプレイする必要があるすべての方。
上記の内容はすべてリポジトリのREADMEから直接引用したものであり、追加の機能は推測していません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト