bots-bench / About

How we measure AI investigations

Compare how well AI agents investigate, how long they take, and what the model costs. Use the results to shortlist setups for your own tests.

The benchmark

What does CyBT-CTF measure?

CyBT-CTF (Cyber Blue Team CTF) tests AI agents on 59 cyber investigation questions. The agents work the way an analyst does: they search a Splunk log database. The data simulates a company, just like Splunk BOTSv3. It records several incidents as artifacts, logs, and alerts. Each result measures the model, the agent software, and the tools together.

The questions are hard for people. We expect four senior analysts to need about a day. We expect most teams not to finish in that time.

The questions and answers stay private, so a model is less likely to have seen them. BOTSv3 gives a public test for comparison. We also test whether a model already knows the answers. See benchmark hygiene.

We run open-weight models ourselves, on our own hardware. Hosted runs use US inference providers and lab APIs: RunPod, Fireworks, AWS Bedrock, openai.com, and anthropic.com. We set each account so the provider does not retain our prompts.

Scoring

How we score, and why scores change

Solve rate is the share of questions answered correctly. Answers recorded after five minutes count as misses. Solved-time figures cover the credited answers.

We keep the full record of every run. We still find the occasional error in an answer key or a scoring rule. We fix it, then rescore every run it touched. You always see the current scores.

Small score gaps can reflect variation between runs. Read close results as close.

Costs

Compare cost with coverage

Costs are model spending in US dollars. We price each run with published API prices from the named provider. We refresh those prices as vendors change them, and each figure carries the rate date we used.

These figures cover the model only. They leave out infrastructure, tools, and analyst time.

Evaluation integrity

Check how the agent got the answer

An agent can return a correct answer without doing the investigation. Tests without investigation tools check for memorized answers and other shortcuts. Reviews of answers and tool use help identify the cause.

Read answer scores alongside memorization checks, checks for disallowed behavior, and the techniques we watch for. Not tested and not reviewed mean the evidence is missing.

Models from different companies sometimes answer alike. The agreement audit screens for that.

Watch Breaking BOTS II: How frontier AI cheats evals by Leo Meyerovich. BSides Las Vegas 2026, [un]prompted; video starts at 36:31.

BOTSv3 runs

How the BOTSv3 runs work

Execution model

  • Each question is answered in an isolated sandbox with live database access (Splunk with the BOTSv3 dataset)
  • No memory across questions: each question starts a fresh agent session
  • 5-minute cap per question, applied after the run: a solve recorded over 300s counts as a miss
  • Same short prompt prefix across all questions, no per-question prompt engineering
  • Choice of model, agent harness (MCP, curl CLI), and reasoning effort

Scoring

  • First-pass pass rate: how many of 59 questions the system answers correctly on the first attempt
  • Time: total and median time spent on solved questions
  • Contamination score: the same system is run without database access to measure how many answers come from memorization rather than investigation
  • Retries are tracked separately in the Retry Lab and do not count toward the main score

Dependent questions

20 of 59 questions include context from earlier answers (for example, "Based on the answer to Q304..."). In practice:

  • The benchmark injects prior answers as context hints; the system does not need to remember them
  • If self-reporting, you can discard these 20 questions for a conservative score on the 39 independent questions
  • Or contact us to run the official harness, which handles the injection automatically

What we vary

  • Models: every model in the run tables on the results page: Anthropic, OpenAI, Amazon and open-weight models
  • Agents: Claude Code, OpenAI Codex, opencode
  • Tool routes to Splunk: MCP, MCP with a to-do list, curl, curl direct, and curl with a to-do list; every run is labelled with its route
  • Database: Splunk
  • Reasoning effort: low, medium, high or the default, as labelled on each run
  • Prompt variants: default, literal-answer, cross-validate, planning loop, to-do planning, prompt-optimized and clean prompt

Contributing

Want to add your model or agent to the benchmark?

  • Contact us when ready and we can run the final for you with the full 59-question corpus including dependent-question injection
  • If self-reporting, feel free to throw out the 20 dependent questions for a conservative score on the 39 independent ones
  • All runs must use the same prompt prefix and 300s timeout to be comparable
  • A contamination probe (no-tools run) is required alongside with-tools results

Case study

Did the April 2026 Claude problems explain a gap between Opus 4.6 and 4.7?

On April 23, 2026, Anthropic published a postmortem. It described three product and harness problems that affected recent Claude runs.

We reran 17 BOTSv3 questions under matched conditions, after the problem window. Earlier runs had flagged these 17 for memorized answers. We asked whether those problems explain how Opus 4.6 and Opus 4.7 differ on them.

With tools, Opus 4.6 at high effort solved 14 of the 17. Opus 4.7 at high effort solved 5. Both used the same questions and the same setup.

Without tools, Opus 4.6 solved 6 of the 17 at high effort and 7 at default effort. Opus 4.7 solved 1 at both settings. Its one solve needs only general knowledge.

The timing of the problems does not explain the gap by itself. Model behavior and tool use likely account for the rest. Host configuration changes around April 17 may also matter for runs outside our isolated harness. We could not measure that effect.

We do not publish the full rerun, because it quotes the questions and answers.