feat(agent): align investigation reports and selected context

This commit is contained in:
2026-10-10 16:02:47 +08:00
parent d58bd19039
commit a31b76a793
18 changed files with 1172 additions and 44 deletions
+25 -8
View File
@@ -1,9 +1,11 @@
# Agent 执行计划
# 调查报告与可选流程说明
水质投诉事件要求 Agent 使用 `publish_execution_plan` 发布完整计划和节点状态。
工具只记录计划,不执行现场操作。前端依据结构化数据呈现主干和并行分枝,不接受模型提供的 HTML、脚本或图形指令。
水质投诉事件以证据和调查报告为成果,使用 `publish_task_report` 发布明确的 stage、outcome 与数据缺口。
报告可附 Mermaid 调查脉络,由前端以统一主题渲染 SVG;节点引用连接证据和业务动作。
Mermaid、todo 和可选的旧执行计划供人理解,不约束 Agent 调度,不决定调查结束。
事件调查不要求先发布计划。正文及图示中不接受 HTML、SVG 或脚本。
## 数据与状态
## 旧计划的兼容数据与状态
输入包含幂等 `request_id`、`title`、`reason`、`nodes` 和 `edges`。节点包含稳定 `id`、标题、执行主体
`agent | human`、说明、证据和状态:`pending | running | waiting | completed | failed | skipped | cancelled`。
@@ -31,9 +33,16 @@
工况任务执行先读取后端 task context,再通过有限、可审计的数据源查询 SCADA、工作台或外围样板数据。
查询结果携带来源、时间、内容引用和 `origin`,合成数据必须明确标识;截断结果不能用来断言完整范围无异常。
计划、精简报告和关键证据写回任务记录。计划可在调查中多次保存,未显式失败的纯计划是中间进度。
动作节点必须先存在于已保存计划;提议成功后把返回的动作编号写回计划。所有计划和动作提议保存后,最后保存本轮报告;
后端只使用当前执行代、当前会话的计划与报告判断进入等待、完成或继续运行。创建工单和下发命令只能生成待人工审批动作,Agent 无执行接口。
报告和关键证据写回任务记录,计划可选。提议动作前先保存本轮 interim/concluded 报告;
提议成功后可在报告图示中关联返回的动作编号,再保存本轮 final 报告。
Server 根据当前轮次、当前会话的最终报告与真实动作决定运行收尾及是否待人工审核;
旧计划中的未完成节点不阻止事件调查结束。创建工单和下发命令只能生成待人工审批动作,Agent 无执行接口。
协作入口可传所选 report_revision。Server 返回 selected_report 与当前 task,两者分别表示
正在讨论的历史成果和当前实际状态。Agent 回答的 data-task_context 记录核验后的轮次与报告修订,
保留在流和消息历史中。工具重新读取上下文默认使用本次对话已选修订。
普通问题不改任务。仅用户明确提供的现场事实通过 add_task_human_evidence 保存;
假设、查询请求和补充事实的入口提示不能当作事实。重新排队成功只表示 queued,不表示 Agent 已开始调查。
执行会话使用两分钟任务租约并定期续租;计划或报告写回也会续租。执行进程中断后由后端租约恢复重新排队。
旧水质样板触发仍可使用事件随附的固定合成输入,但必须表述为外围样板输入,不能冒充实时查询结果。
@@ -43,8 +52,16 @@
Agent:`bun run check`,`bun test tests/routes/executionPlan.test.ts tests/routes/chatStream.test.ts tests/sessions`。
前端:`pnpm lint`、`pnpm typecheck`、`pnpm test`、`pnpm build`,以及
`pnpm test:browser tests/browser/peripheral-sample-panel.e2e.ts`。
浏览器覆盖分支图节点、状态更新、版本切换、键盘详情、320/375px、放大和刷新恢复。
浏览器覆盖嵌入 SVG、引用详情、报告更新与历史选择、键盘详情、320/375px 和实际动作审核。
运行实例需加载更新后的 Agent 代码和 OpenCode 工具配置。`embedded` 模式自动把内部工具桥密钥传给子进程;
`client` 模式要求 Agent 与外部 OpenCode 显式配置相同的 `AGENT_INTERNAL_TOKEN` 并重启两侧。
回退前端不会改变已保存工单;回退 Agent 前先保留 Session UI State 数据,新字段可被旧代码忽略。
## 调查报告契约
报告采用固定字段、增量扩展,不增加格式版本标签。完整规则见
[Server 调查报告契约](../../next-tjwater-server/docs/investigation-report-contract.md)。
数据缺失不再保持 waiting:关键缺口导致 final/insufficient_data 正常退出;
动作提议前先保存本轮 interim/concluded 报告,动作提议后再保存 final 报告。
数据授权由系统配置,本场景不请求人工数据授权。