Files
Agent-System/.doc/audit/2026-09-13-document-revision-prelim-output.md
T
weichenandCursor 9345109dca docs(ops): archive completed document-revision session files
Move done DOCREV short-terms, checklists, and handoffs into archive/ops and retarget relative links after Round20 close-out.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 00:27:18 +00:00

4.7 KiB
Raw Blame History

title, status, created, updated, severity
title status created updated severity
UI-11 prelim_design 缺 output.md 导致 TASK_INTERRUPTED in_progress 2026-09-13 2026-09-13 high

UI-11 prelim_design 缺 output.md 导致 TASK_INTERRUPTED

现象

第11轮真实 UI(schema 30,dev@2a58674):

  • Prompt 正确 POST 202,task_key=prelim_design
  • 旧 intake 未再 DOC_BUSY
  • 小队终态 TASK_INTERRUPTED / task_failed
  • 页面:step step_01_draft missing target deliverable output.md · run_1789325979820025769

现场时序(只读 workspace / execution.log / trace)

工作区:data/dev/workspaces/bizdev/prelim_design_1789325982486234431/tasks/01_draft/execution.log

  1. MiniMax 第一次已流出 write(/app/data/workspaces/.../tasks/01_draft/output.md, content=...) 的 toolCall
  2. 同一条 assistant message:stopReason=error,errorMessage=terminated → 工具未执行,磁盘无 output.md
  3. SDK auto_retry_start attempt 1–3 均为 Connection error.
  4. auto_retry_end success=false,finalError=Connection error.
  5. 随后仍有 agent_settled
  6. 同文件头却写 Outcome: SUCCESS / Error: None
  7. 工作区 trace.jsonl:step_01_draft success=true,output_digest=e3b0c442...(空 SHA)
  8. PI 子进程退出 0,runner 对上层呈成功;服务端最后因 output.md 不存在才失败

禁止从该 write 参数(可能截断)拼正文或补写 output.md。

根因分层

必须区分外部瞬时故障与产品韧性缺口,二者同时成立:

层 性质 证据 问题
MiniMax / PI SDK 外部 provider 瞬时故障 同 message terminated;SDK 三次 Connection error;auto_retry_end success=false 流式 write 未落地;in-process 重试耗尽
模板 产品前置条件 .dockerignore 的 *.md 把 templates/docs/*.md 排除出 build context;即使 COPY templates /app/templates,镜像内仍无官方稿,GetDocTemplate 失败后 workspace.go 回落两段 stub「待确认」 writer 被迫一次性超长 write,拉长流式窗口
runner.mjs 产品韧性缺口 agent_settled 后文件头 Outcome: SUCCESS 把 settle 当成成功;进程 0 ≠ 产物存在
Go runOneStep / AppendTrace 产品韧性缺口 trace.jsonl success=true + 空 digest 以 backend Success / 进程 0 入账,未按目标文件 fail-closed,也未对瞬时失败做全新 step invocation
映射 产品契约 绝对路径 / ./ / 重复 tasks/01_draft/output.md 即使 write 落地,旧映射也可能认不到

app 日志:taskrun_status_transition run_id=run_1789325979820025769 error="step step_01_draft missing target deliverable output.md"。

成功判定契约(本轮补齐)

  • agent_settled 在 auto_retry_end success=false / terminated / Connection error 之后 不是 成功
  • 进程退出 0 不是 成功
  • 目标文件缺失或空 不是 成功
  • 不得执行/回放可能截断的 write 参数
  • 瞬时(provider 信号或 runner retryable):有界 全新 backend.Execute(默认 1+1),最终仍 fail-closed
  • 永久(干净 settle 后缺产物、prompt_empty、unauthorized、治理拦截):不得重试

严重度

high

关联整改

证据

  • Evidence root(已归档、本轮勿改勿提交):.doc/test-reports/assets/2026-09-13-document-revision-runtime-ui/schema30-ui11-prelim-design-missing-output-failure/
  • Workspace(只读):data/dev/workspaces/bizdev/prelim_design_1789325982486234431/

开放问题

  • 占槽后真实 UI-11 重跑;本任务保持 in_progress,不得标 done
  • 本轮不执行 env-service 重建;Dockerfile / .dockerignore 已按 /app/templates/docs 读路径修好并做 context 实测。占槽后的镜像重建才带进运行中的 dev 容器
  • Go 侧必须能在旧 runner 假成功时靠 execution.log 识别瞬时失败并全新重试;仅修 runner 假成功只会更早 FAIL,不会单独提高成功率
  • 热修(dev@55a4f39 重建后):deploy/pi-agent/Dockerfile 只 COPY 了 runner.mjs,未 COPY settle-policy.mjs;shuimu-pi-agent-dev 因 ERR_MODULE_NOT_FOUND file:///app/settle-policy.mjs 重启循环。app 侧 /app/templates/docs 与 configs 已正常。