Files
Agent-System-Documents/docs/proposals/2026-10-14-fast-slow-u3-r05-terminal-evidence-and-fast-feedback-design.md
T
weichen 0d473fe866 Document U3 r0.5 safe terminal and fast feedback design
Why: The authorized r0.4 A01 exposed an unobserved stream terminator and an unsupported numeric relationship in the immediate reply.

Evidence: Independent A01 assessment and fixed-head Backend/Dev CI are linked from the design and task record; relative Markdown links and git diff --check pass.

Impact: Propose content-free terminal diagnostics and a source-safe host acknowledgement while retaining strict tool rejection and the original A01 quality gate. This document grants no implementation or model budget.

Refs: U3 r0.4 validation; Dev task feature-fast-slow-u2-u3-plan
2026-10-14 06:31:02 +00:00

13 KiB
Raw Blame History

U3 r0.5:安全终态证据与可信快通道反馈

状态:书面设计待人工评审。用户于 2026-10-14(Asia/Shanghai)认可“保持不完整工具流的安全拒绝,增加无原始内容或凭据的终态/传输诊断与零付费重放;快通道数字和分期归属缺少依据时标待确认”的方向。该答复只授权写设计;本文件不授权产品代码、付费模型请求、合入或部署。负责人 weichen;实施候选与验收主记录为 Dev feature/fast-slow-u2-u3-plan 任务卡,历史结果见核验报告,前版见 r0.4 设计和实施计划。

目标与已知事实

用户上传材料后应立即知道“已收到、正在做什么、何处看结果”;阶段发现和最终整理仍由同一张工作卡逐级呈现,并且数量、分期、审批状态与来源一致。非专业用户默认只看简短状态、有用发现和待确认问题,不看 SSE、脚本或 token 细节。沿用左侧上下文、中间对话、右侧工作/文件,不增加页面或独立模型回合。

r0.4 唯一获批 A01 固定在 Dev d38dbdc396b7b8c6a9e34142ea8e6018abbed1fc、Backend 37e2cb7adb6202902345d38bc591e12be7aa79c0、Agent-Native a5e3c7c817166865d75b764337b15ca7d505d131。原始样本和独立只读评估(原件路径见核验报告)确认:两个付费 run、三次调用、29,062 已返回 Usage tokens;工具回合有 finishReason=tool_calls、合法 JSON 参数片段和 Usage,但解析器未观察到 [DONE],所以没有工具执行、运行中检查点或最终整理正文。三次终态的 streamComplete 均为 false,前两次纯文本仍被当作正常结束。没有保存原始 SSE,无法区分服务端未发结束标记、连接中途结束或适配器遗漏;不能把“JSON 可解析”当成完整工具调用的证明。

快通道问题中的“剩余 4 项(含 3 项依赖接口)”也没有材料依据:原文只给总 12、第一期 8、总量中接口依赖 3,未给依赖项与分期的交集。问号不撤销括号内的肯定关系。r0.3 的结构化检查点守卫没有覆盖前台自由文本;r0.4 materialStartedNote 仍要求模型即时给“初步判断、需要澄清的问题”。这条未经来源校验的可见路径必须收敛。

原候选还漏记失败子 run 的 7,148 tokens。Backend 0637547cc5640d51e2d67b65ab07b184269f8371 已在 r0.4 授权诊断范围内完成零付费修复并通过独立复审(原件 /tmp/fast-slow-u3-r04-20261014/usage-fix-final-review.md)及准确 HEAD CI;该修复晚于样本,不改写原结果,也不证明流终态或快通道质量已通过。八个相关 PR 仍是草稿,r0.4 质量出口为 FAIL。

方案取舍

路线 收益 代价与风险 取舍
仅修改提示词,要求模型“谨慎” 改动小 前台自由文本已出现无依据归属;提示不能构成发布门禁,也不能解释缺 [DONE] 不选
保留严格工具门禁,补不含内容的终态诊断;自动材料入口用宿主确认反馈,来源判断进任务卡 不执行不完整工具;即时反馈不依赖模型推断;零新增模型调用 暂不使缺 [DONE] 的工具请求成功;复杂材料的首条实质发现仍取决于慢通道 推荐
将“干净 EOF+结束原因+合法 JSON”直接视作 [DONE],或自动让模型补发工具参数 可能减少一次失败 缺失尾帧也可能是截断;无本次原始流可证等价,补发增加付费回合并违反停止条件 不选;未来如有证据须另审

本修订先补“为什么终止”和“哪些话可以立即显示”的可靠边界。它不是宣布供应商终态已兼容,也不以更宽松的模型质量标准换取通过。

用户可见行为与快通道边界

系统已确定性启动或复用材料整理任务时,立即由宿主在原对话给一条短确认,并保持同一张任务卡:例如“已收到 3 份材料,正在核对;有依据的发现会陆续出现在‘材料整理’中,尚不能确认的关系会明确标注”。材料数量、文件名及任务状态只能来自当前授权的附件快照与任务卡,不能由模型猜测。任务排队、已有活动任务、失败启动和已完成复用分别读实际状态,不把“已启动”发给启动失败的任务,不重派同一批材料。

对于这个自动材料入口的首个可见快通道回复,模型自由文本不作为已核对的材料结论直接流给用户。若要显示实质数量、分期、决定或跨文件关系,必须走已有来源、原句、范围和归属校验后成为 material_record/needs_user 等阶段条目;在此之前,只给宿主确认与“待确认”状态。样本中的正确表达是“总量、首期和接口依赖数量分别有记载;依赖项属于哪一期待确认”,不能写“剩余 4 项含 3 项依赖接口”。不凭单独的问号、免责声明或“可能”放行前面的肯定关系。这个选择减少即时推断,但用户会更早得到真实进度,稍后通过右侧卡片查看带来源的内容。

方案优先覆盖 系统预启动材料整理的首回合:无文字上传及达到材料阈值的文字+材料。后者原用户工作重点已由 buildMaterialTaskFor 带给慢通道;短确认应说明稍后将结合该重点汇报,而非假称当场已经回答。文字+小材料仍走普通对话与既有 stop 兜底,不把它伪装成本方案已验收的路径;实施计划须列出这一路径的风险与回归,并评估是否需要后续独立范围。原始模型候选若被抑制,不得进入用户可见事件、会话持久转录或后续模型上下文。实现时若不能保证这一点,选择直接跳过该首回合模型请求,由宿主正常落一条确认消息;不得先流出不可信片段再撤回。省略首回合模型请求是少一次请求,不是新增模型摘要或审核调用;对预算和 A01 基线的影响仍须如实记录。

后台成果不因快通道收敛而降格:首条仍须真实、短、有连续原文来源的 reading 事实,第二批是不同且有用的 crosscheck 发现,最终有准确完整正文。未验证阶段不得显示虚构的进度百分比、ETA 或“全部完成”;失败沿用 r0.4 的零成果/部分成果分流,不生成无依据的交付物选择卡。

终态诊断与安全契约

Agent-Native 是 SSE 读取与工具执行边界的所有者。保留现有规则:工具调用只有在受支持的完成原因、完整终止标记及 ID/名称/对象 JSON 参数全部满足时才交给执行器;缺 [DONE]、读取错误、取消或参数不完整时继续安全失败,已返回的 Usage 仍计入预算,不因失败自动补发请求。文本回合当前在缺 [DONE] 时可正常结束的事实需要单列诊断,不能借此推断工具回合也安全。Backend 的受控评测 wrapper 仍在终态故障、检查点拒绝、缺 Usage 或额度边界后阻断后继 provider 请求;不改模型路由、轮数、工具数、时间与输出上限。

新增有界、无内容的每次调用终态收据,与既有 runId、调用序号和逐调用 Usage 关联。字段建议为:HTTP 状态与可判定的响应完成类型、读结果(正常 EOF/读错误/取消)、[DONE] 是否观察到、最后一个 SSE 事件是否完整 JSON、已观察到的 finishReason、是否含工具片段及片段数量、参数总字节数与 JSON 对象有效性、Usage 是否出现与 token 数、最终是否放行工具。只记录枚举、计数、布尔值及受限错误类别;不保存原始 SSE、prompt、正文、推理文本、工具名/参数、API key 或请求头。不可从无内容收据反推出尾帧原文;读取错误细节需脱敏并限长,日志与归档采用任务自有权限。模型失败时诊断与失败状态同一调用保存,不让观测失败触发重试。

bufio.Scanner.Err()==nil 的 EOF 仅说明读取器没有报告错误,不证明供应商发送了所有预期事件;完整 finishReason、Usage 和合法 JSON 也不能独立补足 [DONE]。诊断先回答“解析器看到了什么、底层读取如何结束、工具是否被执行”。若零付费重放显示解析器漏认合法终止形式,或未来经单独批准的受限真实试验取得足够的供应商终态证据,才提出按路由受限的等价终态定义及正反例,回到方案评审;r0.5 本身不放宽工具门禁。

Backend 只消费 Agent-Native 的终态分类和 Usage,保留 run/card/source 版本权威;Frontend/UI 只显示“整理中/未完成/待确认”等用户可行动状态,不展示诊断字段。核心 TaskSnapshot、公开工具契约、数据库结构、权限和服务配置保持现有版本。若需持久诊断,优先落在已受控的评测记录/运行诊断面,实施计划须说明清理期限与是否需要新增内部字段;不得以完整原始流作为默认遥测。

零付费验证与阶段出口

  1. 传输/解析重放。 用 httptest 和人工 SSE 帧覆盖有 [DONE]、正常 EOF 却无 [DONE]、半个 JSON 帧、结束原因与工具片段不一致、读错误、取消、缺 Usage、纯文本缺终止标记。逐一断言收据分类、工具执行次数、返回及持久 Usage、后继 provider 请求数。特别验证“干净 EOF+合法工具 JSON”仍为 0 次工具执行。
  2. 快通道投影。 对附件仅发送、文字+长材料预启动、排队、活动任务复用、启动失败、已完成复用分别用真实 HTTP/浏览器核对首条确认、卡片与会话转录。以 A01 的 12/8/3 和跨文档改写变体作反例,断言首回合任何可见文字均不包含未经证明的交集关系,明确标“待确认”;原用户文字仍在慢任务重点中,普通文字+小材料路径没有被误改。
  3. 渐进成果与失败。 零付费假流核对第一条 reading、第二批不同 crosscheck、终态完整正文、零成果/部分成果失败,以及刷新、来源跳转和后台不抢阅读焦点;不能把宿主确认算成一个阶段发现。SQLite 与隔离 PostgreSQL 分别核对事件 seq、任务快照及已返回 Usage。
  4. 组合与审阅。 Agent-Native、Backend、适用的 Frontend/UI 和 Dev 固定准确 SHA 后做组件测试、make test && make build、真实浏览器、独立最小重放与准确 HEAD 平台 CI。源码、收据和独立审阅按 SELF/REPLAY/GATE 标识;没有运行的项目写 NOT_RUN。界面若确需修改,先读 Dev DESIGN.md 并只用 @ui 令牌、动效与折叠原语。

正式 A01 质量标准仍是至少两条真正有用且终态前可感知的不同阶段成果、完整准确最终正文、原文来源和数字/决定状态正确,逐调用核对实际 run ID、Usage、工具数和停止规则。宿主确认不计入两条;零付费重放只证明机制,不证明模型会完成任务。r0.4 的一次性资源已用尽;新的真实模型调用必须在本设计与详细实施计划分别获批、零付费候选固定和单独资源提案获批后才可运行。任何安全、语义或质量 FAIL 保持八个 PR 草稿,不进入阶段 7、合入或部署。

风险与待评审决定

  • 诊断不等于修复供应商行为。 当前原件缺原始 SSE,因此只能证明“未观察到 [DONE]”;本版保守失败可能继续导致零阶段成果。是否再做受限供应商探针或提出等价终态,必须依据新证据和单独资源审批,不在本设计中偷渡。
  • 快通道即时信息减少。 宿主先确认真实状态,实质判断等来源核验后再上卡。若用户更看重未经核实的即时概览,需要另行决定风险,而不能把模型自由文本称为已核对结论。
  • 首回合跳过/隔离的实现选择。 两者都不得让候选文本先进入事件或持久转录;实施计划应以最小零付费探针比较对已有会话、通知、计费、重入和用户文字重点的影响,推荐更小且可证明的路径。若探针显示需要改变公开消息契约或异步所有者,返回设计评审。
  • 范围边界。 本版优先关闭预启动材料入口的快通道错误;普通文字+小附件问答仍需单列验证,不从 A01 推断全路径正确。若评审要求覆盖该路径,应在计划前扩展设计和验收矩阵。

请人工重点审阅:是否接受“先可信确认、实质判断稍后上卡”的体验取舍;是否同意缺 [DONE] 的工具流继续严格拒绝,并先以无内容诊断求证;以及短文字+小材料是否纳入同一增量。书面设计批准后才写详细实施计划,批准计划后才进行零付费代码实施;真实模型资源仍单独批准。