Markdown 规则内容
-管理员直接编辑该 Skill 对应的 .md 审查规则文件内容。
+管理员直接编辑该规则对应的 .md 审查规则文件内容。
diff --git a/document/development/agent plan/00_README.md b/document/development/agent plan/00_README.md
new file mode 100644
index 0000000..558715c
--- /dev/null
+++ b/document/development/agent plan/00_README.md
@@ -0,0 +1,38 @@
+# Agent Plan 文档索引
+
+本目录描述 X-Financial 后续要建设的双 Agent 财务智能架构。
+
+核心目标:
+
+- 建立一套共享的语义本体协议,统一理解用户问题、定时任务和规则触发上下文。
+- 建设两套职责边界清晰的 Agent:
+ - Hermes:后台数字员工,负责内循环定时任务、风险巡检、统计、知识维护。
+ - 自建 Agent:用户流程助手,负责用户交互、流程操作、解释、查询、草稿生成。
+- 建设 Agent Orchestrator,统一负责路由、权限、工具调用、审计和失败处理。
+- 让规则中心、MCP、知识库、数据库查询和任务系统使用同一套语义协议。
+
+推荐阅读顺序:
+
+1. [01_overall_architecture.md](./01_overall_architecture.md)
+2. [02_semantic_ontology.md](./02_semantic_ontology.md)
+3. [03_agent_responsibilities.md](./03_agent_responsibilities.md)
+4. [04_orchestrator_and_runtime_flow.md](./04_orchestrator_and_runtime_flow.md)
+5. [05_development_roadmap.md](./05_development_roadmap.md)
+6. [06_data_contracts_and_governance.md](./06_data_contracts_and_governance.md)
+7. [07_capability_registry.md](./07_capability_registry.md)
+8. [08_permission_confirmation.md](./08_permission_confirmation.md)
+9. [09_observability_and_trace.md](./09_observability_and_trace.md)
+10. [10_evaluation_and_testset.md](./10_evaluation_and_testset.md)
+11. [11_ocr_invoice_architecture.md](./11_ocr_invoice_architecture.md)
+12. [12_llm_wiki_knowledge_architecture.md](./12_llm_wiki_knowledge_architecture.md)
+13. [13_rule_formation_lifecycle.md](./13_rule_formation_lifecycle.md)
+14. [14_financial_document_canonical_model.md](./14_financial_document_canonical_model.md)
+15. [15_feedback_learning_loop.md](./15_feedback_learning_loop.md)
+
+开发原则:
+
+- 先语义协议,后 Agent 能力。
+- 先只读和建议,后写入和流程动作。
+- 先人工确认,后有限自动化。
+- 所有财务关键动作必须可审计、可回滚、可追责。
+- 所有 Agent 能力必须注册、分级、可评测、可追踪。
diff --git a/document/development/agent plan/01_overall_architecture.md b/document/development/agent plan/01_overall_architecture.md
new file mode 100644
index 0000000..6d737f0
--- /dev/null
+++ b/document/development/agent plan/01_overall_architecture.md
@@ -0,0 +1,163 @@
+# 双 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: 增加知识候选和规则优化闭环
+```
+
diff --git a/document/development/agent plan/02_semantic_ontology.md b/document/development/agent plan/02_semantic_ontology.md
new file mode 100644
index 0000000..93c63b7
--- /dev/null
+++ b/document/development/agent plan/02_semantic_ontology.md
@@ -0,0 +1,362 @@
+# 语义本体协议设计
+
+## 1. 定位
+
+语义本体协议是用户问题、定时任务、规则中心、MCP、数据库查询和 Agent 之间的统一中间层。
+
+它解决的问题是:
+
+- 用户到底在问哪个业务域?
+- 这属于什么场景?
+- 用户想做什么?
+- 问题中涉及哪些对象?
+- 有没有时间、金额、状态、部门等过滤条件?
+- 是否涉及风险?
+- 下一步应该查知识库、查数据库、跑规则、调 MCP,还是追问?
+
+## 2. 第一版核心字段
+
+第一版建议只强制落 8 个字段。
+
+```json
+{
+ "domain": "",
+ "scenario": "",
+ "intent": "",
+ "entities": [],
+ "time_range": {},
+ "constraints": {},
+ "risk_signals": [],
+ "next_step": ""
+}
+```
+
+### 2.1 domain
+
+一级业务域。
+
+建议枚举:
+
+```text
+reimbursement
+accounts_receivable
+accounts_payable
+general_finance
+system_operation
+```
+
+含义:
+
+- `reimbursement`:报销、差旅、发票、补件。
+- `accounts_receivable`:应收账款、客户开票、收款、账龄。
+- `accounts_payable`:应付账款、供应商发票、付款、对账。
+- `general_finance`:通用财务知识、制度、统计。
+- `system_operation`:系统巡检、任务运行、规则维护、MCP 健康检查。
+
+### 2.2 scenario
+
+细分场景。
+
+报销:
+
+```text
+travel_reimbursement
+daily_expense
+invoice_validation
+attachment_review
+policy_overrun
+reimbursement_audit
+```
+
+应收:
+
+```text
+customer_invoice
+collection_followup
+receivable_aging
+payment_matching
+bad_debt_risk
+contract_receivable
+```
+
+应付:
+
+```text
+vendor_invoice
+payment_request
+payable_aging
+vendor_reconciliation
+invoice_matching
+cash_outflow_forecast
+```
+
+系统运营:
+
+```text
+daily_risk_scan
+daily_finance_statistics
+knowledge_accumulation
+mcp_health_check
+rule_quality_review
+```
+
+### 2.3 intent
+
+用户或任务的意图。
+
+建议枚举:
+
+```text
+query
+explain
+create
+validate
+summarize
+reconcile
+monitor
+predict
+remind
+generate
+optimize
+```
+
+### 2.4 entities
+
+识别出的业务对象。
+
+统一结构:
+
+```json
+{
+ "type": "invoice",
+ "value": "INV-202605001",
+ "normalized_value": "INV-202605001",
+ "role": "target",
+ "confidence": 0.92
+}
+```
+
+常见实体:
+
+```text
+employee
+department
+customer
+vendor
+invoice
+contract
+reimbursement_request
+payment_order
+receipt
+bank_transaction
+cost_center
+project
+policy
+approval_node
+rule
+task
+```
+
+### 2.5 time_range
+
+统一描述时间。
+
+```json
+{
+ "raw": "上个月",
+ "start": "2026-04-01",
+ "end": "2026-04-30",
+ "granularity": "month"
+}
+```
+
+Hermes 定时任务也使用同一字段。
+
+例如每日风险巡检:
+
+```json
+{
+ "raw": "昨日",
+ "start": "2026-05-09",
+ "end": "2026-05-09",
+ "granularity": "day"
+}
+```
+
+### 2.6 constraints
+
+查询、判断或执行条件。
+
+```json
+{
+ "status": "overdue",
+ "aging_days": ">30",
+ "amount": {
+ "operator": ">",
+ "value": 50000,
+ "currency": "CNY"
+ },
+ "department": "销售部",
+ "risk_level": ["medium", "high"]
+}
+```
+
+### 2.7 risk_signals
+
+风险信号。
+
+建议枚举:
+
+```text
+duplicate_invoice
+missing_attachment
+policy_overrun
+over_budget
+overdue_receivable
+bad_debt_risk
+vendor_payment_risk
+payment_mismatch
+contract_mismatch
+cashflow_pressure
+mcp_unavailable
+rule_quality_issue
+```
+
+### 2.8 next_step
+
+下一步动作。
+
+建议枚举:
+
+```text
+answer
+ask_clarification
+query_database
+run_rule
+call_mcp
+search_knowledge
+create_draft
+create_task
+generate_report
+notify_user
+escalate_to_human
+```
+
+## 3. 扩展字段
+
+后续可以增加:
+
+```json
+{
+ "schema_version": "1.1",
+ "confidence": 0.86,
+ "ambiguity": [],
+ "missing_slots": [],
+ "required_capabilities": [],
+ "normalized_query": "",
+ "permission_scope": {},
+ "audit_tags": []
+}
+```
+
+扩展原则:
+
+- 先不要把所有字段都做成数据库列。
+- 语义结果建议存 JSONB。
+- 使用 `schema_version` 管理版本。
+- Orchestrator 只依赖稳定字段。
+- 新字段以可选方式加入,不影响老任务。
+
+## 4. 示例
+
+### 4.1 用户查询应收账龄
+
+用户问:
+
+```text
+上个月哪些客户应收逾期超过 30 天?
+```
+
+解析:
+
+```json
+{
+ "domain": "accounts_receivable",
+ "scenario": "receivable_aging",
+ "intent": "query",
+ "entities": [
+ {
+ "type": "customer",
+ "value": "客户",
+ "role": "group_by"
+ }
+ ],
+ "time_range": {
+ "raw": "上个月",
+ "start": "2026-04-01",
+ "end": "2026-04-30",
+ "granularity": "month"
+ },
+ "constraints": {
+ "aging_days": ">30",
+ "status": "overdue"
+ },
+ "risk_signals": ["overdue_receivable"],
+ "next_step": "query_database"
+}
+```
+
+### 4.2 用户解释发票拦截
+
+用户问:
+
+```text
+这张发票为什么报销被拦截?
+```
+
+解析:
+
+```json
+{
+ "domain": "reimbursement",
+ "scenario": "invoice_validation",
+ "intent": "explain",
+ "entities": [
+ {
+ "type": "invoice",
+ "value": "这张发票",
+ "role": "target"
+ }
+ ],
+ "time_range": {},
+ "constraints": {},
+ "risk_signals": ["unknown"],
+ "next_step": "run_rule"
+}
+```
+
+### 4.3 Hermes 每日风险巡检
+
+任务配置:
+
+```json
+{
+ "domain": "reimbursement",
+ "scenario": "daily_risk_scan",
+ "intent": "monitor",
+ "entities": [],
+ "time_range": {
+ "raw": "昨日"
+ },
+ "constraints": {
+ "risk_level": ["medium", "high"]
+ },
+ "risk_signals": [
+ "duplicate_invoice",
+ "missing_attachment",
+ "policy_overrun"
+ ],
+ "next_step": "run_rule"
+}
+```
+
diff --git a/document/development/agent plan/03_agent_responsibilities.md b/document/development/agent plan/03_agent_responsibilities.md
new file mode 100644
index 0000000..6d5382f
--- /dev/null
+++ b/document/development/agent plan/03_agent_responsibilities.md
@@ -0,0 +1,178 @@
+# Hermes 与自建 Agent 职责边界
+
+## 1. 两套 Agent 的定位
+
+### 1.1 Hermes
+
+Hermes 定位为后台数字员工。
+
+它不直接面向用户聊天,而是在系统后台做内循环工作。
+
+关键词:
+
+```text
+定时
+批量
+巡检
+统计
+预警
+知识维护
+规则质量复盘
+```
+
+### 1.2 自建 Agent
+
+自建 Agent 定位为用户流程助手。
+
+它直接面对员工、财务人员、审批人和管理员。
+
+关键词:
+
+```text
+用户触发
+会话式
+流程操作
+查询解释
+草稿生成
+审批辅助
+用户确认
+```
+
+## 2. Hermes 职责
+
+Hermes 负责:
+
+1. 每日风险巡检。
+2. 每日报销、报账、账款统计。
+3. 应收逾期预警。
+4. 应付付款风险预警。
+5. 规则命中质量复盘。
+6. MCP 健康检查。
+7. 知识库候选内容生成。
+8. 高风险工单生成。
+9. 任务运行报告生成。
+
+Hermes 输出的内容包括:
+
+```text
+risk_report
+risk_work_items
+daily_finance_snapshot
+knowledge_candidates
+rule_improvement_items
+mcp_health_report
+task_run_log
+```
+
+Hermes 不允许:
+
+1. 自动审批通过。
+2. 自动发起付款。
+3. 自动提交用户申请。
+4. 自动发布正式知识库。
+5. 自动上线规则。
+6. 直接修改核心财务状态。
+
+## 3. 自建 Agent 职责
+
+自建 Agent 负责:
+
+1. 查询报销单进度。
+2. 创建报销或付款草稿。
+3. 解释规则拦截原因。
+4. 生成审批意见。
+5. 检索制度知识。
+6. 查询应收应付数据。
+7. 帮用户对账。
+8. 引导用户补充缺失信息。
+9. 在用户确认后调用流程 API。
+
+自建 Agent 输出的内容包括:
+
+```text
+natural_language_answer
+form_draft
+approval_opinion_draft
+clarification_question
+query_result_summary
+next_action_suggestion
+```
+
+自建 Agent 不允许:
+
+1. 未经用户确认提交关键动作。
+2. 跳过权限校验。
+3. 自动最终审批。
+4. 自动付款。
+5. 修改规则上线状态。
+
+## 4. 权限边界
+
+| 动作 | Hermes | 自建 Agent |
+|---|---|---|
+| 查询制度知识 | 可以 | 可以 |
+| 查询业务数据 | 可以,按任务权限 | 可以,按用户权限 |
+| 跑规则 | 可以 | 可以 |
+| 调 MCP | 可以 | 可以 |
+| 生成报告 | 可以 | 可以 |
+| 生成草稿 | 不建议 | 可以 |
+| 提交流程 | 不可以 | 用户确认后可以 |
+| 审批通过 | 不可以 | 不可以直接做 |
+| 发起付款 | 不可以 | 高权限确认后才可做草稿 |
+| 发布知识 | 不可以 | 不可以 |
+| 上线规则 | 不可以 | 不可以 |
+
+## 5. 共享能力
+
+两套 Agent 共享:
+
+- 语义本体协议。
+- 规则中心。
+- MCP 服务。
+- 知识库。
+- 数据库查询服务。
+- 审计日志。
+- 权限系统。
+
+不共享:
+
+- 运行队列。
+- 调度策略。
+- 用户会话状态。
+- 任务重试状态。
+
+## 6. 示例
+
+### 6.1 Hermes 场景
+
+每日 02:00 自动运行:
+
+```text
+每日风险巡检
+ 读取昨日报销、报账、发票、账款数据
+ 执行规则
+ 调用发票验真 MCP
+ 调用账款流水 MCP
+ 生成风险报告
+ 生成风险工单
+```
+
+### 6.2 自建 Agent 场景
+
+用户问:
+
+```text
+帮我看一下这张差旅报销为什么没通过。
+```
+
+处理:
+
+```text
+解析语义
+查询报销单
+读取规则命中
+检索制度条款
+组织解释
+给出补件建议
+```
+
diff --git a/document/development/agent plan/04_orchestrator_and_runtime_flow.md b/document/development/agent plan/04_orchestrator_and_runtime_flow.md
new file mode 100644
index 0000000..1846329
--- /dev/null
+++ b/document/development/agent plan/04_orchestrator_and_runtime_flow.md
@@ -0,0 +1,194 @@
+# Agent Orchestrator 与运行流程
+
+## 1. Orchestrator 定位
+
+Agent Orchestrator 是双 Agent 架构的调度中心。
+
+它不负责生成最终答案,而是负责:
+
+- 接收用户请求或定时任务。
+- 调用语义解析。
+- 判断处理方。
+- 选择工具。
+- 检查权限。
+- 记录审计。
+- 管理失败重试。
+- 控制高风险动作确认。
+
+## 2. 运行主流程
+
+```text
+输入
+ 用户消息 / 页面按钮 / 定时任务 / 系统事件
+ ↓
+语义解析
+ 输出 ontology_json
+ ↓
+Orchestrator 决策
+ 判断 agent = hermes | user_agent
+ 判断 tool = rule | mcp | db | knowledge | task
+ ↓
+权限检查
+ 用户权限 / 任务权限 / 数据范围
+ ↓
+工具执行
+ 规则中心 / MCP / 数据库 / 知识库 / 任务系统
+ ↓
+Agent 汇总
+ Hermes 报告 / User Agent 回答
+ ↓
+审计记录
+ 保存输入、语义、工具、结果、动作
+```
+
+## 3. 路由规则
+
+### 3.1 Hermes 路由
+
+满足以下条件之一,进入 Hermes:
+
+```text
+source = schedule
+source = system_event
+intent = monitor
+intent = summarize and no active user session
+next_step = generate_report and task_type is batch
+scenario in daily_risk_scan / knowledge_accumulation / mcp_health_check
+```
+
+### 3.2 User Agent 路由
+
+满足以下条件之一,进入自建 Agent:
+
+```text
+source = user_message
+source = page_action
+intent = query / explain / create / validate / reconcile
+requires_user_context = true
+next_step = ask_clarification
+next_step = create_draft
+```
+
+### 3.3 工具路由
+
+```text
+next_step = query_database
+ 调用数据库查询服务
+
+next_step = run_rule
+ 调用规则中心
+
+next_step = call_mcp
+ 调用 MCP 服务
+
+next_step = search_knowledge
+ 调用知识库检索
+
+next_step = create_task
+ 调用任务系统
+
+next_step = ask_clarification
+ 返回追问
+```
+
+## 4. 用户流程示例
+
+用户输入:
+
+```text
+上个月哪些客户应收逾期超过 30 天?
+```
+
+流程:
+
+```text
+Step 1: User Agent 接收消息
+Step 2: semantic_parser 输出 ontology_json
+Step 3: Orchestrator 识别 domain = accounts_receivable
+Step 4: next_step = query_database
+Step 5: 权限检查用户是否可看应收数据
+Step 6: 查询应收账龄表
+Step 7: User Agent 汇总结果
+Step 8: 返回客户清单、金额、逾期天数、风险说明
+```
+
+## 5. Hermes 任务示例
+
+任务:
+
+```text
+每日风险巡检
+```
+
+流程:
+
+```text
+Step 1: 任务调度器在 02:00 触发
+Step 2: Orchestrator 构造 ontology_json
+Step 3: 路由给 Hermes
+Step 4: Hermes 拉取昨日业务快照
+Step 5: 执行规则中心规则
+Step 6: 调用 MCP 验真、账款流水
+Step 7: 生成风险报告
+Step 8: 写入风险工单
+Step 9: 记录任务日志
+Step 10: 通知财务风控组
+```
+
+## 6. 审计日志
+
+每次 Agent 运行都应该写入审计。
+
+建议字段:
+
+```json
+{
+ "id": "",
+ "source": "user_message | schedule | system_event",
+ "agent": "hermes | user_agent",
+ "user_id": "",
+ "task_id": "",
+ "ontology_json": {},
+ "tools_called": [],
+ "permission_scope": {},
+ "result_summary": "",
+ "action_taken": "",
+ "requires_confirmation": false,
+ "created_at": ""
+}
+```
+
+## 7. 失败处理
+
+### 7.1 用户交互失败
+
+```text
+数据库查询失败
+ 返回“暂时无法查询”,记录错误
+
+缺少关键字段
+ 返回追问
+
+权限不足
+ 返回无权限说明
+
+MCP 不可用
+ 返回降级说明,必要时生成待处理项
+```
+
+### 7.2 Hermes 任务失败
+
+```text
+任务失败
+ 自动重试 3 次
+
+部分 MCP 失败
+ 标记 partial_success
+
+数据不完整
+ 生成异常任务日志
+
+连续失败
+ 通知管理员
+```
+
diff --git a/document/development/agent plan/05_development_roadmap.md b/document/development/agent plan/05_development_roadmap.md
new file mode 100644
index 0000000..7edf883
--- /dev/null
+++ b/document/development/agent plan/05_development_roadmap.md
@@ -0,0 +1,435 @@
+# 分阶段开发计划
+
+## Phase 0:准备阶段
+
+目标:统一概念和边界,不写复杂功能。
+
+### Step 0.1 明确术语
+
+产出:
+
+- 规则:`.md` 审查规则文件。
+- 技能:可复用的 Agent 能力,如审批意见生成、风险解释。
+- MCP:外部服务连接。
+- 任务:定时或批量运行的后台作业。
+- Hermes:后台数字员工。
+- User Agent:用户流程助手。
+- Orchestrator:调度和路由层。
+- Ontology:语义本体协议。
+
+### Step 0.2 冻结第一版语义字段
+
+第一版只强制 8 个字段:
+
+```text
+domain
+scenario
+intent
+entities
+time_range
+constraints
+risk_signals
+next_step
+```
+
+### Step 0.3 建立设计文档
+
+产出:
+
+- 本目录所有文档。
+- 后续数据库表设计草案。
+- API 合同草案。
+
+## Phase 1:任务规则中心基础建设
+
+目标:先把管理后台搭起来。
+
+### Step 1.1 完成前端信息架构
+
+页签:
+
+```text
+规则 / 技能 / MCP / 任务
+```
+
+规则详情:
+
+- Markdown 编辑器。
+- 审核人。
+- 审核状态。
+- 版本列表。
+- 版本切换确认。
+
+技能详情:
+
+- 技能配置。
+- 输入上下文。
+- 输出契约。
+- 测试样例。
+- 依赖能力。
+
+MCP 详情:
+
+- 服务地址。
+- 鉴权方式。
+- 权限范围。
+- 健康检查。
+- 调用记录。
+
+任务详情:
+
+- Cron。
+- 运行窗口。
+- 输入范围。
+- 产出对象。
+- 最近运行。
+
+### Step 1.2 建立后端基础模型
+
+建议表:
+
+```text
+agent_rules
+agent_skills
+agent_mcp_services
+agent_tasks
+agent_asset_versions
+agent_asset_reviews
+```
+
+第一阶段可以先不做完整执行,只做 CRUD。
+
+### Step 1.3 规则版本与审核
+
+规则上线流程:
+
+```text
+草稿
+ ↓
+提交审核
+ ↓
+审核通过
+ ↓
+上线
+```
+
+关键约束:
+
+- 没有审核人不能上线。
+- 没有审核通过不能上线。
+- 上线必须生成新版本。
+- 历史版本只读。
+
+## Phase 2:OCR 与财务单据标准模型
+
+目标:让发票、附件、报销单和账款流水先标准化。
+
+### Step 2.1 附件上传与文件分类
+
+识别:
+
+- 发票。
+- 行程单。
+- 合同。
+- 付款凭证。
+- 审批截图。
+
+### Step 2.2 OCR MCP 接入
+
+把附件转成结构化字段。
+
+### Step 2.3 Invoice 标准模型
+
+统一 OCR、MCP、用户填写和业务系统字段。
+
+### Step 2.4 人工修正
+
+允许财务人员修正 OCR 字段,并写入反馈池。
+
+### Step 2.5 规则中心接入 OCR 结果
+
+重复发票、附件完整性、金额不一致等规则开始使用标准模型。
+
+## Phase 3:语义本体服务
+
+目标:用户问题和任务配置都能转成 ontology_json。
+
+### Step 3.1 建立 semantic_parser API
+
+接口:
+
+```text
+POST /api/v1/semantic/parse
+```
+
+输入:
+
+```json
+{
+ "source": "user_message",
+ "text": "上个月哪些客户应收逾期超过 30 天?",
+ "context": {}
+}
+```
+
+输出:
+
+```json
+{
+ "domain": "accounts_receivable",
+ "scenario": "receivable_aging",
+ "intent": "query",
+ "entities": [],
+ "time_range": {},
+ "constraints": {},
+ "risk_signals": [],
+ "next_step": "query_database"
+}
+```
+
+### Step 3.2 建立 ontology schema 表
+
+建议表:
+
+```text
+semantic_ontology_schemas
+semantic_parse_logs
+```
+
+字段:
+
+```text
+id
+schema_version
+schema_json
+status
+created_at
+updated_at
+```
+
+### Step 3.3 建立解析测试集
+
+至少覆盖:
+
+- 报销规则解释。
+- 差旅报销创建。
+- 发票验真。
+- 应收逾期查询。
+- 应付付款状态。
+- 每日风险巡检。
+- 知识库维护。
+
+## Phase 4:LLM Wiki 知识库
+
+目标:让制度文档、FAQ、审批经验可被 Agent 检索和引用。
+
+### Step 4.1 文档解析与分块
+
+上传 PDF、Word、Excel 后抽取正文并 chunk。
+
+### Step 4.2 元数据与向量索引
+
+为知识块打 domain、scenario、tags、版本。
+
+### Step 4.3 知识检索 API
+
+User Agent 可以基于语义本体查询知识。
+
+### Step 4.4 知识候选审核
+
+Hermes 生成 FAQ 或条款候选,人工审核后发布。
+
+## Phase 5:Orchestrator 基础版
+
+目标:基于 ontology_json 做确定性路由。
+
+### Step 5.1 建立路由规则
+
+输入:
+
+```text
+source
+domain
+scenario
+intent
+next_step
+```
+
+输出:
+
+```text
+agent = hermes | user_agent
+tools = []
+permission_required = []
+```
+
+### Step 5.2 建立工具网关
+
+第一批工具:
+
+```text
+rule_engine.run
+knowledge.search
+database.query
+mcp.call
+task.create
+```
+
+### Step 5.3 建立审计日志
+
+所有请求都记录:
+
+- 原始输入。
+- 语义 JSON。
+- 路由结果。
+- 工具调用。
+- 输出摘要。
+- 错误信息。
+
+## Phase 6:User Agent 第一版
+
+目标:先做只读和解释,不做强写入。
+
+### Step 6.1 支持制度问答
+
+流程:
+
+```text
+用户问题
+ -> semantic_parse
+ -> search_knowledge
+ -> User Agent 生成回答
+```
+
+### Step 6.2 支持规则解释
+
+流程:
+
+```text
+用户问为什么被拦截
+ -> semantic_parse
+ -> run_rule
+ -> search_knowledge
+ -> User Agent 解释风险原因
+```
+
+### Step 6.3 支持业务查询
+
+先支持:
+
+- 报销单状态查询。
+- 应收账龄查询。
+- 应付付款状态查询。
+
+### Step 6.4 支持草稿生成
+
+只生成草稿,不直接提交。
+
+```text
+用户确认前不写核心状态
+```
+
+## Phase 7:Hermes 第一版
+
+目标:让后台数字员工开始跑任务。
+
+### Step 7.1 每日风险巡检
+
+输入:
+
+- 昨日单据。
+- 发票。
+- 附件。
+- 付款流水。
+
+输出:
+
+- 风险报告。
+- 风险工单。
+- 风险统计。
+
+### Step 7.2 每日财务统计
+
+统计:
+
+- 报销金额。
+- 报账金额。
+- 应收账龄。
+- 应付账龄。
+- 付款状态。
+- 账款异常。
+
+### Step 7.3 知识候选积累
+
+来源:
+
+- 审批意见。
+- 驳回原因。
+- 高频问答。
+- 规则误报反馈。
+
+输出:
+
+- FAQ 候选。
+- 规则优化建议。
+- 制度变更摘要。
+
+## Phase 8:MCP 接入
+
+目标:让 Agent 能安全调用外部系统。
+
+优先接入:
+
+1. 发票验真 MCP。
+2. 附件 OCR MCP。
+3. 银行流水 MCP。
+4. 差旅平台 MCP。
+5. ERP/付款状态 MCP。
+
+每个 MCP 必须有:
+
+- 服务地址。
+- 鉴权方式。
+- 权限范围。
+- 超时设置。
+- 降级策略。
+- 健康检查。
+- 调用日志。
+
+## Phase 9:规则形成与反馈闭环
+
+目标:让系统持续变聪明,但不失控。
+
+闭环:
+
+```text
+Hermes 发现问题
+ -> 生成规则优化建议
+ -> 管理员审核
+ -> 更新规则
+ -> User Agent 使用新规则解释
+ -> 反馈继续进入 Hermes
+```
+
+关键限制:
+
+- Hermes 只生成候选。
+- 管理员审核后才能发布。
+- 所有规则变更有版本。
+- 所有上线动作有审核人。
+
+### Step 9.1 规则候选池
+
+Hermes 从制度、风险案例、反馈中生成规则候选。
+
+### Step 9.2 规则测试样例
+
+每条规则上线前必须有测试样例。
+
+### Step 9.3 反馈池
+
+收集 OCR 修正、规则误报、Agent 回答反馈。
+
+### Step 9.4 质量看板
+
+统计误报率、修正率、回答满意度、MCP 失败率。
diff --git a/document/development/agent plan/06_data_contracts_and_governance.md b/document/development/agent plan/06_data_contracts_and_governance.md
new file mode 100644
index 0000000..5622b9b
--- /dev/null
+++ b/document/development/agent plan/06_data_contracts_and_governance.md
@@ -0,0 +1,334 @@
+# 数据契约与治理要求
+
+## 1. 推荐数据表
+
+### 1.1 语义本体
+
+```text
+semantic_ontology_schemas
+```
+
+字段:
+
+```text
+id
+schema_version
+schema_json
+status
+created_by
+created_at
+updated_at
+```
+
+```text
+semantic_parse_logs
+```
+
+字段:
+
+```text
+id
+source
+user_id
+raw_text
+ontology_json
+confidence
+created_at
+```
+
+### 1.2 Agent 资产
+
+```text
+agent_rules
+agent_skills
+agent_mcp_services
+agent_tasks
+```
+
+通用字段:
+
+```text
+id
+code
+name
+description
+status
+owner
+reviewer
+config_json
+created_at
+updated_at
+```
+
+### 1.3 版本与审核
+
+```text
+agent_asset_versions
+```
+
+字段:
+
+```text
+id
+asset_type
+asset_id
+version
+content
+change_note
+created_by
+created_at
+```
+
+```text
+agent_asset_reviews
+```
+
+字段:
+
+```text
+id
+asset_type
+asset_id
+version
+reviewer
+review_status
+review_note
+reviewed_at
+```
+
+### 1.4 运行日志
+
+```text
+agent_runs
+```
+
+字段:
+
+```text
+id
+agent
+source
+task_id
+user_id
+ontology_json
+status
+started_at
+finished_at
+result_summary
+error_message
+```
+
+```text
+agent_tool_calls
+```
+
+字段:
+
+```text
+id
+run_id
+tool_type
+tool_name
+request_json
+response_json
+status
+duration_ms
+created_at
+```
+
+## 2. API 契约
+
+### 2.1 语义解析
+
+```text
+POST /api/v1/semantic/parse
+```
+
+请求:
+
+```json
+{
+ "source": "user_message",
+ "text": "这张发票为什么被拦截?",
+ "context": {
+ "user_id": "emp_001",
+ "current_page": "reimbursement_detail"
+ }
+}
+```
+
+响应:
+
+```json
+{
+ "domain": "reimbursement",
+ "scenario": "invoice_validation",
+ "intent": "explain",
+ "entities": [],
+ "time_range": {},
+ "constraints": {},
+ "risk_signals": ["unknown"],
+ "next_step": "run_rule"
+}
+```
+
+### 2.2 Orchestrator 执行
+
+```text
+POST /api/v1/agent/orchestrate
+```
+
+请求:
+
+```json
+{
+ "source": "user_message",
+ "ontology": {},
+ "context": {}
+}
+```
+
+响应:
+
+```json
+{
+ "agent": "user_agent",
+ "tools_called": [],
+ "answer": "",
+ "requires_confirmation": false,
+ "audit_id": ""
+}
+```
+
+### 2.3 Hermes 任务
+
+```text
+POST /api/v1/hermes/tasks/run
+```
+
+请求:
+
+```json
+{
+ "task_code": "daily_risk_scan",
+ "ontology": {},
+ "dry_run": false
+}
+```
+
+响应:
+
+```json
+{
+ "run_id": "",
+ "status": "accepted"
+}
+```
+
+## 3. 安全原则
+
+### 3.1 最小权限
+
+Agent 调工具时不能使用超级权限。
+
+权限来源:
+
+- 用户权限。
+- 任务权限。
+- 服务账号权限。
+
+### 3.2 高风险动作确认
+
+以下动作必须确认:
+
+- 提交报销。
+- 发起付款。
+- 生成正式审批意见。
+- 发布规则。
+- 发布知识库。
+- 创建外部通知。
+
+### 3.3 审计不可省略
+
+必须记录:
+
+- 谁触发。
+- 输入是什么。
+- 解析结果是什么。
+- 调了哪些工具。
+- 输出是什么。
+- 是否确认。
+- 是否失败。
+
+## 4. 数据治理
+
+### 4.1 脱敏
+
+Hermes 批处理尽量使用脱敏快照。
+
+敏感字段:
+
+- 身份证。
+- 银行卡。
+- 手机号。
+- 个人住址。
+- 个人发票抬头中的敏感信息。
+
+### 4.2 数据保留
+
+建议:
+
+- Agent 运行日志保留 180 天。
+- 工具调用详细请求保留 90 天。
+- 错误日志保留 365 天。
+- 审核记录永久保留。
+
+### 4.3 版本治理
+
+规则、技能、MCP、任务都应版本化。
+
+规则版本尤其重要:
+
+- 当前版本必须明确。
+- 历史版本可查看。
+- 切换版本需要确认。
+- 上线版本必须审核通过。
+
+## 5. 发布策略
+
+### 5.1 第一阶段
+
+只允许只读能力:
+
+- 查知识库。
+- 查状态。
+- 看规则。
+- 看任务报告。
+
+### 5.2 第二阶段
+
+允许生成草稿:
+
+- 报销草稿。
+- 付款申请草稿。
+- 审批意见草稿。
+- 知识候选草稿。
+
+### 5.3 第三阶段
+
+允许确认后执行:
+
+- 用户确认后提交报销。
+- 审批人确认后写入审批意见。
+- 管理员确认后发布知识。
+- 管理员确认后上线规则。
+
+### 5.4 禁止项
+
+长期禁止:
+
+- Agent 自动最终审批。
+- Agent 自动付款。
+- Agent 自动绕过规则。
+- Agent 自动修改财务核心数据。
+
diff --git a/document/development/agent plan/07_capability_registry.md b/document/development/agent plan/07_capability_registry.md
new file mode 100644
index 0000000..2923f59
--- /dev/null
+++ b/document/development/agent plan/07_capability_registry.md
@@ -0,0 +1,198 @@
+# Capability Registry 能力注册中心
+
+## 1. 为什么需要能力注册中心
+
+双 Agent 架构里会出现很多能力:
+
+- 规则文件。
+- 技能。
+- MCP 服务。
+- 数据库查询。
+- 知识库检索。
+- 定时任务。
+- 报告生成。
+
+如果 Orchestrator 直接在代码里硬编码这些能力,会导致:
+
+- 能力越来越多后难维护。
+- 无法统一权限。
+- 无法统一版本。
+- 无法统一输入输出格式。
+- Hermes 和 User Agent 复用困难。
+
+因此建议建立 Capability Registry。
+
+它的定位是:
+
+```text
+所有可被 Agent 调用的能力目录
+```
+
+## 2. 能力类型
+
+建议第一版支持:
+
+```text
+rule
+skill
+mcp
+task
+database_query
+knowledge_search
+report_generator
+notification
+```
+
+含义:
+
+- `rule`:审查规则,通常是 `.md` 文件或规则配置。
+- `skill`:智能能力,如审批意见生成、风险解释。
+- `mcp`:外部服务连接。
+- `task`:定时或批量任务。
+- `database_query`:受控数据库查询能力。
+- `knowledge_search`:知识库检索能力。
+- `report_generator`:报告生成能力。
+- `notification`:通知能力。
+
+## 3. 能力注册结构
+
+建议结构:
+
+```json
+{
+ "id": "cap_rule_duplicate_invoice",
+ "code": "duplicate_invoice_rule",
+ "name": "重复报销识别规则",
+ "capability_type": "rule",
+ "domain": "reimbursement",
+ "scenarios": ["invoice_validation", "reimbursement_audit"],
+ "intents": ["validate", "explain", "monitor"],
+ "input_schema": {},
+ "output_schema": {},
+ "permission_required": ["reimbursement:read", "risk:write"],
+ "risk_level": "high",
+ "owner": "财务风控组",
+ "version": "v1.9",
+ "status": "active",
+ "requires_confirmation": false,
+ "created_at": "",
+ "updated_at": ""
+}
+```
+
+## 4. 与语义本体的匹配关系
+
+Orchestrator 根据 ontology_json 匹配能力。
+
+示例:
+
+```json
+{
+ "domain": "reimbursement",
+ "scenario": "invoice_validation",
+ "intent": "explain",
+ "risk_signals": ["duplicate_invoice"],
+ "next_step": "run_rule"
+}
+```
+
+可以匹配:
+
+```text
+重复报销识别规则
+发票验真 MCP
+风险解释技能
+制度知识库检索
+```
+
+## 5. 能力匹配优先级
+
+建议顺序:
+
+```text
+Step 1: next_step 决定能力大类
+Step 2: domain 限定业务域
+Step 3: scenario 限定场景
+Step 4: risk_signals 匹配具体规则
+Step 5: intent 匹配技能
+Step 6: permission_required 校验权限
+Step 7: status 必须 active
+Step 8: version 使用当前上线版本
+```
+
+## 6. 数据表建议
+
+```text
+agent_capabilities
+```
+
+字段:
+
+```text
+id
+code
+name
+capability_type
+domain
+scenario_json
+intent_json
+input_schema_json
+output_schema_json
+permission_json
+risk_level
+owner
+current_version
+status
+requires_confirmation
+config_json
+created_at
+updated_at
+```
+
+## 7. 开发步骤
+
+### Step 1: 先注册静态能力
+
+先把现有规则、技能、MCP、任务写入 Registry。
+
+不需要一开始做复杂 UI。
+
+### Step 2: Orchestrator 改为查 Registry
+
+从:
+
+```text
+if next_step = run_rule then call duplicate_invoice_rule
+```
+
+改为:
+
+```text
+query capabilities where type = rule and scenario = invoice_validation
+```
+
+### Step 3: 加权限过滤
+
+只返回当前用户或任务有权限调用的能力。
+
+### Step 4: 加版本选择
+
+默认使用 active 版本。
+
+历史版本只用于回放和调试。
+
+### Step 5: 加健康状态
+
+MCP、任务、数据库查询能力应有健康状态。
+
+不可用时 Orchestrator 走降级策略。
+
+## 8. 治理要求
+
+- 所有能力必须有 owner。
+- 高风险能力必须有 reviewer。
+- 所有能力必须有输入输出 schema。
+- 所有能力必须有状态。
+- 下线能力不能被 Orchestrator 调用。
+- 能力版本变更必须写入审计。
+
diff --git a/document/development/agent plan/08_permission_confirmation.md b/document/development/agent plan/08_permission_confirmation.md
new file mode 100644
index 0000000..0414b02
--- /dev/null
+++ b/document/development/agent plan/08_permission_confirmation.md
@@ -0,0 +1,214 @@
+# 权限与确认引擎
+
+## 1. 目标
+
+Agent 不能只靠提示词判断能不能执行动作。
+
+财务系统需要独立的权限与确认引擎:
+
+```text
+Permission Engine
+Confirmation Engine
+```
+
+它们负责:
+
+- 判断用户是否能看某类数据。
+- 判断任务是否能调用某个能力。
+- 判断动作是否需要确认。
+- 判断动作是否禁止自动执行。
+
+## 2. 动作风险分级
+
+建议按 L0-L5 分级。
+
+### L0 只读查询
+
+例子:
+
+- 查询制度。
+- 查询单据状态。
+- 查询规则说明。
+- 查询任务运行记录。
+
+要求:
+
+- 需要权限。
+- 不需要确认。
+
+### L1 生成建议
+
+例子:
+
+- 生成审批意见建议。
+- 生成风险解释。
+- 生成规则优化建议。
+
+要求:
+
+- 需要权限。
+- 不写业务状态。
+- 不需要确认,但要标记为建议。
+
+### L2 生成草稿
+
+例子:
+
+- 生成报销草稿。
+- 生成付款申请草稿。
+- 生成知识库候选。
+
+要求:
+
+- 需要权限。
+- 写入草稿区。
+- 不进入正式流程。
+
+### L3 用户确认后提交
+
+例子:
+
+- 用户确认后提交报销。
+- 审批人确认后写入审批意见。
+- 用户确认后发起补件。
+
+要求:
+
+- 必须二次确认。
+- 必须记录确认人。
+- 必须记录确认前后内容。
+
+### L4 管理员确认后发布
+
+例子:
+
+- 发布规则。
+- 发布知识库。
+- 启用 MCP。
+- 启用任务。
+
+要求:
+
+- 必须管理员确认。
+- 必须有审核记录。
+- 必须有版本。
+
+### L5 禁止自动执行
+
+例子:
+
+- 自动最终审批。
+- 自动付款。
+- 自动绕过风控。
+- 自动修改核心财务状态。
+
+要求:
+
+- Agent 永远不能直接执行。
+
+## 3. 权限判断输入
+
+```json
+{
+ "user_id": "emp_001",
+ "agent": "user_agent",
+ "source": "user_message",
+ "action": "create_reimbursement_draft",
+ "domain": "reimbursement",
+ "resource": {
+ "type": "reimbursement_request",
+ "id": ""
+ },
+ "capability": "travel_reimbursement_create"
+}
+```
+
+## 4. 权限判断输出
+
+```json
+{
+ "allowed": true,
+ "risk_level": "L2",
+ "requires_confirmation": false,
+ "reason": "",
+ "permission_scope": {
+ "departments": ["current_user"],
+ "data_masking": false
+ }
+}
+```
+
+## 5. 确认弹窗策略
+
+需要确认的动作必须显示:
+
+- 动作名称。
+- 影响对象。
+- 关键字段。
+- 执行后果。
+- 是否可撤销。
+- 确认人。
+
+示例:
+
+```json
+{
+ "title": "确认提交报销申请",
+ "action": "submit_reimbursement",
+ "summary": "将提交差旅报销单 TR-202605001,金额 ¥3,280。",
+ "risk_level": "L3",
+ "confirm_button": "确认提交"
+}
+```
+
+## 6. Hermes 权限
+
+Hermes 使用服务账号,不使用个人账号。
+
+建议拆分权限:
+
+```text
+hermes:risk_scan
+hermes:finance_statistics
+hermes:knowledge_candidate
+hermes:mcp_health_check
+```
+
+Hermes 默认只允许:
+
+- 读脱敏快照。
+- 跑规则。
+- 调只读 MCP。
+- 写报告、候选、工单。
+
+Hermes 不允许:
+
+- 写正式审批状态。
+- 写正式付款状态。
+- 发布规则。
+- 发布知识。
+
+## 7. User Agent 权限
+
+User Agent 继承当前用户权限。
+
+例如:
+
+- 员工只能看自己的报销。
+- 部门负责人可以看本部门。
+- 财务可以看授权范围内数据。
+- 管理员可以管理规则、任务、MCP。
+
+User Agent 不能扩大用户权限。
+
+## 8. 开发步骤
+
+```text
+Step 1: 定义 action risk level
+Step 2: 建立 Permission Engine 接口
+Step 3: 所有工具调用前接入权限判断
+Step 4: L3/L4 动作接入确认弹窗
+Step 5: 审计记录确认内容
+Step 6: 增加权限测试用例
+```
+
diff --git a/document/development/agent plan/09_observability_and_trace.md b/document/development/agent plan/09_observability_and_trace.md
new file mode 100644
index 0000000..b21fac3
--- /dev/null
+++ b/document/development/agent plan/09_observability_and_trace.md
@@ -0,0 +1,186 @@
+# 可观测性与 Agent Run Trace
+
+## 1. 目标
+
+Agent 系统必须可追踪、可回放、可解释。
+
+财务系统中尤其需要回答:
+
+- 为什么 Agent 得出这个结论?
+- 用了哪个模型?
+- 用了哪个规则版本?
+- 调用了哪些 MCP?
+- 查了哪些数据?
+- 谁确认了动作?
+- 失败在哪里?
+
+## 2. Agent Run Trace
+
+每次 Agent 运行都生成一个 run_id。
+
+建议结构:
+
+```json
+{
+ "run_id": "",
+ "source": "user_message",
+ "agent": "user_agent",
+ "user_id": "emp_001",
+ "raw_input": "",
+ "ontology_json": {},
+ "route_decision": {},
+ "permission_result": {},
+ "tool_calls": [],
+ "final_output": "",
+ "status": "success",
+ "started_at": "",
+ "finished_at": ""
+}
+```
+
+## 3. 需要记录的版本
+
+每次运行都要记录:
+
+```text
+ontology_schema_version
+semantic_parser_prompt_version
+model_name
+model_version
+rule_version
+skill_version
+mcp_version
+knowledge_snapshot_version
+orchestrator_version
+```
+
+原因:
+
+用户可能问:
+
+```text
+为什么昨天和今天的结论不一样?
+```
+
+只有记录版本,才能解释。
+
+## 4. Tool Call Trace
+
+每个工具调用都记录:
+
+```json
+{
+ "tool_call_id": "",
+ "run_id": "",
+ "tool_type": "mcp",
+ "tool_name": "invoice_verify",
+ "request_json": {},
+ "response_json": {},
+ "status": "success",
+ "duration_ms": 820,
+ "error_message": ""
+}
+```
+
+敏感字段应脱敏。
+
+## 5. 运行状态
+
+建议枚举:
+
+```text
+pending
+running
+success
+partial_success
+failed
+cancelled
+waiting_confirmation
+```
+
+## 6. Hermes 可观测性
+
+Hermes 任务需要额外记录:
+
+```text
+task_code
+schedule_time
+data_snapshot_id
+records_scanned
+rules_executed
+mcp_calls
+risk_items_generated
+knowledge_candidates_generated
+retry_count
+```
+
+示例:
+
+```json
+{
+ "task_code": "daily_risk_scan",
+ "records_scanned": 2146,
+ "rules_executed": 8,
+ "mcp_calls": 436,
+ "risk_items_generated": 19,
+ "status": "success"
+}
+```
+
+## 7. User Agent 可观测性
+
+User Agent 需要额外记录:
+
+```text
+conversation_id
+page_context
+user_confirmation
+draft_created
+business_object_id
+```
+
+## 8. 前端审计视图
+
+建议后续增加“Agent 运行记录”页面。
+
+展示:
+
+- 运行时间。
+- Agent 类型。
+- 用户或任务。
+- 语义解析结果。
+- 调用工具。
+- 运行状态。
+- 耗时。
+- 错误。
+
+详情页展示:
+
+- 原始输入。
+- 本体 JSON。
+- 路由决策。
+- 工具调用链。
+- 最终输出。
+
+## 9. 告警
+
+需要告警的情况:
+
+- Hermes 任务连续失败。
+- MCP 健康检查失败。
+- 语义解析低置信度比例过高。
+- 某规则误报率过高。
+- Agent 调用耗时异常。
+- 权限拒绝次数异常。
+
+## 10. 开发步骤
+
+```text
+Step 1: 增加 agent_runs 表
+Step 2: 增加 agent_tool_calls 表
+Step 3: Orchestrator 每次执行创建 run_id
+Step 4: 工具网关记录 tool call
+Step 5: 前端增加运行记录页面
+Step 6: 增加异常告警规则
+```
+
diff --git a/document/development/agent plan/10_evaluation_and_testset.md b/document/development/agent plan/10_evaluation_and_testset.md
new file mode 100644
index 0000000..441ae7a
--- /dev/null
+++ b/document/development/agent plan/10_evaluation_and_testset.md
@@ -0,0 +1,173 @@
+# 评测集与质量控制
+
+## 1. 为什么需要评测集
+
+语义解析、本体字段、Agent 路由、规则命中都不能只靠人工感觉。
+
+每次修改 prompt、模型、规则或路由逻辑,都应该运行评测集。
+
+目标:
+
+- 检查 domain 是否识别正确。
+- 检查 scenario 是否识别正确。
+- 检查 intent 是否识别正确。
+- 检查 next_step 是否正确。
+- 检查是否应该追问。
+- 检查是否错误调用高风险工具。
+
+## 2. 第一版评测集规模
+
+建议第一版至少 300 条。
+
+```text
+报销问题:80 条
+应收问题:60 条
+应付问题:60 条
+制度问答:40 条
+风险解释:30 条
+定时任务:20 条
+模糊问题:10 条
+```
+
+## 3. 评测样例结构
+
+```json
+{
+ "id": "eval_001",
+ "input": "上个月哪些客户应收逾期超过 30 天?",
+ "expected": {
+ "domain": "accounts_receivable",
+ "scenario": "receivable_aging",
+ "intent": "query",
+ "next_step": "query_database"
+ },
+ "required_entities": ["customer"],
+ "notes": "应识别为应收账龄查询"
+}
+```
+
+## 4. 评测指标
+
+### 4.1 字段准确率
+
+```text
+domain_accuracy
+scenario_accuracy
+intent_accuracy
+next_step_accuracy
+```
+
+### 4.2 工具路由准确率
+
+```text
+tool_route_accuracy
+permission_decision_accuracy
+confirmation_decision_accuracy
+```
+
+### 4.3 安全指标
+
+```text
+unsafe_action_rate
+missing_confirmation_rate
+permission_bypass_rate
+```
+
+这些指标必须接近 0。
+
+## 5. 低置信度处理
+
+语义解析输出应包含:
+
+```json
+{
+ "confidence": 0.62,
+ "missing_slots": ["time_range"],
+ "ambiguity": ["应收逾期还是审批逾期"]
+}
+```
+
+当置信度低于阈值:
+
+```text
+confidence < 0.75
+ 不执行工具
+ 返回追问
+```
+
+## 6. 模糊问题样例
+
+用户问:
+
+```text
+这个为什么还没处理?
+```
+
+不能直接执行查询。
+
+应该追问:
+
+```text
+你是想查询报销单、应收款还是付款申请的处理状态?
+```
+
+## 7. 回归测试流程
+
+每次改动以下内容都要跑评测:
+
+- semantic parser prompt。
+- ontology schema。
+- Orchestrator 路由。
+- 规则中心匹配逻辑。
+- MCP 能力注册。
+- 模型版本。
+
+流程:
+
+```text
+Step 1: 加载评测集
+Step 2: 批量调用 semantic_parse
+Step 3: 批量调用 route_decision
+Step 4: 对比 expected
+Step 5: 输出准确率报告
+Step 6: 阻止低于阈值的发布
+```
+
+## 8. 发布阈值
+
+建议第一版阈值:
+
+```text
+domain_accuracy >= 95%
+intent_accuracy >= 90%
+next_step_accuracy >= 90%
+unsafe_action_rate = 0
+missing_confirmation_rate = 0
+```
+
+## 9. 评测数据管理
+
+建议文件结构:
+
+```text
+server/tests/fixtures/semantic_eval/
+ reimbursement.jsonl
+ accounts_receivable.jsonl
+ accounts_payable.jsonl
+ risk_explain.jsonl
+ scheduled_tasks.jsonl
+```
+
+每行一个样例。
+
+## 10. 开发步骤
+
+```text
+Step 1: 建立 JSONL 评测集格式
+Step 2: 写 50 条人工样例
+Step 3: 接入 semantic_parse 批测脚本
+Step 4: 输出 markdown/html 评测报告
+Step 5: 扩展到 300 条
+Step 6: 接入 CI 或手动发布检查
+```
+
diff --git a/document/development/agent plan/11_ocr_invoice_architecture.md b/document/development/agent plan/11_ocr_invoice_architecture.md
new file mode 100644
index 0000000..3906394
--- /dev/null
+++ b/document/development/agent plan/11_ocr_invoice_architecture.md
@@ -0,0 +1,221 @@
+# OCR 票据识别架构
+
+## 1. 定位
+
+OCR 票据识别不是一个简单的图片转文字功能。
+
+它在 X-Financial 中承担三件事:
+
+1. 把用户上传的附件变成结构化票据信息。
+2. 为规则中心提供可判断的字段。
+3. 为 Hermes 和 User Agent 提供可解释的证据。
+
+因此 OCR 应作为独立能力纳入 Capability Registry。
+
+```text
+capability_type = mcp | document_processor
+capability_code = invoice_ocr
+```
+
+## 2. 总体链路
+
+```text
+附件上传
+ ↓
+文件分类
+ ↓
+OCR 识别
+ ↓
+字段结构化
+ ↓
+票据类型归一化
+ ↓
+发票验真 MCP
+ ↓
+与报销明细匹配
+ ↓
+规则中心检查
+ ↓
+人工修正
+ ↓
+修正结果沉淀
+```
+
+## 3. 阶段拆分
+
+### Phase A:附件接入与文件分类
+
+目标:先识别上传的是什么。
+
+输入:
+
+- 图片。
+- PDF。
+- Excel。
+- Word。
+- 压缩包。
+
+输出:
+
+```json
+{
+ "document_type": "invoice",
+ "mime_type": "image/png",
+ "page_count": 1,
+ "confidence": 0.91
+}
+```
+
+分类结果:
+
+```text
+invoice
+itinerary
+contract
+payment_receipt
+approval_screenshot
+other
+```
+
+### Phase B:OCR 字段提取
+
+目标:从图片或 PDF 中提取票据字段。
+
+结构:
+
+```json
+{
+ "invoice_code": "",
+ "invoice_number": "",
+ "seller_name": "",
+ "seller_tax_no": "",
+ "buyer_name": "",
+ "buyer_tax_no": "",
+ "issue_date": "",
+ "total_amount": 0,
+ "tax_amount": 0,
+ "currency": "CNY",
+ "ocr_confidence": 0.88
+}
+```
+
+### Phase C:字段归一化
+
+目标:不同 OCR 服务返回不同字段名,必须统一。
+
+示例:
+
+```text
+发票号码 / invoiceNo / invoice_number
+ -> invoice_number
+```
+
+金额统一:
+
+```json
+{
+ "raw": "¥1,280.00",
+ "value": 1280.00,
+ "currency": "CNY"
+}
+```
+
+### Phase D:验真与状态检查
+
+调用发票验真 MCP。
+
+输出:
+
+```json
+{
+ "verify_status": "verified",
+ "voided": false,
+ "red_reversed": false,
+ "verified_at": ""
+}
+```
+
+### Phase E:与报销明细匹配
+
+对比:
+
+- 发票金额 vs 报销金额。
+- 开票日期 vs 费用日期。
+- 销售方 vs 商户。
+- 发票类型 vs 费用类型。
+
+输出:
+
+```json
+{
+ "match_status": "matched",
+ "mismatch_fields": [],
+ "match_confidence": 0.94
+}
+```
+
+### Phase F:人工修正与回流
+
+OCR 结果必须允许人工修正。
+
+修正内容进入反馈池:
+
+```json
+{
+ "field": "invoice_number",
+ "before": "12345B",
+ "after": "123456",
+ "corrected_by": "finance_user",
+ "corrected_at": ""
+}
+```
+
+## 4. 数据模型建议
+
+```text
+document_assets
+document_ocr_results
+invoice_structured_records
+invoice_verification_records
+document_corrections
+```
+
+## 5. 与规则中心关系
+
+OCR 输出供规则使用:
+
+```text
+重复报销识别规则
+作废发票检查规则
+发票抬头异常规则
+附件完整性规则
+金额不一致规则
+```
+
+## 6. 与 Agent 关系
+
+User Agent 使用 OCR:
+
+- 解释发票为什么被拦截。
+- 帮用户补充发票信息。
+- 提醒上传清晰附件。
+
+Hermes 使用 OCR:
+
+- 夜间批量验真。
+- 扫描重复票据。
+- 统计发票异常趋势。
+
+## 7. 开发阶段建议
+
+```text
+Step 1: 附件上传和文件分类
+Step 2: 接入 OCR MCP
+Step 3: 结构化字段归一化
+Step 4: 人工修正界面
+Step 5: 发票验真 MCP
+Step 6: 与报销明细匹配
+Step 7: 规则中心接入
+Step 8: Hermes 夜间批量 OCR 巡检
+```
+
diff --git a/document/development/agent plan/12_llm_wiki_knowledge_architecture.md b/document/development/agent plan/12_llm_wiki_knowledge_architecture.md
new file mode 100644
index 0000000..e208bcc
--- /dev/null
+++ b/document/development/agent plan/12_llm_wiki_knowledge_architecture.md
@@ -0,0 +1,148 @@
+# LLM Wiki 知识库架构
+
+## 1. 定位
+
+LLM Wiki 不是简单的文件库。
+
+它是给 Agent 使用的知识底座,负责把制度、FAQ、审批经验、规则说明转成可检索、可引用、可版本化的知识。
+
+## 2. 总体链路
+
+```text
+文档上传
+ ↓
+格式解析
+ ↓
+正文抽取
+ ↓
+分块 Chunking
+ ↓
+元数据标注
+ ↓
+向量索引
+ ↓
+条款抽取
+ ↓
+知识候选
+ ↓
+人工审核
+ ↓
+发布 Wiki
+ ↓
+Agent 检索引用
+```
+
+## 3. 知识类型
+
+```text
+policy_document
+faq
+rule_explanation
+approval_case
+risk_case
+operation_manual
+system_notice
+```
+
+## 4. 知识块结构
+
+```json
+{
+ "chunk_id": "",
+ "document_id": "",
+ "title": "",
+ "content": "",
+ "domain": "reimbursement",
+ "scenario": "travel_reimbursement",
+ "tags": ["差旅", "住宿标准"],
+ "effective_date": "",
+ "version": "v1.0",
+ "source_page": 4,
+ "embedding_id": "",
+ "status": "published"
+}
+```
+
+## 5. 条款抽取
+
+Hermes 可以从制度文档中抽取条款候选。
+
+示例:
+
+```json
+{
+ "clause_type": "amount_limit",
+ "domain": "reimbursement",
+ "scenario": "travel_reimbursement",
+ "condition": {
+ "city_tier": "一线城市",
+ "employee_grade": "P5"
+ },
+ "limit": {
+ "amount": 800,
+ "currency": "CNY",
+ "period": "night"
+ },
+ "source": "差旅制度 2026 第 4 页"
+}
+```
+
+该结果不直接变成规则,先进入规则候选池。
+
+## 6. Wiki 发布流程
+
+```text
+草稿知识
+ ↓
+Hermes 生成候选
+ ↓
+知识管理员审核
+ ↓
+发布
+ ↓
+Agent 可检索
+```
+
+## 7. 与 User Agent 的关系
+
+User Agent 用 Wiki:
+
+- 回答制度问题。
+- 给风险解释提供条款依据。
+- 给审批意见生成引用。
+- 帮用户理解流程。
+
+## 8. 与 Hermes 的关系
+
+Hermes 用 Wiki:
+
+- 每日知识候选生成。
+- 发现制度与规则不一致。
+- 生成规则优化建议。
+- 生成 FAQ 候选。
+
+## 9. 数据模型建议
+
+```text
+knowledge_documents
+knowledge_chunks
+knowledge_embeddings
+knowledge_candidates
+knowledge_reviews
+knowledge_versions
+```
+
+## 10. 开发阶段建议
+
+```text
+Step 1: 文档上传和文件管理
+Step 2: 文本抽取和分块
+Step 3: 元数据标注
+Step 4: 向量索引
+Step 5: 知识检索 API
+Step 6: User Agent 问答引用
+Step 7: Hermes 知识候选生成
+Step 8: 人工审核发布
+Step 9: 条款抽取和规则候选
+```
+
diff --git a/document/development/agent plan/13_rule_formation_lifecycle.md b/document/development/agent plan/13_rule_formation_lifecycle.md
new file mode 100644
index 0000000..04ef102
--- /dev/null
+++ b/document/development/agent plan/13_rule_formation_lifecycle.md
@@ -0,0 +1,126 @@
+# 规则形成生命周期
+
+## 1. 定位
+
+规则不是凭空写出来的。
+
+它应来自:
+
+- 制度文档。
+- 历史审批。
+- 风险案例。
+- OCR 识别结果。
+- MCP 验真结果。
+- 用户反馈。
+- Hermes 分析。
+
+## 2. 总体闭环
+
+```text
+制度文档 / 历史审批 / 风险案例 / 用户反馈
+ ↓
+Hermes 分析
+ ↓
+规则候选
+ ↓
+人工审核
+ ↓
+规则 .md
+ ↓
+测试样例
+ ↓
+版本发布
+ ↓
+规则执行
+ ↓
+命中反馈
+ ↓
+规则优化
+```
+
+## 3. 规则候选结构
+
+```json
+{
+ "candidate_id": "",
+ "source_type": "policy_document",
+ "domain": "reimbursement",
+ "scenario": "invoice_validation",
+ "risk_signal": "duplicate_invoice",
+ "suggested_rule_name": "重复报销识别规则",
+ "rule_markdown_draft": "",
+ "evidence": [],
+ "confidence": 0.86,
+ "created_by": "hermes"
+}
+```
+
+## 4. 规则 Markdown 推荐结构
+
+```markdown
+# 规则名称
+
+## 目标
+
+## 适用范围
+
+## 输入字段
+
+## 判断规则
+
+## 输出
+
+## 测试样例
+
+## 管理员备注
+```
+
+## 5. 审核要求
+
+规则上线必须满足:
+
+- 有审核人。
+- 有版本。
+- 有测试样例。
+- 有来源依据。
+- 有回滚方案。
+
+## 6. 规则执行反馈
+
+每次规则运行应记录:
+
+```text
+rule_id
+rule_version
+input_snapshot
+hit_result
+risk_level
+operator_feedback
+false_positive
+false_negative
+```
+
+## 7. 规则优化来源
+
+```text
+误报反馈
+漏报反馈
+审批人修改意见
+Hermes 每日复盘
+制度文档更新
+MCP 新字段可用
+```
+
+## 8. 开发阶段建议
+
+```text
+Step 1: 规则 .md 编辑和版本
+Step 2: 规则审核上线
+Step 3: 规则运行日志
+Step 4: 人工反馈误报/漏报
+Step 5: Hermes 生成规则候选
+Step 6: 规则候选审核
+Step 7: 规则测试样例管理
+Step 8: 规则质量看板
+```
+
diff --git a/document/development/agent plan/14_financial_document_canonical_model.md b/document/development/agent plan/14_financial_document_canonical_model.md
new file mode 100644
index 0000000..7d6fc3c
--- /dev/null
+++ b/document/development/agent plan/14_financial_document_canonical_model.md
@@ -0,0 +1,126 @@
+# 财务单据标准模型
+
+## 1. 为什么需要标准模型
+
+OCR、MCP、用户填写、业务数据库可能都描述同一张发票,但字段名和格式不同。
+
+如果没有标准模型:
+
+- 规则无法复用。
+- Agent 难以解释。
+- Hermes 难以批量统计。
+- MCP 返回结果难以合并。
+
+## 2. 标准对象
+
+第一版建议定义这些对象:
+
+```text
+Invoice
+Receipt
+ReimbursementRequest
+PaymentRequest
+BankTransaction
+Contract
+Customer
+Vendor
+Employee
+CostCenter
+```
+
+## 3. Invoice 标准模型
+
+```json
+{
+ "invoice_id": "",
+ "invoice_code": "",
+ "invoice_number": "",
+ "invoice_type": "",
+ "seller_name": "",
+ "seller_tax_no": "",
+ "buyer_name": "",
+ "buyer_tax_no": "",
+ "issue_date": "",
+ "total_amount": 0,
+ "tax_amount": 0,
+ "currency": "CNY",
+ "verify_status": "",
+ "ocr_confidence": 0,
+ "source_document_id": ""
+}
+```
+
+## 4. ReimbursementRequest 标准模型
+
+```json
+{
+ "request_id": "",
+ "request_no": "",
+ "employee_id": "",
+ "department_id": "",
+ "expense_type": "",
+ "amount": 0,
+ "currency": "CNY",
+ "status": "",
+ "submitted_at": "",
+ "approval_stage": "",
+ "invoices": [],
+ "attachments": [],
+ "risk_flags": []
+}
+```
+
+## 5. BankTransaction 标准模型
+
+```json
+{
+ "transaction_id": "",
+ "bank_account": "",
+ "transaction_date": "",
+ "amount": 0,
+ "currency": "CNY",
+ "counterparty_name": "",
+ "summary": "",
+ "matched_object_type": "",
+ "matched_object_id": "",
+ "match_status": ""
+}
+```
+
+## 6. 字段来源优先级
+
+建议优先级:
+
+```text
+人工确认字段
+ > MCP 验真字段
+ > 业务系统字段
+ > OCR 字段
+ > LLM 推断字段
+```
+
+LLM 推断字段必须标记来源和置信度。
+
+## 7. 与语义本体关系
+
+语义本体识别的是用户意图和对象。
+
+标准模型承载对象的结构化字段。
+
+```text
+ontology.entities[].type = invoice
+ -> 映射到 Invoice 标准模型
+```
+
+## 8. 开发阶段建议
+
+```text
+Step 1: 定义 Invoice 标准模型
+Step 2: 定义 ReimbursementRequest 标准模型
+Step 3: OCR 输出映射到 Invoice
+Step 4: MCP 输出映射到 Invoice
+Step 5: 规则中心基于标准模型执行
+Step 6: 扩展 AR/AP 标准模型
+Step 7: 建立字段血缘和置信度
+```
+
diff --git a/document/development/agent plan/15_feedback_learning_loop.md b/document/development/agent plan/15_feedback_learning_loop.md
new file mode 100644
index 0000000..471aa43
--- /dev/null
+++ b/document/development/agent plan/15_feedback_learning_loop.md
@@ -0,0 +1,119 @@
+# 反馈闭环与持续学习
+
+## 1. 定位
+
+Agent 系统必须能从人工反馈中持续变好。
+
+反馈来源:
+
+- OCR 人工修正。
+- 规则误报/漏报。
+- 审批人修改意见。
+- 用户对回答的反馈。
+- Hermes 风险复盘。
+- MCP 调用失败和降级。
+
+## 2. 反馈类型
+
+```text
+ocr_correction
+rule_false_positive
+rule_false_negative
+agent_answer_feedback
+approval_opinion_edit
+knowledge_answer_feedback
+mcp_failure_feedback
+task_result_feedback
+```
+
+## 3. 反馈结构
+
+```json
+{
+ "feedback_id": "",
+ "feedback_type": "rule_false_positive",
+ "source_object_type": "rule_run",
+ "source_object_id": "",
+ "before": {},
+ "after": {},
+ "comment": "",
+ "created_by": "",
+ "created_at": ""
+}
+```
+
+## 4. 反馈流向
+
+```text
+人工反馈
+ ↓
+反馈池
+ ↓
+Hermes 聚类分析
+ ↓
+候选改进项
+ ↓
+人工审核
+ ↓
+更新规则 / 知识 / OCR 映射 / Prompt
+```
+
+## 5. 反馈不直接自动生效
+
+反馈只能生成候选,不直接修改线上规则。
+
+必须人工审核:
+
+- 规则修改。
+- 知识发布。
+- Prompt 修改。
+- OCR 字段映射调整。
+
+## 6. Hermes 每日反馈复盘
+
+Hermes 每日任务:
+
+```text
+读取昨日反馈
+聚类相似问题
+统计误报高发规则
+统计低评分回答
+生成优化候选
+```
+
+输出:
+
+```text
+rule_improvement_candidates
+knowledge_update_candidates
+ocr_mapping_candidates
+prompt_improvement_notes
+```
+
+## 7. 质量指标
+
+建议监控:
+
+```text
+ocr_correction_rate
+rule_false_positive_rate
+rule_false_negative_rate
+agent_answer_like_rate
+agent_answer_rewrite_rate
+knowledge_no_hit_rate
+mcp_failure_rate
+```
+
+## 8. 开发阶段建议
+
+```text
+Step 1: 增加反馈按钮和反馈表
+Step 2: OCR 修正写入反馈池
+Step 3: 规则误报/漏报反馈
+Step 4: Agent 回答反馈
+Step 5: Hermes 每日反馈聚类
+Step 6: 生成优化候选
+Step 7: 人工审核发布
+Step 8: 建立质量看板
+```
+
diff --git a/document/development/agent week plan/00_README.md b/document/development/agent week plan/00_README.md
new file mode 100644
index 0000000..9289224
--- /dev/null
+++ b/document/development/agent week plan/00_README.md
@@ -0,0 +1,105 @@
+# Agent Week Plan 一周开发计划
+
+本目录是在 `document/development/agent plan` 架构文档基础上拆出的 7 天生产标准开发计划。
+
+这版文档不是概念说明,而是给 Codex 或开发人员逐项执行的 TODO 手册。执行时必须按顺序推进,每完成一项就在对应文档中标记。
+
+## 执行标记规则
+
+未完成:
+
+```md
+- [ ] 建立 AgentAsset 数据模型
+```
+
+完成后:
+
+```md
+- [x] ~~建立 AgentAsset 数据模型~~
+```
+
+执行要求:
+
+- [ ] 每次只处理一个最小 TODO。
+- [ ] 完成后先自测,再改成 `[x]`。
+- [ ] 改成 `[x]` 时,同时用 `~~` 画线。
+- [ ] 不能因为代码写完就标完成,必须满足该 TODO 的验收证据。
+- [ ] 遇到阻塞时,在当天文档的“阻塞记录”下新增一条说明。
+- [ ] 每天收尾时更新当天文档的“日终交接”。
+
+## 文档顺序
+
+先看总控清单,再进入每天的执行文档:
+
+1. [MASTER_TODO.md](./MASTER_TODO.md)
+2. [day_1_foundation_models.md](./day_1_foundation_models.md)
+3. [day_2_rule_center_integration.md](./day_2_rule_center_integration.md)
+4. [day_3_semantic_ontology_mvp.md](./day_3_semantic_ontology_mvp.md)
+5. [day_4_orchestrator_runtime.md](./day_4_orchestrator_runtime.md)
+6. [day_5_user_agent_mvp.md](./day_5_user_agent_mvp.md)
+7. [day_6_hermes_mvp.md](./day_6_hermes_mvp.md)
+8. [day_7_hardening_demo_acceptance.md](./day_7_hardening_demo_acceptance.md)
+
+## 一周总目标
+
+- [ ] 建立规则、技能、MCP、任务的统一资产模型。
+- [ ] 建立规则 Markdown 内容、版本、审核、上线状态的闭环。
+- [ ] 建立语义本体 8 字段解析接口。
+- [ ] 建立 Orchestrator 路由和 Agent Run Trace。
+- [ ] 建立 User Agent 的查询、解释、流程辅助 MVP。
+- [ ] 建立 Hermes 的定时风险巡检和日报 MVP。
+- [ ] 建立基础权限分级、人工确认、审计日志。
+- [ ] 建立最小评测集、手动验收脚本和演示流程。
+
+## 一周暂不做
+
+- [ ] 不做完整 OCR 生产识别引擎,只预留标准接口和 Mock 结果。
+- [ ] 不做完整发票验真 MCP 深度接入,只做能力注册和 Mock 调用。
+- [ ] 不做完整 LLM Wiki 向量检索,只做知识条目写入和读取骨架。
+- [ ] 不做所有财务域数据全量打通,只覆盖报销、应收、应付的最小字段。
+- [ ] 不做规则自动上线,规则只能生成草稿,必须人工审核。
+- [ ] 不做完整 CI/CD,只做本地构建、核心测试和验收脚本。
+
+## 生产底线
+
+以下底线不得被 MVP 名义绕过:
+
+- [ ] 所有写操作必须记录审计日志。
+- [ ] 所有 Agent 执行必须生成 `run_id`。
+- [ ] 所有规则必须有版本。
+- [ ] 未审核规则不能上线。
+- [ ] 高风险动作只能生成草稿或建议,不能自动提交。
+- [ ] 外部服务失败必须有降级结果。
+- [ ] 语义解析结果必须落库或落日志,便于回放。
+- [ ] 前端不能只写静态 UI,必须至少对接 Mock 或真实 API。
+
+## 每日固定流程
+
+上午:
+
+- [ ] 读取当天文档。
+- [ ] 检查前一天遗留阻塞。
+- [ ] 确认数据库模型、API、服务边界。
+- [ ] 完成后端主路径。
+
+下午:
+
+- [ ] 完成前端联调。
+- [ ] 接入 Agent 或 Orchestrator 流程。
+- [ ] 完成权限、审计、错误态。
+
+傍晚:
+
+- [ ] 运行测试和构建。
+- [ ] 按当天验收清单逐项验收。
+- [ ] 更新 TODO 完成状态。
+- [ ] 填写日终交接。
+
+## Codex 执行约束
+
+- [ ] 修改代码前先读相关文件,不凭空创建重复模块。
+- [ ] 优先复用现有 FastAPI、SQLAlchemy、Vue、PrimeVue 写法。
+- [ ] API 命名必须稳定,不能一天一个风格。
+- [ ] 数据模型新增字段必须写清楚用途。
+- [ ] 前端状态、空态、错误态、加载态都要覆盖。
+- [ ] 每天结束必须能给出可运行证据。
diff --git a/document/development/agent week plan/MASTER_TODO.md b/document/development/agent week plan/MASTER_TODO.md
new file mode 100644
index 0000000..c66f9de
--- /dev/null
+++ b/document/development/agent week plan/MASTER_TODO.md
@@ -0,0 +1,119 @@
+# Agent Week Plan 总控 TODO
+
+本文件用于控制 7 天开发顺序。每个大项完成后,再进入对应天的详细文档。
+
+完成标记规则:
+
+```md
+- [x] ~~已完成的任务~~
+```
+
+## Day 1:基础模型与工程骨架
+
+- [ ] 阅读 `document/development/agent plan/01_overall_architecture.md`。
+- [ ] 阅读 `document/development/agent plan/02_semantic_ontology.md`。
+- [ ] 阅读 `document/development/agent plan/06_data_contracts_and_governance.md`。
+- [ ] 阅读 `document/development/agent plan/07_capability_registry.md`。
+- [ ] 阅读 `document/development/agent plan/08_permission_confirmation.md`。
+- [ ] 阅读 `document/development/agent plan/09_observability_and_trace.md`。
+- [ ] 完成统一资产模型 `AgentAsset`。
+- [ ] 完成资产版本模型 `AgentAssetVersion`。
+- [ ] 完成资产审核模型 `AgentAssetReview`。
+- [ ] 完成 Agent 运行日志模型 `AgentRun`。
+- [ ] 完成工具调用日志模型 `AgentToolCall`。
+- [ ] 完成语义解析日志模型 `SemanticParseLog`。
+- [ ] 完成审计日志模型 `AuditLog`。
+- [ ] 完成基础 API 路由骨架。
+- [ ] 完成种子数据。
+- [ ] 完成 Day 1 验收。
+
+## Day 2:任务规则中心联调
+
+- [ ] 阅读 `document/development/agent plan/13_rule_formation_lifecycle.md`。
+- [ ] 阅读 `document/development/agent plan/07_capability_registry.md`。
+- [ ] 对接规则、技能、MCP、任务资产列表 API。
+- [ ] 对接资产详情 API。
+- [ ] 对接规则 Markdown 读取和保存 API。
+- [ ] 对接版本列表和版本切换 API。
+- [ ] 对接审核者信息和审核状态。
+- [ ] 对接规则上线前审核拦截。
+- [ ] 完成前端筛选、搜索、详情、弹窗状态。
+- [ ] 完成 Day 2 验收。
+
+## Day 3:语义本体 MVP
+
+- [ ] 阅读 `document/development/agent plan/02_semantic_ontology.md`。
+- [ ] 阅读 `document/development/agent plan/14_financial_document_canonical_model.md`。
+- [ ] 定义 8 个核心字段的数据结构。
+- [ ] 实现语义解析服务。
+- [ ] 实现语义解析 API。
+- [ ] 实现解析日志保存。
+- [ ] 实现场景、意图、对象、时间、指标、约束、风险、权限字段。
+- [ ] 接入 User Agent 查询入口。
+- [ ] 完成最小评测集。
+- [ ] 完成 Day 3 验收。
+
+## Day 4:Orchestrator 运行时
+
+- [ ] 阅读 `document/development/agent plan/04_orchestrator_and_runtime_flow.md`。
+- [ ] 阅读 `document/development/agent plan/08_permission_confirmation.md`。
+- [ ] 阅读 `document/development/agent plan/09_observability_and_trace.md`。
+- [ ] 实现 Orchestrator 入口服务。
+- [ ] 实现语义本体到 Agent 路由。
+- [ ] 实现权限级别判断。
+- [ ] 实现工具调用封装。
+- [ ] 实现运行 Trace。
+- [ ] 实现降级和错误返回。
+- [ ] 完成 Day 4 验收。
+
+## Day 5:User Agent MVP
+
+- [ ] 阅读 `document/development/agent plan/03_agent_responsibilities.md`。
+- [ ] 阅读 `document/development/agent plan/12_llm_wiki_knowledge_architecture.md`。
+- [ ] 实现用户自然语言入口。
+- [ ] 实现报销查询解释流程。
+- [ ] 实现应收账款查询解释流程。
+- [ ] 实现应付账款查询解释流程。
+- [ ] 实现规则引用解释。
+- [ ] 实现建议草稿输出。
+- [ ] 完成前端对话或操作入口。
+- [ ] 完成 Day 5 验收。
+
+## Day 6:Hermes MVP
+
+- [ ] 阅读 `document/development/agent plan/03_agent_responsibilities.md`。
+- [ ] 阅读 `document/development/agent plan/11_ocr_invoice_architecture.md`。
+- [ ] 阅读 `document/development/agent plan/15_feedback_learning_loop.md`。
+- [ ] 实现任务资产调度入口。
+- [ ] 实现每日风险巡检任务。
+- [ ] 实现每日报销/报账/账款统计任务。
+- [ ] 实现知识库维护任务。
+- [ ] 实现 OCR Mock 接入点。
+- [ ] 实现 Hermes 运行结果面板或 API。
+- [ ] 完成 Day 6 验收。
+
+## Day 7:加固、演示和验收
+
+- [ ] 回归 Day 1 到 Day 6 所有核心路径。
+- [ ] 补齐权限拦截。
+- [ ] 补齐审计日志。
+- [ ] 补齐错误态和空态。
+- [ ] 补齐评测用例。
+- [ ] 补齐演示数据。
+- [ ] 完成构建。
+- [ ] 完成一周交付说明。
+- [ ] 完成 Day 7 验收。
+
+## 一周最终验收
+
+- [ ] 能从任务规则中心看到规则、技能、MCP、任务。
+- [ ] 能打开规则详情,编辑 Markdown,查看版本,切换版本。
+- [ ] 未审核规则不能上线。
+- [ ] 能输入一句自然语言问题并得到语义本体 8 字段结果。
+- [ ] 能由 Orchestrator 路由到 User Agent。
+- [ ] 能由 Hermes 执行一次模拟定时任务。
+- [ ] 能查看 Agent Run Trace。
+- [ ] 能查看工具调用日志。
+- [ ] 能查看审计日志。
+- [ ] 能运行核心测试。
+- [ ] 能完成演示脚本。
diff --git a/document/development/agent week plan/day_1_foundation_models.md b/document/development/agent week plan/day_1_foundation_models.md
new file mode 100644
index 0000000..23b3dcc
--- /dev/null
+++ b/document/development/agent week plan/day_1_foundation_models.md
@@ -0,0 +1,316 @@
+# Day 1:基础模型与工程骨架 TODO
+
+目标:建立后续 6 天开发所需的后端地基。Day 1 不做复杂业务逻辑,只做稳定模型、API 骨架、种子数据、基础审计和可运行验证。
+
+参考文档:
+
+- `document/development/agent plan/01_overall_architecture.md`
+- `document/development/agent plan/02_semantic_ontology.md`
+- `document/development/agent plan/06_data_contracts_and_governance.md`
+- `document/development/agent plan/07_capability_registry.md`
+- `document/development/agent plan/08_permission_confirmation.md`
+- `document/development/agent plan/09_observability_and_trace.md`
+
+## 0. 开始前检查
+
+- [ ] 确认当前分支和工作区状态。
+- [ ] 确认后端目录位置,例如 `/app/server`。
+- [ ] 确认前端目录位置,例如 `/app/web`。
+- [ ] 确认后端使用的框架、ORM、迁移方式。
+- [ ] 找到现有数据库模型目录。
+- [ ] 找到现有 API 路由目录。
+- [ ] 找到现有启动入口。
+- [ ] 找到现有测试目录。
+- [ ] 找到现有种子数据或初始化脚本。
+- [ ] 记录不应修改的无关文件。
+
+## 1. 统一命名和边界
+
+- [ ] 确认统一模块名使用 `agent_assets`。
+- [ ] 确认资产类型枚举为 `rule`、`skill`、`mcp`、`task`。
+- [ ] 确认资产状态枚举为 `draft`、`review`、`active`、`disabled`。
+- [ ] 确认审核状态枚举为 `pending`、`approved`、`rejected`。
+- [ ] 确认 Agent 枚举为 `orchestrator`、`user_agent`、`hermes`。
+- [ ] 确认运行来源枚举为 `user_message`、`schedule`、`system_event`。
+- [ ] 确认权限级别枚举为 `read`、`draft_write`、`approval_required`、`forbidden`。
+- [ ] 确认所有主键、外键、时间字段命名符合现有代码风格。
+
+验收证据:
+
+- [ ] 枚举命名在模型、Schema、服务层保持一致。
+- [ ] 没有同时出现 `schedule` 和 `task` 两套用户可见命名。
+
+## 2. 建立 AgentAsset 模型
+
+- [ ] 新增或扩展模型文件,定义 `AgentAsset`。
+- [ ] 增加字段 `id`。
+- [ ] 增加字段 `asset_type`,取值 `rule | skill | mcp | task`。
+- [ ] 增加字段 `code`,作为业务编码。
+- [ ] 增加字段 `name`。
+- [ ] 增加字段 `description`。
+- [ ] 增加字段 `domain`,例如 `expense | ar | ap | knowledge | system`。
+- [ ] 增加字段 `scenario_json`,保存适用场景。
+- [ ] 增加字段 `owner`。
+- [ ] 增加字段 `reviewer`。
+- [ ] 增加字段 `status`。
+- [ ] 增加字段 `current_version`。
+- [ ] 增加字段 `config_json`。
+- [ ] 增加字段 `created_at`。
+- [ ] 增加字段 `updated_at`。
+- [ ] 给 `code` 增加唯一约束。
+- [ ] 给 `asset_type` 增加索引。
+- [ ] 给 `status` 增加索引。
+- [ ] 给 `domain` 增加索引。
+
+验收证据:
+
+- [ ] 能创建一条规则资产。
+- [ ] 能创建一条技能资产。
+- [ ] 能创建一条 MCP 资产。
+- [ ] 能创建一条任务资产。
+
+## 3. 建立 AgentAssetVersion 模型
+
+- [ ] 定义 `AgentAssetVersion`。
+- [ ] 增加字段 `id`。
+- [ ] 增加字段 `asset_id`。
+- [ ] 增加字段 `version`,例如 `v1.0.0`。
+- [ ] 增加字段 `content`。
+- [ ] 增加字段 `content_type`,取值 `markdown | json`。
+- [ ] 增加字段 `change_note`。
+- [ ] 增加字段 `created_by`。
+- [ ] 增加字段 `created_at`。
+- [ ] 增加 `asset_id + version` 唯一约束。
+- [ ] 建立 `AgentAsset` 到 `AgentAssetVersion` 的关系。
+- [ ] 约定规则资产的 `content` 保存 Markdown。
+- [ ] 约定技能、MCP、任务资产的 `content` 保存 JSON 快照。
+
+验收证据:
+
+- [ ] 同一个资产不能重复创建同一个版本号。
+- [ ] 资产详情能拿到最近 5 个版本。
+
+## 4. 建立 AgentAssetReview 模型
+
+- [ ] 定义 `AgentAssetReview`。
+- [ ] 增加字段 `id`。
+- [ ] 增加字段 `asset_id`。
+- [ ] 增加字段 `version`。
+- [ ] 增加字段 `reviewer`。
+- [ ] 增加字段 `review_status`。
+- [ ] 增加字段 `review_note`。
+- [ ] 增加字段 `reviewed_at`。
+- [ ] 增加字段 `created_at`。
+- [ ] 建立资产、版本、审核之间的查询关系。
+- [ ] 增加服务层校验:没有 `approved` 审核时不能把规则置为 `active`。
+
+验收证据:
+
+- [ ] `pending` 规则上线会被拒绝。
+- [ ] `rejected` 规则上线会被拒绝。
+- [ ] `approved` 规则可以上线。
+
+## 5. 建立 AgentRun 模型
+
+- [ ] 定义 `AgentRun`。
+- [ ] 增加字段 `id`。
+- [ ] 增加字段 `run_id`。
+- [ ] 增加字段 `agent`。
+- [ ] 增加字段 `source`。
+- [ ] 增加字段 `user_id`。
+- [ ] 增加字段 `task_id`。
+- [ ] 增加字段 `ontology_json`。
+- [ ] 增加字段 `route_json`。
+- [ ] 增加字段 `permission_level`。
+- [ ] 增加字段 `status`,取值 `running | succeeded | failed | blocked`。
+- [ ] 增加字段 `result_summary`。
+- [ ] 增加字段 `error_message`。
+- [ ] 增加字段 `started_at`。
+- [ ] 增加字段 `finished_at`。
+- [ ] 给 `run_id` 增加唯一约束。
+- [ ] 给 `agent`、`status`、`started_at` 增加索引。
+
+验收证据:
+
+- [ ] 创建任意 Agent 执行记录时必须生成 `run_id`。
+- [ ] 失败执行能保存错误信息。
+
+## 6. 建立 AgentToolCall 模型
+
+- [ ] 定义 `AgentToolCall`。
+- [ ] 增加字段 `id`。
+- [ ] 增加字段 `run_id`。
+- [ ] 增加字段 `tool_type`,例如 `mcp | database | llm | ocr | rule_engine`。
+- [ ] 增加字段 `tool_name`。
+- [ ] 增加字段 `request_json`。
+- [ ] 增加字段 `response_json`。
+- [ ] 增加字段 `status`。
+- [ ] 增加字段 `duration_ms`。
+- [ ] 增加字段 `error_message`。
+- [ ] 增加字段 `created_at`。
+- [ ] 建立 `AgentRun` 到 `AgentToolCall` 的关系。
+
+验收证据:
+
+- [ ] 一个 `run_id` 下可以记录多个工具调用。
+- [ ] 工具调用失败时不影响主运行日志保存。
+
+## 7. 建立 SemanticParseLog 模型
+
+- [ ] 定义 `SemanticParseLog`。
+- [ ] 增加字段 `id`。
+- [ ] 增加字段 `run_id`。
+- [ ] 增加字段 `user_id`。
+- [ ] 增加字段 `raw_query`。
+- [ ] 增加字段 `scenario`。
+- [ ] 增加字段 `intent`。
+- [ ] 增加字段 `entities_json`。
+- [ ] 增加字段 `time_range_json`。
+- [ ] 增加字段 `metrics_json`。
+- [ ] 增加字段 `constraints_json`。
+- [ ] 增加字段 `risk_flags_json`。
+- [ ] 增加字段 `permission_json`。
+- [ ] 增加字段 `confidence`。
+- [ ] 增加字段 `created_at`。
+
+验收证据:
+
+- [ ] 能保存一条完整 8 字段语义解析日志。
+- [ ] 能按 `run_id` 查询语义解析结果。
+
+## 8. 建立 AuditLog 模型
+
+- [ ] 定义 `AuditLog`。
+- [ ] 增加字段 `id`。
+- [ ] 增加字段 `actor`。
+- [ ] 增加字段 `action`。
+- [ ] 增加字段 `resource_type`。
+- [ ] 增加字段 `resource_id`。
+- [ ] 增加字段 `before_json`。
+- [ ] 增加字段 `after_json`。
+- [ ] 增加字段 `request_id`。
+- [ ] 增加字段 `created_at`。
+- [ ] 为规则保存、审核、上线、任务执行创建审计记录接口。
+
+验收证据:
+
+- [ ] 保存规则 Markdown 时有审计日志。
+- [ ] 审核规则时有审计日志。
+- [ ] 修改任务状态时有审计日志。
+
+## 9. 建立 Schema / DTO
+
+- [ ] 定义 `AgentAssetCreate`。
+- [ ] 定义 `AgentAssetUpdate`。
+- [ ] 定义 `AgentAssetRead`。
+- [ ] 定义 `AgentAssetListItem`。
+- [ ] 定义 `AgentAssetVersionRead`。
+- [ ] 定义 `AgentAssetReviewRead`。
+- [ ] 定义 `RuleMarkdownUpdate`。
+- [ ] 定义 `AgentRunRead`。
+- [ ] 定义 `AgentToolCallRead`。
+- [ ] 定义 `SemanticParseRead`。
+- [ ] 所有 JSON 字段在 DTO 中保持结构化,不返回字符串化 JSON。
+
+验收证据:
+
+- [ ] OpenAPI 文档能展示新增 Schema。
+- [ ] 列表 DTO 不返回大块 Markdown 内容。
+- [ ] 详情 DTO 返回当前版本内容。
+
+## 10. 建立 API 骨架
+
+- [ ] 新增 `GET /api/agent-assets`。
+- [ ] 新增 `GET /api/agent-assets/{asset_id}`。
+- [ ] 新增 `POST /api/agent-assets`。
+- [ ] 新增 `PATCH /api/agent-assets/{asset_id}`。
+- [ ] 新增 `GET /api/agent-assets/{asset_id}/versions`。
+- [ ] 新增 `POST /api/agent-assets/{asset_id}/versions`。
+- [ ] 新增 `POST /api/agent-assets/{asset_id}/reviews`。
+- [ ] 新增 `POST /api/agent-assets/{asset_id}/activate`。
+- [ ] 新增 `GET /api/agent-runs`。
+- [ ] 新增 `GET /api/agent-runs/{run_id}`。
+- [ ] 新增 `GET /api/audit-logs`。
+- [ ] 所有接口先返回真实数据库结果,不使用前端硬编码数据作为最终结果。
+
+验收证据:
+
+- [ ] 能调用资产列表接口。
+- [ ] 能调用资产详情接口。
+- [ ] 能调用版本接口。
+- [ ] 能调用运行日志接口。
+
+## 11. 建立服务层
+
+- [ ] 新增资产查询服务。
+- [ ] 新增资产保存服务。
+- [ ] 新增版本创建服务。
+- [ ] 新增审核服务。
+- [ ] 新增上线校验服务。
+- [ ] 新增 Agent Run 创建服务。
+- [ ] 新增 Tool Call 记录服务。
+- [ ] 新增审计日志服务。
+- [ ] 所有服务函数返回明确错误,不直接把数据库异常暴露给前端。
+
+验收证据:
+
+- [ ] API 路由中不堆业务判断。
+- [ ] 上线校验逻辑在服务层。
+- [ ] 审计日志通过统一服务写入。
+
+## 12. 建立种子数据
+
+- [ ] 创建至少 3 条规则资产。
+- [ ] 每条规则资产至少有 2 个版本。
+- [ ] 至少 1 条规则为 `active`。
+- [ ] 至少 1 条规则为 `review`。
+- [ ] 至少 1 条规则为 `draft`。
+- [ ] 创建至少 2 条技能资产。
+- [ ] 创建至少 2 条 MCP 资产。
+- [ ] 创建至少 3 条任务资产。
+- [ ] 为 active 规则创建 approved 审核记录。
+- [ ] 为 review 规则创建 pending 审核记录。
+
+验收证据:
+
+- [ ] 资产列表按类型筛选时四类都有数据。
+- [ ] 规则详情能看到版本和审核者。
+
+## 13. 最小测试
+
+- [ ] 编写资产模型创建测试。
+- [ ] 编写版本唯一约束测试。
+- [ ] 编写未审核不能上线测试。
+- [ ] 编写资产列表接口测试。
+- [ ] 编写资产详情接口测试。
+- [ ] 编写 AgentRun 创建测试。
+- [ ] 编写 AuditLog 写入测试。
+
+验收证据:
+
+- [ ] 后端核心测试通过。
+- [ ] 测试失败时能定位到具体服务。
+
+## 14. Day 1 验收
+
+- [ ] 数据库能创建所有新增表或等价结构。
+- [ ] API 服务能启动。
+- [ ] OpenAPI 能看到新增接口。
+- [ ] 资产列表接口返回规则、技能、MCP、任务。
+- [ ] 规则资产有 Markdown 当前版本。
+- [ ] 规则资产有最近版本列表。
+- [ ] 未审核规则不能上线。
+- [ ] AgentRun 能保存一条运行记录。
+- [ ] AuditLog 能保存一条写操作记录。
+- [ ] 所有完成项已用 `[x] ~~...~~` 标记。
+
+## 阻塞记录
+
+- [ ] 暂无。
+
+## 日终交接
+
+- [ ] 写明已完成模型。
+- [ ] 写明已完成 API。
+- [ ] 写明未完成问题。
+- [ ] 写明 Day 2 前端联调需要使用的接口地址。
diff --git a/document/development/agent week plan/day_2_rule_center_integration.md b/document/development/agent week plan/day_2_rule_center_integration.md
new file mode 100644
index 0000000..ce33a76
--- /dev/null
+++ b/document/development/agent week plan/day_2_rule_center_integration.md
@@ -0,0 +1,220 @@
+# Day 2:任务规则中心联调 TODO
+
+目标:把任务规则中心从静态 UI 改成可对接后端的生产形态,覆盖规则、技能、MCP、任务四类资产。重点是规则 Markdown 编辑、版本切换、审核者信息、上线约束。
+
+参考文档:
+
+- `document/development/agent plan/07_capability_registry.md`
+- `document/development/agent plan/13_rule_formation_lifecycle.md`
+- `document/development/agent plan/06_data_contracts_and_governance.md`
+
+## 0. 开始前检查
+
+- [ ] 确认 Day 1 API 已可访问。
+- [ ] 确认前端任务规则中心文件位置。
+- [ ] 确认现有路由名称和导航名称。
+- [ ] 确认现有 UI 风格,不重新做大改版。
+- [ ] 确认当前页面已有页签:规则、技能、MCP、任务。
+- [ ] 确认详情页隐藏顶部 title bar 的逻辑仍然有效。
+- [ ] 确认返回列表栏高度没有被重新拉高。
+
+## 1. API Client
+
+- [ ] 新增或扩展资产列表请求函数。
+- [ ] 新增资产详情请求函数。
+- [ ] 新增版本列表请求函数。
+- [ ] 新增规则 Markdown 保存请求函数。
+- [ ] 新增审核请求函数。
+- [ ] 新增上线请求函数。
+- [ ] 新增运行日志请求函数。
+- [ ] 给所有请求增加加载态。
+- [ ] 给所有请求增加错误态。
+- [ ] 给所有写请求增加成功提示。
+
+验收证据:
+
+- [ ] 前端不再只依赖本地硬编码资产数据。
+- [ ] 后端不可用时页面有明确错误提示。
+
+## 2. 列表页数据接入
+
+- [ ] 规则页签请求 `asset_type=rule`。
+- [ ] 技能页签请求 `asset_type=skill`。
+- [ ] MCP 页签请求 `asset_type=mcp`。
+- [ ] 任务页签请求 `asset_type=task`。
+- [ ] 搜索框传递关键词或本地过滤。
+- [ ] 类型下拉和搜索框可以同时生效。
+- [ ] 状态筛选可以过滤 `draft | review | active | disabled`。
+- [ ] 列表卡片展示名称。
+- [ ] 列表卡片展示摘要。
+- [ ] 列表卡片展示状态。
+- [ ] 列表卡片展示负责人。
+- [ ] 列表卡片展示最近更新时间。
+- [ ] 空数据时展示空态。
+- [ ] 加载中时展示骨架或加载状态。
+
+验收证据:
+
+- [ ] 四个页签都能切换。
+- [ ] 四个页签都有数据或空态。
+- [ ] 搜索和筛选不会互相覆盖。
+
+## 3. 规则详情页主信息
+
+- [ ] 打开规则资产时请求详情 API。
+- [ ] Hero title 展示规则名称。
+- [ ] Hero title 下方展示审核者。
+- [ ] Hero title 下方展示审核状态。
+- [ ] Hero title 下方展示上线条件。
+- [ ] Hero title 高度保持紧凑。
+- [ ] 详情页不显示外层顶部 title bar。
+- [ ] 返回列表栏高度保持原有紧凑高度。
+
+验收证据:
+
+- [ ] 用户能一眼看到该规则是否已审核。
+- [ ] 用户不会看到两层 title。
+
+## 4. Markdown 编辑器
+
+- [ ] 从当前版本读取 Markdown 内容。
+- [ ] Markdown 编辑框高度和右侧版本卡片底部对齐。
+- [ ] Markdown 编辑框支持长内容滚动。
+- [ ] Markdown 编辑框保存时调用 API。
+- [ ] 保存后创建新版本或更新草稿版本,按后端约定执行。
+- [ ] 保存成功后刷新版本列表。
+- [ ] 保存失败时保留用户输入。
+- [ ] 编辑器禁用态覆盖 `active` 且无编辑权限的情况。
+- [ ] 编辑器底部展示最后保存时间。
+
+验收证据:
+
+- [ ] 编辑 Markdown 后刷新页面内容仍存在。
+- [ ] 保存失败不会丢内容。
+- [ ] 左右卡片底部视觉对齐。
+
+## 5. 版本卡片
+
+- [ ] 右侧只保留版本信息卡片。
+- [ ] 版本卡片宽度足够展示版本号、日期、状态。
+- [ ] 展示最近 5 个版本。
+- [ ] 当前版本有明显但不突兀的标识。
+- [ ] 当前版本标识居中显示。
+- [ ] 选中状态只变色,不改变内容对齐。
+- [ ] 日期列和其他版本日期对齐。
+- [ ] 点击非当前版本时弹出确认弹窗。
+- [ ] 弹窗展示目标版本号。
+- [ ] 弹窗展示切换风险提示。
+- [ ] 确认后切换当前展示内容。
+- [ ] 取消后不改变当前版本。
+
+验收证据:
+
+- [ ] 版本切换不会造成列表文字位移。
+- [ ] 当前版本背景能完全覆盖内容区域。
+- [ ] 版本卡片不贴右侧边界。
+
+## 6. 审核与上线
+
+- [ ] 详情中展示审核者姓名。
+- [ ] 详情中展示审核时间。
+- [ ] 详情中展示审核意见。
+- [ ] 未审核规则显示不能上线原因。
+- [ ] 点击上线时调用后端上线接口。
+- [ ] 后端拒绝时展示拒绝原因。
+- [ ] 审核通过后上线按钮可用。
+- [ ] 审核动作写入审计日志。
+- [ ] 上线动作写入审计日志。
+
+验收证据:
+
+- [ ] pending 规则无法上线。
+- [ ] approved 规则可以上线。
+- [ ] rejected 规则无法上线。
+
+## 7. 技能详情
+
+- [ ] 技能页签列表展示能力名称。
+- [ ] 技能详情展示能力说明。
+- [ ] 技能详情展示输入参数。
+- [ ] 技能详情展示输出参数。
+- [ ] 技能详情展示依赖能力。
+- [ ] 技能详情展示适用场景。
+- [ ] 技能详情展示负责人。
+- [ ] 技能详情展示版本。
+- [ ] 技能详情不使用规则 Markdown 编辑器。
+
+验收证据:
+
+- [ ] 技能和规则详情不会混用 UI。
+
+## 8. MCP 详情
+
+- [ ] MCP 页签列表展示外部服务名称。
+- [ ] MCP 详情展示服务类型。
+- [ ] MCP 详情展示调用地址或能力名。
+- [ ] MCP 详情展示鉴权方式。
+- [ ] MCP 详情展示超时配置。
+- [ ] MCP 详情展示降级策略。
+- [ ] MCP 详情展示最近调用状态。
+- [ ] MCP 详情展示负责人。
+
+验收证据:
+
+- [ ] MCP 被定义为外部服务,而不是技能规则。
+
+## 9. 任务详情
+
+- [ ] 任务页签展示定时任务名称。
+- [ ] 任务详情展示 cron 或调度周期。
+- [ ] 任务详情展示执行 Agent,默认 Hermes。
+- [ ] 任务详情展示任务目标。
+- [ ] 任务详情展示风险等级。
+- [ ] 任务详情展示最近执行时间。
+- [ ] 任务详情展示最近执行结果。
+- [ ] 任务详情展示启停状态。
+
+验收证据:
+
+- [ ] 定时任务用户可见名称为“任务”。
+- [ ] 技术字段可保留 `schedule`,但 UI 不显示“定时任务”。
+
+## 10. 前端质量
+
+- [ ] 页面在 1366 宽度下无横向滚动。
+- [ ] 页面在 1920 宽度下右侧卡片不过宽。
+- [ ] 页面在窄屏下详情区域可滚动。
+- [ ] 所有按钮有禁用态。
+- [ ] 所有弹窗有取消按钮。
+- [ ] 所有表单错误有提示。
+- [ ] 所有日期格式统一。
+- [ ] 状态颜色和现有系统一致。
+
+验收证据:
+
+- [ ] `npm run build` 通过。
+- [ ] 任务规则中心手动走查通过。
+
+## 11. Day 2 验收
+
+- [ ] 规则、技能、MCP、任务四个页签可用。
+- [ ] 搜索框和筛选下拉可用。
+- [ ] 规则详情展示 Markdown。
+- [ ] 规则 Markdown 可保存。
+- [ ] 右侧只保留版本信息。
+- [ ] 版本可切换且有弹窗确认。
+- [ ] 审核者信息在标题下方。
+- [ ] 未审核规则不能上线。
+- [ ] 前端构建通过。
+- [ ] 所有完成项已用 `[x] ~~...~~` 标记。
+
+## 阻塞记录
+
+- [ ] 暂无。
+
+## 日终交接
+
+- [ ] 写明已接入的 API。
+- [ ] 写明仍然使用 Mock 的字段。
+- [ ] 写明 UI 未完成项。
+- [ ] 写明 Day 3 语义本体需要复用的资产数据。
diff --git a/document/development/agent week plan/day_3_semantic_ontology_mvp.md b/document/development/agent week plan/day_3_semantic_ontology_mvp.md
new file mode 100644
index 0000000..7a5b1d8
--- /dev/null
+++ b/document/development/agent week plan/day_3_semantic_ontology_mvp.md
@@ -0,0 +1,236 @@
+# Day 3:语义本体 MVP TODO
+
+目标:建立用户问题的语义解析层,输出稳定的 8 个核心字段,让 User Agent、Hermes 和 Orchestrator 都能使用同一套语义结构。
+
+参考文档:
+
+- `document/development/agent plan/02_semantic_ontology.md`
+- `document/development/agent plan/14_financial_document_canonical_model.md`
+- `document/development/agent plan/06_data_contracts_and_governance.md`
+
+## 0. 开始前检查
+
+- [ ] 确认 Day 1 的 `SemanticParseLog` 可用。
+- [ ] 确认 Day 1 的 `AgentRun` 可用。
+- [ ] 确认 Day 2 的资产 API 可用。
+- [ ] 找到后端服务层目录。
+- [ ] 找到现有 LLM 调用或 Mock 调用方式。
+- [ ] 确认当前是否允许真实调用 LLM。
+- [ ] 如果不能调用真实 LLM,准备规则解析加 Mock 解析。
+
+## 1. 定义 8 个核心字段
+
+- [ ] 定义字段 `scenario`,表示业务场景。
+- [ ] 定义字段 `intent`,表示用户意图。
+- [ ] 定义字段 `entities`,表示业务对象。
+- [ ] 定义字段 `time_range`,表示时间范围。
+- [ ] 定义字段 `metrics`,表示指标或金额口径。
+- [ ] 定义字段 `constraints`,表示过滤条件。
+- [ ] 定义字段 `risk_flags`,表示风险信号。
+- [ ] 定义字段 `permission`,表示动作权限。
+- [ ] 为每个字段写清楚类型。
+- [ ] 为每个字段写清楚是否必填。
+- [ ] 为每个字段写清楚默认值。
+- [ ] 为每个字段写清楚示例。
+
+验收证据:
+
+- [ ] 8 个字段在 Schema、服务层、日志中名字一致。
+
+## 2. 设计字段枚举
+
+- [ ] `scenario` 支持 `expense`。
+- [ ] `scenario` 支持 `accounts_receivable`。
+- [ ] `scenario` 支持 `accounts_payable`。
+- [ ] `scenario` 支持 `knowledge`。
+- [ ] `scenario` 支持 `unknown`。
+- [ ] `intent` 支持 `query`。
+- [ ] `intent` 支持 `explain`。
+- [ ] `intent` 支持 `compare`。
+- [ ] `intent` 支持 `risk_check`。
+- [ ] `intent` 支持 `draft`。
+- [ ] `intent` 支持 `operate`。
+- [ ] `permission.level` 支持 `read`。
+- [ ] `permission.level` 支持 `draft_write`。
+- [ ] `permission.level` 支持 `approval_required`。
+- [ ] `permission.level` 支持 `forbidden`。
+
+验收证据:
+
+- [ ] 未识别的问题不会抛异常,返回 `unknown`。
+
+## 3. 建立 Schema
+
+- [ ] 定义 `OntologyParseRequest`。
+- [ ] `OntologyParseRequest` 包含 `query`。
+- [ ] `OntologyParseRequest` 包含 `user_id`。
+- [ ] `OntologyParseRequest` 包含 `context_json`。
+- [ ] 定义 `OntologyParseResult`。
+- [ ] `OntologyParseResult` 包含 8 个核心字段。
+- [ ] `OntologyParseResult` 包含 `confidence`。
+- [ ] `OntologyParseResult` 包含 `clarification_required`。
+- [ ] `OntologyParseResult` 包含 `clarification_question`。
+- [ ] `OntologyParseResult` 包含 `run_id`。
+- [ ] 定义字段级错误结构。
+
+验收证据:
+
+- [ ] OpenAPI 中可以看到语义解析请求和响应。
+
+## 4. 实现解析服务
+
+- [ ] 新增 `SemanticOntologyService` 或同等服务。
+- [ ] 实现 `parse(query, user_context)` 主函数。
+- [ ] 先做关键词规则解析。
+- [ ] 报销关键词映射到 `expense`。
+- [ ] 应收、回款、客户欠款映射到 `accounts_receivable`。
+- [ ] 应付、供应商、付款映射到 `accounts_payable`。
+- [ ] 风险、异常、重复、超标映射到 `risk_check`。
+- [ ] 为什么、依据、规则映射到 `explain`。
+- [ ] 统计、汇总、多少映射到 `query`。
+- [ ] 生成、创建、发起映射到 `draft` 或 `operate`。
+- [ ] 无法识别时返回低置信度和澄清问题。
+
+验收证据:
+
+- [ ] “查一下本周报销超标风险”能识别为 expense + risk_check。
+- [ ] “客户 A 这个月还有多少应收”能识别为 accounts_receivable + query。
+- [ ] “供应商 B 明天要付多少钱”能识别为 accounts_payable + query。
+
+## 5. 解析业务对象
+
+- [ ] 从问题中提取员工姓名。
+- [ ] 从问题中提取部门。
+- [ ] 从问题中提取客户。
+- [ ] 从问题中提取供应商。
+- [ ] 从问题中提取项目。
+- [ ] 从问题中提取单据号。
+- [ ] 从问题中提取金额。
+- [ ] 从问题中提取费用类型。
+- [ ] 无法提取时返回空数组,不返回 null。
+
+验收证据:
+
+- [ ] “张三 4 月差旅报销”能提取员工、月份、费用类型。
+
+## 6. 解析时间范围
+
+- [ ] 支持今天。
+- [ ] 支持昨天。
+- [ ] 支持本周。
+- [ ] 支持上周。
+- [ ] 支持本月。
+- [ ] 支持上月。
+- [ ] 支持本季度。
+- [ ] 支持今年。
+- [ ] 支持明确日期。
+- [ ] 支持日期区间。
+- [ ] 解析结果包含 `start_date` 和 `end_date`。
+- [ ] 日期使用 ISO 格式。
+
+验收证据:
+
+- [ ] “本周”能解析为当前周起止日期。
+- [ ] “2026 年 4 月”能解析为 `2026-04-01` 到 `2026-04-30`。
+
+## 7. 解析指标与约束
+
+- [ ] 识别金额指标。
+- [ ] 识别数量指标。
+- [ ] 识别超标指标。
+- [ ] 识别逾期指标。
+- [ ] 识别重复报销指标。
+- [ ] 识别部门过滤条件。
+- [ ] 识别状态过滤条件。
+- [ ] 识别金额阈值过滤条件。
+- [ ] 识别排序要求。
+- [ ] 识别 Top N 要求。
+
+验收证据:
+
+- [ ] “列出金额最高的 10 笔报销”能识别排序和 Top 10。
+
+## 8. 解析风险与权限
+
+- [ ] 重复报销映射到 `duplicate_expense`。
+- [ ] 发票异常映射到 `invoice_anomaly`。
+- [ ] 金额超标映射到 `amount_over_limit`。
+- [ ] 逾期应收映射到 `ar_overdue`。
+- [ ] 逾期应付映射到 `ap_overdue`。
+- [ ] 查询类问题权限为 `read`。
+- [ ] 生成草稿权限为 `draft_write`。
+- [ ] 审批、上线、付款类动作权限为 `approval_required`。
+- [ ] 越权动作权限为 `forbidden`。
+
+验收证据:
+
+- [ ] “帮我直接付款”不能被标为可直接执行。
+
+## 9. API 接口
+
+- [ ] 新增 `POST /api/ontology/parse`。
+- [ ] 请求参数包含用户问题。
+- [ ] 请求参数包含用户上下文。
+- [ ] 响应包含 8 个字段。
+- [ ] 响应包含 `run_id`。
+- [ ] 响应包含置信度。
+- [ ] 响应包含澄清问题。
+- [ ] 每次调用写入 `SemanticParseLog`。
+- [ ] 每次调用写入 `AgentRun` 或关联已有 `AgentRun`。
+
+验收证据:
+
+- [ ] 连续调用 5 次都能在日志中查到。
+
+## 10. 前端调试入口
+
+- [ ] 在合适页面增加语义解析调试入口。
+- [ ] 输入框支持自然语言问题。
+- [ ] 点击解析后调用 API。
+- [ ] 展示 8 个字段。
+- [ ] 展示 JSON 原始结果。
+- [ ] 展示置信度。
+- [ ] 展示澄清问题。
+- [ ] 展示 `run_id`。
+- [ ] 错误时展示错误信息。
+
+验收证据:
+
+- [ ] 产品和开发可以直接在页面验证解析结果。
+
+## 11. 评测集
+
+- [ ] 创建至少 5 条报销问题。
+- [ ] 创建至少 5 条应收问题。
+- [ ] 创建至少 5 条应付问题。
+- [ ] 创建至少 3 条知识库问题。
+- [ ] 创建至少 3 条越权操作问题。
+- [ ] 为每条问题写期望 `scenario`。
+- [ ] 为每条问题写期望 `intent`。
+- [ ] 为每条问题写期望权限级别。
+- [ ] 编写评测脚本或测试。
+
+验收证据:
+
+- [ ] 核心场景识别准确率达到当天设定阈值,例如 80%。
+
+## 12. Day 3 验收
+
+- [ ] 语义解析 API 可用。
+- [ ] 8 个核心字段完整返回。
+- [ ] 解析日志可查询。
+- [ ] 低置信度问题有澄清问题。
+- [ ] 越权动作不会被标为可执行。
+- [ ] 前端调试入口可用。
+- [ ] 评测集可运行。
+- [ ] 所有完成项已用 `[x] ~~...~~` 标记。
+
+## 阻塞记录
+
+- [ ] 暂无。
+
+## 日终交接
+
+- [ ] 写明已支持的关键词。
+- [ ] 写明识别不准的样例。
+- [ ] 写明 Day 4 Orchestrator 可以直接复用的响应结构。
diff --git a/document/development/agent week plan/day_4_orchestrator_runtime.md b/document/development/agent week plan/day_4_orchestrator_runtime.md
new file mode 100644
index 0000000..f4f0915
--- /dev/null
+++ b/document/development/agent week plan/day_4_orchestrator_runtime.md
@@ -0,0 +1,183 @@
+# Day 4:Orchestrator 运行时 TODO
+
+目标:建立统一调度层,让用户请求和系统任务都先进入 Orchestrator,再根据语义本体、权限、能力注册路由到 User Agent、Hermes、MCP 或规则引擎。
+
+参考文档:
+
+- `document/development/agent plan/04_orchestrator_and_runtime_flow.md`
+- `document/development/agent plan/07_capability_registry.md`
+- `document/development/agent plan/08_permission_confirmation.md`
+- `document/development/agent plan/09_observability_and_trace.md`
+
+## 0. 开始前检查
+
+- [ ] 确认 Day 3 `POST /api/ontology/parse` 可用。
+- [ ] 确认 `AgentRun` 可创建。
+- [ ] 确认 `AgentToolCall` 可创建。
+- [ ] 确认资产列表能查询技能、MCP、任务。
+- [ ] 确认权限级别枚举已稳定。
+- [ ] 找到后端服务层适合放 Orchestrator 的位置。
+
+## 1. Orchestrator 输入输出
+
+- [ ] 定义 `OrchestratorRequest`。
+- [ ] 请求包含 `source`。
+- [ ] 请求包含 `user_id`。
+- [ ] 请求包含 `message`。
+- [ ] 请求包含 `task_id`。
+- [ ] 请求包含 `context_json`。
+- [ ] 定义 `OrchestratorResponse`。
+- [ ] 响应包含 `run_id`。
+- [ ] 响应包含 `selected_agent`。
+- [ ] 响应包含 `route_reason`。
+- [ ] 响应包含 `permission_level`。
+- [ ] 响应包含 `status`。
+- [ ] 响应包含 `result`。
+- [ ] 响应包含 `requires_confirmation`。
+- [ ] 响应包含 `trace_summary`。
+
+验收证据:
+
+- [ ] Orchestrator 响应能直接被前端展示。
+
+## 2. 建立 Orchestrator 服务
+
+- [ ] 新增 `OrchestratorService`。
+- [ ] 实现 `run(request)` 主入口。
+- [ ] 主入口第一步创建 `AgentRun`。
+- [ ] 主入口第二步调用语义解析。
+- [ ] 主入口第三步执行权限判断。
+- [ ] 主入口第四步选择 Agent。
+- [ ] 主入口第五步调用目标 Agent 或返回阻断结果。
+- [ ] 主入口第六步更新 `AgentRun` 状态。
+- [ ] 所有异常都写入 `AgentRun.error_message`。
+
+验收证据:
+
+- [ ] 正常请求状态为 `succeeded`。
+- [ ] 被权限拦截请求状态为 `blocked`。
+- [ ] 异常请求状态为 `failed`。
+
+## 3. 路由规则
+
+- [ ] `source=user_message` 默认路由到 User Agent。
+- [ ] `source=schedule` 默认路由到 Hermes。
+- [ ] `intent=risk_check` 且来源为 schedule 时路由到 Hermes。
+- [ ] `intent=query` 且来源为 user_message 时路由到 User Agent。
+- [ ] `intent=explain` 路由到 User Agent。
+- [ ] `intent=draft` 路由到 User Agent,但只允许生成草稿。
+- [ ] `permission.level=approval_required` 时设置 `requires_confirmation=true`。
+- [ ] `permission.level=forbidden` 时不调用下游 Agent。
+- [ ] 无法识别时返回澄清问题。
+
+验收证据:
+
+- [ ] 同一句风险检查,在用户入口和任务入口有不同路由结果。
+
+## 4. 权限判断
+
+- [ ] 新增权限判断服务或函数。
+- [ ] 查询类请求返回 `read`。
+- [ ] 草稿类请求返回 `draft_write`。
+- [ ] 审批、上线、付款类请求返回 `approval_required`。
+- [ ] 用户无权限时返回 `forbidden`。
+- [ ] 高风险动作不允许自动执行。
+- [ ] 需要确认的动作返回确认提示。
+- [ ] 权限判断结果写入 `AgentRun.permission_level`。
+
+验收证据:
+
+- [ ] “直接上线规则”不会被自动执行。
+- [ ] “直接付款”不会被自动执行。
+
+## 5. 能力注册查询
+
+- [ ] 从 `AgentAsset` 查询 active 技能。
+- [ ] 从 `AgentAsset` 查询 active MCP。
+- [ ] 从 `AgentAsset` 查询 active 任务。
+- [ ] 过滤 disabled 能力。
+- [ ] 过滤未审核 active 条件不满足的规则。
+- [ ] 为每次能力选择记录 `route_json`。
+- [ ] 找不到能力时返回降级说明。
+
+验收证据:
+
+- [ ] 禁用 MCP 不会被 Orchestrator 调用。
+
+## 6. 工具调用封装
+
+- [ ] 定义统一工具调用接口。
+- [ ] 工具请求前写入 `AgentToolCall` running 或准备记录。
+- [ ] 工具成功后写入响应和耗时。
+- [ ] 工具失败后写入错误。
+- [ ] 外部 MCP 调用失败时返回降级结果。
+- [ ] 数据库查询失败时返回明确错误。
+- [ ] LLM 调用失败时返回可读提示。
+
+验收证据:
+
+- [ ] 每次 Orchestrator 运行至少可以看到 0 到多条工具调用记录。
+
+## 7. API 接口
+
+- [ ] 新增 `POST /api/orchestrator/run`。
+- [ ] 请求支持用户消息。
+- [ ] 请求支持任务触发。
+- [ ] 响应返回 `run_id`。
+- [ ] 响应返回路由结果。
+- [ ] 响应返回权限结果。
+- [ ] 新增 `GET /api/orchestrator/runs/{run_id}/trace` 或复用 AgentRun 详情接口。
+- [ ] Trace 接口返回语义解析、路由、工具调用、最终结果。
+
+验收证据:
+
+- [ ] 前端或 curl 可以完整看到一次运行链路。
+
+## 8. 前端最小 Trace 查看
+
+- [ ] 在合适位置展示最近运行记录。
+- [ ] 点击运行记录能查看 `run_id`。
+- [ ] 展示 selected_agent。
+- [ ] 展示 route_reason。
+- [ ] 展示 permission_level。
+- [ ] 展示工具调用列表。
+- [ ] 展示错误信息。
+- [ ] 展示耗时。
+
+验收证据:
+
+- [ ] 开发调试时不需要直接查数据库才能理解路由结果。
+
+## 9. 测试
+
+- [ ] 测试用户查询路由到 User Agent。
+- [ ] 测试定时任务路由到 Hermes。
+- [ ] 测试 forbidden 不调用下游 Agent。
+- [ ] 测试 approval_required 返回确认。
+- [ ] 测试工具失败写入 ToolCall。
+- [ ] 测试 Orchestrator 异常写入 AgentRun。
+
+验收证据:
+
+- [ ] Orchestrator 核心测试通过。
+
+## 10. Day 4 验收
+
+- [ ] Orchestrator API 可用。
+- [ ] 用户请求能路由到 User Agent 占位实现。
+- [ ] 定时任务能路由到 Hermes 占位实现。
+- [ ] 权限阻断有效。
+- [ ] 运行 Trace 可查询。
+- [ ] 工具调用日志可查询。
+- [ ] 降级结果可读。
+- [ ] 所有完成项已用 `[x] ~~...~~` 标记。
+
+## 阻塞记录
+
+- [ ] 暂无。
+
+## 日终交接
+
+- [ ] 写明路由规则现状。
+- [ ] 写明权限判断现状。
+- [ ] 写明 Day 5 User Agent 需要实现的接口契约。
diff --git a/document/development/agent week plan/day_5_user_agent_mvp.md b/document/development/agent week plan/day_5_user_agent_mvp.md
new file mode 100644
index 0000000..682bb05
--- /dev/null
+++ b/document/development/agent week plan/day_5_user_agent_mvp.md
@@ -0,0 +1,183 @@
+# Day 5:User Agent MVP TODO
+
+目标:实现面向用户的自建 Agent。它负责用户提问、流程辅助、规则解释、查询结果解释和草稿生成,不做自动审批、自动付款、自动上线等高风险动作。
+
+参考文档:
+
+- `document/development/agent plan/03_agent_responsibilities.md`
+- `document/development/agent plan/04_orchestrator_and_runtime_flow.md`
+- `document/development/agent plan/12_llm_wiki_knowledge_architecture.md`
+- `document/development/agent plan/13_rule_formation_lifecycle.md`
+
+## 0. 开始前检查
+
+- [ ] 确认 Orchestrator 能把用户请求路由到 User Agent。
+- [ ] 确认语义本体 8 字段可用。
+- [ ] 确认规则资产可查询。
+- [ ] 确认 AgentRun 和 ToolCall 可记录。
+- [ ] 确认是否有现成对话 UI。
+- [ ] 确认财务业务数据是否真实可查。
+- [ ] 如果业务数据不可查,准备最小 Mock 数据服务。
+
+## 1. User Agent 输入输出
+
+- [ ] 定义 `UserAgentRequest`。
+- [ ] 请求包含 `run_id`。
+- [ ] 请求包含 `user_id`。
+- [ ] 请求包含 `message`。
+- [ ] 请求包含 `ontology`。
+- [ ] 请求包含 `context_json`。
+- [ ] 定义 `UserAgentResponse`。
+- [ ] 响应包含 `answer`。
+- [ ] 响应包含 `citations`。
+- [ ] 响应包含 `suggested_actions`。
+- [ ] 响应包含 `draft_payload`。
+- [ ] 响应包含 `risk_flags`。
+- [ ] 响应包含 `requires_confirmation`。
+
+验收证据:
+
+- [ ] User Agent 响应结构能被 Orchestrator 直接包装返回。
+
+## 2. 查询处理
+
+- [ ] 实现报销查询处理器。
+- [ ] 实现应收查询处理器。
+- [ ] 实现应付查询处理器。
+- [ ] 查询前检查权限级别。
+- [ ] 查询时记录 ToolCall。
+- [ ] 查询失败时返回可读错误。
+- [ ] 查询为空时返回空态解释。
+- [ ] 查询结果限制返回条数,避免一次返回过大。
+
+验收证据:
+
+- [ ] “查本周报销金额”有可读回答。
+- [ ] “客户 A 本月应收多少”有可读回答。
+- [ ] “供应商 B 待付款多少”有可读回答。
+
+## 3. 规则解释
+
+- [ ] 根据语义场景查询相关规则资产。
+- [ ] 只引用 active 规则。
+- [ ] 读取规则当前版本 Markdown。
+- [ ] 从 Markdown 中提取规则摘要。
+- [ ] 回答中说明使用了哪些规则。
+- [ ] 回答中包含规则版本号。
+- [ ] 回答中包含规则更新时间。
+- [ ] 没有相关规则时说明缺失。
+
+验收证据:
+
+- [ ] “为什么这笔报销有风险”能引用规则。
+
+## 4. 风险解释
+
+- [ ] 识别重复报销风险。
+- [ ] 识别金额超标风险。
+- [ ] 识别发票异常风险。
+- [ ] 识别逾期应收风险。
+- [ ] 识别逾期应付风险。
+- [ ] 风险回答包含风险类型。
+- [ ] 风险回答包含触发原因。
+- [ ] 风险回答包含建议处理动作。
+- [ ] 高风险建议不能变成自动执行。
+
+验收证据:
+
+- [ ] 风险解释结果不是单纯“有风险”,而是有依据。
+
+## 5. 草稿生成
+
+- [ ] 支持生成报销处理意见草稿。
+- [ ] 支持生成应收催收建议草稿。
+- [ ] 支持生成应付付款建议草稿。
+- [ ] 草稿中标明“待人工确认”。
+- [ ] 草稿不直接提交业务系统。
+- [ ] 草稿生成写入审计日志。
+- [ ] 草稿生成写入 AgentRun 结果。
+
+验收证据:
+
+- [ ] “帮我生成处理意见”只返回草稿,不执行审批。
+
+## 6. 知识库读取骨架
+
+- [ ] 建立知识条目查询接口或服务。
+- [ ] 支持按关键词查询知识条目。
+- [ ] 支持按业务场景查询知识条目。
+- [ ] User Agent 回答可以引用知识条目。
+- [ ] 引用中包含知识标题。
+- [ ] 引用中包含更新时间。
+- [ ] 知识库不可用时返回降级说明。
+
+验收证据:
+
+- [ ] 知识库失败不会导致整个回答失败。
+
+## 7. 对话或操作入口
+
+- [ ] 前端增加用户问题输入框。
+- [ ] 输入框支持回车或按钮提交。
+- [ ] 提交时调用 Orchestrator,而不是绕过 Orchestrator。
+- [ ] 展示 Agent 回答。
+- [ ] 展示引用规则或知识。
+- [ ] 展示建议动作。
+- [ ] 展示需要人工确认的提示。
+- [ ] 展示 `run_id`。
+- [ ] 展示加载态。
+- [ ] 展示错误态。
+
+验收证据:
+
+- [ ] 用户可在页面完成一次问答闭环。
+
+## 8. 安全边界
+
+- [ ] User Agent 不直接修改规则状态。
+- [ ] User Agent 不直接上线规则。
+- [ ] User Agent 不直接审批报销。
+- [ ] User Agent 不直接付款。
+- [ ] User Agent 不直接删除知识。
+- [ ] 所有高风险动作只返回建议或草稿。
+- [ ] 所有草稿动作标记 `requires_confirmation=true`。
+
+验收证据:
+
+- [ ] 提示词要求“直接付款”时仍被阻断。
+
+## 9. 测试
+
+- [ ] 测试报销查询。
+- [ ] 测试应收查询。
+- [ ] 测试应付查询。
+- [ ] 测试规则解释。
+- [ ] 测试风险解释。
+- [ ] 测试草稿生成。
+- [ ] 测试越权动作阻断。
+- [ ] 测试知识库降级。
+
+验收证据:
+
+- [ ] User Agent 核心测试通过。
+
+## 10. Day 5 验收
+
+- [ ] User Agent 服务可被 Orchestrator 调用。
+- [ ] 用户入口可提交自然语言问题。
+- [ ] 至少 3 个财务场景有回答。
+- [ ] 回答能引用规则或知识。
+- [ ] 高风险动作不会自动执行。
+- [ ] AgentRun Trace 能看到 User Agent 步骤。
+- [ ] 前端构建通过。
+- [ ] 所有完成项已用 `[x] ~~...~~` 标记。
+
+## 阻塞记录
+
+- [ ] 暂无。
+
+## 日终交接
+
+- [ ] 写明已支持的问题类型。
+- [ ] 写明仍使用 Mock 的数据。
+- [ ] 写明 Day 6 Hermes 可以复用的规则、风险、知识接口。
diff --git a/document/development/agent week plan/day_6_hermes_mvp.md b/document/development/agent week plan/day_6_hermes_mvp.md
new file mode 100644
index 0000000..fce2990
--- /dev/null
+++ b/document/development/agent week plan/day_6_hermes_mvp.md
@@ -0,0 +1,191 @@
+# Day 6:Hermes MVP TODO
+
+目标:实现 Hermes 数字员工的最小闭环。Hermes 不面向用户即时对话,而是负责定时巡检、统计、风险预警、知识维护和规则草稿形成。
+
+参考文档:
+
+- `document/development/agent plan/03_agent_responsibilities.md`
+- `document/development/agent plan/11_ocr_invoice_architecture.md`
+- `document/development/agent plan/12_llm_wiki_knowledge_architecture.md`
+- `document/development/agent plan/15_feedback_learning_loop.md`
+
+## 0. 开始前检查
+
+- [ ] 确认任务资产 `asset_type=task` 可查询。
+- [ ] 确认 Orchestrator 能处理 `source=schedule`。
+- [ ] 确认 Hermes 占位服务可被调用。
+- [ ] 确认 AgentRun 和 ToolCall 可记录。
+- [ ] 确认是否已有后台任务框架。
+- [ ] 如果没有后台任务框架,先用手动触发 API 模拟定时执行。
+
+## 1. Hermes 输入输出
+
+- [ ] 定义 `HermesTaskRequest`。
+- [ ] 请求包含 `run_id`。
+- [ ] 请求包含 `task_asset_id`。
+- [ ] 请求包含 `task_type`。
+- [ ] 请求包含 `schedule_time`。
+- [ ] 请求包含 `context_json`。
+- [ ] 定义 `HermesTaskResult`。
+- [ ] 响应包含 `summary`。
+- [ ] 响应包含 `risk_items`。
+- [ ] 响应包含 `statistics`。
+- [ ] 响应包含 `knowledge_updates`。
+- [ ] 响应包含 `draft_rules`。
+- [ ] 响应包含 `next_actions`。
+
+验收证据:
+
+- [ ] Hermes 响应能被任务详情或运行日志展示。
+
+## 2. 任务调度入口
+
+- [ ] 新增手动触发任务 API。
+- [ ] API 参数支持任务资产 ID。
+- [ ] API 调用 Orchestrator,source 为 `schedule`。
+- [ ] Orchestrator 路由到 Hermes。
+- [ ] Hermes 执行结果写入 AgentRun。
+- [ ] 任务执行失败时写入错误。
+- [ ] 任务执行结束后更新任务最近执行时间。
+- [ ] 任务执行结束后更新任务最近执行状态。
+
+验收证据:
+
+- [ ] 可以手动触发一次 Hermes 任务并看到运行结果。
+
+## 3. 每日风险巡检
+
+- [ ] 实现重复报销巡检。
+- [ ] 实现金额超标巡检。
+- [ ] 实现发票异常巡检占位。
+- [ ] 实现应收逾期巡检。
+- [ ] 实现应付异常付款巡检。
+- [ ] 每个风险项包含风险类型。
+- [ ] 每个风险项包含业务对象。
+- [ ] 每个风险项包含触发规则。
+- [ ] 每个风险项包含建议动作。
+- [ ] 每个风险项包含风险等级。
+
+验收证据:
+
+- [ ] 风险巡检结果可以被用户理解和追溯。
+
+## 4. 每日统计
+
+- [ ] 统计当日报销单数量。
+- [ ] 统计当日报销金额。
+- [ ] 统计当日报账数量。
+- [ ] 统计当日报账金额。
+- [ ] 统计应收新增金额。
+- [ ] 统计应收逾期金额。
+- [ ] 统计应付待付金额。
+- [ ] 统计应付逾期金额。
+- [ ] 输出日报摘要。
+
+验收证据:
+
+- [ ] Hermes 能生成一份每日财务摘要。
+
+## 5. OCR 接入点
+
+- [ ] 建立 OCR 识别服务接口。
+- [ ] 定义发票识别输入结构。
+- [ ] 定义发票识别输出结构。
+- [ ] 输出结构包含发票号。
+- [ ] 输出结构包含开票日期。
+- [ ] 输出结构包含金额。
+- [ ] 输出结构包含税额。
+- [ ] 输出结构包含销售方。
+- [ ] 输出结构包含购买方。
+- [ ] 输出结构包含置信度。
+- [ ] 当前阶段允许使用 Mock 结果。
+- [ ] OCR 调用写入 ToolCall。
+
+验收证据:
+
+- [ ] Hermes 风险巡检中可以调用 OCR Mock。
+
+## 6. 知识库维护
+
+- [ ] 建立知识条目写入服务。
+- [ ] Hermes 可以生成知识候选条目。
+- [ ] 候选条目包含标题。
+- [ ] 候选条目包含正文。
+- [ ] 候选条目包含来源。
+- [ ] 候选条目包含适用场景。
+- [ ] 候选条目默认状态为 `draft`。
+- [ ] 知识条目不能自动发布。
+- [ ] 知识条目写入审计日志。
+
+验收证据:
+
+- [ ] Hermes 可以生成待审核知识条目。
+
+## 7. 规则草稿形成
+
+- [ ] Hermes 可以根据风险巡检结果生成规则草稿。
+- [ ] 规则草稿保存为 `asset_type=rule`。
+- [ ] 规则草稿状态为 `draft`。
+- [ ] 规则草稿包含 Markdown 内容。
+- [ ] 规则草稿包含生成原因。
+- [ ] 规则草稿包含关联风险样例。
+- [ ] 规则草稿不能自动上线。
+- [ ] 规则草稿需要审核人。
+- [ ] 规则草稿写入审计日志。
+
+验收证据:
+
+- [ ] Hermes 生成的新规则出现在规则列表中,但不是 active。
+
+## 8. Hermes 页面或日志展示
+
+- [ ] 任务详情能看到最近执行结果。
+- [ ] 任务详情能手动触发执行。
+- [ ] 任务详情能看到风险项数量。
+- [ ] 任务详情能看到日报摘要。
+- [ ] 任务详情能看到知识候选数量。
+- [ ] 任务详情能看到规则草稿数量。
+- [ ] 运行 Trace 能看到 Hermes 步骤。
+- [ ] 错误时展示错误原因。
+
+验收证据:
+
+- [ ] 不查数据库也能判断 Hermes 是否执行成功。
+
+## 9. 测试
+
+- [ ] 测试手动触发任务。
+- [ ] 测试 Orchestrator 路由到 Hermes。
+- [ ] 测试风险巡检输出。
+- [ ] 测试日报统计输出。
+- [ ] 测试 OCR Mock 调用。
+- [ ] 测试知识候选写入。
+- [ ] 测试规则草稿生成。
+- [ ] 测试 Hermes 异常写入 AgentRun。
+
+验收证据:
+
+- [ ] Hermes 核心测试通过。
+
+## 10. Day 6 验收
+
+- [ ] Hermes 可被 Orchestrator 调用。
+- [ ] 至少一个任务可以手动触发。
+- [ ] 风险巡检有结构化结果。
+- [ ] 每日统计有结构化结果。
+- [ ] OCR Mock 接入点可用。
+- [ ] 知识候选可生成。
+- [ ] 规则草稿可生成且不能自动上线。
+- [ ] 任务详情或运行日志能展示结果。
+- [ ] 所有完成项已用 `[x] ~~...~~` 标记。
+
+## 阻塞记录
+
+- [ ] 暂无。
+
+## 日终交接
+
+- [ ] 写明 Hermes 已支持任务类型。
+- [ ] 写明 OCR 当前是真实还是 Mock。
+- [ ] 写明生成的知识和规则草稿状态。
+- [ ] 写明 Day 7 需要重点回归的路径。
diff --git a/document/development/agent week plan/day_7_hardening_demo_acceptance.md b/document/development/agent week plan/day_7_hardening_demo_acceptance.md
new file mode 100644
index 0000000..a157439
--- /dev/null
+++ b/document/development/agent week plan/day_7_hardening_demo_acceptance.md
@@ -0,0 +1,223 @@
+# Day 7:加固、演示和验收 TODO
+
+目标:把前 6 天做出的功能整理成可演示、可验收、可继续迭代的基础平台。Day 7 不再大规模扩功能,重点是修缺口、补测试、补日志、补文档、完成演示链路。
+
+参考文档:
+
+- `document/development/agent plan/00_README.md`
+- `document/development/agent plan/05_development_roadmap.md`
+- `document/development/agent plan/09_observability_and_trace.md`
+- `document/development/agent plan/10_evaluation_and_testset.md`
+
+## 0. 开始前检查
+
+- [ ] 汇总 Day 1 未完成项。
+- [ ] 汇总 Day 2 未完成项。
+- [ ] 汇总 Day 3 未完成项。
+- [ ] 汇总 Day 4 未完成项。
+- [ ] 汇总 Day 5 未完成项。
+- [ ] 汇总 Day 6 未完成项。
+- [ ] 标记必须今天修复的问题。
+- [ ] 标记可以进入下一阶段的问题。
+- [ ] 冻结新增需求,只处理验收相关问题。
+
+## 1. 核心链路回归
+
+- [ ] 回归资产列表接口。
+- [ ] 回归规则详情接口。
+- [ ] 回归 Markdown 保存。
+- [ ] 回归版本列表。
+- [ ] 回归版本切换。
+- [ ] 回归审核接口。
+- [ ] 回归上线拦截。
+- [ ] 回归语义解析接口。
+- [ ] 回归 Orchestrator 路由。
+- [ ] 回归 User Agent 问答。
+- [ ] 回归 Hermes 任务执行。
+- [ ] 回归 AgentRun Trace。
+- [ ] 回归 ToolCall 日志。
+- [ ] 回归 AuditLog 日志。
+
+验收证据:
+
+- [ ] 从前端能完成至少一条端到端演示路径。
+
+## 2. 权限和风险边界
+
+- [ ] 未审核规则不能上线。
+- [ ] rejected 规则不能上线。
+- [ ] disabled 能力不能被调用。
+- [ ] 用户请求付款必须拦截。
+- [ ] 用户请求审批必须需要确认。
+- [ ] Hermes 生成规则只能是 draft。
+- [ ] Hermes 生成知识只能是 draft。
+- [ ] User Agent 生成处理意见只能是草稿。
+- [ ] 所有高风险动作响应中包含 `requires_confirmation`。
+
+验收证据:
+
+- [ ] 不存在 MVP 期间绕过人工审核的路径。
+
+## 3. 审计和 Trace 补齐
+
+- [ ] 规则保存写 AuditLog。
+- [ ] 规则审核写 AuditLog。
+- [ ] 规则上线写 AuditLog。
+- [ ] Hermes 生成规则草稿写 AuditLog。
+- [ ] Hermes 生成知识候选写 AuditLog。
+- [ ] User Agent 草稿生成写 AuditLog。
+- [ ] Orchestrator 每次运行有 AgentRun。
+- [ ] 每次工具调用有 ToolCall。
+- [ ] Trace 页面或接口能串起 run_id。
+- [ ] 错误 Trace 包含 error_message。
+
+验收证据:
+
+- [ ] 任意一条演示链路都能追溯到 run_id。
+
+## 4. 前端体验修补
+
+- [ ] 任务规则中心列表无明显错位。
+- [ ] 详情页无双 title。
+- [ ] Hero title 高度紧凑。
+- [ ] 返回列表栏高度正常。
+- [ ] Markdown 编辑器和版本卡片底部对齐。
+- [ ] 版本卡片不贴右侧。
+- [ ] 当前版本标识不突兀。
+- [ ] 日期列对齐。
+- [ ] 弹窗文案清楚。
+- [ ] 加载态可见。
+- [ ] 错误态可见。
+- [ ] 空态可见。
+- [ ] 按钮禁用态可见。
+- [ ] 窄屏不出现内容重叠。
+
+验收证据:
+
+- [ ] 任务规则中心可以给业务用户演示,不需要解释 UI 异常。
+
+## 5. 测试补齐
+
+- [ ] 运行后端现有测试。
+- [ ] 运行新增模型测试。
+- [ ] 运行新增 API 测试。
+- [ ] 运行语义解析测试。
+- [ ] 运行 Orchestrator 测试。
+- [ ] 运行 User Agent 测试。
+- [ ] 运行 Hermes 测试。
+- [ ] 运行前端构建。
+- [ ] 如果有前端测试,运行前端测试。
+- [ ] 记录未能运行的测试和原因。
+
+验收证据:
+
+- [ ] 测试结果写入本文件“测试记录”。
+
+## 6. 评测集
+
+- [ ] 准备 5 条报销问题。
+- [ ] 准备 5 条应收问题。
+- [ ] 准备 5 条应付问题。
+- [ ] 准备 3 条规则解释问题。
+- [ ] 准备 3 条越权动作问题。
+- [ ] 执行语义解析评测。
+- [ ] 执行 User Agent 回答评测。
+- [ ] 执行权限拦截评测。
+- [ ] 记录失败样例。
+- [ ] 为失败样例写下一阶段优化建议。
+
+验收证据:
+
+- [ ] 可以说明 MVP 当前能力边界和准确率风险。
+
+## 7. 演示数据
+
+- [ ] 准备 active 规则。
+- [ ] 准备 pending 规则。
+- [ ] 准备 rejected 规则。
+- [ ] 准备至少一条报销数据。
+- [ ] 准备至少一条应收数据。
+- [ ] 准备至少一条应付数据。
+- [ ] 准备至少一个 Hermes 任务。
+- [ ] 准备至少一个 MCP Mock。
+- [ ] 准备至少一个知识条目。
+- [ ] 准备至少一个风险样例。
+
+验收证据:
+
+- [ ] 演示不会因为没有数据而中断。
+
+## 8. 演示脚本
+
+- [ ] 编写演示步骤 1:打开任务规则中心。
+- [ ] 编写演示步骤 2:查看规则详情。
+- [ ] 编写演示步骤 3:编辑 Markdown 并保存。
+- [ ] 编写演示步骤 4:切换版本。
+- [ ] 编写演示步骤 5:尝试上线未审核规则并被拦截。
+- [ ] 编写演示步骤 6:输入用户问题。
+- [ ] 编写演示步骤 7:查看语义本体结果。
+- [ ] 编写演示步骤 8:查看 User Agent 回答。
+- [ ] 编写演示步骤 9:手动触发 Hermes 任务。
+- [ ] 编写演示步骤 10:查看 AgentRun Trace。
+- [ ] 编写演示步骤 11:查看审计日志。
+
+验收证据:
+
+- [ ] 新开发者按脚本可以复现演示。
+
+## 9. 文档收尾
+
+- [ ] 更新一周计划完成情况。
+- [ ] 更新剩余风险。
+- [ ] 更新下一阶段开发建议。
+- [ ] 更新接口清单。
+- [ ] 更新数据模型清单。
+- [ ] 更新前端页面清单。
+- [ ] 更新评测结果。
+- [ ] 更新演示脚本。
+- [ ] 更新部署或启动说明。
+
+验收证据:
+
+- [ ] 文档能指导下一周继续开发。
+
+## 10. 最终验收清单
+
+- [ ] 任务规则中心可查看规则、技能、MCP、任务。
+- [ ] 规则详情可编辑 Markdown。
+- [ ] 规则详情可查看最近 5 个版本。
+- [ ] 版本切换有确认弹窗。
+- [ ] 审核者信息可见。
+- [ ] 未审核规则不能上线。
+- [ ] 语义本体 8 字段可返回。
+- [ ] Orchestrator 能路由用户请求。
+- [ ] Orchestrator 能路由定时任务。
+- [ ] User Agent 能回答至少 3 类财务问题。
+- [ ] Hermes 能执行至少 1 个任务。
+- [ ] OCR Mock 接入点可用。
+- [ ] 知识候选可生成。
+- [ ] 规则草稿可生成。
+- [ ] AgentRun Trace 可查。
+- [ ] AuditLog 可查。
+- [ ] 前端构建通过。
+- [ ] 后端核心测试通过。
+- [ ] 演示脚本可执行。
+- [ ] 所有完成项已用 `[x] ~~...~~` 标记。
+
+## 测试记录
+
+- [ ] 后端测试:未运行。
+- [ ] 前端构建:未运行。
+- [ ] 语义评测:未运行。
+- [ ] 手动验收:未运行。
+
+## 阻塞记录
+
+- [ ] 暂无。
+
+## 日终交接
+
+- [ ] 写明本周最终完成内容。
+- [ ] 写明未完成内容。
+- [ ] 写明生产化前必须补齐内容。
+- [ ] 写明下一周建议优先级。
diff --git a/document/development/plan/ai_agent_dual_layer_arch.md b/document/development/plan/ai_agent_dual_layer_arch.md
deleted file mode 100644
index fbcabfa..0000000
--- a/document/development/plan/ai_agent_dual_layer_arch.md
+++ /dev/null
@@ -1,169 +0,0 @@
-# X-Financial 智能化财务系统:双层 Agent 架构设计与开发落地全景指南
-
-> **核心设计理念:确定性与概率性的完美解耦**
->
-> 在企业级财务系统中,“合规性”与“准确性”是不可妥协的底线。大语言模型(LLM)天生具有概率性(会产生幻觉),因此不能直接赋予其修改核心财务数据或放行审批的最高权限。
->
-> 本架构设计的核心,在于构建一个**“双层防线”**:
-> 1. **外层 Agent (自研流程大脑)**:提供 100% 的确定性。它是系统的执行者,严格按照预设流程和固化的规则行事,不具备“自我意识”,只负责“路由”、“拦截”和“记录”。
-> 2. **内层 Agent (Hermes 智囊核心)**:提供强大的概率性推理能力。它是系统的思考者,负责处理所有复杂、模糊、非结构化的任务(如阅读长文档、识别潜在风险),但它的输出**不能直接作用于业务**,而是转化为**规则配置**或**建议意见**,交由外层 Agent 或人类管理员执行。
->
-> 这两层架构不是相互独立的两个系统,而是形成一个**“闭环”**:内层提炼规则,外层执行规则;外层收集数据,内层分析数据。这种深度协同,既保障了系统的安全性,又赋予了系统极高的智能化水平。
-
----
-
-## 一、 系统架构图景与职责边界深度剖析
-
-### 1. 外层 Agent (Outer Agent):流程与路由的绝对掌控者
-
-**本质:一个高度可配置的业务工作流引擎与意图分发器。**
-
-* **开发技术栈建议**:FastAPI (后端) + Vue3 (前端) + PostgreSQL (持久化) + Redis (可选,用于状态缓存)。
-* **交互形态**:它直接面对用户。它可以是一个类似对话框的界面,但背后的逻辑是基于**状态机 (State Machine)** 驱动的。
-* **核心模块与职责 (What to do & How to do)**:
-
- * **模块 1: 意图漏斗 (Intent Router)**
- * **职责**:精准捕捉用户请求的第一诉求,并将其导向正确的处理管线。
- * **方法**:
- * *规则匹配优先*:使用简单的关键词或正则(例如:匹配到“报销”、“打车”字眼,直接激活报销向导)。
- * *轻量级分类模型兜底*:对于模糊表述(如:“我上周去上海开会的钱怎么还没发?”),调用一个小参数的分类模型(或内层的快捷接口),将其分类为“状态查询”意图,并提取关键实体(如时间:上周,地点:上海)。
- * **模块 2: 结构化状态机引擎 (State & Flow Controller)**
- * **职责**:管理每一个业务对象(如一张报销单)的生命周期。从“草稿” -> “提交” -> “一级审批” -> “财务复核” -> “已打款”。
- * **方法**:拒绝让大模型控制流程走向。流程流转必须基于代码逻辑中的条件判断(例如:如果金额 < 500,且员工级别为 M1,则跳过一级审批,直接进入财务复核)。外层 Agent 负责维护并推进这个状态。
- * **模块 3: 确定性规则执行器 (Rule Execution Engine)**
- * **职责**:财务合规的第一道硬性防线。不讲道理,只看数据。
- * **方法**:当用户提交报销数据时,该模块会查询本地的 `business_rules` 数据库表。如果用户提交的住宿费是 850,而数据库规则明确上限是 800,则立刻抛出“阻断型错误” (Blocking Error)。**此过程绝对禁止调用大模型进行实时推断。**
- * **模块 4: 标准化 API 网关 (API Gateway & Handshake Layer)**
- * **职责**:封装所有对外层系统(如 ERP、HR 系统)和对内层 Hermes 的通信接口。控制并发,记录调用日志。
-
-### 2. 内层 Agent (Hermes):非结构化信息的提炼者与深度思考者
-
-**本质:一个被严格隔离的智能计算引擎,专门处理人类擅长但传统代码难以处理的“软逻辑”。**
-
-* **开发技术栈建议**:Hermes 框架 + 向量数据库 (如 Milvus/PGVector) + 强力 LLM (如 GPT-4 或开源大模型)。
-* **交互形态**:对用户不可见,只作为外层 Agent 的“后端服务”存在。
-* **核心模块与职责 (What to do & How to do)**:
-
- * **模块 1: 政策蒸馏器 (Policy Distiller) —— 解决“知行合一”的关键**
- * **职责**:打破知识库(死文件)与业务流(活代码)之间的壁垒。
- * **方法 (核心思路)**:
- 1. *触发*:管理员上传一份《差旅新规.pdf》。
- 2. *解析*:Hermes 逐段阅读文档。
- 3. *提取*:使用精心设计的 **Few-Shot Prompt 链**,强制模型识别特定的“控制变量”。
- *(Prompt 示例: "你是一个专业的财务合规审计员。请阅读以下段落,如果包含任何关于费用上限、职级限制、审批层级的规定,请严格按照以下 JSON Schema 输出:{category, location, level_req, max_amount, is_hard_limit}。如果未找到,输出空。")*
- 4. *回写*:Hermes 将提炼出的 JSON 结构转化为标准的 SQL Update 指令(或通过专用 API 接口),更新外层 Agent 依赖的 `business_rules` 表。
- * **模块 2: 深度知识检索 (Deep RAG & Interpretation)**
- * **职责**:为用户提供复杂制度的个性化解读。
- * **方法**:当外层 Agent 无法解答用户的合规疑问时(意图识别为“政策咨询”),外层将请求转发给 Hermes。Hermes 在向量库中检索相关段落,并结合用户当前的上下文(如:员工职级、出差地),生成一份连贯、人性化的解答。
- * **模块 3: 异步风险探针 (Asynchronous Risk Auditor)**
- * **职责**:像“老会计”一样,在海量已发生或正在发生的业务数据中寻找蛛丝马迹。
- * **方法**:
- 1. *定时任务*:每天凌晨启动。
- 2. *数据聚合*:从外层数据库提取当天的报销流水(去除敏感个资)。
- 3. *模式识别*:通过特定的 Prompt(例如寻找“拆单报销”、“异常高频的出租车票”)。
- 4. *生成报告*:生成结构化的风险预警报告,存入专用表,供管理员次日早晨审核,而不是直接去冻结员工账号。
-
----
-
-## 二、 核心通信协议 (The Handshake):两层的握手与数据交互
-
-双层架构的成败,取决于这两层能否顺畅地交换信息,且保证安全。我们需要定义清晰的接口协议。
-
-### 1. 同步查询接口 (外 -> 内:求知与解惑)
-
-当外层遇到处理不了的“软逻辑”时触发。
-
-* **Endpoint (示例)**: `POST /hermes/api/v1/consult`
-* **外层 Request 结构**:
- ```json
- {
- "context": {
- "user_id": "emp_1001",
- "current_task": "travel_reimbursement",
- "form_data": {"city": "北京", "amount": 900}
- },
- "query": "因为展会原因酒店全满,只能订900的,能报销吗?"
- }
- ```
-* **内层 Hermes Response 结构**:
- ```json
- {
- "status": "success",
- "interpretation": "根据《差旅管理办法》第15条,展会期间允许上浮 20%。您的标准是800,上浮后为960,可以报销。",
- "action_recommendation": "require_special_approval", // 建议外层采取的动作
- "citations": ["policy_doc_v2_page_4"]
- }
- ```
-
-### 2. 异步任务接口 (外 -> 内:派发耗时任务)
-
-例如请求生成长篇分析报告或进行全量风险巡检。
-
-* **流程**:
- 1. 外层调用 `POST /hermes/api/v1/jobs/generate_report`。
- 2. 内层 Hermes 立即返回 `202 Accepted` 和一个 `job_id`。
- 3. 内层 Hermes 在后台慢慢算。
- 4. 计算完成后,内层通过 Webhook 回调外层的通知接口,外层再通过系统消息通知用户“您的报告已就绪”。
-
-### 3. 规则推送机制 (内 -> 外:自动化立法)
-
-这是最核心的逆向通信。内层提炼出的规则如何生效?
-
-* **流程**:
- 1. Hermes 提炼出新规则。
- 2. Hermes 调用外层的特权 API (如 `POST /admin/api/rules/sync`),推送规则 payload。
- 3. 外层 Agent 收到后,执行数据库 `UPSERT` 操作更新 `business_rules` 表。
- 4. *(可选但强烈建议)*:进入“待激活”状态,需要人类管理员在系统中点击“确认应用新规则”后,新规才正式生效。
-
----
-
-## 三、 分阶段开发落地全景计划 (Implementation Roadmap)
-
-开发应当遵循“先基建后上层、先确定后智能”的原则。
-
-### Phase 1: 骨架搭建与基石铺设 (Foundation & Outer Shell)
-*目标:构建一个哪怕没有 AI 也能运转的硬核流程系统,确立两层隔离。*
-
-1. **架构拆分验证**:在服务器层面,确保 Outer Agent (FastAPI) 和 Inner Hermes 分别在独立的进程(或容器)中运行,仅通过 HTTP/gRPC 通信。
-2. **动态规则引擎实现 (核心基建)**:
- * 在 PostgreSQL 中设计 `business_rules` 表结构。必须支持高度扩展性(例如采用 `JSONB` 字段存储具体约束参数)。
- * 在外层 Agent 开发一个“规则校验服务 (Rule Validation Service)”,该服务能够在任何报销动作发生前,拦截并比对 `business_rules`。
-3. **标准化流程闭环**:开发一个完整的、基于硬规则驱动的差旅报销单据流转全流程(填单 -> 校验 -> 提交 -> 审批)。验证在“硬规则”下系统运转良好。
-
-### Phase 2: 知识注入与基础问答 (Hermes RAG Integration)
-*目标:赋予系统“解答疑问”的能力。*
-
-1. **内层基建**:配置 Hermes 环境,接入向量数据库。
-2. **文档清洗管道 (ETL pipeline)**:将现有的财务政策 PDF/Word 文档清洗、分块 (Chunking) 并向量化入库。
-3. **问答桥接**:
- * 在外层前端 (Vue3) 提供一个“智能咨询”悬浮窗或独立页面。
- * 外层 Agent 接收问题,附带上用户的上下文(角色、权限),一并转发给内层 Hermes。
- * 验证 Hermes 能够根据向量库的内容,给出带出处的准确回答。
-
-### Phase 3: 核心攻坚 —— 自动立法与双层联通 (Policy Distillation & Sync)
-*目标:实现从“死文档”到“活规则”的自动化转化。*
-
-1. **蒸馏 Prompt 工程**:在 Hermes 中反复打磨“政策提炼”的 Prompt。针对你们公司常见的政策描述方式进行微调。
-2. **结构化提取测试**:手动上传不同版本的政策文档,测试 Hermes 能否稳定、准确地输出 JSON 格式的规则参数。
-3. **闭环联调**:
- * 开发 Hermes 向外层推送规则的 API。
- * 完成全链路测试:管理员界面上传新文档 -> Hermes 后台解析 -> 外层规则库自动更新 -> 前端即时生效新的金额限制。
-
-### Phase 4: 高阶进化 —— 异步审计与主动防御 (Proactive Risk Auditing)
-*目标:将系统从“被动响应”升级为“主动防护”。*
-
-1. **数据安全隧道**:建立从外层业务库向内层 Hermes 传递“脱敏业务快照”的通道。
-2. **风险模式定义**:梳理出 3-5 种典型的财务风险模式(如:异常聚集的餐饮发票、连续的单日高额交通费)。
-3. **Hermes 巡检任务**:编写定时任务逻辑,利用大模型的推理能力去比对这些模式和当天的业务快照数据。
-4. **风险看板**:在外层系统的管理后台开发“风险报告台”,展示 Hermes 生成的预警结果。
-
----
-
-## 四、 关键风险与防范策略总结
-
-1. **大模型幻觉污染规则库**:
- * **防范**:Hermes 提炼的所有硬性规则(尤其是金额、审批级数),在写入外层正式库之前,必须增加一个**“人工审核 (Human-in-the-loop)”** 环节。系统提示“检测到政策更新,提炼出 5 条新规则,请管理员确认应用”。
-2. **状态机混乱**:
- * **防范**:外层 Agent 的流程控制代码必须使用强类型和严格的事务控制 (Transaction)。绝不允许任何组件(包括 AI)在不经过状态机合法校验的情况下直接修改数据库中的 `status` 字段。
-3. **性能瓶颈**:
- * **防范**:所有外层必须做的事情(拦截、查询)必须在毫秒级完成。所有涉及调用 Hermes 的操作(问答、提炼、分析)全部采用异步设计或提供明确的 Loading 反馈。
diff --git a/server/storage/公司支出管理办法2024_系统规则.json b/server/storage/公司支出管理办法2024_系统规则.json
new file mode 100644
index 0000000..7b70061
--- /dev/null
+++ b/server/storage/公司支出管理办法2024_系统规则.json
@@ -0,0 +1,193 @@
+{
+ "meta": {
+ "source": "远光软件股份有限公司",
+ "document": "公司支出管理办法(2024)",
+ "docNumber": "远光制度〔2024〕14号",
+ "issueDate": "2024-04-17",
+ "confidentiality": "商密【中】"
+ },
+ "rules": {
+ "备用金借款": {
+ "eligiblePerson": "仅限正式员工",
+ "maxAmount": 10000,
+ "repaymentCycle": "按季清理,不得跨年",
+ "corePrinciple": "前款不清、后款不借",
+ "forbidNonEmployee": true,
+ "approvalForExtension": "分管领导审批"
+ },
+ "市内交通费": {
+ "reimbursementMethod": "凭据报销",
+ "prepaidCardAccepted": false,
+ "taxiAllowedCases": ["紧急公务", "接送客户", "夜间工作至22:00后", "其他确有需要的特别情形"],
+ "taxiApprovalRequired": true,
+ "encouragePublicTransport": true,
+ "excludesCommute": true
+ },
+ "差旅费": {
+ "preApprovalRequired": true,
+ "transport": {
+ "airplane": {
+ "P5AndAbove": {"class": "经济舱", "preApproval": false},
+ "P4AndBelow": {"class": "经济舱", "preApproval": true, "discountRequirement": "P4选乘6折及以下,P1-P3选乘5折及以下"}
+ },
+ "train": {
+ "default": "火车硬席(硬卧、硬座)、高铁/动车二等座、全列软席列车二等软座",
+ "night6HoursPlus": "可选乘卧铺"
+ },
+ "ship": {"default": "三等舱"},
+ "other": "凭据报销"
+ },
+ "accommodation": {
+ "domestic": {
+ "P8Plus": {"provincialCapital": 500, "other": 400, "municipality": 800},
+ "P7": {"provincialCapital": 450, "other": 400, "municipality": 700},
+ "P4ToP6": {"provincialCapital": 400, "other": 350, "municipality": 600},
+ "other": {"provincialCapital": 350, "other": 300, "municipality": 500}
+ },
+ "overspendApproval": {
+ "within20Percent": "部门负责人审批",
+ "over20Percent": "分管领导审批"
+ }
+ },
+ "subsidy": {
+ "mealAllowance": {
+ "selfPay": {
+ "municipality": 75,
+ "otherDomestic": {"xizang": 65, "general": 55},
+ "hongkongMacao": 140,
+ "abroad": 175
+ },
+ "noReimbursementWhenOrganized": true
+ },
+ "basicAllowance": {
+ "domestic": 35,
+ "hongkongMacao": 110,
+ "abroad": {"min": 90, "max": 100}
+ }
+ },
+ "reimbursementDeadline": "行程结束后三个月内,连续出差超一个月应按月报销",
+ "lostReceipt": "75%报销(需提供情况说明+订单详情+支付截图)",
+ "noSubsidyForVisitingFamily": true
+ },
+ "业务招待费": {
+ "publicToPublicPreferred": true,
+ "privatePaymentRequiresProof": true
+ },
+ "会议费": {
+ "prohibitedItems": ["旅游观光", "宴请", "礼品馈赠"],
+ "preApprovalThreshold": 30000,
+ "preApprover": "总裁",
+ "attachments": ["会议申请与预算", "会议通知", "参会人员签到表", "开支明细", "服务方费用明细清单"]
+ },
+ "广告宣传费": {
+ "adFee": {
+ "requiresAttachment": ["广告投放业务佐证材料"]
+ },
+ "promotionFee": {
+ "requiresAttachment": ["活动方案", "费用预算"],
+ "requiresProcurementCompliance": true
+ }
+ },
+ "培训费": {
+ "qualificationStandard": "《公司员工教育培训管理办法》",
+ "qualifiedTransport": "往返交通费按出差规定",
+ "qualifiedAccommodation": "按出差标准执行",
+ "otherExpenses": "自理"
+ },
+ "通信费": {
+ "scope": ["电话", "传真", "集团网", "网络连接"],
+ "staffCommunication": "按《公司员工因公通讯费用实施细则》"
+ },
+ "邮递费": {
+ "personal": "附快递底单",
+ "corporateSettlement": "附寄件明细清单与支出分摊表"
+ },
+ "薪酬福利支出": {
+ "salaryBonusWelfare": "按公司相关制度",
+ "temporaryReward": {
+ "preApproval": "总裁",
+ "executionApproval": "分管领导"
+ },
+ "welfarePlan": "组织人事部年度计划管理,未纳入不得报销",
+ "staffActivities": "按《公司团建管理办法》或《工会经费管理办法》"
+ },
+ "对外捐赠": {
+ "department": "品牌及市场运营中心",
+ "budgetRequired": true,
+ "unbudgetedProcess": "先履行预算调整决策程序,纳入预算后方可实施",
+ "attachments": ["发票", "收据", "捐赠协议", "接收函", "捐赠清单"]
+ },
+ "涉外汇率": {
+ "cny": "凭据报销",
+ "forex": "按支付凭据所载汇率",
+ "forexNoRate": "业务发生月第一个交易日中国银行外汇折算价",
+ "forexNoCnyRate": "中国外汇交易中心参考汇率"
+ },
+ "报销申请": {
+ "method": "系统单据",
+ "paperAccepted": false,
+ "invoiceType": "增值税专用发票(除特定项目外)",
+ "consolidatedInvoiceRequiresDetail": true,
+ "deadline": "业务完成后三个月内",
+ "prepaymentDeadline": "次月底前结算",
+ "incompleteHandling": "三个工作日内补充,否则退单"
+ },
+ "结算方式": {
+ "employeeExpense": "公对私",
+ "positionExpense": "公对公",
+ "smallAmountThreshold": 1000,
+ "smallAmountProof": "供应商付款凭据截图"
+ },
+ "审批权限": {
+ "employeeExpense": {
+ "businessEntertainment": {"manager": 5000, "directorAndAbove": "1万~3万", "ceo": 150000},
+ "publicLoan": {"manager": 5000, "directorAndAbove": "1万~3万", "ceo": 150000},
+ "travelAndTransportation": {"manager": 10000, "directorAndAbove": "2万~5万", "ceo": 500000},
+ "other": {"manager": 10000, "directorAndAbove": "2万~5万", "ceo": 500000}
+ },
+ "positionExpense": {
+ "assetPurchase": {"manager": 10000, "director": 200000, "vp": 1000000, "svp": 2000000, "ceo": null},
+ "construction": {"manager": null, "director": 50000, "vp": 100000, "svp": null, "ceo": 500000},
+ "materialPurchase": {"manager": null, "director": 100000, "vp": 200000, "svp": 300000, "ceo": 5000000},
+ "outsourcingInternal": {"manager": null, "director": 100000, "vp": 200000, "svp": 300000, "ceo": 5000000},
+ "outsourcingExternal": {"manager": null, "director": 100000, "vp": 200000, "svp": 300000, "ceo": 2000000},
+ "deposit": {"manager": 50000, "director": 500000, "vp": 1000000, "svp": 2000000, "ceo": 5000000},
+ "salesRefund": {"manager": 50000, "director": 100000, "vp": 300000, "svp": 500000, "ceo": 2000000},
+ "rent": {"manager": 50000, "director": 100000, "vp": 200000, "svp": 300000, "ceo": 2000000},
+ "governmentFee": {"manager": null, "director": 10000, "vp": 30000, "svp": 50000, "ceo": 500000},
+ "donation": {"manager": null, "director": 10000, "vp": 20000, "svp": 100000, "ceo": null},
+ "tax": {"manager": 500000, "director": 1000000, "vp": 2000000, "svp": 3000000, "ceo": 5000000},
+ "other": {"manager": 10000, "director": 20000, "vp": 30000, "svp": 50000, "ceo": 500000}
+ },
+ "approvalHierarchy": "以组织关系为基准的逐级审批,特殊事项可越级至终审岗"
+ },
+ "审批时限": {
+ "manager": "三个工作日内完成审批",
+ "imagingProcessing": "一个工作日内处理完毕",
+ "paymentProcessing": "三个工作日内处理完毕"
+ },
+ "成本中心归属原则": ["责任原则", "受益原则"],
+ "归口管理部门": {
+ "办公室(党委办公室)": ["党建支出", "公务车支出"],
+ "工会委员会": ["工会支出"],
+ "营销中心": ["投标业务支出", "机构营销业务支出", "客户培训", "销售退款"],
+ "品牌及市场运营中心": ["广告费", "业务宣传", "对外捐赠"],
+ "组织人事部": ["薪酬福利(不含食堂、误餐)", "外聘劳务", "员工保险", "探亲差旅", "其他福利"],
+ "人力资源服务部": ["招聘业务", "员工教育培训"],
+ "计划财务部": ["备用金", "差旅费", "市内交通费", "出国经费", "误餐费", "税金及附加", "审计评估", "财务费用", "客服及商务"],
+ "产业投资部": ["股权投资", "并购业务"],
+ "证券与法律事务部": ["法律事务", "上市信披", "商标注册"],
+ "产品规划设计部": ["知识产权", "信息技术咨询", "研发活动"],
+ "DAP研发中心": ["研发过程中对外单位的检测、评测、测试及化验"],
+ "信息管理部": ["IT类资产购置", "租入", "运维", "修理", "网络使用费"],
+ "后勤服务部": ["非IT类资产", "财产保险", "食堂", "办公费用", "商旅统付结算"]
+ },
+ "禁止事项": {
+ "批办分离": "经办人和审批人不得为同一人",
+ "budgetFirst": "预算外支出需先履行预算审批程序",
+ "noNonEmployeeLoan": "非正式员工不得申请备用金借款",
+ "noUnbudgetedDonation": "未纳入预算的对外捐赠不得执行",
+ "noWelfarePlanExpenses": "未纳入福利计划的福利项目不得列支和报销"
+ }
+ }
+}
\ No newline at end of file
diff --git a/server/storage/公司支出管理办法2024_财务指南.md b/server/storage/公司支出管理办法2024_财务指南.md
new file mode 100644
index 0000000..954e6b8
--- /dev/null
+++ b/server/storage/公司支出管理办法2024_财务指南.md
@@ -0,0 +1,324 @@
+# 公司支出管理办法(2024)财务报销指南
+
+> **文件来源**:远光软件股份有限公司 · 远光制度〔2024〕14号
+> **颁布日期**:2024年4月17日
+> **密级**:商密【中】
+
+---
+
+## 一、总则
+
+### 1.1 目的
+适应公司业务发展需要,优化完善支出和报销标准,规范支出业务审批和报销过程,防范经营风险。
+
+### 1.2 适用范围
+- 公司各类**成本费用**和**资本性支出**
+- 公司各部门、分支机构(非独立法人)、全资子公司
+- 控股子公司应参照本办法制订,报公司计划财务部备案后执行
+
+### 1.3 管理原则
+| 原则 | 说明 |
+|------|------|
+| **预算先行** | 应在预算目标范围内支出,预算外支出需履行预算审批程序 |
+| **厉行节约、效益优先** | 规范开展支出业务活动 |
+| **分级授权、分类控制** | 按管理岗位执行审批权限 |
+| **批办分离** | 经办人和审批人不得为同一人 |
+
+---
+
+## 二、重点支出报销规则
+
+### 2.1 备用金借款
+
+| 项目 | 规则 |
+|------|------|
+| **定义** | 公司借支给正式员工,用于支付与公司经济业务相关的、必须预支且尚不具备报销条件的费用 |
+| **借款人资格** | 仅限正式员工,非正式员工不得申请 |
+| **额度上限** | 原则上不得超过**1万元** |
+| **还款要求** | 按季定期清理,季度末不能及时报账核销的,需向分管领导申请延期审批,**不得跨年** |
+| **核心原则** | "**前款不清、后款不借**",严禁以各种名义挪用公司资金 |
+
+---
+
+### 2.2 市内交通费
+
+| 项目 | 规则 |
+|------|------|
+| **定义** | 员工为公司生产经营活动在工作所在地发生的市内交通费(不含正常上下班通勤费) |
+| **报销方式** | 凭据报销,需与工作实际相符 |
+| **禁止项** | 严禁报销与工作无关的交通费;**不接受**充值预付费方式的交通费 |
+| **出租车使用** | 仅限以下情况使用,由部门负责人从严管理:
① 紧急公务
② 接送客户
③ 夜间工作至22:00后
④ 其他确有需要的特别情形 |
+| **推荐方式** | 鼓励选择公交、地铁等公共交通出行 |
+
+---
+
+### 2.3 差旅费
+
+#### 2.3.1 交通费报销标准
+
+**飞机乘坐规定:**
+| 职级 | 规定 |
+|------|------|
+| 公司领导/高层经理/中层经理(P5及以上、外聘专家) | 经济舱 |
+| 基层经理(P4及以下) | 需事前经部门负责人审批;P4应选乘6折及以下、P1-P3应选乘5折及以下 |
+
+**其他交通工具:**
+| 类型 | 报销标准 |
+|------|----------|
+| 火车 | 火车硬席(硬卧、硬座)、高铁/动车二等座,全列软席列车二等软座 |
+| 轮船 | 三等舱 |
+| 其他交通工具(不含小汽车) | 凭据报销 |
+
+> **备注:**
+> - 夜间乘坐高铁/动车6小时以上时,可选乘卧铺
+> - 超标20%以内由部门负责人审批,超标20%以上需分管领导审批
+> - 公司已为员工购买商业保险(含交通险),出差期间保险费不再报销
+> - 往返机场、车站、港口原则上应选公交车、轨道交通
+
+**超标审批规则:**
+| 超标幅度 | 审批要求 |
+|----------|----------|
+| 20%以内 | 部门负责人审批 |
+| 20%以上 | 分管领导审批 |
+
+#### 2.3.2 住宿费报销标准
+
+**国内住宿限额标准(单位:人民币元)**
+
+| 职级 | 直辖市/特区/港澳台 | 省会城市 | 其他地区 |
+|------|---------------------|----------|----------|
+| 公司领导(P8及以上) | 800 | 500 | 400 |
+| 高层经理(P7) | 700 | 450 | 400 |
+| 中层经理、基层经理(P4~P6、外聘专家) | 600 | 400 | 350 |
+| 其他员工 | 500 | 350 | 300 |
+
+> **超标审批**:超标20%以内部门负责人审批,20%以上需分管领导审批
+
+#### 2.3.3 出差补贴标准(单位:人民币元/天)
+
+| 补助类型 | 直辖市/特区/西藏 | 其他地区国内 | 港澳台 | 国外 |
+|----------|-------------------|---------------|--------|------|
+| **餐补**(自行解决餐食) | 75 | 55~65 | 140 | 175 |
+| **基本补助**(基本出差补贴) | 35 | 35 | 110 | 90~100 |
+| **合计** | 110 | 90~100 | 250 | 265~275 |
+
+> **注意**:因组织安排、销售、推广、调研、培训、会议、研讨、借调等出差,主办方统一安排餐食的,**不再报销餐补**
+
+#### 2.3.4 其他差旅注意事项
+
+| 情况 | 处理规则 |
+|------|----------|
+| 订票/签转/退票费 | 凭据报销,由部门负责人审核确认 |
+| 出差记录链条中断 | 应提供:登机牌、通行记录、租车记录、支付记录、审批邮件/短信/微信等 |
+| 绕道回家省亲 | 绕道交通费扣除出差直线单程费,多出部分自理;绕道和在家期间不报销住宿费和出差补贴 |
+| 交通原始凭据丢失 | 提供情况说明+订单详情+支付截图,可按票面价值**75%**报销;未提供的,不予报销 |
+| 探亲路费 | 严格遵循《公司员工探亲管理办法》,不享受出差补贴;原始凭据丢失不允许报销 |
+| 调动行李邮寄费 | 每人每公里**1元以内**凭据报销,超过部分自理 |
+| 境外出差 | 应单列预算、**事前履行**经费申请与审批程序 |
+
+---
+
+### 2.4 业务招待费
+
+| 项目 | 规则 |
+|------|------|
+| **定义** | 用于接待客户和相关单位的餐饮等合理支出(正常生产经营管理过程中) |
+| **报销要求** | 未能"公对公"结算的,应附"向供应商付款凭据"佐证 |
+
+---
+
+### 2.5 会议费
+
+| 场景 | 规则 |
+|------|------|
+| **禁止项** | 不得列支与会议无关的旅游观光、宴请、礼品馈赠等支出 |
+| **事前审批** | 经费预算**3万元及以上**的公司内部会议、研讨与集中培训,需事前报请**公司总裁**审批 |
+| **报销附件** | 经审批的会议申请与预算、会议通知、参会人员签到表、会议开支明细;会务费发票应附服务方费用明细清单 |
+| **参加外部会议** | 应附会议通知、参会回执等业务佐证材料 |
+
+---
+
+### 2.6 广告宣传费
+
+| 类型 | 说明 | 报销要求 |
+|------|------|----------|
+| **广告费** | 公司通过各种公开媒体宣传所发生的费用 | 附广告投放等业务佐证材料 |
+| **业务宣传费** | 公司自身开展宣传与营销活动所发生的费用,包括印有公司标志的礼品、纪念品等 | 附活动方案、费用预算等业务佐证材料,遵循公司采购与物资管理相关规定 |
+
+---
+
+### 2.7 培训费
+
+| 项目 | 规则 |
+|------|------|
+| **报销资格** | 按《公司员工教育培训管理办法》认定标准执行 |
+| **符合标准的培训** | 期间主要交通费(往返)、住宿费按出差规定标准执行,其他费用自理 |
+
+---
+
+### 2.8 通信费
+
+| 项目 | 规则 |
+|------|------|
+| **包含范围** | 电话、传真、集团网、网络连接等支出 |
+| **员工通讯费** | 按《公司员工因公通讯费用实施细则》执行 |
+
+---
+
+### 2.9 邮递费
+
+| 场景 | 要求 |
+|------|------|
+| 员工报销 | 应附快递底单 |
+| 单位统一结算 | 应附寄件明细清单与支出分摊表 |
+
+---
+
+### 2.10 薪酬福利支出
+
+| 场景 | 规则 |
+|------|------|
+| 职工薪资、奖励提成、福利费 | 按公司相关制度规定执行 |
+| 临时奖励及福利支出 | 需事先计划并报公司总裁审批,具体支出时由分管领导根据已批准计划审批 |
+| 职工福利费 | 由组织人事部实行年度计划管理,未纳入福利计划的福利项目不得列支和报销 |
+| 职工活动支出 | 按照《公司团建管理办法》或《工会经费管理办法》执行 |
+
+---
+
+### 2.11 对外捐赠支出
+
+| 项目 | 规则 |
+|------|------|
+| **归口管理** | 品牌及市场运营中心 |
+| **预算要求** | 严格预算单控,**未纳入对外捐赠预算的,不得对外捐赠** |
+| **预算内捐赠** | 业务部门提出申请 → 部门负责人审批 → 品牌及市场运营中心归口审核 → 分管领导审批后执行 |
+| **预算外捐赠** | 需履行预算调整决策程序,纳入预算范围后方可实施 |
+| **备案要求** | 捐赠完成后需将凭据资料(含发票、收据、捐赠协议、接收函、捐赠清单等)报品牌及市场运营中心备案 |
+
+---
+
+### 2.12 涉外业务汇率标准
+
+| 结算方式 | 汇率确定 |
+|----------|----------|
+| 人民币结算 | 凭据报销 |
+| 外币结算 | 按支付凭据所载汇率折算 |
+| 支付凭据未载明汇率 | 按业务发生月第一个交易日"**中国银行外汇折算价**"执行 |
+| 中国银行无折算价的币种 | 按"**中国外汇交易中心参考汇率**"执行 |
+
+---
+
+## 三、报销申请与审批
+
+### 3.1 申请方式
+
+| 项目 | 规则 |
+|------|------|
+| **系统申请** | 通过公司财务信息化系统填写"系统单据",**不接受纸质申请单据** |
+| **票据要求** | 除员工薪酬、个人劳务报酬、出差补贴、专项补贴、往来款项支付等业务外,其他支出均需提交**税务机关认可的票据** |
+| **发票类型** | 原则上应取得**增值税专用发票**;汇总开具的发票应附税控系统明细清单 |
+| **发票缺失处理** | 应取得但未取得增值税专用发票的,经办人应在"系统单据"中说明原因 |
+
+### 3.2 申请时限
+
+| 类型 | 规则 |
+|------|------|
+| **一般报销时限** | 业务完成日至影像资料挂接系统单据日不超过**三个月** |
+| **逾期处理** | 逾期需说明原因,经分管领导审批后方可报销 |
+| **定期费用** | 按自然月度计算并定期发生的费用支出,需月度结束后方可报销 |
+| **差旅费** | 行程结束**三个月内**提交(连续出差超过一个月时,原则上应按月报销),**逾期不予报销出差补贴** |
+| **预付款项** | 原则上应在**次月底前**完成结算,不得长期挂账 |
+
+### 3.3 结算方式
+
+| 类型 | 方式 | 说明 |
+|------|------|------|
+| **员工支出业务** | 公对私 | 报销申请审批通过后,公司支付给经办人 |
+| **岗位支出业务** | 公对公 | 报销申请审批通过后,公司与供应商直接结算 |
+| **小额支出** | 结算起点(1000元)以下,确实无法与供应商直接结算的 | 报销时应附向供应商付款凭据的截图佐证 |
+
+### 3.4 审批权限
+
+#### 员工支出报销审批权限(单位:人民币万元)
+
+| 支出项目 | 部门经理/机构总经理/事业部总经理 | 总监/副总裁/高级副总裁/一级部门总经理/总工程师/各委员会主任 | 总裁 |
+|----------|----------------------------------|--------------------------------------------------------------|------|
+| 业务招待 | 0.5 | 1~3 | 15 |
+| 因公借款 | 0.5 | 1~3 | 15 |
+| 差旅费、市内交通 | 1 | 2~5 | 50 |
+| 客服及商务、教育、邮递 | 1 | 2~5 | 50 |
+| 其他临时性支出 | 1 | 2~5 | 50 |
+
+#### 岗位支出报销审批权限(单位:人民币万元)
+
+| 支出项目 | 部门经理/机构总经理/事业部总经理 | 总监/一级部门总经理 | 副总裁 | 高级副总裁 | 总裁 |
+|----------|----------------------------------|----------------------|--------|------------|------|
+| 资产采购 | 1 | 2~10 | 15 | 200 | - |
+| 基建工程 | —— | 5 | 10 | - | 50 |
+| 材料采购 | —— | 10 | 20 | 30 | 500 |
+| 分包外包(内部单位) | —— | 10 | 20 | 30 | 500 |
+| 分包外包(外部单位) | —— | 10 | 20 | 30 | 200 |
+| 保证金 | 5 | 50 | 100 | 200 | 500 |
+| 销售退款 | 5 | 10 | 30 | 50 | 200 |
+| 房屋租金 | 5 | 10 | 20 | 30 | 200 |
+| 政府规费 | - | 1 | 3 | 5 | 50 |
+| 慰问救济、对外捐赠 | —— | 1 | 2 | 10 | - |
+| 税费支出 | 50 | 100 | 200 | 300 | 500 |
+| 其他支出 | 1 | 2 | 3 | 5 | 50 |
+
+> **注**:权限额度均含本数;业务流转执行以组织关系为基准的逐级审批规则;特殊事项经决策后可越级至终审岗审批
+
+### 3.5 审批时限
+
+| 角色 | 时限要求 |
+|------|----------|
+| **各级管理人员** | 应在待批单据流转至本岗位后**三个工作日内**完成审批 |
+| **影像扫描** | 原则上应在**一个工作日内**处理完毕 |
+| **审核与支付** | 原则上应在**三个工作日内**处理完毕 |
+
+---
+
+## 四、成本中心归属
+
+| 原则 | 说明 |
+|------|------|
+| **基本原则** | 基于**责任原则**与**受益原则**确定 |
+| **特殊情况** | 由相关业务部门协商确定 |
+
+---
+
+## 五、归口管理部门
+
+| 部门 | 归口业务范围 |
+|------|-------------|
+| **办公室(党委办公室)** | 党建支出、公务车支出 |
+| **工会委员会** | 工会支出 |
+| **营销中心** | 投标业务支出、机构营销业务支出、客户培训、销售退款等 |
+| **品牌及市场运营中心** | 广告费、业务宣传、对外捐赠 |
+| **组织人事部** | 薪酬福利(不含食堂、误餐)、外聘劳务、员工保险、探亲差旅、其他福利 |
+| **人力资源服务部** | 招聘业务、员工教育培训 |
+| **计划财务部** | 备用金、差旅费、市内交通费、出国经费、误餐费、税金及附加、审计评估、财务费用、客服及商务 |
+| **产业投资部** | 股权投资、并购业务 |
+| **证券与法律事务部** | 法律事务、上市信披、商标注册 |
+| **产品规划设计部** | 知识产权、信息技术咨询、研发活动 |
+| **DAP研发中心** | 研发过程中对外单位的检测、评测、测试及化验 |
+| **信息管理部** | IT类资产购置、租入、运维、修理、网络使用费 |
+| **后勤服务部** | 非IT类资产、财产保险、食堂、办公费用、商旅统付结算 |
+
+---
+
+## 六、附则
+
+### 6.1 审核要求
+财务审核发现业务原始凭据不完整的,经办人应在**三个工作日内**补充并重新提交;经办人填单错误、业务原始凭据不合规,以及不能按时补充的,**财务退单处理**。
+
+### 6.2 复核要求
+财务可要求报销人提供不限于本办法规定的佐证资料,对业务原始凭据的完整性、合规性,业务关联性、内容一致性、金额准确性进行复核。
+
+### 6.3 责任承担
+经办人对支出业务的**真实性、合规性、必要性、合理性**以及业务原始凭据的**真实性、合规性、关联性、完整性**承担全部责任。
+
+---
+
+**文件解释权**:远光软件股份有限公司计划财务部
+**生效日期**:2024年4月17日
\ No newline at end of file
diff --git a/web/src/assets/styles/views/audit-view.css b/web/src/assets/styles/views/audit-view.css
index 2599585..cd98751 100644
--- a/web/src/assets/styles/views/audit-view.css
+++ b/web/src/assets/styles/views/audit-view.css
@@ -77,6 +77,38 @@
flex-wrap: wrap;
}
+.search-filter {
+ width: 260px;
+ min-height: 36px;
+ display: inline-flex;
+ align-items: center;
+ gap: 8px;
+ padding: 0 11px;
+ border: 1px solid #d7e0ea;
+ border-radius: 8px;
+ background: #fff;
+ color: #64748b;
+}
+
+.search-filter i {
+ color: #94a3b8;
+ font-size: 16px;
+}
+
+.search-filter input {
+ width: 100%;
+ min-width: 0;
+ border: 0;
+ outline: 0;
+ background: transparent;
+ color: #0f172a;
+ font-size: 13px;
+}
+
+.search-filter input::placeholder {
+ color: #94a3b8;
+}
+
.filter-btn,
.create-btn,
.row-action {
diff --git a/web/src/components/layout/SidebarRail.vue b/web/src/components/layout/SidebarRail.vue
index ba15139..7335fe8 100644
--- a/web/src/components/layout/SidebarRail.vue
+++ b/web/src/components/layout/SidebarRail.vue
@@ -77,7 +77,7 @@ const sidebarMeta = {
approval: { label: '审批中心', badge: '12' },
chat: { label: 'AI 助手' },
policies: { label: '知识管理' },
- audit: { label: '技能中心' },
+ audit: { label: '任务规则中心' },
employees: { label: '员工管理' },
settings: { label: '系统设置' }
}
diff --git a/web/src/composables/useNavigation.js b/web/src/composables/useNavigation.js
index b1fa861..e9d13c2 100644
--- a/web/src/composables/useNavigation.js
+++ b/web/src/composables/useNavigation.js
@@ -56,11 +56,11 @@ export const navItems = [
},
{
id: 'audit',
- label: '技能中心',
- navHint: '查看和管理技能配置',
+ label: '任务规则中心',
+ navHint: '查看和管理任务规则配置',
icon: icons.skill,
- title: '技能中心',
- desc: '集中管理技能配置、提示词结构、测试样例与发布状态。'
+ title: '任务规则中心',
+ desc: '集中管理规则文件、外部 MCP 服务与定时任务调度。'
},
{
id: 'employees',
diff --git a/web/src/views/AuditView.vue b/web/src/views/AuditView.vue
index 89dd7de..8126b2a 100644
--- a/web/src/views/AuditView.vue
+++ b/web/src/views/AuditView.vue
@@ -8,7 +8,7 @@
{{ selectedSkill.summary }}
-