Files
X-Financial/document/development/agent week plan/day_5_user_agent_mvp.md
caoxiaozhu ba28627f11 docs(agent-week-plan): update weekly execution plan documents
- Update 00_README.md: refresh week plan overview and structure
- Update MASTER_TODO.md: update master todo list for new week
- Update day_1_foundation_models.md: expand foundation models tasks
- Update day_2_rule_center_integration.md: add rule center integration tasks
- Update day_3_semantic_ontology_mvp.md: add semantic ontology tasks
- Update day_4_orchestrator_runtime.md: add orchestrator runtime tasks
- Update day_5_user_agent_mvp.md: add user agent tasks
- Update day_6_hermes_mvp.md: add hermes agent tasks
- Update day_7_hardening_demo_acceptance.md: add hardening tasks
2026-05-12 01:22:38 +00:00

9.6 KiB
Raw Blame History

Day 5User Agent MVP

今天的大开发点

实现面向用户的自建 Agent。它负责用户提问、流程辅助、规则解释、查询结果解释和草稿生成。

User Agent 只能处理用户侧交互,不负责后台定时内循环,也不能自动执行高风险动作。

为什么第五天做这个

Day 1 到 Day 4 已经具备资产、语义、路由和日志基础,此时可以把用户自然语言入口接到真实流程上。

今天主要交付

  • 用户自然语言入口。
  • 对话入口透传首句文本、附件名称和页面上下文。
  • 语义识别完整后创建报销单草稿。
  • 对话补充字段时更新报销主表、明细和附件关联。
  • 用户确认后触发报销单提交和状态变更。
  • 报销查询和解释。
  • 应收查询和解释。
  • 应付查询和解释。
  • 规则引用解释。
  • 风险原因说明。
  • 处理意见草稿。
  • 知识库读取骨架。
  • 低置信度场景的澄清追问。
  • 前端问答或操作入口。

当前完成情况

  • 个人工作台、报销对话框和通用聊天入口已经接通真实 Orchestrator / User Agent 问答链路。
  • 回答、规则引用、风险说明、建议动作和结构化 draft_payload 已可返回。
  • 真实 expense_claims / expense_claim_items / 附件表落库,以及 draft -> submitted 状态流转尚未完成。

相关架构文档:

当天验收门槛

  • 用户能输入自然语言问题。
  • 请求必须经过 Orchestrator。
  • 至少 3 类财务问题有可读回答。
  • 叙述型报销输入在最小槽位满足后能创建 expense_claims 草稿。
  • 用户确认提交后可把报销单从 draft 变更为 submitted
  • 回答能引用规则或知识。
  • 语义低置信度时不会答非所问,而是追问。
  • 高风险动作只生成草稿或建议。
  • AgentRun Trace 能看到 User Agent 步骤。

今天不做

  • 不做自动审批。
  • 不做自动付款。
  • 不做自动上线规则。
  • 不做完整知识库检索优化。
  • 不假装已读懂未解析的附件内容。

详细执行清单

以下内容为合并后的详细执行清单。

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. 草稿生成与单据落库

  • 支持根据语义结果创建 expense_claims 草稿。
  • 报销草稿初始状态写为 draft
  • 支持根据语义结果创建或更新 expense_claim_items
  • 支持把用户上传附件挂到 document_assetsdocument_asset_versionsexpense_item_documents
  • 对话中补充金额、事由、客户、参与人、票据后,能回写已有草稿而不是只更新内存结果。
  • 支持生成报销处理意见草稿。
  • 支持生成应收催收建议草稿。
  • 支持生成应付付款建议草稿。
  • 用户明确确认“提交报销”后,把 expense_claims.statusdraft 更新为 submitted
  • 报销提交时写入 submitted_at
  • 报销状态变更写入审计日志。
  • 报销状态变更写入 AgentRun 结果。
  • 草稿中标明“待人工确认”。
  • 草稿不直接提交业务系统。
  • 草稿生成写入审计日志。
  • 草稿生成写入 AgentRun 结果。

验收证据:

  • “我今天去客户现场招待了客户花销了1000元”在补齐必要字段后可创建报销草稿。
  • “帮我提交这笔报销”在确认后只把状态改到 submitted,不会直接改成 approvedpaid
  • “帮我生成处理意见”只返回草稿,不执行审批。

6. 知识库读取骨架

  • 建立知识条目查询接口或服务。
  • 支持按关键词查询知识条目。
  • 支持按业务场景查询知识条目。
  • User Agent 回答可以引用知识条目。
  • 引用中包含知识标题。
  • 引用中包含更新时间。
  • 知识库不可用时返回降级说明。

验收证据:

  • 知识库失败不会导致整个回答失败。

7. 对话或操作入口

  • 前端增加用户问题输入框。
  • 输入框支持回车或按钮提交。
  • 提交时调用 Orchestrator而不是绕过 Orchestrator。
  • 提交时透传首句文本、附件名称、附件 ID 和页面上下文。
  • 展示 Agent 回答。
  • 展示引用规则或知识。
  • 展示建议动作。
  • 展示报销草稿 ID 或 claim_no。
  • 展示当前报销状态。
  • 展示需要人工确认的提示。
  • 展示 run_id
  • 展示加载态。
  • 展示错误态。

验收证据:

  • 用户可在页面完成一次问答闭环。

8. 安全边界

  • User Agent 不直接修改规则状态。
  • User Agent 不直接上线规则。
  • User Agent 不直接审批报销。
  • User Agent 不直接把报销单改为 approvedpaid
  • User Agent 不直接付款。
  • User Agent 不直接删除知识。
  • 所有高风险动作只返回建议或草稿。
  • 报销从 draft 变更到 submitted 之前必须有用户确认。
  • 所有草稿动作标记 requires_confirmation=true
  • 语义低置信度时优先追问,不返回答非所问的查询结果。
  • 没有 OCR/VLM 结果时,不假装读懂图片或票据内容。

验收证据:

  • 提示词要求“直接付款”时仍被阻断。

9. 测试

  • 测试报销查询。
  • 测试应收查询。
  • 测试应付查询。
  • 测试规则解释。
  • 测试风险解释。
  • 测试报销草稿创建。
  • 测试报销草稿补槽更新。
  • 测试报销状态从 draft 变更到 submitted
  • 测试草稿生成。
  • 测试越权动作阻断。
  • 测试知识库降级。

验收证据:

  • User Agent 核心测试通过。

10. Day 5 验收

  • User Agent 服务可被 Orchestrator 调用。
  • 用户入口可提交自然语言问题。
  • 至少 3 个财务场景有回答。
  • 语义识别完整后的报销输入能创建报销草稿。
  • 用户确认后能提交报销并更新状态。
  • 回答能引用规则或知识。
  • 高风险动作不会自动执行。
  • AgentRun Trace 能看到 User Agent 步骤。
  • 前端构建通过。
  • 所有完成项已用 [x] ~~...~~ 标记。

阻塞记录

  • 暂无。

日终交接

  • 当前已支持报销 / 应收 / 应付查询、规则解释、风险解释、草稿建议与澄清追问。
  • 当前仍是占位的主要能力是报销单真实落库、附件持久化和知识库读取,不再是简单静态问答 Mock。
  • Day 6 Hermes 可直接复用当前的规则检查、风险标签和 Orchestrator Trace / ToolCall 契约。