规划 Direct 交付合同简化
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
明确仅在正常响应结束后自动复核合同,移除操作结算与补丁成功触发的提前封口 规定由 Agent 根据用户游戏制作意图登记合同,解除空项目强制登记义务 规划删除产物与命令验收要求,保留视觉与玩法现有判据 补齐持久化迁移、回归验收和实施顺序,同步主规范与共享决策
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
# 【实施计划】Direct 交付合同简化
|
||||
|
||||
| 字段 | 值 |
|
||||
| --- | --- |
|
||||
| Version | 0.1 |
|
||||
| Status | planned(仅规划,待实施) |
|
||||
| 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` 同时参与无合同结束、恢复和分析结果判定。
|
||||
- `direct_delivery.rs` 四类 Criterion 与 `direct_tools_mcp.rs` 的 schema 对应。新 Web 合同自动补入构建、入口文件、视觉、玩法;产物摘要函数也用于浏览器证据防篡改,不能整段删除。
|
||||
- 租约重构已允许无合同工具准入,但运行提示和随包技能仍有首次修改前登记、必需构建证明等冲突文案。
|
||||
|
||||
## 修改边界
|
||||
|
||||
允许修改:上述交付/执行/补丁/runtime 模块、工具 schema 与桥、运行提示、随包游戏工作流和浏览器技能中的合同说明、相关测试、主规范及共享记忆。托管验证仅在清除退役验收专属依赖确有必要时修改。
|
||||
|
||||
不修改:浏览器视觉/玩法算法、固定场景、原有双端和证据真实性判据、平台生成协议、Codex 调度、权限、预算值、普通命令返回协议和进程所有权。不新增合同类型或后台生图接口,不调用真实付费 Provider 做默认回归。
|
||||
|
||||
## 实现顺序与检查点
|
||||
|
||||
### 1. 收敛自动验收入口
|
||||
|
||||
- 删除操作结算与 AGC 补丁成功后的 `try_seal`,清理失去用途的 import。
|
||||
- 保留正常模型 `completed` 后的 `finish_model_attempt(true)` 与外层 `review_reply`,以及封口后的 `finish_sealing`;它们属于同一次正常收尾,不另造调度循环。
|
||||
- `agc_delivery_status` 保持只读评估。失败、取消、断连、预算耗尽仍走独立关闭,已有 terminal report 不重新尝试成功验收。
|
||||
- 检查点:已 ready 合同后仍执行第二次操作并输出最终响应;失败/中断模型终态不进入正常验收。
|
||||
|
||||
### 2. 解除宿主预设义务,统一 Agent 提示
|
||||
|
||||
- 从回合启动移除 `requires_new_web_contract` 的义务判定;删除运行模型中的 `requires_contract` 冗余门禁,正常结束只按实际有无合同分流;同步分析结果判定和测试夹具。
|
||||
- 保留宿主环境预检与可信脚手架准备本身的现有入口,解除它们与合同义务的耦合;不得因删掉条件顺带删除正常建项所需准备或恢复已退役 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`。仅调整合同相关指导,保持原语言与浏览器使用说明。
|
||||
- 检查点:无合同可正常结束;只生图、不操作、普通修改均不被项目状态强制验收。真实模型是否遵循提示单独 smoke,不以字符串单测声称意图理解已验证。
|
||||
|
||||
### 3. 删除 artifact/command 合同要求
|
||||
|
||||
- 删除 Criterion 的两类变体、合同专属 CommandPurpose、规范化/标签/评估分支、initialArtifactHashes 和 host-entry/host-build 自动追加;同步 MCP oneOf schema、反馈、样例及相关专属测试。
|
||||
- 保留 scope/changeKind、非空要求、冻结和同参幂等;新登记仅有 visual/gameplay。旧类型新请求返回清楚的参数错误,禁止静默过滤成空合同。
|
||||
- 保留普通文件/命令/构建与 `agc_run_validation` 的结果和失败语义;删除合同对命令返回值的期待,不删除工具自身对真实退出码的报告。
|
||||
- 保留 visual/gameplay 共用的摘要读取、evidence_files_match、运行指纹、场景版本、双端证明及失败写入恢复围栏。仅清理没有其它现役消费者的产物/命令验收代码。
|
||||
- 保留主动登记后的新 Web 视觉/玩法补充规则,注册回包及工具说明列出有效要求;本次不重新设计这两类规则。
|
||||
- 检查点:schema/解析/提示一致,两类退役条件不会出现在新合同评估中,原有视觉/玩法正反证据测试不放宽。
|
||||
|
||||
### 4. 持久化版本与恢复
|
||||
|
||||
- 新合同使用 `agc-direct-delivery.v2`;执行账本移除 requiresContract 时升到 `agc-direct-execution.v3`,在已有解码入口对白名单旧版本迁移,不放宽未知字段校验。
|
||||
- 已 completed/exhausted/interrupted 的旧回合保持原终态和报告,不重新验收旧合同;含 v1 合同的非终态转为 Interrupted,保存旧要求作为历史,说明新用户回合可继续,不复活操作或自动重放。
|
||||
- 旧无合同账本只移除强制登记字段;保留时间、预算、身份和活动操作事实,按现有恢复规则决定是否可用。不能用迁移刷新本轮预算。
|
||||
- 不将 artifact-only 合同删成“空要求全部通过”,不将混合合同静默降级成剩余项通过;新用户回合按新提示重新登记。
|
||||
- 检查点:旧 schema 正反夹具与新回合继续测试通过;升级前后远端操作幂等和旧许可边界不变。
|
||||
|
||||
### 5. 定向验证与文档收口
|
||||
|
||||
- 回归覆盖里程碑全部条款,并更新仍使用退役合同的测试夹具;不要伪造浏览器证据来把普通聊天当成游戏成功验收。
|
||||
- 真实/协议驱动运行时 smoke 验证:证据 ready 后继续操作和输出、正常完成后收尾、空项目无合同请求。Linux 与 Windows 结果分开记录;无真实模型/浏览器/平台环境时明确保留未验证项。
|
||||
- 将主规范的待实现目标融合回现行条款,删除过时 artifact/command、首次强制登记及中途封口描述,更新共享记忆。验收完成后清理本里程碑及实施计划;PR 保持 WIP,视觉/玩法后续议题不在本次实现。
|
||||
|
||||
## 验证命令
|
||||
|
||||
Rust 定向过滤器分别执行 `direct_delivery`、`direct_execution`、`codex_app_server::execution`、`direct_patch`、`direct_validation`、`direct_tool_bridge`、`direct_tools_mcp`、`direct_analytics_tests`;新增跨正常/异常终态的用例运行其所属过滤器。命令模板:
|
||||
|
||||
```sh
|
||||
cargo test --locked --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml --bin genarrative-ai-game-creator-shell <filter>
|
||||
cargo test --locked --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml --test runtime_prompt_bundle_build --test prompt_source_boundaries
|
||||
cargo check --locked --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml --bin genarrative-ai-game-creator-shell
|
||||
npm run check:doc-index
|
||||
npm run check:encoding
|
||||
git diff --check
|
||||
```
|
||||
|
||||
对实际修改的 Rust 文件运行 rustfmt 检查;技能/schema 相关测试按实际消费者选择,不新增逐字复制提示词的断言。不得使用已退役、仓库不存在的 direct-execution-production-fixture 脚本作为验证证据。
|
||||
|
||||
## 时间盒、风险与回滚
|
||||
|
||||
规划按一轮代码核查、一轮文档与门禁完成;实现以步骤 1–4 每步约 30–60 分钟检查点推进,验证单独记录。若发现需改变视觉/玩法判据或 Codex 调度,停在该边界记录下一轮问题,不扩大本计划。
|
||||
|
||||
主要风险是新 Web 判定与强制义务混用、随包技能残留指令、摘要函数误删、异常终态误转成功、旧要求静默丢失。分别用入口/提示检查、证据负例、状态转移与迁移测试约束。
|
||||
|
||||
回滚以整体合同改动为单位,不回滚已提交的租约重构;新格式账本保留,不删除状态来恢复旧版本执行。旧二进制不能读取新版本时拒绝恢复该回合,保留产物并由兼容版本处理。
|
||||
|
||||
本轮只做规划文档检查,不执行上述运行时测试,不修改业务代码,不提交或推送。
|
||||
@@ -0,0 +1,43 @@
|
||||
# 【里程碑】Direct 交付合同简化
|
||||
|
||||
| 字段 | 值 |
|
||||
| --- | --- |
|
||||
| Version | 0.1 |
|
||||
| Status | planned(仅规划,未实现) |
|
||||
| Date | 2026-10-04 |
|
||||
| Parent Spec | [Direct 合同简化目标](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#direct-合同简化目标2026-10-04待实现) |
|
||||
| 关联 | WIP PR #608;问题 #518、#529 |
|
||||
|
||||
## 交付结果与范围
|
||||
|
||||
交付由用户游戏制作意图驱动、只在正常响应结束后自动复核的合同机制,删除 artifact/command 验收要求,并保证无合同不阻断普通操作和正常结束。
|
||||
|
||||
必须项:触发时机、提示词与宿主义务解除、退役两类要求。风险项:正常/异常终态、旧合同恢复、与视觉/玩法共享的证据代码。可选项:无;不扩展诊断 UI 或合同生命周期。
|
||||
|
||||
基于已提交租约重构代码规划。租约 Windows Job 验收仍待补,不将其视为已通过,也不借本里程碑修改进程控制。用户本轮明确要求继续合同规划;实施与平台验收分别报告。
|
||||
|
||||
## 行为与边界
|
||||
|
||||
- Agent 在用户要求制作、完成、交付游戏时登记合同;仅提到游戏、只生图、只读代码、咨询或“什么也不做”不构成强制登记。宿主不解析关键词,不根据空项目/脚手架/创建入口强制合同。
|
||||
- 无合同的正常回合在清理后结束,不触发缺合同返修;普通文件、执行、生成和验证只遵循现有操作控制。
|
||||
- 操作结算、补丁成功、合同登记及状态查询都不能自动封口。只有模型正常完成本次响应后才允许自动进入合同复核。已满足合同的 Agent 可以继续处理本轮用户要求并写完回复。
|
||||
- 正常完成时,有合同则复用通过→最终复核→完成、未通过→有界反馈的流程;无合同不生成游戏验收成功报告。取消、耗尽、断连等保留自己的终态。
|
||||
- 新登记仅支持 visual/gameplay;artifact/command 参数明确拒绝,不静默忽略。删除宿主自动补入的 artifact/command;保留普通构建/命令工具及其错误。
|
||||
- visual/gameplay 的双端、场景、指纹、文件摘要和可信来源不变;仅在主动登记的新 Web 合同上保留原有视觉/玩法补充,不增加新默认项。
|
||||
- 单回合冻结、同参幂等、数量限制、禁止自报 passed 不变。已有终态不重开;旧合同未完成不自动迁成成功;同回合预算不重置。
|
||||
|
||||
## 验收标准
|
||||
|
||||
- [ ] 证据已齐备,原生命令、文件修改、第三方 MCP 结算及 AGC 补丁完成后仍可继续操作,直到模型正常返回。
|
||||
- [ ] agc_delivery_status 返回 ready 时仍不封口;正常响应结束后才进入既有复核/收尾。
|
||||
- [ ] 空项目“什么也不做”“只生成一张图,不做游戏”无合同可正常完成;已有项目行为一致。
|
||||
- [ ] 实际发送给模型的提示和工具 schema 条件一致;随包技能不再要求首次修改前登记。游戏制作意图由 Agent 判断。
|
||||
- [ ] 无合同可写文件、运行命令、发起图片生成和验证;预算、取消、并发、权限和远端幂等回归通过。
|
||||
- [ ] 新合同拒绝 artifact/command;无 host-entry/host-build、初始产物摘要或命令返回验收。
|
||||
- [ ] visual/gameplay 原有通过、失败、漂移、截图/报告篡改及场景不匹配用例维持原判据。
|
||||
- [ ] 正常验收失败仍有界反馈;异常中断或预算耗尽不能变成成功,下一条用户输入可新开回合。
|
||||
- [ ] 旧终态、旧未完成合同、仅含退役要求、混合要求、旧无合同强制标记、活动操作及未知字段均有迁移反例;预算不刷新。
|
||||
|
||||
## 证据与剩余项
|
||||
|
||||
具体文件、顺序、命令见[实施计划](./【实施计划】Direct交付合同简化-2026-10-04.md)。本轮仅交付计划,无业务代码或运行时验证结论。视觉/玩法设计评估保留给下一轮;Windows 与真实模型 smoke 未执行时必须明确标为未验证。
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
在现有 WIP PR #608 内规划租约重构:将普通操作控制收敛为回合、时间、并发及既有权限检查,消除单次操作失败造成的全局停顿。租约切片已按用户于 2026-10-04 的实施指令落地。验收以失败操作不阻塞无关工作、关闭后不能新增副作用为核心。
|
||||
|
||||
优先顺序:必须项为明确操作失败与回合控制的边界;风险项为取消、并发、旧回合归属及远端结果不确定;可选项为诊断呈现,按实现需要再决定。规范与计划已完成评审并实施;当前检查点是平台验收,不推进合同切片。
|
||||
优先顺序:必须项为明确操作失败与回合控制的边界;风险项为取消、并发、旧回合归属及远端结果不确定;可选项为诊断呈现,按实现需要再决定。规范与计划已完成评审并实施;当前检查点是平台验收。用户于 2026-10-04 要求继续[合同简化规划](./【里程碑】Direct交付合同简化-2026-10-04.md),独立记录范围与验收,不将租约 Windows 待验收项视为已完成。
|
||||
|
||||
## 问题与已确认方向
|
||||
|
||||
|
||||
@@ -9571,3 +9571,11 @@ CI 上 `background_agent_runtime_recovers_stale_running_before_pending_task` 在
|
||||
- `validation.maxRuns` 只保留交付回复复核用途;合同的创建时机、artifact/command 移除及视觉/玩法判据不在本次操作控制修改内。图片工具仍等待结果,Codex 调度不变。
|
||||
- v2 执行账本只对白名单 v1 字段迁移,保留预算与终态,不恢复旧活动权限;没有可信时间记录的更早项目侧账本不授予同回合新预算。
|
||||
- 权威边界与验收入口:[AI 游戏创作智能体 App 实施计划](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#direct-操作控制2026-10-04)。Windows Job 退出证明仍须由 Windows 环境验收。
|
||||
|
||||
## 2026-10-04:Direct 合同简化方向(已确定,待实现)
|
||||
|
||||
- 合同自动检查只在模型正常结束响应后触发;删除操作结算与补丁成功触发的提前封口,状态查询保持只读评估。异常终止与预算耗尽仍独立处理,不以证据齐备覆盖失败事实。
|
||||
- 提示 Agent 在用户要求制作、完成或交付游戏时登记合同,由 Agent 理解用户意图;空项目、首次输入和脚手架不产生宿主强制登记义务。无合同既不阻断普通操作,也不阻断正常结束。
|
||||
- 删除 artifact/command 合同要求及宿主自动补入项,保留普通文件、命令与构建能力。视觉/玩法的现有判据和证据真实性校验不改,仅在主动注册后应用原有新 Web 视觉/玩法补充;相关设计留待下一轮。
|
||||
- 旧未完成合同不得因过滤退役要求变成成功;保留旧预算、终态和操作身份,版本迁移与恢复有独立验收。
|
||||
- 计划与权威目标:[Direct 合同简化目标](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#direct-合同简化目标2026-10-04待实现)。本记录是后续目标,不代表运行时代码已实现。
|
||||
|
||||
@@ -172,6 +172,20 @@ UI 编辑器的“分析参考图”步骤、Rust 命令 `suggest_ui_design_sema
|
||||
|
||||
验收至少覆盖失败图片与长命令并存时无关写入成功、连续工具失败不触发返修次数限制、所有退出路径释放并发占用、关闭后零新增执行/付费提交、迟到写入被拒绝,以及远端不确定任务不重复提交。自动化证据与平台未验证项记录在关联实施计划中;Linux 进程组清理不冒充 Windows Job 的完整子树退出证明。
|
||||
|
||||
### Direct 合同简化目标(2026-10-04,待实现)
|
||||
|
||||
本节记录已确认的下一步行为,尚未替换下节所述现行实现。范围及验收见[合同简化里程碑](../project-memory/plans/【里程碑】Direct交付合同简化-2026-10-04.md);实现验收后将本节融合回现行合同,清理被替代规则。
|
||||
|
||||
- 合同由 Agent 根据用户要求制作、完成或交付游戏的意图登记。系统提示明确这一条件及同义表达,不把“空项目”“首次输入”“做游戏入口”或可信脚手架当成必须登记合同的依据;宿主不新增关键词匹配或 LLM 意图判定。
|
||||
- 无合同允许普通文件写入、命令、图片生成及验证,也允许正常结束回合;仍执行原权限、时间预算、并发、资源幂等和退出清理。Agent 漏登记不由宿主通过项目状态补成隐含合同或强制登记反馈。
|
||||
- 自动验收仅在模型正常结束本次响应后启动。普通操作结算和补丁成功不启动封口;状态查询只返回评估,不关闭回合。完成响应后的封口、退出证明、最终证据复核和有界返修继续复用现有流程。
|
||||
- 取消、时间耗尽、执行器断连或不可恢复错误仍独立终止;异常停止不能因为当时证据齐备而被改写成交付成功。最终复核只是正常收尾的一部分,不是新增的中途触发器。
|
||||
- 新登记合同只接受现有 visual/gameplay 要求;删除 artifact/command 类型、文件变化验收、命令返回值验收及自动追加的 host-entry/host-build。普通读写、命令、构建和 agc_run_validation 能力及真实错误回执继续保留,不把删除验收项解释为隐藏命令失败。
|
||||
- 本次不改变视觉/玩法判据、固定场景、双端要求、证据来源、指纹及报告/截图摘要校验。新 Web 合同已有的视觉/玩法补充规则仅在 Agent 主动登记后适用,不再产生无合同回合义务;登记返回完整有效要求。是否继续保留这些补充规则留待下一轮讨论。
|
||||
- 合同仍为单回合、非空、有界、冻结后同参幂等;不新增空合同成功、合同类型、后台任务或续约机制。新消息建立新回合,不继承上一轮合同义务。
|
||||
- 持久化格式变更采用白名单版本迁移,保留预算、旧终态和历史证据。含旧版合同的未结束回合保留为未完成并提示在新用户回合继续,不通过删去旧要求直接判为完成;未登记合同的旧账本移除强制登记标记后仍按原预算、活动操作与退出证明恢复规则处理。
|
||||
- 验收必须覆盖:证据齐备后仍能完成后续操作与最终响应、空项目只生图/不操作可结束、无合同操作、正常收尾与异常终止分离、退役类型拒绝、旧账本恢复及视觉/玩法原判据不变。
|
||||
|
||||
### 宿主验收与执行许可合同
|
||||
|
||||
- 正式 GUI 和 CLI 的共同 Direct 回合入口建立宿主控制状态,绑定 canonical 项目路径、稳定 clientTurnId 和原始用户输入摘要;宿主私有目录保存权威账本并独占该回合,项目 `.agent` 仅允许保存展示副本。配置或项目侧文件被改写、工具切换、Provider 重试和进程重启不得刷新同一回合的预算。
|
||||
|
||||
Reference in New Issue
Block a user