补齐单Agent运行中追加指令
新增同一 Run 持久化追加指令、Provider 中断与安全重规划链路 补齐开发窗口、项目 Agent 面板和 CLI 的 steer 入口与状态交互 升级 Runner 协议并支持旧 Runner 空闲退出后平滑替换 增加真实 Provider steer 验收脚本并修复 finalization 与 Git 提交回归 同步 Runtime 技术方案、实施计划和共享决策记录
This commit is contained in:
@@ -4533,3 +4533,12 @@
|
||||
- 验收门禁:Runner-kill 套件必须分别从全量 task、event、Agent DB、runtime state 和 process record 证明专用 reconciliation 各精确一次,并证明新 boot reconnect 为 0。activity / output 和可选证据目录只有 `ENOENT` 可视为空;权限、I/O 和 JSON 损坏必须让验收失败,runtime state 是必需证据并纳入公共正文泄漏扫描。
|
||||
- 决策:模型即使在 prompt 明确禁止后仍可能把 `command.poll` 私有正文或短值复述到最终回复;只要本 run 存在非空私有 poll 输出,finalization 在 assistant journal 写入前就把模型回复整体收束为固定安全摘要。原始 PTY 正文仍只留在 owning Agent 私有 context,不能依赖模型自律或按长度猜 token 维持公共边界;没有私有 poll 正文的普通回复保持原样。
|
||||
- 验收:真实 `gpt-5.5` `process-session` 与 `process-session-runner-kill` 均已 PASS。普通套件证明唯一 start、连续 cursor、精确 challenge/echo、graceful terminal 和零公共正文泄漏;强杀套件从 task / event / Agent DB / process record 各证明 1 条专用 reconciliation,runtime state 身份一致,项目进程清零、新 boot 保持同 run / session,reconnect / replay / final 均为 0。真实主机临时范围 32768-60999 被约 2.8 万连接占满时,Runner 使用范围外 loopback 端口完成两套验收。终审回归另通过 44 项 process-session 定向测试、Tauri 全量 587 passed / 4 ignored、Windows GNU check、客户端 typecheck、4961 文件编码检查、rustfmt、Prettier 和 diff check。
|
||||
|
||||
## 2026-07-14 AI 游戏创作 Agent Runtime V1.13 当前 Run 追加指令
|
||||
|
||||
- 决策:运行中输入默认形成 same-run steer,保持 `taskId / sessionId / runId` 不变;只有开发者显式选择“排队新任务”才创建新 run。动态隔离 child 首版拒绝 steer,终态、cancelling、finalizing 和 needs-reconciliation 同样拒绝。
|
||||
- 决策:私有事实源为 `.agent/runtime/steers/<agentId>/<runId>.jsonl`,按 `prepared / conversation-persisted / queued / applied / closed` 只追加推进。正文只出现在 prepared 与确定性 messageId 的 user conversation;公共 task/event/Agent DB/Runner RPC 只保存身份、sequence、SHA-256、长度和状态。同 steerId 同 SHA 幂等,不同正文冲突;单条 4 KiB、单 run 16 条且总计 16 KiB。
|
||||
- 决策:context bundle 和 Runtime state 保存 applied cursor 与安全 refs,pending action 指纹绑定 planned cursor。Provider 前、Provider 后、terminal observation 后和 finalization 前消费或复核;context 先持久化、applied 后追加,恢复以 context cursor 修复缺失 applied audit。自动动作进入 executing 时与 steer acceptance 使用同一项目写锁;确认中、approved 或 executing 动作保持原 fingerprint,terminal receipt 后才消费。
|
||||
- 决策:Runner typed `runtime.steer` 只携带 `root / agent / runId / steerId`,并先核对 durable ledger。中断 registry 只包围 planning 和 final reply HTTP future;不得 abort worker 或中断任何工具和副作用。prepared finalization journal、completed 终态与 steer acceptance 共用项目锁形成双向门禁,completed 前在同锁内关闭 ledger。新增方法把 Runner 协议提升为 v2;旧协议 Runner 只允许在 `shutdown_if_idle` 确认空闲并释放 endpoint 后升级,仍有任务时禁止强杀替换。
|
||||
- 接口:Tauri 使用 `steer_game_creator_agent_runtime_task`;CLI 使用 `--agent-steer <project> <agentId> <sessionId> <runId> <steerId> --stdin`。开发窗口与项目内 Agent 面板使用同一默认 steer / 显式排队交互,并把 cancelling 显示为“正在取消”。
|
||||
- 验收:确定性 Rust 已覆盖幂等、冲突、并发 sequence、限制、错误状态、conversation、context/applied 崩溃修复、Provider in-flight 中断、旧写入计划零执行、自动动作 cursor 门禁、确认延后和 finalization 竞态;Runner/CLI 与两个 App 入口定向测试通过。仓库外真实 Provider same-run 专项已 PASS:一次 Provider 中断、原 run 唯一、五阶段 ledger、2 条 user/1 条 assistant、追加正文和已加载密钥零公共泄漏,并实际完成 Runner v1 到 v2 的空闲升级。V1.13 Runner kill 仍需独立复验,不把本次专项结果外推到强杀恢复。
|
||||
|
||||
Reference in New Issue
Block a user