All benchmarksCode ↗LiveBrowseComp ↗Paper ↗

Coding-Agent CLIs × Search Backends on LBC-30

When an agent has to find a hard fact on the live web, what decides whether it succeeds: the agent, or the search tool plugged into it? Most benchmarks test an agent with whatever search it ships with, so a score never separates the model from its retrieval. This study isolates the two.

#Systemvs bestSolvedGen cost
1claude-exaclaude code · exa mcp · cheapest Claude arm60.0%reference18 / 3066.753.3$50.31
2claudeclaude code · builtin websearch · 1,632 builtin searches46.7%−13.314 / 3046.746.7$120.06
3codexcodex cli · live web_search · 2.4M tokens46.7%−13.314 / 3040.053.3~$1–6*
4codex-keenable via openroutercodex cli · keenable select (webql) mcp (via openrouter) · 281 select calls; via OpenRouter46.7%−13.314 / 3033.360.0~$15*
5claude-keenable via openrouter 3 failed runsclaude code · keenable select (webql) mcp (via openrouter) · 3 failed runs (idx 49, 156, 307: 3×30-min timeouts each); 1,498 select calls; via OpenRouter43.3%−16.713 / 3046.740.0$44.39
6codex-exacodex cli · exa mcp · 425 MCP calls40.0%−20.012 / 3046.733.3~$1–5*
7claude-valyuclaude code · valyu mcp26.7%−33.38 / 3026.726.7$117.93
8codex-valyucodex cli · valyu mcp · 858 MCP calls, 2.7M tokens20.0%−40.06 / 3033.36.7~$1.5–7*

click a metric header to sort · hover a header for its definition

Results

accuracy and cost per correct answer, one column per setup · keenable select joined 2026-09-04

Which search API makes a coding agent better at web research?2 agents × 4 search APIs on 30 LiveBrowseComp questions · one run per setup · judged blind by gemini-3.1-pro-preview
most accurateClaude Code + Exa60% · 18 of 30 correct
cheapest per correct answerClaude Code + Exa · $2.79Keenable SELECT $3.41 · built-in $8.58 · Valyu $14.74 · Codex arms cheaper but estimated
what moves accuracythe search APIswap the search API: 27–33 pts · swap the agent: 0–20 pts
accuracy %60.0$ per correct answer$2.79ClaudeExa
 46.7 $8.58Claudebuilt-in
 46.7 ≤$0.43Codexbuilt-in
 46.7 ≤$1.07CodexKeenable SELECT
 43.3 $3.41ClaudeKeenable SELECT
 40.0 ≤$0.42CodexExa
 26.7 $14.74ClaudeValyu
 20.0 ≤$1.17CodexValyu
ran Aug 2026Keenable SELECT, added 2026-09-04 via OpenRouterCodex cost estimated from tokensresearch.site/lbc-30 · 2026-09-04

check on 15 fresh questions with identical plumbing for all three: Keenable SELECT 53% · Exa 40% · built-in 33% (one question = 6.7 pts)

Per-task verdicts are on the ; per-run search behavior from the raw traces is under and per task in the .

caveats

n=30, single run per cell, so one task is worth ~3.3 points; treat gaps under 10 points as noise (claude-exa’s lead and the valyu deficit clear that bar; builtin-vs-codex-exa does not). Codex ran at its CLI-default reasoning effort (“none” in this build). The judge is Gemini, not the paper’s GPT-OSS. Two of the funders’ backends finished first and last; disclosure below. The two Keenable SELECT (WebQL) arms (2026-09-04) measure Keenable’s experimental SQL-over-the-web product, not its search API, and ran with model calls via OpenRouter on a newer Claude Code build than the original six; on a transport-matched held-out 15 the frozen-30 ordering did not reproduce (claude-keenable 53.3%, claude-exa-or 40.0%, claude-builtin-or 33.3%; see the leaderboard and methodology tabs).

Funding

Exa provided $1,000 in API credits for this benchmark series (shared with RB-30 and DRB2-20), and Valyu provided $500 for this benchmark (disclosed post-freeze, pre-main-run; Amendment F). Both are compared search backends here; one funder’s backend won and the other’s lost, under configs frozen mechanically before the first run. Neither had input into task selection, configurations, prompts or judging.

For the 2026-09-04 extension, Keenable provided a $250 OpenRouter credit (of which $174.92 was drawn) that paid for the model calls of its two arms, the held-out slice including the two control arms, and the extension judging pass, plus the API key for the SELECT (WebQL) MCP endpoint. Keenable can observe the benchmark queries after the run; it had no input into task selection, configurations, prompts, the tool-surface rule or judging, all committed before its arms ran (CONFIG.md §9 update, Amendment I).

30 tasks · 15 dated / 15 undated · 6 systems, 180 main runs, 0 failures (2026-08-13) + 2 Keenable SELECT arms, 60 runs, 3 failures (2026-09-04) + held-out 15, 45 runs · judge gemini-3.1-pro-preview, blinded · 13 amendments, none post-score · questions & answers © LiveBrowseComp authors · repository · RESULTS.md ·