knowledge-vault/discussions/creative/在路上/在路上-video7-测试流程运行7.md

293 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 1
我们以`在路上`项目为测试案例进行了6轮测试从质量把控到编排计划最后完成了订阅制通知唤醒
阅读:[2026-06-25-character-consistency-r7-governance-simplification-handoff.md](C:/Users/wangq/Documents/Codex/video-workbench/handoff/2026-06-25-character-consistency-r7-governance-simplification-handoff.md)
现在这套流程已经可以跑出来令人满意的结果且主会话、子会话和Agent之间的工作也正常。
但是作为生产过程使用还是“治理”过重大量的Tokens被放在了交接、审计、日志上。
必须要简化过程性文档,减少审计,才能作为生产流程。
这不是一个开发项目,不需要那么严谨性;即使生产流程中稍有偏差,导致结果有偏差,我在使用结果时发现有问题,重做即可。
对于`在路上`这个视频项目重点是保证生产的内容线brief、prompt及生图过程记录都可以从简。
谈谈你的想法,有问题提出。
我判断:现在该砍的不是三层结构,而是“证明这三层结构真的工作”的测试期文档。主会话 -> 子会话 -> 单 slide Agent 这条线已经验证过,生产期应该默认信任它,只在异常时退回审计模式。
我建议把 R7 定成三个层级:
1. **内容线必须保留**
`brief`、`prompt`、生成图、`slides/slides.md` 状态表。这是生产资产。
2. **机制线只保留收据**
`task-log.md` 一包两行dispatch 一行、callback 一行。`child-session-handoff.md` 控制在一个短表内scope、versions、status、image paths、warnings、needs_user。Agent `return` 也从报告降级成 receipt不写长过程。
3. **审计线默认关闭**
`worker-launch-ledger`、完整文件清单、父会话复核、长时间线、review 文件,都只在 `blocked / failed / warning / 用户要求审计 / 机制改动测试` 时出现。干净完成时,父会话不打开 prompt / return / ledger 细节。
我会保留少数硬约束append-only 版本、禁止覆盖、每个 slide/version 一个 owner、callback target、handoff 先于 callback、completion gate、每张完成图的路径。这些不是治理负担是防止重做时找不到东西、覆盖掉东西、或者两个 Agent 写同一版本。
我倾向的 R7 方案是:**先改生产轻模板,再跑 S-26/S-27/S-28 小包验证**。不建议先直接跑,因为现在模板仍会诱导 Agent 写测试期报告R7 的目标正是改变默认写法。也不建议引入 JSON/schema/tooling那会把“轻治理”变成新的治理工程。
我有一个关键问题需要先定:
**production-light 的默认 review 要不要彻底设为 `none`**
我的推荐是:默认 `review: none`,只做机械 completion gate视觉质量由你看图后决定拒绝就 append 下一版。核心身份图、封面级图、或你明确要求 sampling/review 的包,再打开 local review。这样最符合“偏了就重做”的生产逻辑。
# 2
是的,在生产环节,默认 review 彻底设为 `none`。简化各种handoff将出图直接改为通过默认不需要每张图获得用户的review。包括slides和sessions这些计划状态管理能简化也可以简化。
需要保留两条线:
1. 测试/审计线
2. 生产线
每次视频,在初期的都会先跑测试/审计线核心镜头达成了预期后才进入生产线。我们这次之所以跑7轮测试更多是在打造环境、流程上。
实际上将来的项目,在环境/流程稳定下,应该跑一两轮测试,核心镜头出来,就直接进入正式生产了。
同意:**先改生产轻模板,再跑 S-26/S-27/S-28 小包验证**
# 3
子会话跑3个出图大约需要20~30分钟。
**我们先讨论,不修改任何文档。**
workflow下的文档现在是两个阶段放在一起。分开放是否更好
编排会话(主会话)需要加载两套机制的上下文,分开的话,通过用户引导“现在是审计/测试阶段”或者“现在是正式生产”再去加载对应阶段的workflow。
你觉得呢?
我觉得**分开更好**,但不建议分成两套彼此完整的 workflow。更好的结构是
`一个入口/路由文件 + 一个共享底座 + 两个阶段文件`
大致是:
```text
docs/workflows/slide-task-orchestration.md # 入口,只负责判断当前阶段和加载哪份
docs/workflows/slide-task-shared-contract.md # 两条线都必须遵守的底线
docs/workflows/slide-task-test-audit.md # 测试/审计线
docs/workflows/slide-task-production-light.md # 正式生产线
docs/workflows/slide-task-templates.md # 可再拆或按章节区分
```
原因很直接:主会话不应该每次都加载两套机制。正式生产时,它只需要知道“现在是 production-light”然后加载共享底线 + 生产线规则;测试阶段才加载审计线。这样可以减少 token也减少 Agent 被审计语言污染的概率。
但我不建议把两套机制完全独立复制。因为有些规则必须是共同底线append-only、不覆盖、单 slide/version 一个 owner、可见参考图、gpt-image-2 Advisor、callback-only、异常才审计。这些如果分别写在两套文档里迟早会漂移。所以应该抽成 `shared-contract`,两条线都引用它。
我会这样定义加载策略:
- 用户说“现在是测试/审计阶段”:主会话加载入口 + shared + test/audit。
- 用户说“现在是正式生产”:主会话加载入口 + shared + production-light。
- 子会话只加载对应阶段,不加载另一阶段。
- slide Agent 原则上不加载 workflow 全文,只吃 packet + brief + 必要 shared 摘要。
- 如果 production-light 出现 blocked/failed/warning再临时切入 test/audit 进行局部诊断。
这里有一个关键点:`slide-task-orchestration.md` 不应该继续承载大量规则,它应该退化成“路由器”。它回答三个问题就够了:当前是什么阶段、必须读哪些文件、什么情况切换阶段。真正的流程细节放到阶段文件里。
我倾向的结论是:**分开,而且以 production-light 为默认最短路径test/audit 是显式进入的诊断路径。** 这样更符合你说的生产现实:先用一两轮把核心镜头和环境跑稳,然后正式生产只追求内容线,不再用审计线拖慢每包出图。
我现在唯一的问题是:你希望“阶段选择”主要由用户自然语言触发,还是在每个任务计划里必须有一个明确字段,比如 `Line: production-light` / `Line: test-audit`
# 4
**我们先讨论,不修改任何文档。**
> 你希望“阶段选择”主要由用户自然语言触发,还是在每个任务计划里必须有一个明确字段,比如 `Line: production-light` / `Line: test-audit`
我是这样理解的:
1. project.md 应该就记录着项目的阶段是测试还是正式运行。创建的时候默认是测试用户正式授权则为正式运行。这样默认加载根据project的实际阶段。
2. 除非,在正式运行阶段,用户发现局部有问题,需要用测试流程;则授权某个会话为按照测试阶段,这样多加载一套也没大问题。
---
另外,现在主会话-子会话-Agent的三级目录是因为会话窗口的限制如果会话窗口够大我们都不需要子会话。
这个三层机制本身也会造成大量的冗余主会话对项目理解一次子会话对具体任务理解一次Agent还要理解此外准备发送的指令这些也都有损耗。
而且这一套是之前,轮询制下设计的。
是否可以考虑去掉Agent直接由子会话生prompt生图可以减少大量的中间产物。
这个我正在监测子会话的Context用量。
---
先谈谈你的理解。
我的理解是:你现在不是只想“少写文档”,而是在重新定义**生产运行时的最短执行路径**。
我同意你对阶段状态的理解:
`project.md` 应该记录项目当前默认阶段。新项目默认 `test/audit`,等核心镜头、视觉系统、参考图路线跑通后,由用户明确授权切到 `production-light`。之后主会话默认按项目阶段加载 workflow不需要每次靠用户重复说明。
局部问题则用 override项目整体仍是 `production-light`,但某个 slide、某个 session、某次 repair 可以临时声明 `test/audit`。这样只有异常局部多加载审计线,不污染整个生产流程。
关于去掉 Agent我也认为值得认真考虑而且很可能是生产线的正确方向。
三级结构最初解决的是几个问题:上下文窗口、单 slide ownership、防重复 worker、可追溯审计、轮询下的状态检查。但现在条件变了callback-only 已经跑通production-light 不再需要逐图 review也不需要证明每个 Agent 的完整生命周期。那 Agent 层的收益下降,成本变得明显:每张图都要重建一次理解、写 packet/return、重复解释 style/character/context。
所以我会把“阶段”和“执行拓扑”拆开:
```text
test/audit 默认拓扑:
主会话 -> 子会话 -> 单 slide Agent
production-light 默认拓扑:
主会话 -> 子会话直接生产
```
正式生产里,子会话可以直接做这几件事:读一次项目上下文,按 scope 顺序处理 2-3 张图,写 brief、prompt、image更新 `slides/slides.md`,写一个短 handoff然后 callback。这样可以去掉 packets、returns、worker ledger甚至多数 session 内部过程文件都可以省掉。
但我不会把 Agent 从系统里删除。它应该变成一个**测试/审计工具**或**异常处理工具**
- 核心镜头测试时用 Agent。
- 出现漂移、覆盖风险、重复版本、工具异常时用 Agent。
- 特别复杂或身份敏感的单镜头,可以用 Agent 隔离。
- 如果将来要并行生产,也可能重新启用 Agent。
也就是说Agent 不再是生产默认路径,而是“需要隔离/审计时才启用”。
我觉得下一步判断点就是你正在监测的 context 用量。如果一个子会话直接处理 3 张图context、耗时、质量都可接受那 production-light 可以改成两层。如果 3 张图后子会话已经接近临界,或者 prompt 质量明显漂移,那就保留三层或限制 direct child 的包大小。
我现在的倾向结论:
```text
项目阶段由 project.md 决定。
production-light 默认只加载生产 workflow。
production-light 默认两层:主会话 -> 子会话。
test/audit 默认三层:主会话 -> 子会话 -> Agent。
Agent 从生产默认机制降级为审计/异常/高风险隔离机制。
```
这样比单纯“少写 handoff”更彻底它减少的是一次出图链路里的重复理解和重复指令成本。
# 5
我们的简化版任务测试顺利完成了。图片质量现在都没问题,都通过了。
---
因为我们这次派发的3张图任务子会话还是用了智能体来完成在消减了文档之后时间和context都比原来减少了。三个任务跑下来25m48s134ktokens。
Agent还说
> Return receipt is written. Before I close, Im running the final verification pass required for completion claims: owned files present, review absent, image readable, and return content recorded.
所以这个完整性检查工作,我觉得在子会话里也可以省去。
现在做了7轮测试跑了几十个图的情况下完整性检查变成负担了。
---
综上我觉得可以直接调整相应的规则分阶段启动Agent的能力保留但不是默认默认为子会话自己做完去掉完整性检查等等。
这些之后我们再做一组测试发新的三个镜头包到新的子会话需要记录子会话id。
这个我可以看到没有Agent的情况下的真实时间与Tokens用量。
然后判断,是否可以续发镜头。
你觉得呢。
我同意你的判断,方向可以再压一层。
这次 R7 已经证明两件事:文档消减后,三图包能稳定跑完;但即便消减,`子会话 -> Agent` 这一层仍然带来显著重复理解和收据成本。25m48s / 134k tokens 对三张图来说已经比以前好,但还不是 production-light 的极限。
我建议下一版规则这样定:
`production-light` 默认拓扑改成:
```text
主会话 -> 子会话直接生产
```
子会话自己负责一个小包,比如 3 张图:读项目阶段、读必要 visual-system、扫描版本、写 brief/prompt、生成图、更新 `slides.md`、写一个极短 handoff、callback。默认不启动 Agent不写 packet不写 return receipt不跑 final verification pass。
保留的最低安全动作只剩三项:
1. 写前扫描版本,避免覆盖。
2. 每张图生成后能拿到项目内 image path。
3. callback 里报scope、versions、image paths、blocked/needs_user。
其它都默认省掉完整性检查、worker lifecycle、return receipt、ledger、review、hash、父侧审计。生产里缺了文件或图片打不开后面使用时自然会暴露重做即可。
`test/audit` 则保留现在较完整的三层机制:
```text
主会话 -> 子会话 -> Agent
```
它用于核心镜头测试、流程故障、身份漂移、局部重做诊断、或者用户显式要求审计。Agent 能力不删,只从默认生产路径里拿掉。
下一组测试我也同意:新建一个干净子会话,发新的三个镜头包,明确要求“不启动 Agent由子会话直接完成”。主会话只记录子会话 ID、scope、开始时间等 callback 后记录耗时、tokens、版本和图片路径。然后你用真实数据判断是否继续给同一个子会话续发。
我唯一保留的底线是:**不要把写前版本扫描也删掉**。这是很低成本的防覆盖动作和治理不是一类东西。除此之外production-light 可以大胆减。
# 6
同意:**不要把写前版本扫描也删掉**
你现在发一组新的包给新子线程吧。
# 7
这次我看到了子会话的工作过程是先出每个图的brief和prompt然后再一个个生图。这是一个更合理的过程因为图是连续的这样对“剧情”的理解更通透。这3个图也都通过。
速度明显提升现在3个图总共10m32s之前1个都在10m左右Tokens总共114k。
这个方向没任何问题。
我们的第二组测试也完毕了,这个完全可以作为正式的生产来用。
补充一下发起子会话主会话是有命名能力的以后都是“子会话xxxx”这样我在界面上看到的可以直接区分。
现在可以进行文档/规则的修复了。
已完成文档/规则修复,当前生产线已经落成默认规则:`project.md` 记录项目阶段;`在路上` 已切到 `production-light`;正式生产默认是命名子会话 `子会话:...`,子会话直接完成 brief、prompt、生图、`slides.md` 更新和 compact handoff默认 `review: none`;默认不启用 Agent/SubAgent默认不写 packet/return默认不跑最终完整性审计。写前版本扫描、append-only、禁止覆盖仍保留。
主要改动落在:
- [AGENTS.md](C:/Users/wangq/Documents/Codex/video-workbench/AGENTS.md)
- [VIDEO_WORKBENCH.md](C:/Users/wangq/Documents/Codex/video-workbench/VIDEO_WORKBENCH.md)
- [slide-task-orchestration.md](C:/Users/wangq/Documents/Codex/video-workbench/docs/workflows/slide-task-orchestration.md)
- [slide-task-templates.md](C:/Users/wangq/Documents/Codex/video-workbench/docs/workflows/slide-task-templates.md)
- [project.md](C:/Users/wangq/Documents/Codex/video-workbench/projects/2026-06-23-在路上/project.md)
- [execution-plan.md](C:/Users/wangq/Documents/Codex/video-workbench/projects/2026-06-23-在路上/execution-plan.md)
- [slides.md](C:/Users/wangq/Documents/Codex/video-workbench/projects/2026-06-23-在路上/slides/slides.md)
- [task-plan.md](C:/Users/wangq/Documents/Codex/video-workbench/projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/task-plan.md)
- [task-log.md](C:/Users/wangq/Documents/Codex/video-workbench/projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/task-log.md)
也记录了两组测试结论:`session-12` 的 25m48s / 134K tokens以及 `session-13` 直连子会话无 Agent 的 10m32s / 114K tokens并把后者设为正式生产默认。
验证做了两项:`git diff --check` 没有空白错误,只有 Git 的 CRLF 归一化提示;针对 production-light 相关旧词做了搜索,剩余的 `completion gate` / `return receipt` 都在历史记录、测试/审计语境,或“生产线不要做”的规则里。工作区还保留 session-12/session-13 生成的未跟踪 brief/prompt/image/handoff 产物,我没有回退或整理这些子会话输出。
# 8
因为context超限`上下文已自动压缩`。
这是我们这个会话,我记录的交流历史`C:\Users\wangq\Documents\Codex\knowledge-vault\discussions\creative\在路上\在路上-video7-测试流程运行7.md`,每一个大标题“#”代表一个新回合。
这次的改动大,看看是否需要再检查一遍,若缺信息可以问我要。
---
准备一个交接文档,我下个新会话,会做一些清理和讨论工作:
关闭测试,进入正式运行。
正式运行,我可能会直接进入交流,要求生图。
这个时候,主会话应该加载哪些,加载顺序是什么,我们的工作范围(镜头范围)如何界定。
交接文档之后,我会对全体做一次提交。
已准备好新的正式生产交接文档:
[2026-06-25-on-the-road-formal-production-handoff.md](C:/Users/wangq/Documents/Codex/video-workbench/handoff/2026-06-25-on-the-road-formal-production-handoff.md)
我也把它加入了 [project.md](C:/Users/wangq/Documents/Codex/video-workbench/projects/2026-06-23-在路上/project.md) 的 `Next Action` 入口,避免新会话继续沿用 R6/R7 测试 handoff。
这份 handoff 重点写清了:
- 新会话加载顺序:讨论/清理模式、可能生图模式、实际镜头范围模式分开加载。
- 正式运行默认:`production-light`、命名子会话 `子会话:...`、直连子会话、无 Agent、无 review、无 packet/return、无最终完整性审计。
- 用户直接说“生图”时的处理方式。
- 当前默认下一组范围:`S-32/S-34/S-35`,并说明 `S-32/S-34` 只能 append-only 出新版本,不能复用 broad-run v1 作为正式结果,除非你明确接受。
- 镜头范围界定规则accepted / production-pass 默认关闭generated 未接受、broad-run 候选、not started、rejected、incomplete 默认开放。
- 清理议题:旧 `slides.md` 中部分 `generated` 状态和用户接受记录不完全一致,下一会话可以先规范这些状态。
我复核了你记录的讨论文件末尾几轮,没有发现需要额外向你确认的信息。`git diff --check` 没有空白错误,只出现 Git 的 CRLF 归一化提示。工作区仍有 session-12/session-13 的未跟踪产物,这些是子会话生成的 brief/prompt/image/handoff我没有改动或清理它们。