# Tb4 Five Arm

在 Terminal-Bench 4.0 上做 codex harness 五臂对照（裸 codex / 原生 /goal / LoopX 三模式）。复用...

- Repository: https://github.com/loopx-project/loopx (6526 stars)
- Category: Engineering
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add loopx-project/loopx --skill tb4-five-arm -g -a claude-code -y`
Codex: `npx skills add loopx-project/loopx --skill tb4-five-arm -g -a codex -y`
Cursor: `npx skills add loopx-project/loopx --skill tb4-five-arm -g -a cursor -y`
Gemini CLI: `npx skills add loopx-project/loopx --skill tb4-five-arm -g -a gemini-cli -y`

## Description

在 Terminal-Bench 4.0 上做 codex harness 五臂对照（裸 codex / 原生 /goal / LoopX 三模式）。复用 SWE-Marathon 那套驱动，靠 WEN_BENCH 切换。重点是 TB4 相对 SWE-Marathon 的四处结构性差异, , 每一处踩错都**退出码 0、有轨迹、有分数**，只是分数不对。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Terminal-Bench 4.0 五臂对照

五臂定义、LoopX profile 装配、agent 类、监控工具全部与
[[swe-marathon-five-arm]] 相同，**先读那一份**。这里只写 TB4 特有的部分。

对照维度仍是 **harness 不是模型**：五臂的模型、effort、工具面、沙箱、容器一致。

## 切换方式

```bash
export WEN_BENCH=tb4      # 必须 export，见下面「最毒的一个坑」
source env.sh

./scripts/prebuild_images.sh music-harmony   # 应建 2 个镜像，不是 1 个
./scripts/verify_envs.sh music-harmony       # install-only，不烧 token
./scripts/canary_timeout.sh                  # 五臂 × 短死线
./scripts/marathon_all.sh --dry              # 63 任务 × 5 臂 = 315 trial
```

benchmark 相关的量全在 `scripts/bench/tb4.sh`，驱动脚本里没有任何 TB4 常量。
`WEN_BENCH` 不设时默认 `swe-marathon`，行为与引入 bench 层之前逐字一致
（已用 `bash -x` 逐参数 diff 验证过）。

## 数据来源

`terminal-bench/` 是 `harbor-framework/terminal-bench` 的 **tag v4.0.0**
（commit `452bf305c6`），66 个任务，见 `terminal-bench/VERSION`。

- **不能用 `harbor run -d terminal-bench@4.0`**：harbor 的注册表（Supabase
  `dataset` 表）里只有 `terminal-bench@2.0`，实测查 4.0 返回 `null`。
- **不要跟 main**：上游 README 明说 "will be continuously updated"，
  跟 main 跑出来的结果不可复现。
- `tasks/dataset.toml` 里每个任务有 sha256 digest，`task.toml` 与 `tests/`
  一个字节都不能改。要注入环境变量走 harbor 的 `--ve` / `--ae`。

## TB4 vs SWE-Marathon：四处结构性差异

| 项 | SWE-Marathon | TB4.0 |
|---|---|---|
| `agent.timeout_sec` | 3600, 36000 各异 | **全部 28800（统一 8h）** |
| `verifier.environment_mode` | 无（shared） | **全部 `separate`** |
| `network_mode` | 三态，逐任务 | **一个都没声明** → harbor 默认 public |
| 每任务镜像数 | 1（`environment/`） | **2（`environment/` + `tests/`）** |
| 连续分 | `metrics.json` 有 | **没有**，只有二值 reward |

排除 3 个要 H100 的任务（`fp8-rmsnorm-gemm` / `jax-speedrun-gpu` /
`math-eval-grader`），本机是 4090D。剩 63 个，其中 11 个是多容器
（`environment/docker-compose.yaml`），1 个（`medical-claims-processing`）
还要 MCP server（playwright，sse `http://playwright-mcp:3080/sse`）。

## 坑（都会静默通过）

### 一、最毒的一个：`WEN_BENCH` 用前缀赋值

```bash
WEN_BENCH=tb4 source env.sh      # ✗ 错
export WEN_BENCH=tb4; source env.sh   # ✓ 对
```

The rest: https://github.com/loopx-project/loopx/blob/HEAD/benchmark/swe-marathon/skills/tb4-five-arm/SKILL.md
