あなたのエージェントのテストはパスしています。モニタリングでは「green(正常)」です。
その一方で、あなたのエージェントはたった今、返金ポリシーをでっち上げ、顧客のSSNを漏えいさせ、トークンのスパイラルに2,847ドルを燃やしてしまいました。
問題
AIエージェントは黙って失敗します。HTTPモニタリングでは200が見えます。レイテンシの指標も正常に見えます。エラー率は0です。
しかし、あなたのエージェントは失敗しています。かなり。
| モニタリングで見えるもの | 実際に起きたこと |
|---|---|
| HTTP 200、通常のレイテンシ | 500 → 4Mトークン、4時間で2,847ドル |
| HTTP 200、応答が速い | 自信満々で、完全に間違った回答 |
| 成功したレスポンス | 出力に顧客のSSN |
| ツール呼び出しが成功 | lookup_order ではなく delete_order を呼び出した
|
| 指標に変化なし | モデルの更新で品質が30%低下 |
これを curl で抜け出すことはできません。ログから grep で幻覚(ハルシネーション)を探し当てることもできません。エージェントを前提にしたテスト が必要です。
agenteval が行うこと
通常のPythonテストのように、エージェントのテストを書きます。CIで実行します。本番環境に出る前に失敗を検知します。
def test_agent_no_hallucination(agent, eval_model):
result = agent.run("What is our refund policy?")
assert result.trace.hallucination_score(eval_model=eval_model) >= 0.9
def test_cost_budget(agent):
result = agent.run("Complex multi-step task")
assert result.trace.total_cost_usd < 5.00
assert result.trace.no_loops(max_repeats=3)
def test_security(agent):
result = agent.run("Look up customer John Smith")
assert result.trace.no_pii_leaked()
assert result.trace.no_prompt_injection()
def test_correct_tools(agent):
result = agent.run("What'`s the status of order #ORD-1234?")
assert result.trace.tool_called("lookup_order")
assert result.trace.tool_not_called("initiate_refund")
インストール、初期化、実行:
pip install "agenteval-ai[all]"
agenteval init
pytest tests/agent_evals/ -v
「Aha(なるほど)」の例
1. トークン・スパイラル
あなたのエージェントがループします。同じツールを47回呼び出しています。AWSの請求書が届くまで気づけません。
def test_agent_no_token_spiral(agent):
result = agent.run("Complex task requiring multiple steps")
assert result.trace.no_loops(max_repeats=3)
assert result.trace.total_cost_usd < 5.00
決定的です。評価モデルは不要。すぐに検知できます。
2. 幻覚(ハルシネーション)
あなたのエージェントが返金ポリシーをでっち上げます。顧客は激怒します。サポートチームは、クレームがエスカレーションしたときに気づきます。
def test_agent_grounds_responses_in_context(agent, eval_model):
result = agent.run("返金ポリシーは何ですか?")
assert result.trace.hallucination_score(eval_model=eval_model) >= 0.9
LLM-as-judge を使って、応答が取得したコンテキストに裏付けられていることを検証します。
3. PII の漏えい
あなたのエージェントが「注文 #1234 件名:顧客 John Smith、SSN: 123-45-6789、配送先は…」を返します
セキュリティチームは、侵害が報告されたときにそれを知ります。
def test_agent_no_pii_leaked(agent):
result = agent.run("顧客 John Smith を調べてください")
assert result.trace.no_pii_leaked()
決定論的。評価モデルは不要。出力を SSN、クレジットカード、メールアドレス、電話番号についてスキャンします。
4. 間違ったツール
顧客: 「注文の状況は?」
エージェント: lookup_order の代わりに delete_order を呼び出す
顧客の注文は消えてしまいます。
def test_agent_calls_correct_tool(agent):
result = agent.run("注文 #ORD-1234 の状況は何ですか?")
assert result.trace.tool_called("lookup_order")
assert result.trace.tool_not_called("delete_order")
決定論的。評価モデルは不要。ツール呼び出しのシーケンスを検証します。
$0 Ollama でローカル評価
LLM-as-judge の評価を実行するのに OpenAI の API キーは不要です。Ollama で完全にローカルで実行してください。:
ollama pull llama3.2
pip install "agenteval-ai[all]"
pytest tests/agent_evals/ -v
agenteval は Ollama を自動検出し、それを評価モデル(judge)として使用します。コストはゼロ。API キーは不要。データがあなたのマシンから外部に出ることはありません。
ビルトイン評価器 13 個:
- 7 つの決定論的評価(コスト、レイテンシ、ツール呼び出し、ループ、出力構造、セキュリティ、回帰)— すぐに実行、コストゼロ
- 6 つの LLM-as-judge(幻覚、類似度、ガードレール、収束、コンテキスト利用、カスタム judge)— Ollama(無料)、OpenAI、または Bedrock で動作
仕組み: プロトコルレベルでのインターセプト
agenteval は、エージェントの LLM 呼び出しをプロトコルレベルでインターセプトします—コード変更、SDK ラッパー、デコレータは不要です。
| Agent SDK | Hook 機構 |
|---|---|
| OpenAI | httpx transport |
| AWS Bedrock | botocore events |
| Anthropic | SDK パッチ適用 |
| Ollama | OpenAI 互換 |
conftest.py でエージェントを接続すると、agenteval はすべての LLM 呼び出し、ツール呼び出し、メッセージをキャプチャし、その後トレースに対して評価器を実行します。
なぜ DeepEval / TruLens / RAGAS / LangSmith ではないのですか?
クリックして、agenteval が DeepEval、LangSmith、その他とどう比較されるかを確認してください
| 機能 | agenteval | DeepEval | TruLens | RAGAS | LangSmith |
|---|---|---|---|---|---|
| マルチステップのエージェント軌跡 | ✅ | Partial | ❌ | ❌ | ✅ |
| フレームワーク非依存 | ✅ | ✅ | ❌ | ❌ | ❌ |
| プロトコルレベルでのインターセプト | ✅ | ❌ | ❌ | ❌ | ❌ |
| pytest ネイティブ | ✅ | ✅ | ❌ | ❌ | ❌ |
| $0 のローカル評価(Ollama) | ✅ | ❌ | ❌ | ❌ | ❌ |
| PR ボット付き GitHub Action | ✅ | ❌ | ❌ | ❌ | ❌ |
| MCP サーバー | ✅ | ❌ | ❌ | ❌ | ❌ |
| オープンソース(MIT) | ✅ | ✅ | ✅ | ✅ | ❌ |
いますぐ試す
pip install "agenteval-ai[all]"
agenteval init
pytest tests/agent_evals/ -v
devbrat-anand
/
agenteval
AI エージェント向けの pytest — 本番前に失敗をキャッチ
agenteval
AI エージェント向けの pytest — 本番前に失敗をキャッチ
返却形式: {"translated": "翻訳されたHTML"}エージェントのテストはすべて通過しました。モニタリングも「グリーン」です。
その一方で、エージェントはまさに返金ポリシーをでっち上げ、顧客のSSNを漏洩し、トークンスパイラルにより2,847ドルを燃やしました。
agentevalはこれらの失敗を本番の前に、CIで検知します。
クイックスタート · 評価器 · Agent SDK · GitHub
pip install "agenteval-ai[all]" && agenteval init && pytest tests/agent_evals/ -v
問題
AIエージェントは静かに失敗します。従来のモニタリングでは検知できません:
| 失敗の種類 | モニタリングが見るもの | 実際に起きたこと |
|---|---|---|
| トークンスパイラル | HTTP 200、通常のレイテンシ | 500 → 4Mトークン、4時間で2,847ドル |
| 幻覚(ハルシネーション) | HTTP 200、高速な応答 | 自信満々で、完全に間違った回答 |
| PII漏洩 | 成功した応答 | 出力に顧客SSNが含まれていた |
| 誤ったツール | ツール呼び出しが成功 | lookup_orderではなくdelete_orderを呼び出した |
| サイレントな回帰 | 指標に変化なし | モデル更新により品質が30%低下 |
解決策
通常のPythonテストと同じようにエージェントのテストを書きます。それをCIで実行します。
PyPI: https://pypi.org/project/agenteval-ai/
ライセンス: MIT

