feat: preserve isolated visitor agent runtime
This commit is contained in:
@@ -51,6 +51,34 @@ async def test_execute_classifies_before_handle_and_attaches_result(governance)
|
||||
assert result["intent"]["confidence"] == 0.9
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_fixed_route_agent_skips_model_intent_classification(governance) -> None:
|
||||
"""固定路由 Agent 不能因模型意图端点不可用而阻断服务。"""
|
||||
definition = AgentDefinition(
|
||||
agent_type="demo", version="1", allowed_roles=("customer",),
|
||||
allowed_portals=("api",), requires_model_intent_classification=False,
|
||||
)
|
||||
factory = AgentFactory(
|
||||
governance=governance,
|
||||
intent_classifier=IntentClassifier(StubModel()),
|
||||
intent_endpoint_resolver=StubResolver(),
|
||||
)
|
||||
factory.register(definition, lambda _context: DemoAgent(definition))
|
||||
context = RequestContext(
|
||||
user_id="1", trace_id="fixed-route", roles=("customer",), permissions=("agent:run",)
|
||||
)
|
||||
request = AgentRequest(
|
||||
agent_type="demo", message="本地路由", session_id="s",
|
||||
idempotency_key="fixed-route-request-0001",
|
||||
)
|
||||
|
||||
events = [
|
||||
event async for event in factory.create("demo", context).execute(request, context, "run")
|
||||
]
|
||||
|
||||
assert events[-1].payload["result"]["result"]["intent"] is None
|
||||
|
||||
|
||||
def test_business_agent_cannot_override_intent_governance() -> None:
|
||||
with pytest.raises(TypeError, match="classify_intent"):
|
||||
class InvalidAgent(BaseAgent):
|
||||
|
||||
Reference in New Issue
Block a user