164 lines
5.3 KiB
Markdown
164 lines
5.3 KiB
Markdown
|
|
# 双 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: 增加知识候选和规则优化闭环
|
|||
|
|
```
|
|||
|
|
|