Files
Agent-System/.doc/remediation/2026-09-13-conversation-intent-runtime-state-remediation.md
T

2.7 KiB

title, status, created, updated
title status created updated
对话意图、可恢复任务状态与文档占用可见性整改 in_progress 2026-09-13 2026-09-13

对话意图、可恢复任务状态与文档占用可见性整改

背景

见 专项审计。本问题不是单一意图模型错误,而是客户端写操作捷径、任务状态投影、租约展示和诊断数据隔离四处合同不一致。

目标

  • 只读表达永不直接触发文档写任务;写操作必须具有明确动作语义。
  • 失败、运行中、质量失败和恢复动作刷新后等价恢复。
  • 文档被人工或智能体编辑时,在会话、文档列表和编辑器持续显示同一个服务端状态,并在发送前阻止重复写任务。
  • 自动化/诊断请求只能使用隔离 fixture,不得写入真实用户会话。

分波次计划

波次 内容 验收
Wave 0 禁止真实会话诊断探针;补污染审计与只读负例 “总结/查看/状态/谁在编辑”均不命中写任务
Wave 1 将客户端模板匹配收紧为“动作 + 目标”;“总结”由服务端按项目/阶段权限读取正文并在隔离对话目录生成只读摘要 明确“编写/生成/更新”触发;总结返回正文摘要且不创建 run/租约
Wave 2 持久化/重建 error_info、task request、进度与恢复动作 刷新前后失败卡片语义和按钮一致
Wave 3 增加运行态/租约查询与统一 busy UI,消费 governance 事件 运行中刷新仍显示文档、持有人、阶段、开始时间和禁止编辑提示
Wave 4 将 busy 分型为策略状态,执行真实 PI + 刷新 + 双标签页 E2E 重复请求不会创建第二 run;状态可恢复;完成后自动解锁

验收标准

  • “总结一下用户初始需求表”返回已有文档摘要,不创建 task_runs。
  • “开始编写用户初始需求表”只创建一个 run;运行中再次写请求不创建失败 run。
  • 任务失败后刷新,错误码、诊断摘要及允许动作与刷新前一致。
  • 运行中刷新,聊天占位、阶段进度、文档 busy 标识和输入保护均恢复。
  • 租约释放/任务终态后 UI 自动解除 busy,无需用户手动刷新。
  • 测试使用专用项目/会话并在 teardown 清理;禁止 debug/test 探针进入非 fixture 会话。

相关链接