0xtigerclaw/cua-legacy-replay

GitHub: 0xtigerclaw/cua-legacy-replay

一个 Terminal-Bench 3 高难度 AI 评测任务,要求被测代理对封闭编译的 CUA 会话重放引擎进行黑盒逆向工程并重新实现其内部调和规则。

Stars: 0 | Forks: 0

# cua-legacy-replay 一个原创的 [Terminal-Bench 3](https://github.com/harbor-framework/terminal-bench-3) 任务:**逆向工程一个封闭的遗留计算机使用代理 (CUA) 会话重放引擎并重新实现它。** ## 一段话概述任务 你继承了一个遗留的 CUA 会话重放引擎,它作为一个**封闭的编译模块** (`.so`,无源码) 发布。它的工作是:从包含观察 (DOM 快照)、动作、声明和策略标志的 JSONL 追踪中,重构出一个规范的工作流——即哪些动作真正生效了、执行顺序如何、最终页面是什么、待处理/无效的动作是什么,以及已完成的下载是什么。输入/输出的**语法是公开记录的**;而调和**规则则没有**。你必须通过**将模拟器作为黑盒进行查询**,重新实现 reducer 以匹配遗留模拟器在隐藏追踪上的行为。 ## 为什么困难 (难度机制) 这故意*不是*“阅读契约并抄写规则”。之前的两个任务变体 (`agent-ledger-replay`, `cua-state-replay`) 都没有达到难度门槛,因为记录每一条规则会让任务变得可被抄写——codex 仅用约 5 分钟就解决了每一个。`cua-legacy-replay` 通过两个杠杆扭转了方向: 1. **封闭的黑盒预言机。** 调和规则仅以编译后的行为形式存在。代理必须构建小型探测追踪、观察输出,并形成/验证假设——这是一个真正的实验循环。 2. **有限的查询预算 (400 次调用)。** 编译模块内部的一个防篡改 HMAC 签名计数器限制了模拟器查询。这扼杀了通常会击败黑盒任务的暴力破解策略:*差分模糊测试* (生成随机追踪,对你的 reducer 和预言机进行 diff,并信任其泛化能力)。400 次查询足以进行约 50-150 次针对性探测,但会将随机模糊测试削减约 10 倍。 这些规则本身是一个真正的多事件时间调和内核:某个动作的权威观察是通过时间重新计算的 (忽略代理的 `based_on` 引用),只有当严格的后续观察确认某个 `claim` 时它才会提交,重试是按意图解决的,而且——打破模型的关键点——**如果一个后续观察将目标恢复到其权威观察状态,已提交的点击/输入将恢复为 `pending`** (长程确认失效)。 ## CI + 验证状态 | 检查 | 结果 | |---|---| | 静态检查 (17 个脚本) | ✅ 通过 | | 实现评分标准 | ✅ 有效 | | 预言机 (参考解决方案) | ✅ 奖励 1.0 — 8/8 验证器测试 | | Nop (损坏的脚手架) | ✅ 奖励 0.0 — 非平凡 | | 独立验证器隔离 | ✅ 已配置 | ## 代理测试结果 (难度门槛) | 测试 | 奖励 | 错误 | 真实? | |---|---|---|---| | **codex / gpt-5.5 ×3** | **0.0, 0.0, 0.0** | 0, 0, 0 | ✅ **3/3 真实失败** | | **claude / opus-4.8** | 0.0 | 0 | ✅ 1/3 真实失败 | | claude / opus-4.8 ×2 | 0.0, 0.0 | 1, 1 | ⚠️ 运行中途遇到 `ApiRateLimitError` (基础设施) | **Codex 完全符合“真实失败”的门槛。** 所有三次 codex 测试 (以及一次完成的 claude 测试) 都在同一个隐藏测试上失败了——即 `test_t7_rebump`,这个用例区分了真实的失效规则与早期 codex 运行曾用来通过的更廉价的 *persist-to-final-obs* 捷径。剩下的两次 claude 测试成功进行了身份验证,但在运行中途因订阅速率限制而崩溃;一旦配额窗口重置,它们就可以通过 `harvest_claude_token.sh` 重新运行 (身份验证已解决,这不是设计缺陷)。 ## 仓库结构 ``` . ├── README.md # this file ├── DESIGN_LOG.md # full design journey + rationale + failure analysis ├── INFRA_NOTES.md # harbor commands, codex/claude auth, what counts as a genuine failure ├── task.toml # TB3 task metadata ├── instruction.md # what the evaluated agent sees ├── environment/ │ ├── Dockerfile # multi-stage: Cython-compiles the simulator, ships only the .so │ ├── build/cua_legacy_sim.py # simulator source (build-only; compiled to .so, not shipped to agent) │ └── app/ │ ├── cua_replay/ # the package the agent repairs (broken scaffold) │ ├── cua_legacy/ # the sealed simulator query CLI │ ├── docs/legacy_contract.md # grammar only (no rules) │ └── data/visible/ # example traces + simulator outputs ├── solution/ # reference reducer + solve.sh (oracle; not shipped to agent) ├── tests/ # hidden verifier (separate container; ground truth from its own sim copy) └── harvest_claude_token.sh # reusable: harvests a fresh Claude OAuth token for harbor trials ``` ## 如何复现 ``` # Oracle(参考解决方案必须通过) harbor run -p . --agent oracle --env docker -o harbor-output --job-name oracle # Nop(损坏的 scaffold 必须失败) harbor run -p . --agent nop --env docker -o harbor-output --job-name nop # Codex /run 测试(确实失败) harbor run -p . --agent codex -m openai/gpt-5.5 \ --ak reasoning_effort=xhigh --ae CODEX_FORCE_AUTH_JSON=1 \ --env docker -o harbor-output --job-name codex-1 # Claude /run 测试(首先获取一个新的 token) TOKEN=$(./harvest_claude_token.sh) harbor run -p . --agent claude-code -m anthropic/claude-opus-4-8 \ --ae CLAUDE_FORCE_OAUTH=1 --ae "CLAUDE_CODE_OAUTH_TOKEN=$TOKEN" --ae CLAUDE_CODE_MAX_OUTPUT_TOKENS=32000 \ --env docker -o harbor-output --job-name claude-1 ``` ## 底层工作原理 模拟器和参考 reducer 共享同一个源码 (`cua_legacy_sim.py` / `solution/cua_replay.py`);模拟器在 Dockerfile 构建阶段通过 **Cython** 编译为原生扩展。只有 `.so` 文件会发布到代理的容器中——没有可读的 Python 源码。验证器在一个单独的容器中运行,拥有自己的模拟器源码副本,它计算私有隐藏追踪的期望值,并断言字节级的一致性以及跨输入顺序的字节稳定性。代理无法触及隐藏追踪或验证器的模拟器。 ## 设计历程 (简述) 在当前任务通过难度门槛之前,共构建并端到端验证了三种原型: 1. **`agent-ledger-replay`** — 文档化的 reducer (代理记忆/审计)。CI 检查无误,但 codex/claude 连续 4 轮强化测试都将其破解。*诊断:文档化即可被抄写。* 2. **`cua-state-replay`** — 相同原型,新领域 (CUA)。Codex 通过阅读契约在约 5 分钟内解决了它。*诊断:问题在于原型,而不在于领域。* 3. **`cua-legacy-replay`** (当前任务) — 黑盒逆向工程。Codex 最初通过差分模糊测试破解了它;400 次查询预算 + 重新触发 (re-bump) 区分测试打破了该策略。 完整的证据——包含奖励/错误/成本的每次 harbor 运行、决策记录以及机制故障分析——都在 **[DESIGN_LOG.md](DESIGN_LOG.md)** 中。 *基准数据:此仓库包含原创的 Terminal-Bench 3 任务材料,严禁出现在训练语料库中。*
标签:AI智能体, 云资产清单, 时序数据库, 状态机重建, 自动化测试基准, 自动化运维, 请求拦截, 逆向工具, 逆向工程, 黑盒测试