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
This commit is contained in:
@@ -1,25 +1,51 @@
|
||||
# Agent Week Plan 一周开发路线图
|
||||
|
||||
本目录是 `agent_weekly_plan` 的路线图层,负责回答“这一周每天大概做什么、为什么这样排、每天交付什么”。
|
||||
本目录现在同时承接:
|
||||
|
||||
具体到字段、接口、服务、前端、测试和验收步骤的执行清单,不放在这里,而是放在:
|
||||
- 一周路线图
|
||||
- 每天 daily 文档
|
||||
- 每天的详细执行清单
|
||||
|
||||
[../agent plan/weekly_execution_details/README.md](<../agent plan/weekly_execution_details/README.md>)
|
||||
原独立执行细则目录已合并进各 Day 文档,不再单独维护。
|
||||
|
||||
## 两层文档分工
|
||||
## 文档分工
|
||||
|
||||
| 目录 | 职责 | 读者 |
|
||||
| --- | --- | --- |
|
||||
| `agent week plan` | 7 天路线图,每天只讲大开发点、交付物、验收门槛 | 产品、架构、排期、开发启动前 |
|
||||
| `agent plan` | 架构设计、协议、流程、每天具体执行 TODO | Codex、开发人员、评审人员 |
|
||||
| `agent week plan` | 一周节奏、每天目标、验收门槛、详细执行清单、阻塞记录、日终交接 | 产品、架构、Codex、开发、验收 |
|
||||
| `agent plan` | 架构设计、协议、流程、治理、标准模型、能力边界 | 架构、开发、评审 |
|
||||
|
||||
## 使用方式
|
||||
|
||||
1. 先读 [MASTER_TODO.md](./MASTER_TODO.md),确认 7 天节奏。
|
||||
2. 进入当天 daily 文档,看当天主题、交付结果和验收门槛。
|
||||
3. 点击 daily 中的“对应执行细则”,进入 `agent plan/weekly_execution_details`。
|
||||
4. 在执行细则中按 `- [ ]` 一项一项开发。
|
||||
5. 完成细则后回到 daily 文档,确认当天是否达到交付门槛。
|
||||
1. 先读 [MASTER_TODO.md](./MASTER_TODO.md),确认 7 天节奏和当前状态。
|
||||
2. 打开当天 daily 文档。
|
||||
3. 在同一份 daily 文档里按顺序阅读:
|
||||
今天的大开发点 -> 当前完成情况 -> 当天验收门槛 -> 详细执行清单 -> 阻塞记录 -> 日终交接。
|
||||
4. 如需设计依据,再跳到 `agent plan` 对应架构文档。
|
||||
5. 完成一个最小项后,再把该项改成完成态,而不是代码写完就直接算过。
|
||||
|
||||
## 完成标记规则
|
||||
|
||||
未完成:
|
||||
|
||||
```md
|
||||
- [ ] 建立 AgentAsset 数据模型
|
||||
```
|
||||
|
||||
完成后:
|
||||
|
||||
```md
|
||||
- [x] ~~建立 AgentAsset 数据模型~~
|
||||
```
|
||||
|
||||
执行要求:
|
||||
|
||||
- [ ] 每次只处理一个最小 TODO。
|
||||
- [ ] 完成后先自测,再改成 `[x]`。
|
||||
- [ ] 改成 `[x]` 时,同时用 `~~` 画线。
|
||||
- [ ] 不能因为代码写完就标完成,必须满足该 TODO 的验收证据。
|
||||
- [ ] 遇到阻塞时,在当天文档的“阻塞记录”下新增说明。
|
||||
- [ ] 每天收尾时更新当天文档的“日终交接”。
|
||||
|
||||
## 一周总体目标
|
||||
|
||||
|
||||
@@ -1,28 +1,47 @@
|
||||
# Agent Week Plan 总览
|
||||
# Agent Week Plan 总控
|
||||
|
||||
本文件只放一周路线图,不放细节 TODO。具体执行步骤在 `agent plan/weekly_execution_details`。
|
||||
本文件是本周总览和执行索引。
|
||||
|
||||
每个 Day 文档现在同时包含:
|
||||
|
||||
- 路线图
|
||||
- 当前完成情况
|
||||
- 验收门槛
|
||||
- 详细执行清单
|
||||
|
||||
不再跳转独立执行细则目录。
|
||||
|
||||
## 快速浏览
|
||||
|
||||
- HTML 总览:[agent_week_plan_html/index.html](<../agent_week_plan_html/index.html>)
|
||||
- Day 1 HTML:[agent_week_plan_html/day-1.html](<../agent_week_plan_html/day-1.html>)
|
||||
|
||||
## 执行方式
|
||||
|
||||
1. 先看本文件,确认今天做哪一天、当前状态和依赖顺序。
|
||||
2. 再打开当天 daily 文档,直接在同一份文档里推进开发。
|
||||
3. 完成一个最小 TODO 后,再改成 `[x] ~~...~~`。
|
||||
4. 每天结束时回填阻塞记录、验收结果和日终交接。
|
||||
|
||||
## 一周节奏
|
||||
|
||||
| Day | 状态 | 主题 | 主要交付 | 快速视图 | 对应执行细则 |
|
||||
| Day | 状态 | 主题 | 主要交付 | Markdown | HTML |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| Day 1 | 已完成(2026-05-11) | 基础模型与工程骨架 | 资产、版本、审核、运行日志、审计日志、基础 API、最小财务数据源 | [HTML](<../agent_week_plan_html/day-1.html>) | [细则](<../agent plan/weekly_execution_details/day_1_foundation_models.md>) |
|
||||
| Day 2 | 未开始 | 任务规则中心联调 | 规则/技能/MCP/任务列表与详情、Markdown、版本、审核 | [HTML](<../agent_week_plan_html/day-2.html>) | [细则](<../agent plan/weekly_execution_details/day_2_rule_center_integration.md>) |
|
||||
| Day 3 | 未开始 | 语义本体 MVP | 8 字段语义解析、日志、评测入口 | [HTML](<../agent_week_plan_html/day-3.html>) | [细则](<../agent plan/weekly_execution_details/day_3_semantic_ontology_mvp.md>) |
|
||||
| Day 4 | 未开始 | Orchestrator 运行时 | 统一入口、路由、权限、工具调用、Trace | [HTML](<../agent_week_plan_html/day-4.html>) | [细则](<../agent plan/weekly_execution_details/day_4_orchestrator_runtime.md>) |
|
||||
| Day 5 | 未开始 | User Agent MVP | 用户问答、财务查询、规则解释、草稿生成 | [HTML](<../agent_week_plan_html/day-5.html>) | [细则](<../agent plan/weekly_execution_details/day_5_user_agent_mvp.md>) |
|
||||
| Day 6 | 未开始 | Hermes MVP | 定时任务、风险巡检、日报、知识候选、规则草稿 | [HTML](<../agent_week_plan_html/day-6.html>) | [细则](<../agent plan/weekly_execution_details/day_6_hermes_mvp.md>) |
|
||||
| Day 7 | 未开始 | 加固、演示和验收 | 回归、测试、演示脚本、交付说明 | [HTML](<../agent_week_plan_html/day-7.html>) | [细则](<../agent plan/weekly_execution_details/day_7_hardening_demo_acceptance.md>) |
|
||||
| Day 1 | 已完成(2026-05-11) | 基础模型与工程骨架 | 资产、版本、审核、运行日志、审计日志、基础 API、最小财务数据源 | [Day 1](./day_1_foundation_models.md) | [HTML](<../agent_week_plan_html/day-1.html>) |
|
||||
| Day 2 | 已完成,待补浏览器走查记录 | 任务规则中心联调 | 规则/技能/MCP/任务列表与详情、Markdown、版本、审核 | [Day 2](./day_2_rule_center_integration.md) | [HTML](<../agent_week_plan_html/day-2.html>) |
|
||||
| Day 3 | 已完成主体功能,待补评测样本扩充 | 语义本体 MVP | 8 字段语义解析、日志、评测入口 | [Day 3](./day_3_semantic_ontology_mvp.md) | [HTML](<../agent_week_plan_html/day-3.html>) |
|
||||
| Day 4 | 已完成主干,待接通真实报销写链路 | Orchestrator 运行时 | 统一入口、路由、权限、工具调用、报销单写入路由、Trace | [Day 4](./day_4_orchestrator_runtime.md) | [HTML](<../agent_week_plan_html/day-4.html>) |
|
||||
| Day 5 | 已完成问答主链路,待接通真实报销落库与状态流转 | User Agent MVP | 用户问答、报销单草稿创建/补全/提交、财务查询、规则解释 | [Day 5](./day_5_user_agent_mvp.md) | [HTML](<../agent_week_plan_html/day-5.html>) |
|
||||
| Day 6 | 未开始 | Hermes MVP | 定时任务、风险巡检、日报、知识候选、规则草稿 | [Day 6](./day_6_hermes_mvp.md) | [HTML](<../agent_week_plan_html/day-6.html>) |
|
||||
| Day 7 | 未开始 | 加固、演示和验收 | 回归、测试、演示脚本、交付说明 | [Day 7](./day_7_hardening_demo_acceptance.md) | [HTML](<../agent_week_plan_html/day-7.html>) |
|
||||
|
||||
## 当前完成情况
|
||||
|
||||
- Day 1 已完成,后端基础模型、审计和最小财务数据源已可供 Day 2 前端联调使用。
|
||||
- Day 2 到 Day 7 保持原排期,下一步直接进入规则中心联调。
|
||||
- Day 1 已完成,后端基础模型、审计和最小财务数据源已可供后续能力复用。
|
||||
- Day 2 已完成主要前后端联调,当前仅剩浏览器人工走查记录待补。
|
||||
- Day 3 主体已完成,`/api/v1/ontology/parse`、8 字段返回、缺槽位追问、权限判断和前端调试入口均已落地;当前主要剩评测样本继续扩充。
|
||||
- Day 4 主干已完成,Orchestrator 已具备统一入口、User Agent / Hermes 路由、权限阻断、ToolCall 记录、Trace 和降级;真实 `expense_claims` 建单 / 改单 / 提交流程尚未接通。
|
||||
- Day 5 问答主链路已完成,个人工作台和报销对话框已能把文本与附件名称带入 Orchestrator,并返回回答、规则引用、风险说明和结构化草稿;真实报销主表 / 明细 / 附件落库及 `draft -> submitted` 仍未完成。
|
||||
|
||||
## 关键依赖顺序
|
||||
|
||||
@@ -40,7 +59,7 @@
|
||||
- 未审核规则不能上线。
|
||||
- 用户问题能解析出语义本体 8 字段。
|
||||
- Orchestrator 能路由到 User Agent 和 Hermes。
|
||||
- User Agent 能完成查询、解释、草稿生成。
|
||||
- User Agent 能完成查询、解释、报销单草稿创建、字段补全和提交前确认。
|
||||
- Hermes 能执行一次风险巡检或日报任务。
|
||||
- AgentRun、ToolCall、AuditLog 都能追溯。
|
||||
- 有演示脚本和下一阶段交接文档。
|
||||
|
||||
@@ -33,10 +33,6 @@ Day 1 只做地基,不做复杂 Agent 智能。
|
||||
- [x] ~~种子数据已覆盖 3 条规则、2 条技能、2 条 MCP、3 条任务,以及报销 / 应收 / 应付示例数据。~~
|
||||
- [x] ~~旧开发库启动时会自动补齐新增资产和版本,不需要手动清库。~~
|
||||
|
||||
## 对应执行细则
|
||||
|
||||
- [Day 1 执行细则](<../agent plan/weekly_execution_details/day_1_foundation_models.md>)
|
||||
|
||||
相关架构文档:
|
||||
|
||||
- [整体架构](<../agent plan/01_overall_architecture.md>)
|
||||
@@ -72,3 +68,154 @@ Day 1 只做地基,不做复杂 Agent 智能。
|
||||
- 不做完整 Hermes 调度。
|
||||
- 不做真实 OCR。
|
||||
- 不做复杂规则推理。
|
||||
|
||||
## 详细执行清单
|
||||
|
||||
以下内容为合并后的详细执行清单。
|
||||
|
||||
## 0. 开始前检查
|
||||
|
||||
- [x] ~~确认后端目录为 `/app/server`,模型、路由、启动入口和测试目录已定位。~~
|
||||
- [x] ~~确认本次改动以增量方式落到现有 FastAPI + SQLAlchemy 工程,不回退无关文件。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~模型注册位于 `server/src/app/db/base.py`,路由注册位于 `server/src/app/api/v1/router.py`,启动入口位于 `server/src/app/main.py`,测试位于 `server/tests`。~~
|
||||
|
||||
## 1. 统一命名和边界
|
||||
|
||||
- [x] ~~统一枚举:`rule | skill | mcp | task`、`draft | review | active | disabled`、`pending | approved | rejected`、`orchestrator | user_agent | hermes`。~~
|
||||
- [x] ~~统一运行来源、权限级别、内容类型、运行状态和工具类型命名,避免出现第二套并行语义。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~`server/src/app/core/agent_enums.py` 已成为模型、Schema 和服务层的统一枚举入口。~~
|
||||
|
||||
## 2. 设计最小财务业务数据模型
|
||||
|
||||
- [x] ~~建立 `expense_claims`、`expense_claim_items`、`accounts_receivable`、`accounts_payable`。~~
|
||||
- [x] ~~字段覆盖时间、地点、理由、金额、员工、部门、状态,以及应收 / 应付的金额、到期日、账龄、风险标记。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~`server/src/app/models/financial_record.py` 与 `document/development/agent plan/14_financial_document_canonical_model.md` 形成直接映射。~~
|
||||
|
||||
## 3. 建立 AgentAsset 模型
|
||||
|
||||
- [x] ~~建立 `AgentAsset`,包含 `asset_type`、`code`、`name`、`description`、`domain`、`scenario_json`、`owner`、`reviewer`、`status`、`current_version`、`config_json` 等核心字段。~~
|
||||
- [x] ~~对 `code`、`asset_type`、`status`、`domain` 建立唯一约束或索引。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~资产列表可按 `rule`、`skill`、`mcp`、`task` 四类过滤返回。~~
|
||||
|
||||
## 4. 建立 AgentAssetVersion 模型
|
||||
|
||||
- [x] ~~建立 `AgentAssetVersion`,规则版本保存 Markdown,其余资产版本保存 JSON 快照。~~
|
||||
- [x] ~~对 `asset_id + version` 建立唯一约束,并支持按资产读取最近版本列表。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~规则详情接口可返回 `current_version_content` 和 `recent_versions`。~~
|
||||
|
||||
## 5. 建立 AgentAssetReview 模型
|
||||
|
||||
- [x] ~~建立 `AgentAssetReview`,保存版本、审核人、审核状态、审核备注和审核时间。~~
|
||||
- [x] ~~服务层实现规则版本未 `approved` 时禁止上线。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~`POST /api/v1/agent-assets/{asset_id}/activate` 对待审规则返回 400 拦截。~~
|
||||
|
||||
## 6. 建立 AgentRun 模型
|
||||
|
||||
- [x] ~~建立 `AgentRun`,包含 `run_id`、`agent`、`source`、`ontology_json`、`route_json`、`permission_level`、`status`、`result_summary`、`error_message` 等字段。~~
|
||||
- [x] ~~所有运行记录统一生成 `run_id`,并允许失败态保存错误信息。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~`AgentRunService.create_run()` 会自动生成 `run_` 前缀标识,并可回读失败摘要。~~
|
||||
|
||||
## 7. 建立 AgentToolCall 模型
|
||||
|
||||
- [x] ~~建立 `AgentToolCall`,可记录工具类型、工具名、请求 / 响应 JSON、耗时和错误信息。~~
|
||||
- [x] ~~同一个 `run_id` 下支持多次工具调用追踪。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~种子运行数据已覆盖数据库查询、MCP 调用和权限规则引擎调用。~~
|
||||
|
||||
## 8. 建立 SemanticParseLog 模型
|
||||
|
||||
- [x] ~~建立 `SemanticParseLog`,覆盖场景、意图、实体、时间范围、指标、约束、风险、权限和置信度。~~
|
||||
- [x] ~~支持按 `run_id` 回放 Day 3 语义结果。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~`GET /api/v1/agent-runs/{run_id}` 已能携带 `semantic_parse` 返回。~~
|
||||
|
||||
## 9. 建立 AuditLog 模型
|
||||
|
||||
- [x] ~~建立 `AuditLog` 和统一 `AuditLogService`。~~
|
||||
- [x] ~~资产创建、版本保存、审核、上线等写操作都会留下审计记录。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~`GET /api/v1/audit-logs` 可返回种子审计日志,服务层新建资产也会落审计。~~
|
||||
|
||||
## 10. 建立 Schema / DTO
|
||||
|
||||
- [x] ~~建立 `AgentAssetCreate / Update / Read / ListItem`、`AgentAssetVersionRead`、`AgentAssetReviewRead`、`RuleMarkdownUpdate`、`AgentRunRead`、`AgentToolCallRead`、`SemanticParseRead`。~~
|
||||
- [x] ~~所有 JSON 字段以结构化对象返回,不回传字符串化 JSON。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~列表 DTO 不返回大块 Markdown,详情 DTO 返回当前版本正文和最近版本。~~
|
||||
|
||||
## 11. 建立 API 骨架
|
||||
|
||||
- [x] ~~建立 `GET/POST/PATCH /api/v1/agent-assets`、`GET /api/v1/agent-assets/{asset_id}`、`GET/POST /api/v1/agent-assets/{asset_id}/versions`、`POST /api/v1/agent-assets/{asset_id}/reviews`、`POST /api/v1/agent-assets/{asset_id}/activate`。~~
|
||||
- [x] ~~建立 `GET /api/v1/agent-runs`、`GET /api/v1/agent-runs/{run_id}`、`GET /api/v1/audit-logs`。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~所有接口已挂到 `server/src/app/api/v1/router.py`,并通过 `create_app()` 自动暴露。~~
|
||||
|
||||
## 12. 建立种子数据
|
||||
|
||||
- [x] ~~种子资产补齐到 3 条规则、2 条技能、2 条 MCP、3 条任务。~~
|
||||
- [x] ~~三条规则都具备至少 2 个版本,并覆盖 `approved / pending / rejected` 三种审核样本。~~
|
||||
- [x] ~~旧开发数据库启动时会自动增量补齐新增资产和版本,不要求手动清库。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~Smoke:`GET /api/v1/agent-assets` 返回 10 条资产,`GET /api/v1/agent-runs` 返回 3 条运行日志,`GET /api/v1/audit-logs` 返回 4 条审计日志。~~
|
||||
|
||||
## 13. 最小测试
|
||||
|
||||
- [x] ~~新增 Day 1 服务层与接口层测试,覆盖种子完整性、版本历史、未审核不能上线、运行日志生成和审计日志写入。~~
|
||||
- [x] ~~Ruff 校验通过,Day 1 新增文件保持可检查状态。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~`/app/server/.venv/bin/pytest -q /app/server/tests/test_agent_asset_service.py /app/server/tests/test_agent_foundation_endpoints.py` -> `11 passed`。~~
|
||||
- [x] ~~`/app/server/.venv/bin/pytest -q tests` 已通过全量后端测试。~~
|
||||
|
||||
## 14. Day 1 验收
|
||||
|
||||
- [x] ~~数据库能创建所有新增表或等价结构。~~
|
||||
- [x] ~~API 服务能启动,OpenAPI 能看到新增接口。~~
|
||||
- [x] ~~资产列表接口返回规则、技能、MCP、任务;规则详情带 Markdown 当前版本和最近版本列表。~~
|
||||
- [x] ~~未审核规则不能上线;AgentRun 和 AuditLog 均可保存记录。~~
|
||||
- [x] ~~所有 Day 1 TODO 已改为完成态。~~
|
||||
|
||||
## 阻塞记录
|
||||
|
||||
- [x] ~~暂无阻塞。~~
|
||||
|
||||
## 日终交接
|
||||
|
||||
- [x] ~~已完成模型:资产、版本、审核、运行日志、工具调用、语义解析、审计、报销、应收、应付。~~
|
||||
- [x] ~~已完成 API:`/api/v1/agent-assets`、`/api/v1/agent-runs`、`/api/v1/audit-logs`。~~
|
||||
- [x] ~~Day 2 前端联调应优先使用 `GET /api/v1/agent-assets`、`GET /api/v1/agent-assets/{asset_id}`、`GET /api/v1/agent-assets/{asset_id}/versions?limit=5`、`POST /api/v1/agent-assets/{asset_id}/reviews`、`POST /api/v1/agent-assets/{asset_id}/activate`。~~
|
||||
- [x] ~~后续 Day 4 及以后运行时方向按用户要求转向 `LangChain + LangGraph`,Hermes 继续作为内部数字员工入口;Day 1 保留为数据与治理底座。~~
|
||||
|
||||
@@ -29,10 +29,6 @@
|
||||
- [x] ~~前端构建已通过。~~
|
||||
- [ ] 浏览器手动走查记录待补。
|
||||
|
||||
## 对应执行细则
|
||||
|
||||
- [Day 2 执行细则](<../agent plan/weekly_execution_details/day_2_rule_center_integration.md>)
|
||||
|
||||
相关架构文档:
|
||||
|
||||
- [能力注册](<../agent plan/07_capability_registry.md>)
|
||||
@@ -54,3 +50,247 @@
|
||||
- 不做完整 MCP 真实调用。
|
||||
- 不做复杂权限矩阵。
|
||||
- 不重做 UI 风格,只在现有风格上微调。
|
||||
|
||||
## 详细执行清单
|
||||
|
||||
以下内容为合并后的详细执行清单。
|
||||
|
||||
## 0. 开始前检查
|
||||
|
||||
- [x] ~~确认 Day 1 API 已可访问。~~
|
||||
- [x] ~~确认前端任务规则中心文件位置。~~
|
||||
- [x] ~~确认现有路由名称和导航名称。~~
|
||||
- [x] ~~确认现有 UI 风格,不重新做大改版。~~
|
||||
- [x] ~~确认当前页面已有页签:规则、技能、MCP、任务。~~
|
||||
- [x] ~~确认详情页隐藏顶部 title bar 的逻辑仍然有效。~~
|
||||
- [x] ~~确认返回列表栏高度没有被重新拉高。~~
|
||||
|
||||
## 1. API Client
|
||||
|
||||
- [x] ~~新增或扩展资产列表请求函数。~~
|
||||
- [x] ~~新增资产详情请求函数。~~
|
||||
- [x] ~~新增版本列表请求函数。~~
|
||||
- [x] ~~新增规则 Markdown 保存请求函数。~~
|
||||
- [x] ~~新增审核请求函数。~~
|
||||
- [x] ~~新增上线请求函数。~~
|
||||
- [x] ~~新增运行日志请求函数。~~
|
||||
- [x] ~~给所有请求增加加载态。~~
|
||||
- [x] ~~给所有请求增加错误态。~~
|
||||
- [x] ~~给所有写请求增加成功提示。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~前端不再只依赖本地硬编码资产数据。~~
|
||||
- [x] ~~后端不可用时页面有明确错误提示。~~
|
||||
|
||||
## 2. 列表页数据接入
|
||||
|
||||
- [x] ~~规则页签请求 `asset_type=rule`。~~
|
||||
- [x] ~~技能页签请求 `asset_type=skill`。~~
|
||||
- [x] ~~MCP 页签请求 `asset_type=mcp`。~~
|
||||
- [x] ~~任务页签请求 `asset_type=task`。~~
|
||||
- [x] ~~搜索框传递关键词或本地过滤。~~
|
||||
- [x] ~~类型下拉和搜索框可以同时生效。~~
|
||||
- [x] ~~状态筛选可以过滤 `draft | review | active | disabled`。~~
|
||||
- [x] ~~列表卡片展示名称。~~
|
||||
- [x] ~~列表卡片展示摘要。~~
|
||||
- [x] ~~列表卡片展示状态。~~
|
||||
- [x] ~~列表卡片展示负责人。~~
|
||||
- [x] ~~列表卡片展示最近更新时间。~~
|
||||
- [x] ~~空数据时展示空态。~~
|
||||
- [x] ~~加载中时展示骨架或加载状态。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~四个页签都能切换。~~
|
||||
- [x] ~~四个页签都有数据或空态。~~
|
||||
- [x] ~~搜索和筛选不会互相覆盖。~~
|
||||
|
||||
## 3. 规则详情页主信息
|
||||
|
||||
- [x] ~~打开规则资产时请求详情 API。~~
|
||||
- [x] ~~Hero title 展示规则名称。~~
|
||||
- [x] ~~Hero title 下方展示审核者。~~
|
||||
- [x] ~~Hero title 下方展示审核状态。~~
|
||||
- [x] ~~Hero title 下方展示上线条件。~~
|
||||
- [x] ~~Hero title 高度保持紧凑。~~
|
||||
- [x] ~~详情页不显示外层顶部 title bar。~~
|
||||
- [x] ~~返回列表栏高度保持原有紧凑高度。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~用户能一眼看到该规则是否已审核。~~
|
||||
- [x] ~~用户不会看到两层 title。~~
|
||||
|
||||
## 4. Markdown 编辑器
|
||||
|
||||
- [x] ~~从当前版本读取 Markdown 内容。~~
|
||||
- [x] ~~Markdown 编辑框高度和右侧版本卡片底部对齐。~~
|
||||
- [x] ~~Markdown 编辑框支持长内容滚动。~~
|
||||
- [x] ~~Markdown 编辑框保存时调用 API。~~
|
||||
- [x] ~~保存后创建新版本或更新草稿版本,按后端约定执行。~~
|
||||
- [x] ~~保存成功后刷新版本列表。~~
|
||||
- [x] ~~保存失败时保留用户输入。~~
|
||||
- [x] ~~编辑器禁用态覆盖 `active` 且无编辑权限的情况。~~
|
||||
- [x] ~~编辑器底部展示最后保存时间。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~编辑 Markdown 后刷新页面内容仍存在。~~
|
||||
- [x] ~~保存失败不会丢内容。~~
|
||||
- [x] ~~左右卡片底部视觉对齐。~~
|
||||
|
||||
## 5. 版本卡片
|
||||
|
||||
- [x] ~~右侧只保留版本信息卡片。~~
|
||||
- [x] ~~版本卡片宽度足够展示版本号、日期、状态。~~
|
||||
- [x] ~~展示最近 5 个版本。~~
|
||||
- [x] ~~当前版本有明显但不突兀的标识。~~
|
||||
- [x] ~~当前版本标识居中显示。~~
|
||||
- [x] ~~选中状态只变色,不改变内容对齐。~~
|
||||
- [x] ~~日期列和其他版本日期对齐。~~
|
||||
- [x] ~~点击非当前版本时弹出确认弹窗。~~
|
||||
- [x] ~~弹窗展示目标版本号。~~
|
||||
- [x] ~~弹窗展示切换风险提示。~~
|
||||
- [x] ~~确认后切换当前展示内容。~~
|
||||
- [x] ~~取消后不改变当前版本。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~版本切换不会造成列表文字位移。~~
|
||||
- [x] ~~当前版本背景能完全覆盖内容区域。~~
|
||||
- [x] ~~版本卡片不贴右侧边界。~~
|
||||
|
||||
## 6. 审核与上线
|
||||
|
||||
- [x] ~~详情中展示审核者姓名。~~
|
||||
- [x] ~~详情中展示审核时间。~~
|
||||
- [x] ~~详情中展示审核意见。~~
|
||||
- [x] ~~未审核规则显示不能上线原因。~~
|
||||
- [x] ~~点击上线时调用后端上线接口。~~
|
||||
- [x] ~~后端拒绝时展示拒绝原因。~~
|
||||
- [x] ~~审核通过后上线按钮可用。~~
|
||||
- [x] ~~审核动作写入审计日志。~~
|
||||
- [x] ~~上线动作写入审计日志。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~pending 规则无法上线。~~
|
||||
- [x] ~~approved 规则可以上线。~~
|
||||
- [x] ~~rejected 规则无法上线。~~
|
||||
|
||||
## 7. 技能详情
|
||||
|
||||
- [x] ~~技能页签列表展示能力名称。~~
|
||||
- [x] ~~技能详情展示能力说明。~~
|
||||
- [x] ~~技能详情展示输入参数。~~
|
||||
- [x] ~~技能详情展示输出参数。~~
|
||||
- [x] ~~技能详情展示依赖能力。~~
|
||||
- [x] ~~技能详情展示适用场景。~~
|
||||
- [x] ~~技能详情展示负责人。~~
|
||||
- [x] ~~技能详情展示版本。~~
|
||||
- [x] ~~技能详情不使用规则 Markdown 编辑器。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~技能和规则详情不会混用 UI。~~
|
||||
|
||||
## 8. MCP 详情
|
||||
|
||||
- [x] ~~MCP 页签列表展示外部服务名称。~~
|
||||
- [x] ~~MCP 详情展示服务类型。~~
|
||||
- [x] ~~MCP 详情展示调用地址或能力名。~~
|
||||
- [x] ~~MCP 详情展示鉴权方式。~~
|
||||
- [x] ~~MCP 详情展示超时配置。~~
|
||||
- [x] ~~MCP 详情展示降级策略。~~
|
||||
- [x] ~~MCP 详情展示最近调用状态。~~
|
||||
- [x] ~~MCP 详情展示负责人。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~MCP 被定义为外部服务,而不是技能规则。~~
|
||||
|
||||
## 9. 任务详情
|
||||
|
||||
- [x] ~~任务页签展示定时任务名称。~~
|
||||
- [x] ~~任务详情展示 cron 或调度周期。~~
|
||||
- [x] ~~任务详情展示执行 Agent,默认 Hermes。~~
|
||||
- [x] ~~任务详情展示任务目标。~~
|
||||
- [x] ~~任务详情展示风险等级。~~
|
||||
- [x] ~~任务详情展示最近执行时间。~~
|
||||
- [x] ~~任务详情展示最近执行结果。~~
|
||||
- [x] ~~任务详情展示启停状态。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~定时任务用户可见名称为“任务”。~~
|
||||
- [x] ~~技术字段可保留 `schedule`,但 UI 不显示“定时任务”。~~
|
||||
|
||||
## 10. 前端质量
|
||||
|
||||
- [x] ~~页面在 1366 宽度下无横向滚动。~~
|
||||
- [x] ~~页面在 1920 宽度下右侧卡片不过宽。~~
|
||||
- [x] ~~页面在窄屏下详情区域可滚动。~~
|
||||
- [x] ~~所有按钮有禁用态。~~
|
||||
- [x] ~~所有弹窗有取消按钮。~~
|
||||
- [x] ~~所有表单错误有提示。~~
|
||||
- [x] ~~所有日期格式统一。~~
|
||||
- [x] ~~状态颜色和现有系统一致。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~`npm run build` 通过。~~
|
||||
- [ ] 任务规则中心手动走查通过。
|
||||
|
||||
## 11. Day 2 验收
|
||||
|
||||
- [x] ~~规则、技能、MCP、任务四个页签可用。~~
|
||||
- [x] ~~搜索框和筛选下拉可用。~~
|
||||
- [x] ~~规则详情展示 Markdown。~~
|
||||
- [x] ~~规则 Markdown 可保存。~~
|
||||
- [x] ~~右侧只保留版本信息。~~
|
||||
- [x] ~~版本可切换且有弹窗确认。~~
|
||||
- [x] ~~审核者信息在标题下方。~~
|
||||
- [x] ~~未审核规则不能上线。~~
|
||||
- [x] ~~前端构建通过。~~
|
||||
- [x] ~~所有完成项已按完成态标记。~~
|
||||
|
||||
## 阻塞记录
|
||||
|
||||
- [x] ~~暂无。~~
|
||||
|
||||
## 日终交接
|
||||
|
||||
- [x] ~~写明已接入的 API。~~
|
||||
- [x] ~~写明仍然使用 Mock 的字段。~~
|
||||
- [x] ~~写明 UI 未完成项。~~
|
||||
- [x] ~~写明 Day 3 语义本体需要复用的资产数据。~~
|
||||
|
||||
已接入的 API:
|
||||
|
||||
- `GET /api/v1/agent-assets?asset_type=rule|skill|mcp|task`
|
||||
- `GET /api/v1/agent-assets/{asset_id}`
|
||||
- `GET /api/v1/agent-assets/{asset_id}/versions`
|
||||
- `POST /api/v1/agent-assets/{asset_id}/versions`
|
||||
- `POST /api/v1/agent-assets/{asset_id}/reviews`
|
||||
- `POST /api/v1/agent-assets/{asset_id}/activate`
|
||||
- `GET /api/v1/agent-runs`
|
||||
|
||||
仍然使用 Mock / 种子数据的字段:
|
||||
|
||||
- MCP 服务地址仍是 `mock://...` 种子地址,用于占位联调。
|
||||
- MCP 最近调用状态、任务最近执行结果来自 Day 1 注入的 `AgentRun` 种子数据。
|
||||
- 技能、MCP、任务详情仍以只读方式展示,未开放编辑表单。
|
||||
|
||||
UI 未完成项:
|
||||
|
||||
- 未做浏览器内人工走查记录,当前仅完成构建验证与代码层联调。
|
||||
- 技能、MCP、任务的编辑能力仍留待后续 Day 3 / Day 4 之后按权限开放。
|
||||
|
||||
Day 3 语义本体需要复用的资产数据:
|
||||
|
||||
- 资产主键与编码:`id`、`code`、`asset_type`
|
||||
- 业务归类:`domain`、`scenario_json`
|
||||
- 当前生效版本:`current_version`、`current_version_content`、`current_version_content_type`
|
||||
- 治理状态:`status`、`latest_review`、`recent_versions`
|
||||
- 运行关联:`config_json.agent`、`config_json.cron`、`AgentRun.task_id`、`tool_calls`
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
## 今天的大开发点
|
||||
|
||||
建立用户问题的语义解析层,把自然语言问题转换成统一的 8 个核心字段。
|
||||
建立模型优先的语义解析层,把自然语言问题转换成统一的 8 个核心字段。
|
||||
|
||||
这一天的目标不是做到 LLM 全能理解,而是先让报销、应收、应付、知识和风险相关问题能进入稳定结构。
|
||||
这一天的目标不是继续堆关键词,而是先把真实模型接入语义层,让报销、应收、应付、知识和风险相关问题进入稳定结构,再由规则做兜底和校验。
|
||||
|
||||
## 为什么第三天做这个
|
||||
|
||||
@@ -19,12 +19,19 @@ Orchestrator 不能直接根据原始文本做可靠路由。它需要先拿到
|
||||
- 时间范围解析。
|
||||
- 指标和约束解析。
|
||||
- 风险信号和权限级别判断。
|
||||
- LLM 结构化解析 Prompt。
|
||||
- Schema 校验与 JSON 清洗。
|
||||
- 规则回退解析。
|
||||
- 低置信度追问和缺槽位追问。
|
||||
- 语义解析 API。
|
||||
- 解析日志和最小评测集。
|
||||
|
||||
## 对应执行细则
|
||||
## 当前完成情况
|
||||
|
||||
- [Day 3 执行细则](<../agent plan/weekly_execution_details/day_3_semantic_ontology_mvp.md>)
|
||||
- [x] ~~`/api/v1/ontology/parse` 已上线,8 字段语义结构、缺槽位、歧义、权限和澄清问题均可返回。~~
|
||||
- [x] ~~语义层已切到“模型优先 + 规则回退”,并把结果写入 `AgentRun` / `SemanticParseLog`。~~
|
||||
- [x] ~~前端调试入口与核心评测测试已完成并通过。~~
|
||||
- [ ] 叙述型报销样本和模糊短句追问样本仍需继续扩充。
|
||||
|
||||
相关架构文档:
|
||||
|
||||
@@ -35,13 +42,256 @@ Orchestrator 不能直接根据原始文本做可靠路由。它需要先拿到
|
||||
## 当天验收门槛
|
||||
|
||||
- 输入自然语言问题能返回 8 个字段。
|
||||
- 模型解析失败时能自动回退到规则解析。
|
||||
- 低置信度问题能返回澄清问题。
|
||||
- 越权动作不会被标记为可直接执行。
|
||||
- 解析结果能写入日志。
|
||||
- 至少覆盖报销、应收、应付三个场景。
|
||||
- 叙述型报销输入不会被错误路由到应收或应付。
|
||||
|
||||
## 今天不做
|
||||
|
||||
- 不做复杂多轮对话记忆。
|
||||
- 不做完整 LLM 提示词优化。
|
||||
- 不做完整 Agent 自主规划。
|
||||
- 不做自动执行业务流程。
|
||||
|
||||
## 详细执行清单
|
||||
|
||||
以下内容为合并后的详细执行清单。
|
||||
|
||||
## 0. 开始前检查
|
||||
|
||||
- [x] ~~确认 Day 1 的 `SemanticParseLog` 可用。~~
|
||||
- [x] ~~确认 Day 1 的 `AgentRun` 可用。~~
|
||||
- [x] ~~确认 Day 2 的资产 API 可用。~~
|
||||
- [x] ~~找到后端服务层目录。~~
|
||||
- [x] ~~找到现有 LLM 调用或 Mock 调用方式。~~
|
||||
- [x] ~~确认当前是否允许真实调用 LLM。~~
|
||||
- [x] ~~确认当前运行时模型槽位可用于语义解析。~~
|
||||
- [x] ~~如果真实模型不可用,已准备规则解析回退路径。~~
|
||||
|
||||
## 1. 定义 8 个核心字段
|
||||
|
||||
- [x] ~~定义字段 `scenario`,表示业务场景。~~
|
||||
- [x] ~~定义字段 `intent`,表示用户意图。~~
|
||||
- [x] ~~定义字段 `entities`,表示业务对象。~~
|
||||
- [x] ~~定义字段 `time_range`,表示时间范围。~~
|
||||
- [x] ~~定义字段 `metrics`,表示指标或金额口径。~~
|
||||
- [x] ~~定义字段 `constraints`,表示过滤条件。~~
|
||||
- [x] ~~定义字段 `risk_flags`,表示风险信号。~~
|
||||
- [x] ~~定义字段 `permission`,表示动作权限。~~
|
||||
- [x] ~~为每个字段写清楚类型。~~
|
||||
- [x] ~~为每个字段写清楚是否必填。~~
|
||||
- [x] ~~为每个字段写清楚默认值。~~
|
||||
- [x] ~~为每个字段写清楚示例。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~8 个字段在 Schema、服务层、日志中名字一致。~~
|
||||
|
||||
## 2. 设计字段枚举
|
||||
|
||||
- [x] ~~`scenario` 支持 `expense`。~~
|
||||
- [x] ~~`scenario` 支持 `accounts_receivable`。~~
|
||||
- [x] ~~`scenario` 支持 `accounts_payable`。~~
|
||||
- [x] ~~`scenario` 支持 `knowledge`。~~
|
||||
- [x] ~~`scenario` 支持 `unknown`。~~
|
||||
- [x] ~~`intent` 支持 `query`。~~
|
||||
- [x] ~~`intent` 支持 `explain`。~~
|
||||
- [x] ~~`intent` 支持 `compare`。~~
|
||||
- [x] ~~`intent` 支持 `risk_check`。~~
|
||||
- [x] ~~`intent` 支持 `draft`。~~
|
||||
- [x] ~~`intent` 支持 `operate`。~~
|
||||
- [x] ~~`permission.level` 支持 `read`。~~
|
||||
- [x] ~~`permission.level` 支持 `draft_write`。~~
|
||||
- [x] ~~`permission.level` 支持 `approval_required`。~~
|
||||
- [x] ~~`permission.level` 支持 `forbidden`。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~未识别的问题不会抛异常,返回 `unknown`。~~
|
||||
|
||||
## 3. 建立 Schema
|
||||
|
||||
- [x] ~~定义 `OntologyParseRequest`。~~
|
||||
- [x] ~~`OntologyParseRequest` 包含 `query`。~~
|
||||
- [x] ~~`OntologyParseRequest` 包含 `user_id`。~~
|
||||
- [x] ~~`OntologyParseRequest` 包含 `context_json`。~~
|
||||
- [x] ~~定义 `OntologyParseResult`。~~
|
||||
- [x] ~~`OntologyParseResult` 包含 8 个核心字段。~~
|
||||
- [x] ~~`OntologyParseResult` 包含 `confidence`。~~
|
||||
- [x] ~~`OntologyParseResult` 包含 `clarification_required`。~~
|
||||
- [x] ~~`OntologyParseResult` 包含 `clarification_question`。~~
|
||||
- [x] ~~`OntologyParseResult` 包含 `run_id`。~~
|
||||
- [x] ~~定义字段级错误结构。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~OpenAPI 中可以看到语义解析请求和响应。~~
|
||||
|
||||
## 4. 实现解析服务
|
||||
|
||||
- [x] ~~新增 `SemanticOntologyService` 或同等服务。~~
|
||||
- [x] ~~实现 `parse(query, user_context)` 主函数。~~
|
||||
- [x] ~~增加上下文装配层,输入文本、页面上下文、附件摘要和预抽取字段。~~
|
||||
- [x] ~~实现模型优先的结构化语义解析。~~
|
||||
- [x] ~~约束模型只输出 JSON。~~
|
||||
- [x] ~~对模型输出做清洗、提取和 Schema 校验。~~
|
||||
- [x] ~~模型失败时自动回退到规则解析。~~
|
||||
- [x] ~~在结果中记录本次使用了 `llm_primary` 还是 `rule_fallback`。~~
|
||||
- [x] ~~报销关键词映射到 `expense`。~~
|
||||
- [x] ~~应收、回款、客户欠款映射到 `accounts_receivable`。~~
|
||||
- [x] ~~应付、供应商、付款映射到 `accounts_payable`。~~
|
||||
- [x] ~~风险、异常、重复、超标映射到 `risk_check`。~~
|
||||
- [x] ~~为什么、依据、规则映射到 `explain`。~~
|
||||
- [x] ~~统计、汇总、多少映射到 `query`。~~
|
||||
- [x] ~~生成、创建、发起映射到 `draft` 或 `operate`。~~
|
||||
- [x] ~~无法识别时返回低置信度和澄清问题。~~
|
||||
- [x] ~~叙述型报销输入优先识别为创建/草稿,而不是查询。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~“查一下本周报销超标风险”能识别为 expense + risk_check。~~
|
||||
- [x] ~~“客户 A 这个月还有多少应收”能识别为 accounts_receivable + query。~~
|
||||
- [x] ~~“供应商 B 明天要付多少钱”能识别为 accounts_payable + query。~~
|
||||
- [x] ~~“我今天去客户现场,招待了客户,花销了1000元”不会错误识别为应收查询。~~
|
||||
|
||||
## 5. 解析业务对象
|
||||
|
||||
- [x] ~~从问题中提取员工姓名。~~
|
||||
- [x] ~~从问题中提取部门。~~
|
||||
- [x] ~~从问题中提取客户。~~
|
||||
- [x] ~~从问题中提取供应商。~~
|
||||
- [x] ~~从问题中提取项目。~~
|
||||
- [x] ~~从问题中提取单据号。~~
|
||||
- [x] ~~从问题中提取金额。~~
|
||||
- [x] ~~从问题中提取费用类型。~~
|
||||
- [x] ~~无法提取时返回空数组,不返回 null。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~“张三 4 月差旅报销”能提取员工、月份、费用类型。~~
|
||||
|
||||
## 6. 解析时间范围
|
||||
|
||||
- [x] ~~支持今天。~~
|
||||
- [x] ~~支持昨天。~~
|
||||
- [x] ~~支持本周。~~
|
||||
- [x] ~~支持上周。~~
|
||||
- [x] ~~支持本月。~~
|
||||
- [x] ~~支持上月。~~
|
||||
- [x] ~~支持本季度。~~
|
||||
- [x] ~~支持今年。~~
|
||||
- [x] ~~支持明确日期。~~
|
||||
- [x] ~~支持日期区间。~~
|
||||
- [x] ~~解析结果包含 `start_date` 和 `end_date`。~~
|
||||
- [x] ~~日期使用 ISO 格式。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~“本周”能解析为当前周起止日期。~~
|
||||
- [x] ~~“2026 年 4 月”能解析为 `2026-04-01` 到 `2026-04-30`。~~
|
||||
|
||||
## 7. 解析指标与约束
|
||||
|
||||
- [x] ~~识别金额指标。~~
|
||||
- [x] ~~识别数量指标。~~
|
||||
- [x] ~~识别超标指标。~~
|
||||
- [x] ~~识别逾期指标。~~
|
||||
- [x] ~~识别重复报销指标。~~
|
||||
- [x] ~~识别部门过滤条件。~~
|
||||
- [x] ~~识别状态过滤条件。~~
|
||||
- [x] ~~识别金额阈值过滤条件。~~
|
||||
- [x] ~~识别排序要求。~~
|
||||
- [x] ~~识别 Top N 要求。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~“列出金额最高的 10 笔报销”能识别排序和 Top 10。~~
|
||||
|
||||
## 8. 解析风险与权限
|
||||
|
||||
- [x] ~~重复报销映射到 `duplicate_expense`。~~
|
||||
- [x] ~~发票异常映射到 `invoice_anomaly`。~~
|
||||
- [x] ~~金额超标映射到 `amount_over_limit`。~~
|
||||
- [x] ~~逾期应收映射到 `ar_overdue`。~~
|
||||
- [x] ~~逾期应付映射到 `ap_overdue`。~~
|
||||
- [x] ~~查询类问题权限为 `read`。~~
|
||||
- [x] ~~生成草稿权限为 `draft_write`。~~
|
||||
- [x] ~~审批、上线、付款类动作权限为 `approval_required`。~~
|
||||
- [x] ~~越权动作权限为 `forbidden`。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~“帮我直接付款”不能被标为可直接执行。~~
|
||||
|
||||
## 9. API 接口
|
||||
|
||||
- [x] ~~新增 `POST /api/v1/ontology/parse`。~~
|
||||
- [x] ~~请求参数包含用户问题。~~
|
||||
- [x] ~~请求参数包含用户上下文。~~
|
||||
- [x] ~~响应包含 8 个字段。~~
|
||||
- [x] ~~响应包含 `run_id`。~~
|
||||
- [x] ~~响应包含置信度。~~
|
||||
- [x] ~~响应包含澄清问题。~~
|
||||
- [x] ~~每次调用写入 `SemanticParseLog`。~~
|
||||
- [x] ~~每次调用写入 `AgentRun` 或关联已有 `AgentRun`。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~连续调用多次都能在日志中查到。~~
|
||||
|
||||
## 10. 前端调试入口
|
||||
|
||||
- [x] ~~在合适页面增加语义解析调试入口。~~
|
||||
- [x] ~~输入框支持自然语言问题。~~
|
||||
- [x] ~~点击解析后调用 API。~~
|
||||
- [x] ~~展示 8 个字段。~~
|
||||
- [x] ~~展示 JSON 原始结果。~~
|
||||
- [x] ~~展示置信度。~~
|
||||
- [x] ~~展示澄清问题。~~
|
||||
- [x] ~~展示 `run_id`。~~
|
||||
- [x] ~~错误时展示错误信息。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~产品和开发可以直接在页面验证解析结果。~~
|
||||
|
||||
## 11. 评测集
|
||||
|
||||
- [x] ~~创建至少 5 条报销问题。~~
|
||||
- [ ] 创建至少 5 条叙述型报销问题。
|
||||
- [x] ~~创建至少 5 条应收问题。~~
|
||||
- [x] ~~创建至少 5 条应付问题。~~
|
||||
- [x] ~~创建至少 3 条知识库问题。~~
|
||||
- [x] ~~创建至少 3 条越权操作问题。~~
|
||||
- [ ] 创建至少 3 条模糊短句追问问题。
|
||||
- [x] ~~为每条问题写期望 `scenario`。~~
|
||||
- [x] ~~为每条问题写期望 `intent`。~~
|
||||
- [x] ~~为每条问题写期望权限级别。~~
|
||||
- [x] ~~编写评测脚本或测试。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~当前评测样本集已通过,覆盖样本准确率达到当天设定阈值。~~
|
||||
|
||||
## 12. Day 3 验收
|
||||
|
||||
- [x] ~~语义解析 API 可用。~~
|
||||
- [x] ~~8 个核心字段完整返回。~~
|
||||
- [x] ~~解析日志可查询。~~
|
||||
- [x] ~~低置信度问题有澄清问题。~~
|
||||
- [x] ~~越权动作不会被标为可执行。~~
|
||||
- [x] ~~前端调试入口可用。~~
|
||||
- [x] ~~评测集可运行。~~
|
||||
- [x] ~~所有完成项已用 `[x] ~~...~~` 标记。~~
|
||||
|
||||
## 阻塞记录
|
||||
|
||||
- [x] ~~暂无。~~
|
||||
|
||||
## 日终交接
|
||||
|
||||
- [x] ~~已支持报销 / 应收 / 应付 / 知识 / 风险 / 草稿 / 越权动作等核心场景关键词、实体与权限解析。~~
|
||||
- [x] ~~当前仍需继续扩充的弱样本主要是叙述型报销长句和模糊短句追问。~~
|
||||
- [x] ~~Day 4 可直接复用 `scenario / intent / entities / time_range / metrics / constraints / risk_flags / permission / confidence / missing_slots / ambiguity / parse_strategy / clarification_required / clarification_question / run_id`。~~
|
||||
|
||||
@@ -14,15 +14,18 @@
|
||||
- 用户请求路由到 User Agent。
|
||||
- 定时任务路由到 Hermes。
|
||||
- 权限级别判断。
|
||||
- 语义补槽完成后的报销草稿创建、草稿更新、提交动作路由。
|
||||
- 高风险动作确认机制。
|
||||
- 能力注册查询。
|
||||
- 工具调用封装。
|
||||
- AgentRun Trace 查询。
|
||||
- 失败降级返回。
|
||||
|
||||
## 对应执行细则
|
||||
## 当前完成情况
|
||||
|
||||
- [Day 4 执行细则](<../agent plan/weekly_execution_details/day_4_orchestrator_runtime.md>)
|
||||
- [x] ~~`/api/v1/orchestrator/run`、统一路由、权限阻断、ToolCall 记录、Trace 和降级结果已经可用。~~
|
||||
- [x] ~~用户消息已能路由到 User Agent,占位 Hermes 任务也能由定时入口触发。~~
|
||||
- [ ] 真实 `expense_claims` 建单 / 改单 / 提交链路尚未接通,当前草稿路径仍是占位执行。
|
||||
|
||||
相关架构文档:
|
||||
|
||||
@@ -39,9 +42,197 @@
|
||||
- forbidden 请求不会调用下游 Agent。
|
||||
- 每次运行都有 `run_id` 和 Trace。
|
||||
- 工具调用失败能记录并返回降级结果。
|
||||
- 叙述型报销输入在满足最小槽位后能进入建单或改单流程。
|
||||
|
||||
## 今天不做
|
||||
|
||||
- 不做复杂任务编排 DAG。
|
||||
- 不做多 Agent 协商。
|
||||
- 不做自动高风险动作。
|
||||
|
||||
## 详细执行清单
|
||||
|
||||
以下内容为合并后的详细执行清单。
|
||||
|
||||
## 0. 开始前检查
|
||||
|
||||
- [x] ~~确认 Day 3 `POST /api/v1/ontology/parse` 可用。~~
|
||||
- [x] ~~确认 `AgentRun` 可创建。~~
|
||||
- [x] ~~确认 `AgentToolCall` 可创建。~~
|
||||
- [x] ~~确认资产列表能查询技能、MCP、任务。~~
|
||||
- [x] ~~确认权限级别枚举已稳定。~~
|
||||
- [x] ~~找到后端服务层适合放 Orchestrator 的位置。~~
|
||||
|
||||
## 1. Orchestrator 输入输出
|
||||
|
||||
- [x] ~~定义 `OrchestratorRequest`。~~
|
||||
- [x] ~~请求包含 `source`。~~
|
||||
- [x] ~~请求包含 `user_id`。~~
|
||||
- [x] ~~请求包含 `message`。~~
|
||||
- [x] ~~请求包含 `task_id`。~~
|
||||
- [x] ~~请求包含 `context_json`。~~
|
||||
- [x] ~~定义 `OrchestratorResponse`。~~
|
||||
- [x] ~~响应包含 `run_id`。~~
|
||||
- [x] ~~响应包含 `selected_agent`。~~
|
||||
- [x] ~~响应包含 `route_reason`。~~
|
||||
- [x] ~~响应包含 `permission_level`。~~
|
||||
- [x] ~~响应包含 `status`。~~
|
||||
- [x] ~~响应包含 `result`。~~
|
||||
- [x] ~~响应包含 `requires_confirmation`。~~
|
||||
- [x] ~~响应包含 `trace_summary`。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~Orchestrator 响应能直接被前端展示。~~
|
||||
|
||||
## 2. 建立 Orchestrator 服务
|
||||
|
||||
- [x] ~~新增 `OrchestratorService`。~~
|
||||
- [x] ~~实现 `run(request)` 主入口。~~
|
||||
- [x] ~~主入口第一步创建 `AgentRun`。~~
|
||||
- [x] ~~主入口第二步调用语义解析。~~
|
||||
- [x] ~~主入口第三步执行权限判断。~~
|
||||
- [x] ~~主入口第四步选择 Agent。~~
|
||||
- [x] ~~主入口第五步调用目标 Agent 或返回阻断结果。~~
|
||||
- [x] ~~主入口第六步更新 `AgentRun` 状态。~~
|
||||
- [x] ~~所有异常都写入 `AgentRun.error_message`。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~正常请求状态为 `succeeded`。~~
|
||||
- [x] ~~被权限拦截请求状态为 `blocked`。~~
|
||||
- [x] ~~异常请求状态为 `failed`。~~
|
||||
|
||||
## 3. 路由规则
|
||||
|
||||
- [x] ~~`source=user_message` 默认路由到 User Agent。~~
|
||||
- [x] ~~`source=schedule` 默认路由到 Hermes。~~
|
||||
- [x] ~~`intent=risk_check` 且来源为 schedule 时路由到 Hermes。~~
|
||||
- [x] ~~`intent=query` 且来源为 user_message 时路由到 User Agent。~~
|
||||
- [x] ~~`intent=explain` 路由到 User Agent。~~
|
||||
- [x] ~~`intent=draft` 路由到 User Agent,但当前只返回草稿占位结果。~~
|
||||
- [ ] `scenario=expense` 且最小建单槽位完整时,允许进入 `create_expense_claim_draft`。
|
||||
- [ ] `scenario=expense` 且已有 `claim_id` 时,允许进入 `update_expense_claim_draft`。
|
||||
- [ ] `scenario=expense` 且用户明确确认提交时,允许进入 `submit_expense_claim`。
|
||||
- [x] ~~`permission.level=approval_required` 时设置 `requires_confirmation=true`。~~
|
||||
- [x] ~~`permission.level=forbidden` 时不调用下游 Agent。~~
|
||||
- [x] ~~无法识别或信息不足时返回澄清问题。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~同一句风险检查,在用户入口和任务入口有不同路由结果。~~
|
||||
|
||||
## 4. 权限判断
|
||||
|
||||
- [x] ~~新增权限判断服务或函数。~~
|
||||
- [x] ~~查询类请求返回 `read`。~~
|
||||
- [x] ~~草稿类请求返回 `draft_write`。~~
|
||||
- [ ] 报销草稿创建、字段补全、附件挂接返回 `draft_write`。
|
||||
- [ ] 报销单提交返回 `approval_required`,并要求显式用户确认。
|
||||
- [ ] 审批、上线、付款类请求返回 `approval_required`。
|
||||
- [x] ~~用户无权限时返回 `forbidden`。~~
|
||||
- [x] ~~高风险动作不允许自动执行。~~
|
||||
- [x] ~~需要确认的动作返回确认提示。~~
|
||||
- [x] ~~权限判断结果写入 `AgentRun.permission_level`。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~“直接上线规则”不会被自动执行。~~
|
||||
- [x] ~~“直接付款”不会被自动执行。~~
|
||||
|
||||
## 5. 能力注册查询
|
||||
|
||||
- [x] ~~从 `AgentAsset` 查询 active 技能。~~
|
||||
- [x] ~~从 `AgentAsset` 查询 active MCP。~~
|
||||
- [x] ~~从 `AgentAsset` 查询 active 任务。~~
|
||||
- [ ] 查询可用的报销单写入服务和附件挂接服务。
|
||||
- [x] ~~过滤 disabled 能力。~~
|
||||
- [x] ~~过滤未审核 active 条件不满足的规则。~~
|
||||
- [x] ~~为每次能力选择记录 `route_json`。~~
|
||||
- [x] ~~找不到能力时返回降级说明。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~禁用 MCP 不会被 Orchestrator 调用。~~
|
||||
|
||||
## 6. 工具调用封装
|
||||
|
||||
- [x] ~~定义统一工具调用接口。~~
|
||||
- [ ] 工具请求前写入 `AgentToolCall` running 或准备记录。
|
||||
- [x] ~~工具成功后写入响应和耗时。~~
|
||||
- [x] ~~工具失败后写入错误。~~
|
||||
- [ ] 报销草稿创建、更新、提交也按工具调用或等价服务调用记录。
|
||||
- [x] ~~外部 MCP 调用失败时返回降级结果。~~
|
||||
- [x] ~~数据库查询失败时返回明确错误。~~
|
||||
- [x] ~~LLM 调用失败时返回可读提示。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~每次 Orchestrator 运行至少可以看到 0 到多条工具调用记录。~~
|
||||
|
||||
## 7. API 接口
|
||||
|
||||
- [x] ~~新增 `POST /api/v1/orchestrator/run`。~~
|
||||
- [x] ~~请求支持用户消息。~~
|
||||
- [x] ~~请求支持任务触发。~~
|
||||
- [x] ~~响应返回 `run_id`。~~
|
||||
- [x] ~~响应返回路由结果。~~
|
||||
- [x] ~~响应返回权限结果。~~
|
||||
- [x] ~~复用 `GET /api/v1/agent-runs/{run_id}` 查看 Trace。~~
|
||||
- [x] ~~Trace 接口返回语义解析、路由、工具调用、最终结果。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~前端或 curl 可以完整看到一次运行链路。~~
|
||||
|
||||
## 8. 前端最小 Trace 查看
|
||||
|
||||
- [ ] 在合适位置展示最近运行记录。
|
||||
- [x] ~~点击当前对话结果可查看 `run_id`。~~
|
||||
- [x] ~~展示 selected_agent。~~
|
||||
- [x] ~~展示 route_reason。~~
|
||||
- [x] ~~展示 permission_level。~~
|
||||
- [ ] 展示工具调用列表。
|
||||
- [x] ~~展示错误信息。~~
|
||||
- [ ] 展示耗时。
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~开发调试时不需要直接查数据库才能理解主要路由结果。~~
|
||||
|
||||
## 9. 测试
|
||||
|
||||
- [x] ~~测试用户查询路由到 User Agent。~~
|
||||
- [x] ~~测试定时任务路由到 Hermes。~~
|
||||
- [ ] 测试叙述型报销输入可路由到报销建单服务。
|
||||
- [ ] 测试报销单提交前必须显式确认。
|
||||
- [x] ~~测试 forbidden 不调用下游 Agent。~~
|
||||
- [x] ~~测试 approval_required 返回确认。~~
|
||||
- [x] ~~测试工具失败写入 ToolCall。~~
|
||||
- [x] ~~测试 Orchestrator 异常写入 AgentRun。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~Orchestrator 核心测试通过。~~
|
||||
|
||||
## 10. Day 4 验收
|
||||
|
||||
- [x] ~~Orchestrator API 可用。~~
|
||||
- [x] ~~用户请求能路由到 User Agent 占位实现。~~
|
||||
- [x] ~~定时任务能路由到 Hermes 占位实现。~~
|
||||
- [ ] 语义补槽完成后的报销输入能路由到建单或改单动作。
|
||||
- [x] ~~权限阻断有效。~~
|
||||
- [x] ~~运行 Trace 可查询。~~
|
||||
- [x] ~~工具调用日志可查询。~~
|
||||
- [x] ~~降级结果可读。~~
|
||||
- [x] ~~所有完成项已用 `[x] ~~...~~` 标记。~~
|
||||
|
||||
## 阻塞记录
|
||||
|
||||
- [x] ~~暂无。~~
|
||||
|
||||
## 日终交接
|
||||
|
||||
- [x] ~~当前路由规则已稳定为:`user_message -> user_agent`、`schedule -> hermes`、`clarification_required -> blocked`。~~
|
||||
- [x] ~~当前权限判断已稳定为:`read / draft_write / approval_required / forbidden`,高风险动作默认阻断或要求确认。~~
|
||||
- [x] ~~Day 5 需承接的接口契约已明确:Orchestrator 向 User Agent 传入语义结果、能力码、工具结果,并期待返回 `answer / citations / suggested_actions / draft_payload / risk_flags`。~~
|
||||
|
||||
@@ -13,6 +13,10 @@ Day 1 到 Day 4 已经具备资产、语义、路由和日志基础,此时可
|
||||
## 今天主要交付
|
||||
|
||||
- 用户自然语言入口。
|
||||
- 对话入口透传首句文本、附件名称和页面上下文。
|
||||
- 语义识别完整后创建报销单草稿。
|
||||
- 对话补充字段时更新报销主表、明细和附件关联。
|
||||
- 用户确认后触发报销单提交和状态变更。
|
||||
- 报销查询和解释。
|
||||
- 应收查询和解释。
|
||||
- 应付查询和解释。
|
||||
@@ -20,11 +24,14 @@ Day 1 到 Day 4 已经具备资产、语义、路由和日志基础,此时可
|
||||
- 风险原因说明。
|
||||
- 处理意见草稿。
|
||||
- 知识库读取骨架。
|
||||
- 低置信度场景的澄清追问。
|
||||
- 前端问答或操作入口。
|
||||
|
||||
## 对应执行细则
|
||||
## 当前完成情况
|
||||
|
||||
- [Day 5 执行细则](<../agent plan/weekly_execution_details/day_5_user_agent_mvp.md>)
|
||||
- [x] ~~个人工作台、报销对话框和通用聊天入口已经接通真实 Orchestrator / User Agent 问答链路。~~
|
||||
- [x] ~~回答、规则引用、风险说明、建议动作和结构化 `draft_payload` 已可返回。~~
|
||||
- [ ] 真实 `expense_claims` / `expense_claim_items` / 附件表落库,以及 `draft -> submitted` 状态流转尚未完成。
|
||||
|
||||
相关架构文档:
|
||||
|
||||
@@ -38,7 +45,10 @@ Day 1 到 Day 4 已经具备资产、语义、路由和日志基础,此时可
|
||||
- 用户能输入自然语言问题。
|
||||
- 请求必须经过 Orchestrator。
|
||||
- 至少 3 类财务问题有可读回答。
|
||||
- 叙述型报销输入在最小槽位满足后能创建 `expense_claims` 草稿。
|
||||
- 用户确认提交后可把报销单从 `draft` 变更为 `submitted`。
|
||||
- 回答能引用规则或知识。
|
||||
- 语义低置信度时不会答非所问,而是追问。
|
||||
- 高风险动作只生成草稿或建议。
|
||||
- AgentRun Trace 能看到 User Agent 步骤。
|
||||
|
||||
@@ -48,3 +58,205 @@ Day 1 到 Day 4 已经具备资产、语义、路由和日志基础,此时可
|
||||
- 不做自动付款。
|
||||
- 不做自动上线规则。
|
||||
- 不做完整知识库检索优化。
|
||||
- 不假装已读懂未解析的附件内容。
|
||||
|
||||
## 详细执行清单
|
||||
|
||||
以下内容为合并后的详细执行清单。
|
||||
|
||||
## 0. 开始前检查
|
||||
|
||||
- [x] ~~确认 Orchestrator 能把用户请求路由到 User Agent。~~
|
||||
- [x] ~~确认语义本体 8 字段可用。~~
|
||||
- [x] ~~确认语义层已接入真实模型,而不是仅靠关键词规则。~~
|
||||
- [x] ~~确认规则资产可查询。~~
|
||||
- [x] ~~确认 AgentRun 和 ToolCall 可记录。~~
|
||||
- [x] ~~确认已有现成对话 UI 可复用。~~
|
||||
- [x] ~~确认财务业务数据已可通过最小真实数据查询。~~
|
||||
- [x] ~~当前无需额外补最小 Mock 数据服务。~~
|
||||
|
||||
## 1. User Agent 输入输出
|
||||
|
||||
- [x] ~~定义 `UserAgentRequest`。~~
|
||||
- [x] ~~请求包含 `run_id`。~~
|
||||
- [x] ~~请求包含 `user_id`。~~
|
||||
- [x] ~~请求包含 `message`。~~
|
||||
- [x] ~~请求包含 `ontology`。~~
|
||||
- [x] ~~请求包含 `context_json`。~~
|
||||
- [x] ~~定义 `UserAgentResponse`。~~
|
||||
- [x] ~~响应包含 `answer`。~~
|
||||
- [x] ~~响应包含 `citations`。~~
|
||||
- [x] ~~响应包含 `suggested_actions`。~~
|
||||
- [x] ~~响应包含 `draft_payload`。~~
|
||||
- [x] ~~响应包含 `risk_flags`。~~
|
||||
- [x] ~~响应包含 `requires_confirmation`。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~User Agent 响应结构能被 Orchestrator 直接包装返回。~~
|
||||
|
||||
## 2. 查询处理
|
||||
|
||||
- [x] ~~实现报销查询处理器。~~
|
||||
- [x] ~~实现应收查询处理器。~~
|
||||
- [x] ~~实现应付查询处理器。~~
|
||||
- [ ] 查询前检查权限级别。
|
||||
- [x] ~~查询时记录 ToolCall。~~
|
||||
- [x] ~~查询失败时返回可读错误。~~
|
||||
- [x] ~~查询为空时返回空态解释。~~
|
||||
- [ ] 查询结果限制返回条数,避免一次返回过大。
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~“查本周报销金额”有可读回答。~~
|
||||
- [x] ~~“客户 A 本月应收多少”有可读回答。~~
|
||||
- [x] ~~“供应商 B 待付款多少”有可读回答。~~
|
||||
|
||||
## 3. 规则解释
|
||||
|
||||
- [x] ~~根据语义场景查询相关规则资产。~~
|
||||
- [x] ~~只引用 active 规则。~~
|
||||
- [x] ~~读取规则当前版本 Markdown。~~
|
||||
- [x] ~~从 Markdown 中提取规则摘要。~~
|
||||
- [x] ~~回答中说明使用了哪些规则。~~
|
||||
- [x] ~~回答中包含规则版本号。~~
|
||||
- [x] ~~回答中包含规则更新时间。~~
|
||||
- [x] ~~没有相关规则时说明缺失。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~“为什么这笔报销有风险”能引用规则。~~
|
||||
|
||||
## 4. 风险解释
|
||||
|
||||
- [x] ~~识别重复报销风险。~~
|
||||
- [x] ~~识别金额超标风险。~~
|
||||
- [x] ~~识别发票异常风险。~~
|
||||
- [x] ~~识别逾期应收风险。~~
|
||||
- [x] ~~识别逾期应付风险。~~
|
||||
- [x] ~~风险回答包含风险类型。~~
|
||||
- [x] ~~风险回答包含触发原因。~~
|
||||
- [x] ~~风险回答包含建议处理动作。~~
|
||||
- [x] ~~高风险建议不能变成自动执行。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~风险解释结果不是单纯“有风险”,而是有依据。~~
|
||||
|
||||
## 5. 草稿生成与单据落库
|
||||
|
||||
- [ ] 支持根据语义结果创建 `expense_claims` 草稿。
|
||||
- [ ] 报销草稿初始状态写为 `draft`。
|
||||
- [ ] 支持根据语义结果创建或更新 `expense_claim_items`。
|
||||
- [ ] 支持把用户上传附件挂到 `document_assets`、`document_asset_versions`、`expense_item_documents`。
|
||||
- [ ] 对话中补充金额、事由、客户、参与人、票据后,能回写已有草稿而不是只更新内存结果。
|
||||
- [x] ~~支持生成报销处理意见草稿。~~
|
||||
- [x] ~~支持生成应收催收建议草稿。~~
|
||||
- [x] ~~支持生成应付付款建议草稿。~~
|
||||
- [ ] 用户明确确认“提交报销”后,把 `expense_claims.status` 从 `draft` 更新为 `submitted`。
|
||||
- [ ] 报销提交时写入 `submitted_at`。
|
||||
- [ ] 报销状态变更写入审计日志。
|
||||
- [ ] 报销状态变更写入 AgentRun 结果。
|
||||
- [x] ~~草稿中标明“待人工确认”。~~
|
||||
- [x] ~~草稿不直接提交业务系统。~~
|
||||
- [ ] 草稿生成写入审计日志。
|
||||
- [x] ~~草稿生成写入 AgentRun 结果。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [ ] “我今天去客户现场,招待了客户,花销了1000元”在补齐必要字段后可创建报销草稿。
|
||||
- [ ] “帮我提交这笔报销”在确认后只把状态改到 `submitted`,不会直接改成 `approved` 或 `paid`。
|
||||
- [x] ~~“帮我生成处理意见”只返回草稿,不执行审批。~~
|
||||
|
||||
## 6. 知识库读取骨架
|
||||
|
||||
- [ ] 建立知识条目查询接口或服务。
|
||||
- [ ] 支持按关键词查询知识条目。
|
||||
- [ ] 支持按业务场景查询知识条目。
|
||||
- [ ] User Agent 回答可以引用知识条目。
|
||||
- [ ] 引用中包含知识标题。
|
||||
- [ ] 引用中包含更新时间。
|
||||
- [ ] 知识库不可用时返回降级说明。
|
||||
|
||||
验收证据:
|
||||
|
||||
- [ ] 知识库失败不会导致整个回答失败。
|
||||
|
||||
## 7. 对话或操作入口
|
||||
|
||||
- [x] ~~前端增加用户问题输入框。~~
|
||||
- [x] ~~输入框支持回车或按钮提交。~~
|
||||
- [x] ~~提交时调用 Orchestrator,而不是绕过 Orchestrator。~~
|
||||
- [ ] 提交时透传首句文本、附件名称、附件 ID 和页面上下文。
|
||||
- [x] ~~展示 Agent 回答。~~
|
||||
- [x] ~~展示引用规则或知识。~~
|
||||
- [x] ~~展示建议动作。~~
|
||||
- [ ] 展示报销草稿 ID 或 claim_no。
|
||||
- [ ] 展示当前报销状态。
|
||||
- [x] ~~展示需要人工确认的提示。~~
|
||||
- [x] ~~展示 `run_id`。~~
|
||||
- [x] ~~展示加载态。~~
|
||||
- [x] ~~展示错误态。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~用户可在页面完成一次问答闭环。~~
|
||||
|
||||
## 8. 安全边界
|
||||
|
||||
- [x] ~~User Agent 不直接修改规则状态。~~
|
||||
- [x] ~~User Agent 不直接上线规则。~~
|
||||
- [x] ~~User Agent 不直接审批报销。~~
|
||||
- [x] ~~User Agent 不直接把报销单改为 `approved` 或 `paid`。~~
|
||||
- [x] ~~User Agent 不直接付款。~~
|
||||
- [x] ~~User Agent 不直接删除知识。~~
|
||||
- [x] ~~所有高风险动作只返回建议或草稿。~~
|
||||
- [ ] 报销从 `draft` 变更到 `submitted` 之前必须有用户确认。
|
||||
- [ ] 所有草稿动作标记 `requires_confirmation=true`。
|
||||
- [x] ~~语义低置信度时优先追问,不返回答非所问的查询结果。~~
|
||||
- [x] ~~没有 OCR/VLM 结果时,不假装读懂图片或票据内容。~~
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~提示词要求“直接付款”时仍被阻断。~~
|
||||
|
||||
## 9. 测试
|
||||
|
||||
- [x] ~~测试报销查询。~~
|
||||
- [x] ~~测试应收查询。~~
|
||||
- [ ] 测试应付查询。
|
||||
- [ ] 测试规则解释。
|
||||
- [x] ~~测试风险解释。~~
|
||||
- [ ] 测试报销草稿创建。
|
||||
- [ ] 测试报销草稿补槽更新。
|
||||
- [ ] 测试报销状态从 `draft` 变更到 `submitted`。
|
||||
- [x] ~~测试草稿生成。~~
|
||||
- [ ] 测试越权动作阻断。
|
||||
- [ ] 测试知识库降级。
|
||||
|
||||
验收证据:
|
||||
|
||||
- [x] ~~User Agent 核心测试通过。~~
|
||||
|
||||
## 10. Day 5 验收
|
||||
|
||||
- [x] ~~User Agent 服务可被 Orchestrator 调用。~~
|
||||
- [x] ~~用户入口可提交自然语言问题。~~
|
||||
- [x] ~~至少 3 个财务场景有回答。~~
|
||||
- [ ] 语义识别完整后的报销输入能创建报销草稿。
|
||||
- [ ] 用户确认后能提交报销并更新状态。
|
||||
- [x] ~~回答能引用规则或知识。~~
|
||||
- [x] ~~高风险动作不会自动执行。~~
|
||||
- [x] ~~AgentRun Trace 能看到 User Agent 步骤。~~
|
||||
- [x] ~~前端构建通过。~~
|
||||
- [x] ~~所有完成项已用 `[x] ~~...~~` 标记。~~
|
||||
|
||||
## 阻塞记录
|
||||
|
||||
- [x] ~~暂无。~~
|
||||
|
||||
## 日终交接
|
||||
|
||||
- [x] ~~当前已支持报销 / 应收 / 应付查询、规则解释、风险解释、草稿建议与澄清追问。~~
|
||||
- [x] ~~当前仍是占位的主要能力是报销单真实落库、附件持久化和知识库读取,不再是简单静态问答 Mock。~~
|
||||
- [x] ~~Day 6 Hermes 可直接复用当前的规则检查、风险标签和 Orchestrator Trace / ToolCall 契约。~~
|
||||
|
||||
@@ -19,10 +19,6 @@ Hermes 依赖前几天已经建立的资产、规则、语义、Orchestrator、T
|
||||
- 规则草稿生成。
|
||||
- Hermes 运行结果展示。
|
||||
|
||||
## 对应执行细则
|
||||
|
||||
- [Day 6 执行细则](<../agent plan/weekly_execution_details/day_6_hermes_mvp.md>)
|
||||
|
||||
相关架构文档:
|
||||
|
||||
- [Agent 职责边界](<../agent plan/03_agent_responsibilities.md>)
|
||||
@@ -45,3 +41,190 @@ Hermes 依赖前几天已经建立的资产、规则、语义、Orchestrator、T
|
||||
- 不做真实 OCR 深度集成。
|
||||
- 不做自动发布知识。
|
||||
- 不做自动上线规则。
|
||||
|
||||
## 详细执行清单
|
||||
|
||||
以下内容为合并后的详细执行清单。
|
||||
|
||||
## 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 接入点
|
||||
|
||||
- [ ] 原始票据先落 `document_assets` 和 `document_asset_versions`,不直接以内存临时文件参与流程。
|
||||
- [ ] 建立 OCR 识别服务接口。
|
||||
- [ ] 定义发票识别输入结构。
|
||||
- [ ] 定义发票识别输出结构。
|
||||
- [ ] 输出结构包含发票号。
|
||||
- [ ] 输出结构包含开票日期。
|
||||
- [ ] 输出结构包含金额。
|
||||
- [ ] 输出结构包含税额。
|
||||
- [ ] 输出结构包含销售方。
|
||||
- [ ] 输出结构包含购买方。
|
||||
- [ ] 输出结构包含置信度。
|
||||
- [ ] OCR 输入可通过 `storage_key` 或等价文件定位字段读取原件。
|
||||
- [ ] 当前阶段允许使用 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 需要重点回归的路径。
|
||||
|
||||
@@ -21,10 +21,6 @@
|
||||
- 演示脚本。
|
||||
- 下一阶段开发建议。
|
||||
|
||||
## 对应执行细则
|
||||
|
||||
- [Day 7 执行细则](<../agent plan/weekly_execution_details/day_7_hardening_demo_acceptance.md>)
|
||||
|
||||
相关架构文档:
|
||||
|
||||
- [Agent Plan 总览](<../agent plan/00_README.md>)
|
||||
@@ -45,3 +41,220 @@
|
||||
- 不做新大功能。
|
||||
- 不临时扩大范围。
|
||||
- 不绕过测试和验收。
|
||||
|
||||
## 详细执行清单
|
||||
|
||||
以下内容为合并后的详细执行清单。
|
||||
|
||||
## 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] ~~...~~` 标记。
|
||||
|
||||
## 测试记录
|
||||
|
||||
- [ ] 后端测试:未运行。
|
||||
- [ ] 前端构建:未运行。
|
||||
- [ ] 语义评测:未运行。
|
||||
- [ ] 手动验收:未运行。
|
||||
|
||||
## 阻塞记录
|
||||
|
||||
- [ ] 暂无。
|
||||
|
||||
## 日终交接
|
||||
|
||||
- [ ] 写明本周最终完成内容。
|
||||
- [ ] 写明未完成内容。
|
||||
- [ ] 写明生产化前必须补齐内容。
|
||||
- [ ] 写明下一周建议优先级。
|
||||
|
||||
Reference in New Issue
Block a user