feat: 新增风险图谱算法与系统仪表盘及操作反馈体系
后端新增风险图谱算法模块、风险观察与反馈服务、规则 DSL 校验器和可解释性引擎,完善系统仪表盘和财务仪表盘统计, 优化 agent 运行和编排执行链路,清理旧开发文档,前端新增 系统趋势、负载热力图等多种仪表盘图表组件,完善操作反馈 对话框和工作台日期选择器,优化报销创建和审批详情交互, 补充单元测试覆盖。
This commit is contained in:
@@ -104,3 +104,43 @@ def test_agent_run_service_updates_existing_tool_call() -> None:
|
||||
assert len(fetched.tool_calls) == 1
|
||||
assert fetched.tool_calls[0].status == "succeeded"
|
||||
assert fetched.tool_calls[0].response_json == {"track_id": "insert_123"}
|
||||
|
||||
|
||||
def test_agent_run_service_summarizes_model_and_tool_failures() -> None:
|
||||
with build_session() as db:
|
||||
service = AgentRunService(db)
|
||||
run = service.create_run(
|
||||
agent=AgentName.ORCHESTRATOR.value,
|
||||
source=AgentRunSource.USER_MESSAGE.value,
|
||||
status=AgentRunStatus.SUCCEEDED.value,
|
||||
ontology_json={
|
||||
"parse_strategy": "rule_fallback",
|
||||
"model_invocation_summary": {
|
||||
"model_guardrail_reason": "model_conflicts_with_application_stage_signal"
|
||||
},
|
||||
},
|
||||
)
|
||||
service.record_tool_call(
|
||||
run_id=run.run_id,
|
||||
tool_type=AgentToolType.LLM.value,
|
||||
tool_name="semantic_ontology.main",
|
||||
request_json={"stage": "semantic_parse"},
|
||||
response_json={"model_guardrail_reason": "model_conflicts_with_application_stage_signal"},
|
||||
status="failed",
|
||||
duration_ms=18,
|
||||
error_message="model_conflicts_with_application_stage_signal",
|
||||
)
|
||||
|
||||
stats = service.summarize_runs(agent=AgentName.ORCHESTRATOR.value, limit=20)
|
||||
|
||||
assert stats.total_runs >= 1
|
||||
assert stats.tool_call_count >= 1
|
||||
assert stats.failed_tool_call_count >= 1
|
||||
assert stats.llm_call_count >= 1
|
||||
assert stats.failed_llm_call_count >= 1
|
||||
assert stats.model_fallback_count >= 1
|
||||
assert stats.model_guardrail_count >= 1
|
||||
assert any(
|
||||
item.get("tool_name") == "semantic_ontology.main"
|
||||
for item in stats.recent_errors
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user