简化 Direct 操作控制并移除全局租约门禁
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
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
移除全局排空、执行返修批次与合同存在性的操作准入限制 保留时间预算、并发控制、原回合权限和执行器清理边界 迁移执行账本并隔离普通失败与资源结果不确定状态 更新提示词、回归测试、主规范和实施验收记录
This commit is contained in:
@@ -2,11 +2,11 @@
|
||||
|
||||
| 字段 | 值 |
|
||||
| --- | --- |
|
||||
| Version | 0.1 |
|
||||
| Status | proposed(评审草案,未开始实现) |
|
||||
| Version | 0.2 |
|
||||
| Status | implemented(2026-10-04 已实现;待 Windows 平台验收) |
|
||||
| Date | 2026-10-03 |
|
||||
| Milestone | [Direct 合同与租约机制重构:租约切片](./【里程碑】Direct合同与租约机制重构-2026-10-03.md) |
|
||||
| Parent Spec | [Direct 操作控制简化提案](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#direct-操作控制简化提案2026-10-03待实现) |
|
||||
| Parent Spec | [Direct 操作控制](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#direct-操作控制2026-10-04) |
|
||||
|
||||
## 交付与优先级
|
||||
|
||||
@@ -99,4 +99,40 @@ git diff --check
|
||||
- 同步修改状态消费者、报告及相关提示,不留下运行时已经允许、提示仍命令 Agent 停止的矛盾。
|
||||
- 实现按上述步骤保留可回退提交。回滚前结束自有回合并确认进程退出,核对账本版本可读性;不得通过删账本或重发远端请求完成回滚。
|
||||
|
||||
本计划尚未实施。完成后提交逐条证据,融合主规范与长期记忆,再清理临时计划;WIP PR 在验收前保持 WIP。
|
||||
本计划已实施,主规范和长期记忆已同步。以下证据来自本次实际运行;Windows 平台验收前保留本计划,PR #608 保持 WIP。
|
||||
|
||||
|
||||
## 2026-10-04 实施与验证记录
|
||||
|
||||
### 规范对照
|
||||
|
||||
| 条款 | 实现与证据 | 结果 |
|
||||
| --- | --- | --- |
|
||||
| 普通失败不触发全局停止/返修批次 | 移除 Draining、used_passes 和合同准入;`repeated_failures_do_not_consume_delivery_reviews_or_block_other_operations` | 通过 |
|
||||
| 在途长命令不阻塞失败后的无关调用 | 原生适配器保留 processId 在途事实,同时允许实际文件写入和新的命令审批;`failed_image_does_not_block_writes_or_commands_while_native_process_is_running` | 通过 |
|
||||
| 并发与操作终结 | 成功、失败、取消 future、异常展开释放占用,重复结算不重复计时;混合 MCP 并发回归 | 通过 |
|
||||
| 关闭与原回合边界 | Closing 先关闭准入,再核对清理;等锁迟到写入、关闭后付费排队、新回合下旧许可拒绝 | 通过 |
|
||||
| 时间预算与迁移 | 保留累计执行/墙钟口径;v1 预算及终态保留,旧活动记录不恢复权限,未知字段拒绝 | 通过 |
|
||||
| 验证失败与远端不确定结果 | 不再由通用操作结算中断整轮;证据仍不通过,资源幂等及对账路径保留;本地清理未确认仍关闭回合 | 通过 |
|
||||
| 合同范围与调度边界 | 仅解除操作准入前置条件、清除矛盾提示;视觉/玩法与 artifact/command 判据保留;未改 Codex 循环和图片返回协议 | 通过 |
|
||||
| 自有进程退出 | Unix 实际后台 writer 在 shutdown 后停止写入,退出证明仅声明 process-group 范围 | Linux 通过;Windows 待验收 |
|
||||
|
||||
### 自动化验证
|
||||
|
||||
| 验证范围 | 结果 |
|
||||
| --- | --- |
|
||||
| `direct_execution` | 31 passed |
|
||||
| `codex_app_server::execution` | 18 passed |
|
||||
| `codex_app_server::process_tree` | 3 passed;1 个仅供子进程启动的 fixture 保持 ignored,实际清理测试会显式启动它 |
|
||||
| `direct_paid_submission` | 6 passed |
|
||||
| `direct_tool_bridge` | 43 passed;首次沙箱禁止 loopback 导致 5 个测试失败,授予本地监听权限后全数通过 |
|
||||
| `direct_validation` | 9 passed |
|
||||
| `direct_delivery` | 6 passed |
|
||||
| `direct_patch` | 5 passed;Windows 捆绑补丁运行用例在 Linux 不编译 |
|
||||
| 混合 MCP 并发 dispatcher | 1 passed |
|
||||
| Direct analytics | 2 passed |
|
||||
| `runtime_prompt_bundle_build` / `prompt_source_boundaries` | 6 / 18 passed |
|
||||
| 生产二进制 `cargo check` | 通过 |
|
||||
| 修改文件 rustfmt、文档索引、编码、`git diff --check` | 通过 |
|
||||
|
||||
未调用真实付费 Provider,没有修改工具调度或图片异步协议。Windows Job 子树退出及 Windows 捆绑 Codex 补丁运行需在目标平台补验;当前 Linux 证据不替代该验收。原有编译警告未作为本次重构范围扩展处理。
|
||||
|
||||
@@ -2,17 +2,17 @@
|
||||
|
||||
| 字段 | 值 |
|
||||
| --- | --- |
|
||||
| Version | 0.2 |
|
||||
| Status | proposed(本次细化租约切片,待评审,未实现) |
|
||||
| Version | 0.3 |
|
||||
| Status | implemented(2026-10-04 已实现;Linux 定向验证通过,Windows 验收待补) |
|
||||
| Date | 2026-10-03 |
|
||||
| Parent Spec | [AI 游戏创作智能体 App 实施计划](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#direct-操作控制简化提案2026-10-03待实现) |
|
||||
| Parent Spec | [AI 游戏创作智能体 App 实施计划](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#direct-操作控制2026-10-04) |
|
||||
| 关联问题 | #518、#529 |
|
||||
|
||||
## 本次交付与范围
|
||||
|
||||
在现有 WIP PR #608 内规划租约重构:将普通操作控制收敛为回合、时间、并发及既有权限检查,消除单次操作失败造成的全局停顿。本次只交付规范与计划,不修改运行时行为。验收以失败操作不阻塞无关工作、关闭后不能新增副作用为核心。
|
||||
在现有 WIP PR #608 内规划租约重构:将普通操作控制收敛为回合、时间、并发及既有权限检查,消除单次操作失败造成的全局停顿。租约切片已按用户于 2026-10-04 的实施指令落地。验收以失败操作不阻塞无关工作、关闭后不能新增副作用为核心。
|
||||
|
||||
优先顺序:必须项为明确操作失败与回合控制的边界;风险项为取消、并发、旧回合归属及远端结果不确定;可选项为诊断呈现,按实现需要再决定。第一个检查点是完成主规范和单里程碑实现计划,当前不进入业务代码实现。
|
||||
优先顺序:必须项为明确操作失败与回合控制的边界;风险项为取消、并发、旧回合归属及远端结果不确定;可选项为诊断呈现,按实现需要再决定。规范与计划已完成评审并实施;当前检查点是平台验收,不推进合同切片。
|
||||
|
||||
## 问题与已确认方向
|
||||
|
||||
@@ -34,17 +34,17 @@
|
||||
|
||||
## 租约切片验收标准
|
||||
|
||||
- [ ] 图片生成失败后,Agent 收到真实错误;无关文件编辑和命令不因全局排空被拒绝。
|
||||
- [ ] 一条长命令与失败图片请求同时存在时,不复现 #529 的全局拦写;长命令仍受并发容量、取消和时间控制。
|
||||
- [ ] 并发超过上限时保持有界;成功、失败、取消及异常路径正确释放槽位。
|
||||
- [ ] 回合结束或时间耗尽后零新增调用,已拥有的本地进程正确回收;迟到操作不越过原回合写入边界。
|
||||
- [ ] 新用户消息可以在旧执行器正确退出后开启新回合;旧的不确定远端操作不被盲目重放。
|
||||
- [ ] 无合同也能通过普通操作准入;既有权限、路径和付费约束仍生效。
|
||||
- [ ] 连续操作失败超过原 maxRuns 不阻止继续工作;交付复核次数不被操作成功或失败消耗。
|
||||
- [ ] 验证失败或输入变化只影响对应结果与证据,不阻断无关操作。
|
||||
- [ ] 同回合重试、重启或旧账本读取不刷新时间预算、不恢复旧操作权限。
|
||||
- [ ] 保留原有并行调度,未引入图片后台接口或修改模型循环;合同视觉/玩法判据未变化。
|
||||
- [x] 图片生成失败后,Agent 收到真实错误;无关文件编辑和命令不因全局排空被拒绝。
|
||||
- [x] 一条长命令与失败图片请求同时存在时,不复现 #529 的全局拦写;长命令仍受并发容量、取消和时间控制。
|
||||
- [x] 并发超过上限时保持有界;成功、失败、取消及异常路径正确释放槽位。
|
||||
- [ ] 回合结束或时间耗尽后零新增调用,已拥有的本地进程正确回收;迟到操作不越过原回合写入边界。Linux 控制夹具和实际进程组清理已通过;Windows Job 完整子树证明未验证。
|
||||
- [x] 新用户消息可以在旧执行器正确退出后开启新回合;旧的不确定远端操作不被盲目重放。
|
||||
- [x] 无合同也能通过普通操作准入;既有权限、路径和付费约束仍生效。
|
||||
- [x] 连续操作失败超过原 maxRuns 不阻止继续工作;交付复核次数不被操作成功或失败消耗。
|
||||
- [x] 验证失败或输入变化只影响对应结果与证据,不阻断无关操作。
|
||||
- [x] 同回合重试、重启或旧账本读取不刷新时间预算、不恢复旧操作权限。
|
||||
- [x] 保留原有并行调度,未引入图片后台接口或修改模型循环;合同视觉/玩法判据未变化。
|
||||
|
||||
## 后续工作入口
|
||||
|
||||
租约切片对应[实施计划草案](./【实施计划】Direct操作控制与租约简化-2026-10-03.md),评审前不进入业务代码。实现完成后把稳定结论融合回主规范与共享记忆,清理临时计划;合同工作另行规划和验收。
|
||||
租约切片对应[实施与验证记录](./【实施计划】Direct操作控制与租约简化-2026-10-03.md),其中记录定向验证证据与未验证项。稳定行为已同步主规范和共享记忆;Windows 验收前保留临时计划及 WIP 状态,合同工作另行规划和验收。
|
||||
|
||||
@@ -9553,3 +9553,13 @@ CI 上 `background_agent_runtime_recovers_stale_running_before_pending_task` 在
|
||||
- 验证:`npm run agc:bundled-resources:test`(18 passed,含 sidecar 归位、跳过规则、上游缺失、版本漂移、目录被占);`npm run agc:bundled-resources:check`、`check-config.mjs`、`cargo test --bin genarrative-ai-game-creator-shell package_layout::tests`、`cargo check --no-default-features`、`cargo fmt --check`、`check:encoding`、eslint/prettier 全部通过;Windows 真机准备步骤 staging 24 个文件(含 243MB `claude.exe`)后 `cargo check` 不再出现构建期写入。
|
||||
- 边界(未验证):macOS 真机的 sidecar 加载与 `check-macos-bundle.mjs` 包内容门禁未在本机验证;Linux 门禁按新配置不再要求 sidecar 资源,需 CI 实跑确认转绿。
|
||||
- 关联:issue #519、master `fb130d184`、`docs/technical/【技术方案】AGC随包资源staging归位-2026-09-26.md`、CI run 3083。
|
||||
|
||||
|
||||
## 2026-10-04:Direct 普通操作与交付复核解耦
|
||||
|
||||
- 普通工具准入只检查原回合活动状态、时间预算、并发和既有权限,不要求先登记交付合同;成功/失败/取消只结算本次操作,删除全局 Draining 与执行/返修批次计数。
|
||||
- 验证失败和源码漂移影响对应证据,不阻断无关工作。远端不确定结果沿资源自身 operation/幂等记录核对;本地执行器失控或持久状态损坏仍结束回合。
|
||||
- 保留累计执行时间、整轮墙钟、原生执行前审批、关闭时清理与原回合写入/付费提交检查。模型执行结束时先关闭准入,确认清理后才允许交付反馈继续;普通失败不进入关闭阶段。
|
||||
- `validation.maxRuns` 只保留交付回复复核用途;合同的创建时机、artifact/command 移除及视觉/玩法判据不在本次操作控制修改内。图片工具仍等待结果,Codex 调度不变。
|
||||
- v2 执行账本只对白名单 v1 字段迁移,保留预算与终态,不恢复旧活动权限;没有可信时间记录的更早项目侧账本不授予同回合新预算。
|
||||
- 权威边界与验收入口:[AI 游戏创作智能体 App 实施计划](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#direct-操作控制2026-10-04)。Windows Job 退出证明仍须由 Windows 环境验收。
|
||||
|
||||
@@ -115,7 +115,7 @@ UI 编辑器的“分析参考图”步骤、Rust 命令 `suggest_ui_design_sema
|
||||
|
||||
## 2026-09-20 DirectProject 七项效率闭环(补齐合同)
|
||||
|
||||
本节补齐并覆盖下节中仅靠 Skill 要求预检、收尾、批读和原生命令预算的部分。完整目标仍为:自动预检、宿主验收与收尾、分层验证、统一执行/返修预算、稳定测试基线、请求耗时与批量读取、所有工具并行。已有代码及测试不等于全部目标已完成;按下表逐项验收。
|
||||
本节补齐并覆盖下节中仅靠 Skill 要求预检、收尾、批读和原生命令预算的部分。完整目标仍为:自动预检、宿主验收与收尾、分层验证、统一时间预算、稳定测试基线、请求耗时与批量读取、所有工具并行。已有代码及测试不等于全部目标已完成;按下表逐项验收。
|
||||
|
||||
| 要求 | 必须成立的行为 | 完成证据 |
|
||||
| --- | --- | --- |
|
||||
@@ -154,43 +154,45 @@ UI 编辑器的“分析参考图”步骤、Rust 命令 `suggest_ui_design_sema
|
||||
|
||||
### 宿主控制与后续验收边界
|
||||
|
||||
- 统一预算按执行/验证批次与实际运行输入管理,允许正常构建和相关测试在一个批次内执行;原生读取和结构化文件编辑不按每条命令消耗返修次数。任意代码执行必须具备当前回合的有效执行许可及累计执行时长边界。
|
||||
- 执行预算按工具占用累计时间和回合墙钟管理,不设置执行/返修批次或按普通失败扣减次数。任意代码执行必须具备当前回合的有效执行许可及累计执行时长边界。
|
||||
- 原生命令入口必须以捆绑版本的真实协议证明可在执行前拒绝;不得用执行后的日志通知或文本分类器冒充执行门。能力检测失败不得静默退回无控制模式。
|
||||
- 原生执行控制的精确协议与许可持久化,在对应里程碑评审后落地;不得提前宣布这一项已完成。
|
||||
- 不修改 Provider 的 maxRetries;不减少引擎或任意代码执行的合法能力,不引入平行 Agent 框架,不改公开 API/数据库,不提交私密运行记录。
|
||||
|
||||
### Direct 操作控制简化提案(2026-10-03,待实现)
|
||||
### Direct 操作控制(2026-10-04)
|
||||
|
||||
本节记录租约重构的目标行为;当前代码仍采用下节的执行租约与返修批次。实施范围与验收见[重构里程碑](../project-memory/plans/【里程碑】Direct合同与租约机制重构-2026-10-03.md)。本提案不改变 Codex 的工具调度、模型循环或图片工具的等待返回方式。
|
||||
本节与下节共同描述当前 Direct 操作控制,执行/返修批次与全局 Draining 已移除。实施范围与验收见[重构里程碑](../project-memory/plans/【里程碑】Direct合同与租约机制重构-2026-10-03.md)。操作控制不改变 Codex 的工具调度、模型循环或图片工具的等待返回方式。
|
||||
|
||||
- 普通操作开始前,宿主检查原回合是否活动、时间预算是否足够、并发容量是否可用,并执行原有权限、路径及资源约束。交付合同是否存在、前一个工具是否成功不构成普通操作的准入条件。
|
||||
- 操作成功、失败或取消后结算占用与用时,返回真实结果,由 Agent 决定后续操作。移除全局 Draining、执行/返修批次计数及对应重试门禁;验证输入变化只使相关证据失效,不使无关工作停顿。不新增租约到期续租、Agent 释放租约或独立后台任务接口。
|
||||
- 操作成功、失败或取消后结算占用与用时,返回真实结果,由 Agent 决定后续操作。没有全局 Draining、执行/返修批次计数及对应重试门禁;验证输入变化只使相关证据失效,不使无关工作停顿。不新增租约到期续租、Agent 释放租约或独立后台任务接口。
|
||||
- 保留原时间预算数值与累计口径、并发上限及回合身份。回合关闭、取消或时间耗尽后拒绝新操作,取消自有在途工作并核实本地进程退出;等待资源锁后的写入及每次新增付费提交仍核验原回合权限。操作记录清除不能代替执行结束证明。
|
||||
- 普通工具失败和资源级结果不确定不终止整个回合;资源自身的幂等、operation ID、恢复及对账继续有效,不能因客户端取消而推断远端取消,也不能盲目重复付费。宿主控制状态损坏或无法确认自有执行器退出仍按实际控制失败处理。
|
||||
- 交付复核与操作准入分离。本次仅解除合同存在性的操作门禁;合同何时创建、验收项及视觉/玩法判据在合同工作中另行处理。`validation.maxRuns` 暂保留现有交付复核次数用途,不再用于执行/返修批次;时间配置不变。
|
||||
- 同回合重试或进程重启不刷新预算;仅保留预算、回合归属、必要退出记录和资源自身恢复所需的持久状态,不恢复旧租约为可执行权限。旧版本未结束状态须先确认旧执行器退出,不能通过直接删除账本解除控制。
|
||||
|
||||
验收至少覆盖失败图片与长命令并存时无关写入成功、连续工具失败不触发返修次数限制、所有退出路径释放并发占用、关闭后零新增执行/付费提交、迟到写入被拒绝,以及远端不确定任务不重复提交。该提案尚无实现或运行时验收证据。
|
||||
验收至少覆盖失败图片与长命令并存时无关写入成功、连续工具失败不触发返修次数限制、所有退出路径释放并发占用、关闭后零新增执行/付费提交、迟到写入被拒绝,以及远端不确定任务不重复提交。自动化证据与平台未验证项记录在关联实施计划中;Linux 进程组清理不冒充 Windows Job 的完整子树退出证明。
|
||||
|
||||
### 宿主验收与执行许可合同
|
||||
|
||||
- 正式 GUI 和 CLI 的共同 Direct 回合入口建立宿主控制状态,绑定 canonical 项目路径、稳定 clientTurnId 和原始用户输入摘要;宿主私有目录保存权威账本并独占该回合,项目 `.agent` 仅允许保存展示副本。配置或项目侧文件被改写、工具切换、Provider 重试和进程重启不得刷新同一回合的预算。
|
||||
- Direct 回合集成测试也按生产入口计算原始用户输入的 SHA-256 十六进制摘要(64 字符),不能用请求名称替代。用户回显过滤回归继续覆盖实时消息去重、回合起止身份关联及历史落盘过滤。
|
||||
- 直接启动 Direct 工具桥的图片生成通知测试,须复用真实宿主执行会话与已登记交付合同夹具,再发起工具请求;继续验证资源提交后发出 manifest 失效通知,以及空提示词被参数校验拒绝且不发通知,不绕过执行许可门禁。
|
||||
- 普通聊天与读取不要求交付合同。首次修改、代码执行或付费扩项之前,模型通过结构化工具登记本轮必需范围与验收项;合同非空、有界且只冻结一次。模型只能声明要求,不能提交“通过”作为证据。后续扩项留到新的用户回合。
|
||||
- 明确新 Web 创建由宿主可信脚手架凭证及尚未交付的宿主记录判定,CLI 同样据此判定,不从提示文本猜测;这种回合即使模型没有调用工具或没有登记合同,也不得按普通聊天宣布交付。已有项目只有未激活合同且从未产生副作用时才允许直接聊天结束。
|
||||
- 直接启动 Direct 工具桥的图片生成通知测试,须复用真实宿主执行会话夹具,再发起工具请求;继续验证资源提交后发出 manifest 失效通知,以及空提示词被参数校验拒绝且不发通知,不绕过执行许可门禁。
|
||||
- 交付合同不参与普通工具准入。模型通过结构化工具登记本轮游戏交付的必需范围与验收项;合同非空、有界且只冻结一次。模型只能声明要求,不能提交“通过”作为证据。后续扩项留到新的用户回合。
|
||||
- 明确新 Web 创建由宿主可信脚手架凭证及尚未交付的宿主记录判定,CLI 同样据此判定,不从提示文本猜测;这种回合即使模型没有调用工具或没有登记合同,也不得按普通聊天宣布交付。已有项目未激活合同时可以正常结束用户回合;存在执行记录时仍须核对执行器清理,不生成游戏交付证明。合同触发方式与验收类型调整另行实施。
|
||||
- 验收项为明确类型的产物、构建/测试命令、双端视觉或指定固定场景的双端玩法。可信新 Web 游戏由宿主补充构建、双端视觉和玩法底线,不能由模型声明“已有项目”降低。已有项目按冻结的变更范围选择层级;平台美术只在用户目标要求时成为必需项。
|
||||
- 同一份双端玩法证据可同时满足视觉项,避免重复浏览器运行。构建证据分别绑定源码输入摘要与输出摘要,正常生成 dist 不算源码漂移;浏览器证据绑定构建后的实际运行输入。只有宿主验证完成产生的结构化结果和证据文件摘要能满足合同,项目内自行写出的验证 JSON 无效。
|
||||
- 产物项的初始摘要由宿主冻结,模型不能提供或在重放时重算。仅登记已经存在的文件不能立即交付:产物必须实际变化/新出现,或有当前指纹的宿主可信验证证据;原生修改和工具修改遵守相同判据。
|
||||
- `validation.maxRuns` 保留已配置值,语义为执行/返修批次上限;首次执行开启第一批。开发期正常成功命令和源码编辑共享本批,不逐条消耗次数。开始验证后绑定输入,执行失败或验证期间输入漂移使本批进入排空状态,关闭新的执行入口,等已受理操作结束后才开启下一返修批次。读取与结构化编辑不单独消耗次数。
|
||||
- `validation.maxExecutionSeconds` 默认 900,必须为正整数,是整个 clientTurnId 的累计执行时间上限,换批次不清零。并行操作分别计时累加,内置工具不与 app-server 的外层 MCP 事件重复计费。时间耗尽立即拒绝新执行、写入和付费扩项,保留最近证据与未完成项;Provider 的重试次数保持独立。
|
||||
- `validation.maxRuns` 保留已配置值,仅用于交付回复复核次数;普通执行成功、失败、取消和验证输入漂移均不消耗该次数。验证证据继续绑定输入,失败或漂移仅使相应证据不能证明交付;Agent 可以继续无关工作。
|
||||
- `validation.maxExecutionSeconds` 默认 900,必须为正整数,是整个 clientTurnId 的累计执行时间上限,同回合重试不清零。并行操作分别计时累加,内置工具不与 app-server 的外层 MCP 事件重复计费。时间耗尽立即拒绝新执行、写入和付费扩项,保留最近证据与未完成项;Provider 的重试次数保持独立。
|
||||
- `validation.maxTurnSeconds` 默认 1800,必须为正整数,是同一宿主回合从开始起的墙钟上限,重启不重置,用于约束模型空转和超出单个工具事件边界的后台会话。墙钟上限与累计执行时间分别记录,任一耗尽都收束自有执行器;不能把模型等待时间报告成工具执行时间。
|
||||
- 捆绑 app-server 的原生命令使用已验证的逐次审批能力;宿主只返回单次接受/拒绝,不允许会话授权或 exec policy 修订。第三方 MCP 必须显式启用逐调用询问,不能依赖不可信 readOnlyHint。询问缺少调用 ID 时,按服务器与回合中的并发组保守管理,不能解析展示文案猜测归属。
|
||||
- 原生、内置与第三方所有入口都经过同一宿主状态;独立工具继续并行,只有身份、批次切换、收尾与必要资源冲突形成短临界区。能力检测失败不得退回无控制执行。
|
||||
- 原生、内置与第三方所有入口都经过同一宿主状态;独立工具继续并行,只有身份、回合关闭、收尾与必要资源冲突形成短临界区。能力检测失败不得退回无控制执行。
|
||||
- 上述回合控制适用于 DirectProject。独立客户端 HTTP MCP 显式使用 ExternalClient 来源,保持其原有权限、幂等和浏览器能力,不借用当前项目另一条 Direct 回合的预算或可信证据;新交付合同与托管验证命令工具要求 Direct 会话。服务端 external_mcp 不变。
|
||||
- 必需证据齐备后,宿主先进入封口状态,拒绝新副作用,再确认在途归零、收束模型执行器并取得进程退出证明,最后重新核对源码、产物和证据摘要;核验成功原子进入 completed 并产出宿主报告。不能先写 completed 再尝试停止后台进程。宿主主动结束模型回合属于交付终态,不触发普通错误反馈或重试。未达标不得用模型最终回复替代验收。
|
||||
- Windows app-server 在任何模型工具执行前绑定不可脱离的自有 Job,超时/取消/断连时验证整个 Job 已退出。其它平台继续保留受控进程组;未取得完整子树退出证据时按不确定状态报告,不宣称全部后台执行已停止。已受理的远端付费任务保留原不确定围栏,断连不构成自动重放授权。
|
||||
- 付费许可始终绑定原回合和原租约,不能在容量或同动作锁排队结束后借用新回合。排队可取消,每次新 POST 前与封口共用宿主状态短锁,核对原许可、期限与阶段并持久化提交边界;封口、终止或耗尽后不得新增提交。已经越过提交边界的请求不丢弃,其 operation ID 和不确定状态继续持久化并允许原 GET 对账,多阶段生成的下一次 POST 仍须重新核验。ExternalClient 与手工资源操作保持既有语义。
|
||||
- 付费许可始终绑定原回合和原操作,不能在容量或同动作锁排队结束后借用新回合。排队可取消,每次新 POST 前与封口共用宿主状态短锁,核对原许可、期限与阶段并持久化提交边界;封口、终止或耗尽后不得新增提交。已经越过提交边界的请求不丢弃,其 operation ID 和不确定状态继续持久化并允许原 GET 对账,多阶段生成的下一次 POST 仍须重新核验。ExternalClient 与手工资源操作保持既有语义。
|
||||
- 执行账本使用 `agc-direct-execution.v2`,保留回合预算、归属、活动操作、退出证明及合同证据,不再保存批次计数和整轮验证输入。读取 v1 时只白名单移除退役字段,未知字段仍拒绝;旧 Draining 转为 Interrupted,旧终态不重开,旧未结算操作不复活。更早的项目侧验证账本缺少可信用时/开始时间,仅保留为中断事实,不能授予同回合新预算。
|
||||
- 模型一次执行结束时先进入 Closing,关闭新操作和迟到提交,核实自有执行器退出及活动操作归零后才能回到 Working 接受交付反馈;整个用户回合结束后撤销旧许可。Closing 只用于实际关闭,不由普通工具失败触发。普通无合同回合完成不宣称游戏验收通过。
|
||||
- 本地写事务未结算或失败仍需核对时不得封口。与失败写入重叠的旧写入/旧验证不能清除该围栏;只有失败之后新准入的成功修复或可信验证可以恢复验收。普通文件写入与账户/本地资产导入显式携带原写入许可,取得项目锁后再与宿主状态锁共同核验期限并提交短本地事务;等待锁或下载期间终止的请求不得继续落盘,网络等待不持宿主状态锁。
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user