eval README

The project's README from github.com/frontier-harness-eval/eval. As one markdown file: README.md.

FrontierHarness Eval

Live leaderboard Benchmark version Kimi K3 9 harnesses 12 configurations 30 tasks 360 runs

Explore the live results →  ·  Read the blog →  ·  Evaluate your own harness →

FrontierHarness Eval benchmark: pass rate versus median cost per task across nine harnesses and twelve configurations

Similar pass rate. 17.5x cost differences.

We ran the same Kimi K3 model through nine coding-agent harnesses—12 configurations in total—on the same 30 software-engineering tasks. With the model, tasks, and runtime held constant, changing the harness changed pass rate, cost, cache behavior, and speed.

FrontierHarness Eval leaders: Codex for quality, Pi for balance, Exo Harness for cost, and DSH Minimal for speed

Full results

Harness (configuration) Pass rate Median cost per pass Cache, median cell Median time
Codex 66.7% $3.47 88.0% 6m 43s
DSH Creator 63.3% $3.28 84.3% 6m 44s
Claude Code 63.3% $18.34 67.8% 9m 38s
Pi 60.0% $2.43 79.4% 7m 33s
DSH PTC 60.0% $4.58 87.2% 7m 44s
DSH Standard 60.0% $3.46 86.5% 6m 17s
Oh My Pi 56.7% $4.75 82.2% 6m 46s
Kimi Code 56.7% $3.65 88.0% 7m 56s
DSH Minimal 56.7% $4.72 84.6% 5m 41s
Exo Harness 53.3% $1.05 70.3% 6m 17s
OpenCode 50.0% $3.24 78.4% 6m 27s
Hermes 50.0% $2.90 85.9% 6m 58s

The interactive report includes failed runs, total cost per task, cache behavior, speed, and task-level results. For the evaluation design and analysis, read the launch article.

What is in this repository

.
├── benchmark.json              # Public benchmark definition
├── cli/index.mjs               # `npx @frontierharness/eval`: workspace + skill installer
├── metadata/
│   ├── difficulty.json         # Difficulty assignments and source methodology
│   └── harness-versions.json   # Harness versions used for the run
├── results/
│   └── eval-data.json          # Normalized aggregate and task-level results
├── tasks/<task>/
│   ├── instruction.md          # Prompt shown to every harness
│   └── task.toml               # Public task metadata and environment definition
└── skills/frontierharness-eval/  # Agent-neutral skill, usable by hand
    ├── SKILL.md                # Evaluation workflow for a third-party harness
    ├── PROMPT.md               # Copy-paste prompt that points an agent at the skill
    ├── reference.md            # Command reference, runner templates, troubleshooting
    └── scripts/                # Provisioning, trial runner, scoring, chart, report

The repository intentionally contains results, task definitions, and the evaluation workflow. Internal infrastructure, credentials, runtime identifiers, private evidence, solutions, and deployment configuration are not included.

Evaluate your own harness

This repository ships a reproduction workflow for evaluating another harness on the published task set. It records environment differences from the original baseline run; a matched control run is needed to establish comparability.

Trial network access. Agents have access to the package registries and source hosts needed by the verifiers, including Ubuntu/Debian apt mirrors, PyPI, npm, PyTorch, GitHub download hosts, and Harbor's task registry. Runta applies the allowlist to the whole runtime, including agent containers; any additional Harbor/Pier isolation still applies. Verifiers install dependencies during trials, so allowing only the model provider and uv downloads blocks valid verification. Task images are pulled before the trial policy is applied. The exact hosts are defined in providers.sh.

Each run.json records egress_policy with its mode, scope, and exact allowed_hosts; the same policy is used for both suites and is included in candidate data and reports. The published baselines did not record their applied allowlist, so new runs default to methodology_comparable: false and receive no leaderboard rank. Evaluate a control harness under the same policy and environment before claiming comparability. Resuming with a changed or unrecorded policy is refused; use a new run id for the new policy and preserve earlier evidence.

skills/frontierharness-eval/ is an agent-neutral skill: point any coding agent that reads SKILL.md at it and it will drive the whole run — freezing the golden checkpoint, running every task from an identical fresh restore, scoring the trials, and building the report.

How to use the skill

Let an agent drive it

Install the evaluation skill and its Runta companion skills with the Skills CLI (Node.js and Git required). Run these in the project where you use your coding agent:

npx skills add https://runta.com/docs --skill runta-installer runta-cli
npx skills add frontier-harness-eval/eval --skill frontierharness-eval

runta-installer handles Runta tooling setup and verification; runta-cli provides runtime operation guidance. frontierharness-eval drives the benchmark, scoring, and report. If the Runta skills are already installed, only the second command is needed.

Choose the same agent for both commands when prompted, or select one directly:

npx skills add https://runta.com/docs --skill runta-installer runta-cli --agent codex -y
npx skills add frontier-harness-eval/eval --skill frontierharness-eval --agent codex -y

Add --global to both commands to make the skills available across projects. Start a new agent session in the project and ask:

Use the frontierharness-eval skill to evaluate https://github.com/acme/my-harness.
Start with one Terminal-Bench task and one DeepSWE task.

The skill sets up a benchmark checkout for the task definitions and baseline results, uses the Runta skills for tooling setup, then checks prerequisites and guides the evaluation. Installing skills alone does not run evaluations. For a prompt with explicit harness, commit, provider, and build settings, see PROMPT.md.

Already cloned this repository? Install the local copy from its root:

npx skills add . --skill frontierharness-eval
Run it by hand instead

The skill's scripts are the same ones an agent would call, so the run works without an agent at all. Every path is relative to the workspace root, and this repo has its own scripts/ directory, so address the skill's scripts through a variable:

FH=skills/frontierharness-eval/scripts

1. Prerequisites. The runta CLI (brew install runta-dev/tap/runta or npm i -g @runta/runta-cli) authenticated with runta login, plus jq, node >= 18, and Python >= 3.9 for token cost accounting.

2. Install script. Write a script that builds your harness on a clean Linux box. If it is not a built-in agent for Harbor or Pier, register it as a custom agent in both runner registries there, and use the registered name as --harness. For a service on the runtime host or an external host, set --harness-topology runtime-service or external-service when provisioning and document its resource limits and state reset.

3. Provider key. Store it once as a Runta secret, named after the env var for your provider (FIREWORKS_API_KEY, MOONSHOT_API_KEY, OPENROUTER_API_KEY, or TOGETHER_API_KEY). The interactive prompt keeps the value out of your shell history:

runta secret set FIREWORKS_API_KEY --prompt

The API never hands the value back, so provisioning reuses the stored secret instead of asking for plaintext again. A --value-env or --value-stdin route works too if you already have the key in the environment.

4. Golden checkpoint. One command creates the clean runtime, clones the harness at a pinned commit, installs the Harbor and Pier stacks, and freezes a small checkpoint. The trial runner pulls each task image after its restore:

$FH/provision-golden-checkpoint.sh \
  --runtime fh-build --checkpoint fh-golden-myharness-v1 \
  --harness my-harness --provider fireworks \
  --repo https://github.com/acme/my-harness --commit 9f2c1ab \
  --cpus 4 --memory 8192 --disk-size-gib 50 --keep-runtime \
  --install-script ./install-my-harness.sh

The real key stays in the egress proxy, so confirm the runtime only ever sees a stub:

runta exec fh-build -- sh -lc 'test "$FIREWORKS_API_KEY" = runta-secret-stub'

The example keeps the build runtime for inspection. After confirming the checkpoint is ready, remove that build runtime with runta rm fh-build.

5. Trials. Each task gets its own fresh restore, which is deleted after the full evidence archive is verified locally. With no --tasks, this runs the published 30-task set read from tasks/:

$FH/run-trials.sh \
  --checkpoint fh-golden-myharness-v1 --harness my-harness \
  --provider fireworks --run-id 2026-09-02-myharness --out runs

Pass a file of suite-prefixed ids to --tasks to run a subset — worth doing first with one Terminal-Bench and one DeepSWE task to prove the plumbing before spending the full budget. Re-running the same --run-id resumes pending evidence collection, retries infrastructure setup failures, and preserves every valid attempt. Disconnected execution and incomplete copies retain the runtime for recovery. Use a new run id for an intentional new experiment. If a trial dies on infrastructure twice, mark it rather than scoring it as a failure:

trial=runs/2026-09-02-myharness/trials/terminal-bench-<task>/trial.json
jq '.status = "infra_invalid" | .success = false' "$trial" > "$trial.tmp" && mv "$trial.tmp" "$trial"

6. Score, chart, and report.

node $FH/normalize-results.mjs --run runs/2026-09-02-myharness --label "My Harness"
node $FH/generate-chart.mjs    --run runs/2026-09-02-myharness
node $FH/build-report.mjs      --run runs/2026-09-02-myharness

Per-step reasoning, runner templates, and troubleshooting are in SKILL.md and reference.md.

Keeping a result comparable

A score only belongs next to the published numbers if the run holds these invariants. The report states any that were relaxed.

Cost is compared on effective_cost_per_pass, which is total cost across all tasks divided by passes and is reproducible from raw per-task cost. The *_normalized fields in results/eval-data.json reprice first-turn cache reads using data that is not public, so the scoring script leaves them empty rather than inventing values.

Metric definitions and the trial record contract are in SKILL.md. Runner templates, the alternative Harbor-with-Runta-provider topology, and troubleshooting are in reference.md.

Methodology

Tested harness configurations

Configuration Version Configuration Version
Codex 0.148.0 DSH Creator 0.1.0-rc.8
Claude Code 2.1.237 DSH Minimal 0.1.0-rc.8
Pi 0.84.2 DSH PTC 0.1.0-rc.8
DSH Standard 0.1.0-rc.8 Oh My Pi 17.4.0
Kimi Code 0.37.2 Exo Harness 0.1.0
OpenCode 1.18.19 Hermes 0.20.4

Benchmark scope

See benchmark.json for the public benchmark definition and results/eval-data.json for the complete normalized result set.

Use the data

jq '.harnesses[] | {name, successful, effective_cost_per_pass}' results/eval-data.json

Every task directory contains the exact public instruction and task metadata used by the benchmark.

Sponsor

Runta provided the isolated runtimes and Golden Checkpoint restores used across all 360 evaluations.

Sponsored by Runta

eval (frontier-harness-eval/eval)

Searching Database…

311 ·GitHub
这是什么?FrontierHarness Eval 是一个公开基准测试,让同一个 Kimi K3 模型在相同的 30 个软件工程任务上通过九个编码智能体 harness(12 种配置)运行,以观察当只有 harness 变化时,通过率、成本、缓存行为和速度会如何变化。
这只是一个排行榜,还是我也能评测自己的 harness?该仓库提供公开结果和任务定义,外加一套复现工作流:一个与智能体无关的技能(skills/frontierharness-eval/),任何编码智能体都能从 SKILL.md 读取它来运行整个评测、打分并生成报告。
怎么用它评测我自己的 harness?用 Skills CLI 安装评测技能及其 Runta 配套技能(需要 Node.js 和 Git),然后在项目中启动编码智能体会话并请它运行基准测试;该技能会冻结一个黄金检查点,从完全相同的新鲜还原状态运行每个任务,对试验打分并生成报告。
手动运行评测之前需要安装什么?你需要通过 brew 或 npm 安装 runta CLI 并用 runta login 完成认证,另外需要 jq、Node.js 18+ 和用于 token 成本核算的 Python 3.9+,还需要一个以 Runta secret 形式保存的服务商 API 密钥(Fireworks、Moonshot、OpenRouter 或 Together)。
如果我评测自己的 harness,结果能和公开排行榜的数字相比吗?不能自动相比:已发布的基线没有记录它们的出站白名单,因此新运行默认 methodologycomparable: false,拿不到排行榜名次,除非你在相同且已记录的网络策略和环境之下运行一个匹配的对照 harness。
Runta 是什么?Runta 是赞助服务,为该基准的全部 360 次评测提供了隔离运行时和黄金检查点还原。
通过率相近的 harness 为什么成本相差这么大?所有 harness 使用完全相同的 Kimi K3 模型和任务,因此提示词结构和首轮缓存命中率的差异,使单次通过的中位成本最多相差 17.5 倍——从 Exo Harness 的约 $1.05 到 Claude Code 的 $18.34。
每个 harness 运行的是哪个模型和哪些任务?每种配置都在相同的 30 个任务上使用同一个 Kimi K3 模型(由 Fireworks 提供服务):21 个 Terminal-Bench 任务和 9 个 DeepSWE 任务,共计 360 次评测。
这个公开仓库排除了哪些内容?内部基础设施、凭据、运行时标识符、私有证据、解答和部署配置被刻意排除在外,因此只有结果、任务定义和可复现的工作流是公开的。
Size
2.5 MB
Stars
311
Updated
CommitSep 08
Age
1mo
Commits · 90 Days