mirror of
https://github.com/hoshikawa2/agent_platform_oci.git
synced 2026-09-07 10:13:46 +00:00
61 lines
1.9 KiB
Python
61 lines
1.9 KiB
Python
import asyncio
|
|
from types import SimpleNamespace
|
|
|
|
from agent_framework.judges.judge import JudgePipeline, JudgeResult
|
|
|
|
|
|
class DummyJudge:
|
|
async def evaluate(self, question, answer, context):
|
|
return JudgeResult(name="dummy", score=1.0, passed=True, reason="ran")
|
|
|
|
|
|
def pipeline(*, sample_rate=0.0, always=True):
|
|
obj = object.__new__(JudgePipeline)
|
|
obj.enabled = True
|
|
obj.judges = [DummyJudge()]
|
|
obj.sample_rate = sample_rate
|
|
obj.always_run_for_transactional = always
|
|
return obj
|
|
|
|
|
|
def test_awaiting_confirmation_bypasses_sampling():
|
|
p = pipeline(sample_rate=0.0, always=True)
|
|
results = asyncio.run(p.evaluate_all("devolver", "confirma?", {
|
|
"transaction_status": "AWAITING_CONFIRMATION",
|
|
"mcp_results": [{
|
|
"tool_name": "solicitar_devolucao",
|
|
"awaiting_confirmation": True,
|
|
"transaction_status": "AWAITING_CONFIRMATION",
|
|
"metadata": {"operation_type": "transactional"},
|
|
}],
|
|
}))
|
|
assert len(results) == 1
|
|
|
|
|
|
def test_completed_transaction_bypasses_sampling_from_mcp_result():
|
|
p = pipeline(sample_rate=0.0, always=True)
|
|
results = asyncio.run(p.evaluate_all("sim", "protocolo DEV-1", {
|
|
"mcp_results": [{
|
|
"tool_name": "solicitar_devolucao",
|
|
"ok": True,
|
|
"metadata": {"operation_type": "transactional"},
|
|
}],
|
|
}))
|
|
assert len(results) == 1
|
|
|
|
|
|
def test_non_transactional_turn_respects_zero_sample_rate():
|
|
p = pipeline(sample_rate=0.0, always=True)
|
|
results = asyncio.run(p.evaluate_all("pedido 123", "entregue", {
|
|
"mcp_results": [{"tool_name": "consultar_pedido", "ok": True}],
|
|
}))
|
|
assert results == []
|
|
|
|
|
|
def test_transactional_detection_from_tool_policy():
|
|
p = pipeline(sample_rate=0.0, always=True)
|
|
results = asyncio.run(p.evaluate_all("sim", "feito", {
|
|
"tool_policy_result": {"operation_type": "transactional"},
|
|
}))
|
|
assert len(results) == 1
|