# 双 Agent 总体架构 ## 1. 背景 X-Financial 后续需要同时支持两类智能化能力: 1. 用户主动发起的交互式流程操作。 2. 系统后台自动运行的定时巡检、统计、预警和知识维护。 如果用一个万能 Agent 同时处理这两类任务,风险会很高: - 用户流程操作需要权限、确认、上下文追问。 - 定时巡检需要稳定批处理、失败重试、审计记录。 - 财务系统不能让大模型直接决定审批、付款、规则上线。 因此建议建设双 Agent 架构: ```text Hermes Agent 后台数字员工 面向系统内循环 定时、批量、巡检、统计、预警、知识候选 User Agent 自建用户流程助手 面向用户交互 查询、解释、创建草稿、流程操作、审批辅助 ``` 两套 Agent 共享一套语义本体协议,由 Agent Orchestrator 统一调度。 ## 2. 总体架构图 ```text ┌──────────────────────┐ │ 用户自然语言 / 定时任务 │ └───────────┬──────────┘ │ ▼ ┌──────────────────────┐ │ Semantic Ontology │ │ 语义本体解析层 │ └───────────┬──────────┘ │ ▼ ┌──────────────────────┐ │ Agent Orchestrator │ │ 路由 / 权限 / 审计 / 调度 │ └───────┬─────────┬────┘ │ │ ┌─────────────▼─┐ ┌─▼──────────────┐ │ Hermes Agent │ │ User Agent │ │ 后台数字员工 │ │ 用户流程助手 │ └───────┬───────┘ └───────┬────────┘ │ │ └──────────┬──────────┘ │ ┌────────────┬───────────┼───────────┬────────────┐ ▼ ▼ ▼ ▼ ▼ 规则中心 MCP 服务 业务数据库 知识库 任务系统 ``` ## 3. 核心分层 ### 3.1 语义本体层 负责把自然语言或任务配置转成结构化 JSON。 输出不是最终答案,而是统一协议: ```json { "domain": "reimbursement", "scenario": "invoice_validation", "intent": "explain_risk", "entities": [], "time_range": {}, "constraints": {}, "risk_signals": [], "next_step": "run_rule" } ``` ### 3.2 编排层 Agent Orchestrator 负责: - 判断应该由 Hermes 还是 User Agent 处理。 - 判断是否需要查数据库、跑规则、调 MCP、检索知识库。 - 检查用户权限。 - 记录审计日志。 - 控制失败重试。 - 对高风险动作要求用户或管理员确认。 ### 3.3 Agent 层 Hermes 和 User Agent 不直接决定财务关键状态。 它们负责: - 理解任务。 - 组织工具调用。 - 汇总工具结果。 - 生成建议、解释、报告、草稿。 ### 3.4 能力层 能力层包括: - 规则中心:管理 `.md` 规则文件、审核、版本。 - MCP:封装外部服务,如发票验真、银行流水、OCR、差旅平台。 - 数据库查询:查询报销、报账、应收、应付、账款数据。 - 知识库:制度文档、FAQ、历史解释、规则说明。 - 任务系统:定时任务、批量任务、重试、运行日志。 ## 4. 关键边界 Hermes 可以: - 定时读取数据。 - 执行规则检查。 - 调 MCP 查询外部状态。 - 生成风险报告。 - 生成知识候选。 - 生成待处理工单。 Hermes 不可以: - 自动提交报销。 - 自动发起付款。 - 自动审批通过。 - 自动发布知识库正式内容。 - 自动上线规则。 User Agent 可以: - 帮用户查询状态。 - 帮用户解释风险。 - 帮用户创建报销或付款草稿。 - 帮审批人生成审批意见。 - 在用户确认后调用流程 API。 User Agent 不可以: - 绕过权限。 - 未确认直接提交关键动作。 - 自动最终审批。 - 自动付款。 - 修改规则审核状态。 ## 5. 推荐建设顺序 ```text Step 1: 建立语义本体 JSON 协议 Step 2: 建立规则中心的规则/技能/MCP/任务目录 Step 3: 建立 Orchestrator 路由和审计 Step 4: 建立 User Agent 的只读查询和解释能力 Step 5: 建立 Hermes 的定时任务和报告能力 Step 6: 接入 MCP 和业务数据库 Step 7: 增加用户确认后的流程写入能力 Step 8: 增加知识候选和规则优化闭环 ```