LH-Bench: Skill-Grounded Evaluation of Long-Horizon Agents on Subjective Enterprise Tasks
Organizations: Metaphi Inc. USA
Abstract
Large language models excel on objectively verifiable tasks such as math and programming, where evaluation reduces to unit tests or a single correct answer. In contrast, real-world enterprise work is often subjective and context-dependent: success hinges on organizational goals, user intent, and the quality of intermediate artifacts produced across long, multi-tool workflows. We introduce LH-Bench, a three-pillar evaluation design that moves beyond binary correctness to score autonomous, long-horizon execution on subjective enterprise tasks. The pillars are: (i) expert-grounded rubrics that give LLM judges the domain context needed to score subjective work, (ii) curated ground-truth artifacts that enable stepwise reward signals (e.g., chapter-level annotation for content tasks), and (iii) pairwise human preference evaluation for convergent validation. We show that domain-authored rubrics provide substantially more reliable evaluation signals than LLM-authored rubrics (kappa = 0.60 vs. 0.46), and that human preference judgments confirm the same top-tier separation (p < 0.05), evidence that expert-grounded evaluation can scale without sacrificing reliability. We release public datasets and report results on two environments: Figma-to-code (33 real .fig tasks against the Figma API via MCP) and Programmatic content (41 courses comprising 183 individually-evaluated chapters on a course platform serving 30+ daily users).
Figures & tables
| Benchmark | Tasks | Multi-turn | Real env. | Expert rubrics | Artifact eval |
|---|---|---|---|---|---|
| WebArena ( Zhou et al., 2024 ) | 812 | × | Web | × | Binary |
| VisualWebArena ( Koh et al., 2024 ) | 910 | × | Web | × | Binary |
| SWE-bench ( Jimenez et al., 2024 ) | 2294 | × | Code | × | Unit tests |
| OSWorld ( Xie et al., 2024 ) | 369 | × | OS | × | Binary |
| -bench ( Yao et al., 2024 ) | 200 | ✓ | API | × | Binary |
| Design2Code ( Si et al., 2025 ) | 484 | × | × | × | VLM |
| Environment | Representative task | Why it is hard |
|---|---|---|
| Figma-to-code | Multi-route product or SaaS interface from a real .fig file | The agent must inspect nested frames, extract assets and tokens, implement all routes, and preserve previously-correct pages during iterative edits. |
| Programmatic content | Chapter revision such as “compare GRPO with PPO” or “add a gradient-flow visual” | The agent must retrieve supporting evidence from multiple sources, maintain prior visual style, edit only the affected scenes, and keep narration synchronized with updated visuals. |
| Judge | Inputs | Scores |
|---|---|---|
| Trajectory | Transcript + tool traces | Planning, recovery |
| Process | Transcript + skill rubric | Workflow compliance |
| Output | Ground truth + screenshots | Visual fidelity |
| Rank | Agent harness / model | Score | n |
|---|---|---|---|
| 1 | Codex (GPT-5.2 Pro) | 4.27 | 18 |
| 2 | Claude Code (Opus 4.6) | 32 | |
| 3 | Codex (GPT-5.2) | 31 | |
| 4 | Claude Code (Opus 4.5) | 3.88 | 29 |
| 5 | Gemini CLI (Gemini 3.1 Pro) | 29 | |
| 6 | Claude Code (Sonnet 4.5) | 3.66 | 22 |
| Rank | Agent / model | Score ( n ) | Gemini | Claude | GPT | Var. |
|---|---|---|---|---|---|---|
| 1 | Claude Code (Opus 4.6) | (31) | 3.50 | 3.37 | 2.92 | 0.14 |
| 2 | Codex (GPT-5.2) | (31) | 3.51 | 3.11 | 2.82 | 0.15 |
| 3 | Gemini CLI (3.1 Pro) | (29) | 3.06 | 2.70 | 2.67 | 0.06 |
| Rank | Agent / model | Score ( n ) | Inspect. | Token | Comp. | Build |
|---|---|---|---|---|---|---|
| 1 | Claude Code (Opus 4.6) | (31) | 3.40 | 2.88 | 3.58 | 3.21 |
| 2 | Codex (GPT-5.2) | (31) | 3.52 | 2.64 | 3.34 | 2.97 |
| 3 | Gemini CLI (3.1 Pro) | (29) | 2.95 | 1.66 | 3.28 | 3.45 |
| (agreement) | 0.60 | 0.50 | 0.58 | 0.34 | 0.67 |
| Agent / model | 3-pt score | 5-pt score |
|---|---|---|
| Claude Code (Opus 4.6) | ||
| Gemini CLI (3.1 Pro) | ||
| Codex (GPT-5.2) |
| Agent | Condition | Insp. | Token | Arch. | Build | Overall |
|---|---|---|---|---|---|---|
| Claude Code ( ) | Without | 3.44 | 2.78 | 3.44 | 3.22 | 3.23 |
| With | 3.78 | 3.11 | 3.56 | 2.89 | 3.38 | |
| 0.34 | 0.33 | 0.12 | 0.33 | 0.15 | ||
| Codex ( ) | Without | 2.17 | 2.50 | 2.34 | 1.00 | 2.06 |
| With | 3.00 | 2.84 | 3.17 | 2.67 | 2.93 | |
| 0.83 | 0.34 | 0.83 | 1.67 | 0.87 |
| Metric | v1.1 (LLM, 8 rubrics) | v1.2 (Expert, 4 rubrics) |
|---|---|---|
| Mean pairwise | 0.46 | 0.60 |
| Gemini–Claude | 0.44 | 0.65 |
| Gemini–GPT | 0.31 | 0.52 |
| Claude–GPT | 0.63 | 0.64 |
| Mean variance | 0.25 | 0.10 |
| Agent harness | Elo | 95% CI | Win % | n wins |
|---|---|---|---|---|
| Codex (GPT-5.2) | 1054 | [1005, 1114] | 56.8 | 72 |
| Claude Code (Opus 4.6) | 1039 | [987, 1093] | 55.1 | 43 |
| Gemini CLI (3.1 Pro) | 907 | [842, 965] | 31.1 | 21 |
| Agent | Human WR | VLM WR (3-pt) | VLM WR (5-pt) |
|---|---|---|---|
| Claude Code (Opus 4.6) | 81.5% | 66.8% | 69.0% |
| Codex (GPT-5.2) | 34.2% | 33.9% | 33.1% |
| Gemini CLI (3.1 Pro) | 34.2% | 49.2% | 47.8% |
| Error type | Count | Recovered | Recovery % |
|---|---|---|---|
| Tool call failure | 419 | 278 | 66.3 |
| Git error | 64 | 48 | 75.0 |
| Syntax error | 33 | 30 | 90.9 |
| Dependency error | 28 | 22 | 78.6 |
| Preview deny | 18 | 16 | 88.9 |
| Build error | 11 | 11 | 100.0 |
| Agent | Runs | Errors | Failure % | Recovery % | Preview | Deploy | Tool calls |
|---|---|---|---|---|---|---|---|
| Claude Code (Opus 4.6) | 32 | 152 | 7.3 | 71.1 | 30/32 | 27/32 | 2692 |
| Codex (GPT-5.2) | 34 | 273 | 9.4 | 74.0 | 5/34 | 21/34 | 3339 |
| Gemini CLI (3.1 Pro) | 30 | 165 | 8.4 | 63.6 | 30/30 | 30/30 | 2092 |
Appendix figures & tables11 assets
Supplementary material from the paper’s appendix.
Appendix
| Rubric | Wt. | What it measures | Key boundary (3→4) |
|---|---|---|---|
| Design Inspection & Asset Extraction | 0.30 | Extent of Figma file inspection, asset export completeness, format correctness, multi-page navigation discovery | 3 = all assets exported in correct formats; 4 = also organized (semantic filenames, directory structure, hierarchy inspection before coding) |
| Design Token & Style Extraction | 0.25 | Extraction and centralization of colors, typography, spacing, shadows, borders into a token/theme file | 3 = token file covers 4+ of 6 categories, tokens referenced in code; 4 = also created before components, semantic naming, zero hardcoded leaks |
| Component & Layout Architecture | 0.25 | Component decomposition, pattern reuse, Auto Layout→CSS mapping, variant/state handling | 3 = repeated patterns identified, layout correct, hover states; 4 = also planned upfront (visible in transcript), full variant coverage, props interface |
| Build Verification & Iteration | 0.20 | Build/preview execution, error diagnosis and fix iteration, visual verification against Figma design | 3 = build compiles successfully; 4 = also opened preview AND made at least one fix based on visual inspection |
| v1.1 (LLM-authored) | v1.2 (Expert-authored) | |
|---|---|---|
| Rubric count | 8 | 4 |
| Scope | Figma-to-code (fine-grained) | Figma-to-code (workflow phases) |
| Anchor style | Generic (“Inadequate”–“Expert”) | Observable (transcript evidence) |
| Boundary type | Subjective | Binary-observable |
| v1.1 rubrics (non-equal weight): | ||
| Design file inspection (0.07), Image asset extraction (0.20), | ||
| Rubric | Weight | What it measures |
|---|---|---|
| Component coverage | 0.20 | Percentage of design components rendered |
| Layout accuracy | 0.18 | Spatial positioning/sizing and flex/grid correctness |
| Colors accuracy | 0.14 | Palette fidelity (fills, gradients, borders) |
| Typography accuracy | 0.12 | Font family/size/weight/line-height match |
| Asset display | 0.10 | Images/icons/vector assets render correctly |
| Visual fidelity | 0.10 | Overall visual similarity |
| Pair | n | Agree (3-pt) | (3-pt) | Agree (5-pt) | (5-pt) |
|---|---|---|---|---|---|
| Claude vs. Codex | 92 | 57.6% | 0.121 | 57.6% | 0.044 |
| Claude vs. Gemini | 92 | 40.2% | 0.004 | 48.9% | 0.024 |
| Codex vs. Gemini | 91 | 41.8% | 0.102 | 49.5% | 0.180 |
| Overall | 275 | 46.5% | 0.073 | 52.0% | 0.082 |
| Task ID | Claude | Codex | Gemini | Overall | Pass % |
|---|---|---|---|---|---|
| 010ac575 | 0/3 | – | 0/1 | 0/4 | 0% |
| 49bdd49a | 0/2 | 0/1 | – | 0/3 | 0% |
| aafbd754 | 0/1 | 0/2 | – | 0/3 | 0% |
| d8611910 | 0/1 | – | – | 0/1 | 0% |
| 6d91b0b6 | 0/1 | 0/2 | 1/2 | 1/5 | 20% |
| 91ce9b15 | 0/2 | 0/2 | 1/1 | 1/5 | 20% |
Long-Horizon Agent Evaluation
Long-Horizon Agent Evaluation measures whether AI agents can plan, act, remember, and stay reliable across extended tasks and changing environments.
See all 357 papers