简化 Direct 交付合同并延后自动验收
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m10s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 4m34s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m11s
Project CI / Backend tests (pull_request) Successful in 7m18s
Project CI / Frontend tests (pull_request) Successful in 3m19s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m11s
Project CI / Native shell tests (pull_request) Successful in 7m22s
Project CI / Repository checks (pull_request) Successful in 6m45s

移除操作结算与补丁成功后的合同检查,仅在正常响应结束后自动复核
按用户制作和交付游戏的意图提示登记,取消空项目强制合同义务
删除产物与命令验收要求,保留视觉和玩法现有判据及证据校验
升级合同与执行账本格式,保留旧预算和终态并安全处理未完成旧合同
同步运行提示、随包技能、回归测试、主规范与实施验收记录
This commit is contained in:
2026-10-04 07:21:03 +01:00
parent 65981237bc
commit c0096c642e
22 changed files with 569 additions and 443 deletions
@@ -2,12 +2,12 @@
| 字段 | 值 |
| --- | --- |
| Version | 0.1 |
| Status | planned(仅规划,待实施) |
| Version | 0.2 |
| Status | implemented(用户指令已授权实施;真实模型及 Windows smoke 待补) |
| Date | 2026-10-04 |
| Milestone | [Direct 交付合同简化](./【里程碑】Direct交付合同简化-2026-10-04.md) |
## 当前代码事实
## 实施前代码事实
- `codex_app_server/execution.rs::spawn_settlement` 和 `direct_patch.rs::apply` 在操作结算/补丁成功后调用 `try_seal`;`finish_model_attempt(successful=true)` 与 `direct_delivery.rs::review_reply` 是正常响应结束后的入口。
- `direct_runtime/mod.rs` 在开始模型调用前通过 `requires_new_web_contract` 设置义务;`direct_execution.rs` 的 `requires_contract` 同时参与无合同结束、恢复和分析结果判定。
@@ -35,7 +35,7 @@
- 保留宿主环境预检与可信脚手架准备本身的现有入口,解除它们与合同义务的耦合;不得因删掉条件顺带删除正常建项所需准备或恢复已退役 CLI。
- 初次交付记录/可信脚手架事实仅在 Agent 主动注册时用于现有新 Web visual/gameplay 补充;重放注册复用冻结的 `newWebGame`,不重新计算或更改有效要求。
- 系统提示使用明确条件:“当用户要求你制作、完成或交付游戏(例如‘做一个游戏’‘做一个可运行的游戏’)时,调用 agc_register_delivery_contract 登记本轮交付范围和验收项。”写明普通操作无需合同,不能因空项目或首次输入强制登记。宿主不新增词表匹配、分类器或缺合同兜底追问。
- 同步 `prompts/runtime/texts/direct.json` 的 hostDelivery/deliveryFeedback、`direct-tools.json`、`resources/agc-skills/agc-game-production-workflow/{SKILL.md,references/workflow-contract.md}` 与 `agc-browser-playtest/SKILL.md`。仅调整合同相关指导,保持原语言与浏览器使用说明。
- 同步 `prompts/runtime/texts/direct.json` 的 hostDelivery/deliveryFeedback、`direct-tools.json`、`resources/agc-skills/agc-game-production-workflow/{SKILL.md,references/workflow-contract.md}` 、`agc-web-game-development/SKILL.md` 与 `agc-browser-playtest/SKILL.md`。仅调整合同相关指导,保持原语言与浏览器使用说明。
- 检查点:无合同可正常结束;只生图、不操作、普通修改均不被项目状态强制验收。真实模型是否遵循提示单独 smoke,不以字符串单测声称意图理解已验证。
### 3. 删除 artifact/command 合同要求
@@ -84,4 +84,24 @@ git diff --check
回滚以整体合同改动为单位,不回滚已提交的租约重构;新格式账本保留,不删除状态来恢复旧版本执行。旧二进制不能读取新版本时拒绝恢复该回合,保留产物并由兼容版本处理。
本轮只做规划文档检查,不执行上述运行时测试,不修改业务代码,不提交或推送。
## 实施结果与验收证据(2026-10-04)
- 已移除操作结算和补丁成功后的自动封口,只保留正常响应结束后的入口及封口最终复核;状态查询不变更阶段。
- 已移除回合启动的强制合同判定及 requiresContract 字段。正式入队侧 `direct_runtime/user_input.rs` 的工程准备仍保留;删除的是退役 CLI 留在回合内部、与合同义务耦合的重复准备分支。
- 已移除 artifact/command 的 schema、解析、验收、初始产物摘要和宿主追加项;保留命令工具、构建结果与浏览器证据摘要。新增合同为 v2,执行账本为 v3,v1/v2 迁移不刷新预算、不将旧要求降级为成功。
- 已同步系统提示、工具描述、游戏生产/浏览器/Web 开发三份随包技能及工作流参考;manifest 由正式同步脚本更新。
- 主规范及共享决策已融合当前行为,无业务代码提交或推送。
| 验收面 | 证据 | 结果与边界 |
| --- | --- | --- |
| 操作完成不提前结束 | adapter 的命令、原生文件修改、第三方 MCP 协议回归;ready 后继续准入 | 通过 |
| 完整响应先于宿主收尾 | Linux 真子进程模拟 app-server:已 ready→命令审批/完成→延迟→完整响应→正常终态 | 通过;仅验证协议与宿主链路,不等于真实 LLM 或 Windows Job smoke |
| 无合同操作和结束 | 工具桥夹具不再登记合同;原有写入/图片 mock 回归、空项目 no-op/image-only 宿主结束用例 | 通过;未真实付费生成,不声称已验证模型意图理解 |
| 新 Web 规则边界 | 未注册不生成义务,主动注册后仅补视觉/玩法,注册重放一致 | 通过 |
| 类型/证据 | 两类退役要求单独及混合拒绝;visual/gameplay 双端、固定场景、版本、指纹及文件篡改反例 | 通过;浏览器判据未修改 |
| 异常终止 | ready 后中断仍返回中断报告;原预算、取消、旧许可、清理回归 | 通过 |
| 恢复 | v1/v2 旧合同及终态、v2 无合同强制标记、未知字段、预算与旧活动操作;旧终态合同只查询历史 | 通过 |
| AGC 补丁成功 | Windows bundled patch 回归增加 ready 后无变化补丁不封口断言 | 已编写,Linux 环境未运行 Windows 用例 |
| 提示一致性 | MCP schema、prompt bundle/source boundaries、技能 manifest 与内容校验 | 通过;真实模型多种语言的意图遵循待 smoke |
定向结果:`direct_` 376 passed、1 ignored(既有辅助夹具);`codex_app_server::execution` 19 passed;完整响应协议回归 1 passed;`skill_pack` 7 passed;`runtime_prompt_bundle_build` 6 passed、`prompt_source_boundaries` 18 passed;Node 技能包测试 3 passed。`cargo check --locked`、修改文件 rustfmt、文档索引、编码与 diff 检查通过;编译仍有仓库既有告警。上述过滤器部分重叠,不相加为独立用例总数。初次沙箱运行的 loopback 绑定/Node 子进程失败已在具备对应权限的本地夹具中重跑;不把环境拒绝当作行为通过。Windows 和真实模型验收待补,因此暂保留里程碑与计划。
@@ -2,10 +2,10 @@
| 字段 | 值 |
| --- | --- |
| Version | 0.1 |
| Status | planned(仅规划,未实现) |
| Version | 0.2 |
| Status | implemented(实现与定向验证完成;真实模型及 Windows smoke 待补) |
| Date | 2026-10-04 |
| Parent Spec | [Direct 合同简化目标](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#direct-合同简化目标2026-10-04待实现) |
| Parent Spec | [Direct 合同规则](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#宿主验收与执行许可合同) |
| 关联 | WIP PR #608;问题 #518、#529 |
## 交付结果与范围
@@ -28,16 +28,16 @@
## 验收标准
- [ ] 证据已齐备,原生命令、文件修改、第三方 MCP 结算及 AGC 补丁完成后仍可继续操作,直到模型正常返回。
- [ ] agc_delivery_status 返回 ready 时仍不封口;正常响应结束后才进入既有复核/收尾。
- [ ] 空项目“什么也不做”“只生成一张图,不做游戏”无合同可正常完成;已有项目行为一致。
- [ ] 实际发送给模型的提示和工具 schema 条件一致;随包技能不再要求首次修改前登记。游戏制作意图由 Agent 判断。
- [ ] 无合同可写文件、运行命令、发起图片生成和验证;预算、取消、并发、权限和远端幂等回归通过。
- [ ] 新合同拒绝 artifact/command;无 host-entry/host-build、初始产物摘要或命令返回验收。
- [ ] visual/gameplay 原有通过、失败、漂移、截图/报告篡改及场景不匹配用例维持原判据。
- [ ] 正常验收失败仍有界反馈;异常中断或预算耗尽不能变成成功,下一条用户输入可新开回合。
- [ ] 旧终态、旧未完成合同、仅含退役要求、混合要求、旧无合同强制标记、活动操作及未知字段均有迁移反例;预算不刷新。
- [x] 证据已齐备,原生命令、文件修改、第三方 MCP 结算及 AGC 补丁完成后仍可继续操作,直到模型正常返回。
- [x] agc_delivery_status 返回 ready 时仍不封口;正常响应结束后才进入既有复核/收尾。
- [x] 空项目“什么也不做”“只生成一张图,不做游戏”无合同可正常完成;已有项目行为一致。
- [x] 实际发送给模型的提示和工具 schema 条件一致;随包技能不再要求首次修改前登记。游戏制作意图由 Agent 判断。
- [x] 无合同可写文件、运行命令、发起图片生成和验证;预算、取消、并发、权限和远端幂等回归通过。
- [x] 新合同拒绝 artifact/command;无 host-entry/host-build、初始产物摘要或命令返回验收。
- [x] visual/gameplay 原有通过、失败、漂移、截图/报告篡改及场景不匹配用例维持原判据。
- [x] 正常验收失败仍有界反馈;异常中断或预算耗尽不能变成成功,下一条用户输入可新开回合。
- [x] 旧终态、旧未完成合同、仅含退役要求、混合要求、旧无合同强制标记、活动操作及未知字段均有迁移反例;预算不刷新。
## 证据与剩余项
具体文件、顺序、命令见[实施计划](./【实施计划】Direct交付合同简化-2026-10-04.md)。本轮仅交付计划,无业务代码或运行时验证结论。视觉/玩法设计评估保留给下一轮;Windows 与真实模型 smoke 未执行时必须明确标为未验证。
具体文件、顺序、命令见[实施计划](./【实施计划】Direct交付合同简化-2026-10-04.md)。实现已完成,自动化与 Linux 子进程协议夹具证据见实施计划。以上勾选表示代码/定向测试条款通过,不代表真实模型的意图理解或 Windows 完整进程子树已验收。视觉/玩法设计评估保留给下一轮;未完成的平台 smoke 保留计划及 WIP 状态。
@@ -12,7 +12,7 @@
在现有 WIP PR #608 内规划租约重构:将普通操作控制收敛为回合、时间、并发及既有权限检查,消除单次操作失败造成的全局停顿。租约切片已按用户于 2026-10-04 的实施指令落地。验收以失败操作不阻塞无关工作、关闭后不能新增副作用为核心。
优先顺序:必须项为明确操作失败与回合控制的边界;风险项为取消、并发、旧回合归属及远端结果不确定;可选项为诊断呈现,按实现需要再决定。规范与计划已完成评审并实施;当前检查点是平台验收。用户于 2026-10-04 要求继续[合同简化规划](./【里程碑】Direct交付合同简化-2026-10-04.md),独立记录范围与验收,不将租约 Windows 待验收项视为已完成。
优先顺序:必须项为明确操作失败与回合控制的边界;风险项为取消、并发、旧回合归属及远端结果不确定;可选项为诊断呈现,按实现需要再决定。规范与计划已完成评审并实施;当前检查点是平台验收。用户于 2026-10-04 要求继续并实施[合同简化](./【里程碑】Direct交付合同简化-2026-10-04.md),独立记录范围与验收,不将租约 Windows 待验收项视为已完成。
## 问题与已确认方向
@@ -9587,14 +9587,14 @@ CI 上 `background_agent_runtime_recovers_stale_running_before_pending_task` 在
- 普通工具准入只检查原回合活动状态、时间预算、并发和既有权限,不要求先登记交付合同;成功/失败/取消只结算本次操作,删除全局 Draining 与执行/返修批次计数。
- 验证失败和源码漂移影响对应证据,不阻断无关工作。远端不确定结果沿资源自身 operation/幂等记录核对;本地执行器失控或持久状态损坏仍结束回合。
- 保留累计执行时间、整轮墙钟、原生执行前审批、关闭时清理与原回合写入/付费提交检查。模型执行结束时先关闭准入,确认清理后才允许交付反馈继续;普通失败不进入关闭阶段。
- `validation.maxRuns` 只保留交付回复复核用途;合同的创建时机、artifact/command 移除及视觉/玩法判据不在本次操作控制修改内。图片工具仍等待结果,Codex 调度不变。
- `validation.maxRuns` 只保留交付回复复核用途;合同的创建与两类要求简化见下条决策,视觉/玩法判据保持原样。图片工具仍等待结果,Codex 调度不变。
- v2 执行账本只对白名单 v1 字段迁移,保留预算与终态,不恢复旧活动权限;没有可信时间记录的更早项目侧账本不授予同回合新预算。
- 权威边界与验收入口:[AI 游戏创作智能体 App 实施计划](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#direct-操作控制2026-10-04)。Windows Job 退出证明仍须由 Windows 环境验收。
## 2026-10-04:Direct 合同简化方向(已确定,待实现)
## 2026-10-04:Direct 合同按用户意图登记、正常响应结束后复核
- 合同自动检查只在模型正常结束响应后触发;删除操作结算与补丁成功触发的提前封口,状态查询保持只读评估。异常终止与预算耗尽仍独立处理,不以证据齐备覆盖失败事实。
- 提示 Agent 在用户要求制作、完成或交付游戏时登记合同,由 Agent 理解用户意图;空项目、首次输入和脚手架不产生宿主强制登记义务。无合同既不阻断普通操作,也不阻断正常结束。
- 删除 artifact/command 合同要求及宿主自动补入项,保留普通文件、命令与构建能力。视觉/玩法的现有判据和证据真实性校验不改,仅在主动注册后应用原有新 Web 视觉/玩法补充;相关设计留待下一轮。
- 旧未完成合同不得因过滤退役要求变成成功;保留旧预算、终态和操作身份,版本迁移与恢复有独立验收。
- 计划与权威目标:[Direct 合同简化目标](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#direct-合同简化目标2026-10-04待实现)。本记录是后续目标,不代表运行时代码已实现。
- 权威规则:[Direct 合同规则](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#宿主验收与执行许可合同)。运行时已实现;真实模型意图遵循与 Windows 验收按计划单列,不以协议夹具代替。