- customer_service.py 以架构师实现为骨架(三档置信/适当性/会话记忆/话题矩阵),嫁接本人画像出口 - 知识检索契约合并两条链路:架构师 search_knowledge(KnowledgeSearchInput) + 本线 query_knowledge 链路所需常量(ALLOWED_CONSTANTS/VECTOR_DIM/intent_for_qa_id) - bootstrap 保留架构师 6 工具/3 Agent,补回 query_customer_profile 与 get_milvus_knowledge_writer - model_gateway 能力映射修正 intent_classification→chat,保留空集回退兜底 - governance 免责声明限定面向客户 Agent(agent_type 由定义透传),风控结构化输出不再被追加 - 修 JWT 密钥路径(config/jwt/dev)、文档 21 号撞号→25 - 测试基线 934 passed / 1 failed(既有空集缺陷)
41 lines
1.7 KiB
Python
41 lines
1.7 KiB
Python
import pytest
|
|
|
|
from app.core.contracts import AgentDefinition, CoreResult, ResolvedAgentConfig
|
|
from app.service.agent.base import BaseAgent
|
|
from app.service.agent.factory import AgentFactory
|
|
from app.service.agent.governance import review_output
|
|
|
|
|
|
@pytest.fixture
|
|
def governance():
|
|
class TestGovernance:
|
|
async def resolve(self, definition, context):
|
|
return ResolvedAgentConfig(config_version="test", prompt_version="test",
|
|
model_endpoint="test")
|
|
|
|
async def recall(self, context):
|
|
return ()
|
|
|
|
async def review(self, result, context, config, memories, *, agent_type: str = ""):
|
|
# 透传 `agent_type`:门禁 F5(面向客户输出 100% 附固定话术)由它判定,
|
|
# 替身若不转发,`test_worker_runtime_mysql` 那条端到端断言会拿不到免责声明。
|
|
return review_output(result, context, config, memories, agent_type=agent_type)
|
|
|
|
return TestGovernance()
|
|
|
|
|
|
@pytest.fixture
|
|
def acceptance_registry(monkeypatch, governance):
|
|
"""Explicit test registration; production does not silently create business Agents."""
|
|
class TestAgent(BaseAgent):
|
|
async def handle(self, request, context):
|
|
return CoreResult(text="test result")
|
|
|
|
definition = AgentDefinition(agent_type="customer_service", version="test",
|
|
allowed_roles=("customer",), allowed_portals=("api",))
|
|
registry = AgentFactory(governance)
|
|
registry.register(definition, lambda _: TestAgent(definition))
|
|
monkeypatch.setattr("app.service.agent_run_application_service.get_agent_factory",
|
|
lambda: registry)
|
|
return registry
|