evalview-mcp について
evalview-mcp は、AI エージェント向けのスナップショットテストツールです。ツール呼び出し、その順序、出力を含む現在の動作を記録し、変更後に基準から逸脱した場合に通知します。LangGraph、CrewAI、OpenAI、Claude などを使うチームを対象とし、マージ前のリグレッションゲートとして利用できます。
主な機能
- 01エージェント動作のスナップショット基準の記録
- 02ツール呼び出しの全体的な軌跡と順序の比較
- 03API キー不要のオフラインでのツール差分確認
- 04出力品質採点のためのオプションの LLM 判定
- 05PR コメントと合否ゲートによる CI 連携
- 06Python ライブラリのインターフェース
活用シーン
- 01モデルやプロンプト変更後のエージェント動作の確認
- 02CI でリグレッションを起こす Pull Request のブロック
- 03HTTP 経由で公開されたエージェント出力の比較
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
AI エージェント向けのスナップショットテスト。
今日エージェントが行ったことを記録します。動作がひそかに変わったときに通知します。
エージェントは 200 を返し、問題なさそうに見えます。しかし、モデルの更新、プロバイダーの変更、あるいはプロンプトの一行編集によって、確認を省略したり、誤ったツールを呼び出したり、出力品質をひそかに低下させたりすることがあります。テストは依然として成功します。変化に気づくのは、あなたより先にユーザーです。
EvalView は、エージェントの動作(呼び出すツール、その順序、出力内容)をスナップショットとして記録し、動作が変わった瞬間に通知します。 Jest のスナップショットのようなものですが、ツール呼び出しや複数ターンのエージェント向けです。
↑ 30 秒のライブデモ — API キーは不要です
クイックスタート
OpenAI アダプターの移行: OpenAI は Assistants API を 2026 年 8 月 26 日 に終了しました。 公開済みの最新 EvalView リリースである 0.8.1 は、現在もこの API を使用しています。Responses API への移行は、現在 未リリースのソースコード です。
openai-assistantsを使用している場合は、 テストを実行する前に移行ガイドに従ってください。assistant_idだけでは、エージェントの設定を維持できません。他のアダプターには影響しません。
pip install evalview
evalview snapshot # Record your agent's current behavior as the baseline
evalview check # After any change, diff against the baseline
これで一連の作業は完了です。check は次のいずれかを返します。
✓ login-flow PASSED behavior matches baseline
⚠ refund-request TOOLS_CHANGED called a different tool, or in a different order
✗ billing-dispute REGRESSION score dropped — output quality fell
最終的な文字列だけでなく、ツール名、パラメーター、呼び出し順序といった軌跡全体を比較します。決定論的なツールとシーケンスの差分は、API キーなしでオフライン実行されます。出力品質のスコアリングが必要な場合にのみ、LLM ジャッジを追加してください。
エージェントを実行すると、バックエンドの API 料金が発生する場合があります。--no-judge がスキップするのはジャッジであり、API 呼び出しではありません。埋め込みベースのセマンティック比較はオプトインです。
まだエージェントがありませんか?30 秒で動作を確認できます。
evalview demo
なぜアサーションではなくスナップショットテストなのか?
多くの評価ツールでは、「望ましい状態」をアサーション、メトリクス、評価基準としてあらかじめ記述する必要があります。これは事前の作業が多く、想定してアサーションを設定した失敗しか検出できません。
EvalView はこれを逆転させます。エージェントが現在実際に行っていることを記録し、そこからの逸脱を検出します。 アサーションを一切書かなくても、予想していなかったリグレッションを検出できます。新しい動作が正しければ、evalview snapshot で新しいベースラインとして受け入れます。Jest でスナップショットを更新するのと同じです。
| EvalView | アサーションベースの評価ツール | |
|---|---|---|
| セットアップ | 現在の動作を記録 | まずアサーション/メトリクスを記述 |
| 検出対象 | ベースラインからのあらゆる逸脱 | アサーションで指定したものだけ |
| 非決定性 | 複数バリアントのベースライン(最大5つの有効なパス) | 自分で対処 |
| 比較単位 | ツール呼び出しの軌跡全体 | 通常は最終出力 |
そのため EvalView はマージ時のリグレッションゲートとして機能します。これは、可観測性(Langfuse、LangSmith)やメトリクスによるスコアリング(promptfoo、DeepEval、Braintrust)とは異なる役割です。多くのチームは、可視化のためにそのいずれかを使い、さらに EvalView をゲートとして利用しています。率直な比較 →
EvalView は毎日、自らを公開環境でテストしています
毎日 09:00 UTC に、プルリクエスト時と main へのプッシュ時に、
Core Dogfood がオンラインテスト以外のテストスイート、
型チェック、ローカルのモックエージェントによる snapshot/check、evalview demo、エンドツーエンドの
フロー、そして evalview monitor のスモークテストを実行します。有料 API の認証情報は使用せず、
有料の推論呼び出しも行いません。GitHub ランナーの利用料金は別途発生します。
Live Provider Checks は、メンテナーが main 上で有料 API の使用を明示的に許可した場合に限り、実際の評価器と チャットアシスタントをテストします。自動スケジュールはありません。バッジには最後の手動実行が記録されます。コアのバッジが緑色でも、ライブプロバイダーの健全性が確認されたことにはならず、プロバイダーのドリフトも否定できません。
パッケージ CI、コアの dogfood、ライブチェックには、それぞれ別のバッジがあります。失敗したチェックや未完了のチェックは、それぞれの範囲内で引き続き確認でき、ログとレポートはアーティファクトとして保存されます。継続中の問題には、dogfood-core と dogfood-live の別々のラベルが付けられます。プロバイダーの停止、クォータの枯渇、または認証情報の欠如により、ライブの健全性を確認できない場合がありますが、これはエージェントのリグレッションを証明するものではありません。
過去の インシデント #264 は、両方の範囲から得られた新しい証拠をメンテナーが確認するために引き続き利用できます。どちらのワークフローも、このインシデントを自動でクローズしません。信頼性に関する警告は調査すべき証拠であり、不正な操作や特定の根本原因を証明するものではありません。
コアの実行結果 → · 手動ライブ実行 → · 実行とトリアージのガイド →
CI:すべての PR でリグレッションをブロック
# .github/workflows/evalview.yml
name: EvalView
on: [pull_request]
jobs:
agent-check:
runs-on: ubuntu-latest
permissions: { pull-requests: write }
steps:
- uses: actions/checkout@v4
- uses: hidai25/[email protected]
with:
openai-api-key: ${{ secrets.OPENAI_API_KEY }}
差分、コスト/レイテンシの変化、合否ゲートを含む PR コメントが表示されます。CI/CD ガイド →
お使いのスタックで動作
LangGraph · CrewAI · OpenAI · Claude · Mistral · Ollama · MCP · あらゆる HTTP API。
evalview check --agent http://localhost:8000/invoke
ライブラリとして使用
from evalview import gate
result = gate(test_dir="tests/")
result.passed # bool
result.diffs # per-test scores and tool diffs
その他
EvalView は、複数ターンのテスト、統計的な/pass@k 実行、記録/再生カセット、モデルドリフトのカナリア、Slack アラート付きの本番環境モニタリング、インシデントからのリグレッションテストの自動生成にも対応しています。これらは上級者向けの機能です。まずは snapshot と check から始め、必要に応じてほかの機能を利用してください。
→ ドキュメント一覧 · OpenAI からの移行 · リリース手順
EvalView を構築した理由
成功しているように見えたエージェントが、ドキュメント全体をコンテキストに取り込み続け、1つの質問に $42.93 かかりました。この経験をきっかけに EvalView を構築しました。このことについては、「I Was Running an AI Casino. Then I Started Writing Tests for My Agents」で書いています。2025年12月の投稿は開発の経緯を伝えるものであり、セットアップやコマンドについては最新のドキュメントをご利用ください。
貢献
このプロジェクトはまだ始まったばかりで、開発の大半を1人の開発者が担っています。Issue、PR、「試してみたところ、X が分かりにくかった」というフィードバックはいずれも、本当に役立ちます。
ライセンス: Apache 2.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
