# Day 2:任务规则中心联调 ## 今天的大开发点 把任务规则中心从静态页面改成可和后端资产体系联动的生产形态。 重点是规则、技能、MCP、任务四类资产的列表和详情,以及规则 Markdown、版本、审核、上线约束。 ## 为什么第二天做这个 任务规则中心是业务人员管理 Agent 能力的入口。后续语义本体、Orchestrator、User Agent、Hermes 都要读取这里注册的规则、技能、MCP 和任务。 ## 今天主要交付 - 规则、技能、MCP、任务四个页签对接资产 API。 - 列表支持搜索、筛选、状态展示。 - 规则详情展示 Markdown 内容。 - 管理员可编辑规则 Markdown。 - 规则版本展示最近 5 个版本。 - 版本切换需要弹窗确认。 - 审核者信息放在标题区域。 - 右侧只保留版本信息。 - 未审核规则上线时被后端拦截。 ## 当前完成情况 - [x] ~~四个页签已切到真实资产 API。~~ - [x] ~~规则 Markdown、版本切换、审核、上线动作已联调。~~ - [x] ~~前端构建已通过。~~ - [ ] 浏览器手动走查记录待补。 相关架构文档: - [能力注册](<../agent plan/07_capability_registry.md>) - [规则形成生命周期](<../agent plan/13_rule_formation_lifecycle.md>) - [数据契约与治理](<../agent plan/06_data_contracts_and_governance.md>) ## 当天验收门槛 - 四个页签可切换并有真实 API 或 Mock API 数据。 - 规则详情可编辑 Markdown。 - Markdown 保存后刷新不丢失。 - 版本卡片可切换版本。 - 未审核规则不能上线。 - 前端构建通过。 ## 今天不做 - 不做规则自动生成。 - 不做完整 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`