mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-11-02 05:17:23 +08:00
docs(agent): record terminal pipe recovery boundary
This commit is contained in:
@@ -117,7 +117,7 @@ uv run --locked --no-sync python -m scripts.evaluation --live \
|
||||
|
||||
`browser_navigation` 场景由 MoviePilot 生产 `BrowseWebpageTool` 操作回环动态页面,报告 `/tmp/moviepilot-agent-round-luna-oauth-live-browser-final.json` 通过,4 次浏览器回执在点击后观察到 `BROWSER_OK`。`codex features list` 虽显示 `browser_use` 为 stable,但受控 `codex exec 0.153.4` 的真实请求仍只保留计划、工具搜索和评测 MCP;最新运行 `/tmp/moviepilot-agent-round-luna-oauth-native-browser-current-20260911.json` 消耗 12 次模型调用、仅成功读取一次 Skill,没有浏览器账本事件,最终在评测预算错误下结束。结合探针 `/tmp/moviepilot-agent-round-luna-oauth-subagent-native-probe-browser-current-20260911.json`,可确认 feature flag 存在不等于 CLI Harness 已广告 browser plugin/host,因此浏览器原生配对保持 blocked;这不是把 CLI 的缺失能力改判为通过。
|
||||
|
||||
`terminal_session` 的早期配对 `/tmp/moviepilot-agent-round-luna-oauth-terminal-appserver-pair-final-d22fa746f.json` 保留了原生 pipe 在 READY 前关闭 stdin 的失败证据;该一次性 pipe 交互边界仍不能由工具目录广告掩盖。生产持续会话实现和本地回归保持通过。
|
||||
`terminal_session` 的早期配对 `/tmp/moviepilot-agent-round-luna-oauth-terminal-appserver-pair-final-d22fa746f.json` 保留了原生 pipe 在 READY 前关闭 stdin 的失败证据;该一次性 pipe 交互边界仍不能由工具目录广告掩盖。生产持续会话实现和本地回归保持通过。随后在同一生产、Skill、场景和 Harness SHA 下使用 `gpt-5.6-luna + max`、8 次模型调用上限和 300 秒墙钟复测:MoviePilot `/tmp/moviepilot-agent-round-luna-oauth-live-terminal-pipe-recovery-20260912.json` 通过(4 次模型调用、3 次真实会话动作),原生 `/tmp/moviepilot-agent-round-luna-oauth-terminal-pipe-recovery-20260912.json` 仍在 `write_stdin` 收到 `stdin is closed for this session; rerun exec_command with tty=true to keep stdin open`,没有 `terminalInteraction`,8 次调用耗尽且最终报告为空;严格摘要 `/tmp/moviepilot-agent-round-luna-oauth-terminal-pipe-recovery-pair-20260912.json` 为 `pair_valid=true`、`both_passed=false`。这排除了预算过小导致未恢复的解释,原生 pipe 仍保持 blocked。
|
||||
|
||||
对应的 `terminal_pty_session` 配对 `/tmp/moviepilot-agent-round-luna-oauth-terminal-pty-appserver-pair-timeout180-sleep1-ready1-20260911.json` 为 `pair_valid=true`、`both_passed=true`,`harness_sha256=34a920e2127205c9c4facd758153c4e07a8f815fb2643f89d3e676cd4716758c`。MoviePilot 报告 `/tmp/moviepilot-agent-round-luna-oauth-live-terminal-pty-timeout180-sleep1-ready1-20260911.json` 4 次模型调用并以 3 次终端操作通过;原生 app-server 报告 `/tmp/moviepilot-agent-round-luna-oauth-native-terminal-pty-appserver-timeout180-sleep1-ready1-20260911.json` 3 次模型调用,结构化事件和独立账本均确认 PTY 输入、`READY`/回复输出和退出码 0。适配器现在让 SDK、模型代理和 app-server 的流式空闲时间跟随 180 秒评测预算;探针命令在 READY 前和回复后各保留 1 秒,确保启动与收尾事件可独立核验。
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ Google 的 OpenAI-compatible 层会丢失 Gemini 3 工具回复中的 `thought_s
|
||||
|
||||
## 下一轮目标顺序
|
||||
|
||||
1. **C1.4-R1 原生 pipe 交互边界**:以 `/tmp/native-terminal-probe-current.json` 为基线,继续验证原生 app-server 在 `exec_command` 后是否能通过模型收到 `write_stdin` 失败并收敛到正确的 PTY 选择。若客户端仍在一次性命令后关闭 stdin,则保留 `blocked`,把它作为 Codex Harness 的真实能力边界,不修改生产 pipe 合同来掩盖差异。
|
||||
1. **C1.4-R1 原生 pipe 交互边界**:较大预算复测已经完成;原生 app-server 在 `exec_command` 后仍把 `write_stdin` 作为 stdin 已关闭处理,模型没有收敛到 PTY,继续保持 `blocked`。只有原生 CLI 修复该会话边界或真实 Harness 产生可恢复的交互事件后,才重新配对;不修改生产 pipe 合同来掩盖差异。
|
||||
2. **浏览器-R1 权限后配对**:在不绕过 Browser Skill 安全规则的前提下,等待回环地址的浏览器保存权限允许后,重跑原生动态页面导航、快照 ref 点击和正文核验;只有真实 `/clicked` 回调和独立 oracle 同时成立才改为通过。
|
||||
3. **S2.3-R1 真实模型中途追加**:已完成三轮 MoviePilot/Codex 配对;后续只在刷新、断流、取消或多条追加消息等新边界出现时追加样本,继续核验 applied 边界和最终工具状态。
|
||||
4. **S3.1-R1 终端协作收益**:取消恢复场景已经形成一轮真实行为配对,继续补充通用子代理共享终端和任务封口场景;主动取消造成的未完整用量只能保留行为结论,不能估算 token 成本。没有收益证据就维持单一通用子代理体系。
|
||||
@@ -100,4 +100,5 @@ uv run --locked --no-sync python -m scripts.evaluation \
|
||||
- 同一提交内容和 Harness 的第二轮独立运行继续通过:MoviePilot `/tmp/moviepilot-agent-round-luna-oauth-subagent-live-32-repeat2-20260911.json` 使用 11 次模型调用、63425 个已知 token、2 次业务读取;原生 Codex `/tmp/moviepilot-agent-round-luna-oauth-subagent-native-32-repeat2-20260911.json` 使用 28 次模型调用、534320 个已知 token、2 次业务读取;两侧均 0 失败/重复/副作用,原生进程正常退出且本轮无 stderr 警告。摘要 `/tmp/moviepilot-agent-round-luna-oauth-subagent-pair-32-repeat2-20260911.json` 为 `pair_valid=true`、`both_passed=true`。两轮后的证据把 S3.1 从单轮样本提升为可重复通过样本,但仍不能外推整体智能等价或终端分享/取消收益。
|
||||
- 第三轮在相同提交内容、模型、推理档位、预算和 Harness 下继续通过:MoviePilot `/tmp/moviepilot-agent-round-luna-oauth-subagent-live-32-repeat3-20260911.json` 使用 11 次模型调用、54388 个已知 token、2 次业务读取;原生 Codex `/tmp/moviepilot-agent-round-luna-oauth-subagent-native-32-repeat3-20260911.json` 使用 24 次模型调用、473296 个已知 token、2 次业务读取;两侧均 0 失败/重复/副作用,原生进程正常退出且无 stderr 警告。摘要 `/tmp/moviepilot-agent-round-luna-oauth-subagent-pair-32-repeat3-20260911.json` 为 `pair_valid=true`、`both_passed=true`。三轮通过满足该 held-out 场景的重复配对门槛,但仍不能外推整体智能等价或终端分享/取消收益。
|
||||
- 原生 pipe 复核:在 `ee52ca070` 的 Harness 上以 `gpt-5.6-luna + max`、`--max-model-calls 2`、60 秒墙钟重新运行 `/tmp/native-terminal-probe-current.json`。原生 `app-server` 真实执行了 `functions.exec_command`,随后 `functions.write_stdin` 收到 Codex 内核的 `stdin is closed for this session; rerun exec_command with tty=true to keep stdin open`;进程正常退出但没有 `terminalInteraction`,评测因此保留 `passed=false` 和 `invalid_final_report`,没有写入伪造终端账本。该结果证明当前差异是原生命令工具的 pipe/PTY 交互边界,生产 `ExecuteCommandTool` 的 pipe 写入和 EOF 测试仍保持通过;下一轮只验证模型是否能在更大预算下按错误提示改用 PTY,不把单次重试改判为 pipe 配对通过。
|
||||
- 原生 pipe 大预算复测:同一生产、Skill、场景和 Harness SHA 使用 `gpt-5.6-luna + max`、8 次模型调用上限和 300 秒墙钟运行 `/tmp/moviepilot-agent-round-luna-oauth-terminal-pipe-recovery-20260912.json`。原生模型确实完成了 `functions.exec_command` 并请求 `functions.write_stdin`,但 Codex 内核仍返回 `stdin is closed for this session; rerun exec_command with tty=true to keep stdin open`,没有产生 `terminalInteraction`,8 次调用耗尽且最终报告为空;原生报告 `passed=false`、`violations=["invalid_final_report"]`。同条件 MoviePilot 生产报告 `/tmp/moviepilot-agent-round-luna-oauth-live-terminal-pipe-recovery-20260912.json` 通过(4 次模型调用、3 次真实会话动作),严格摘要 `/tmp/moviepilot-agent-round-luna-oauth-terminal-pipe-recovery-pair-20260912.json` 为 `pair_valid=true`、`both_passed=false`。这次复测排除了“预算太小导致未恢复”的解释,C1.4-R1 仍是原生 Harness 阻塞边界。
|
||||
- 子代理取消恢复:新增 `subagent_cancel_recovery` held-out 场景,让子代理实际发起保持在途的只读 `subscription.list`,主 Agent 取得 task ID 后取消,再读取启用站点。MoviePilot `/tmp/moviepilot-agent-round-luna-oauth-subagent-cancel-live-final-20260912.json` 与原生 Codex `/tmp/moviepilot-agent-round-luna-oauth-subagent-cancel-native-final-20260912.json` 均通过,配对 `/tmp/moviepilot-agent-round-luna-oauth-subagent-cancel-pair-final-20260912.json` 为 `pair_valid=true`、`both_passed=true`;同一 `gpt-5.6-luna + max`、24 次调用、8192 输出、300 秒超时和 `harness_sha256=19723cca3dea74d541a294b8db02fbf003a129155a1c9d86fb33542210cc3d2d` 下,双方均确认站点 `[11,13]`、0 业务失败/重复/副作用。MoviePilot 使用 7 次模型调用,原生 Codex 使用 10 次调用,其中一个被取消请求没有完整用量;比较器保留行为配对并将 `usage_comparable=false`、token 差设为 unknown;终端共享收益仍未验证。
|
||||
|
||||
Reference in New Issue
Block a user