Skip to content
open.securityopen.securityBeta
Skip documentation navigation
Browse documentation

Agent integration

Choose the agent you want to evaluate

OSB evaluates one reproducible candidate directory at a time. The agent type decides which executable starts; the benchmark, dataset, task, evidence, and scoring contracts do not change with it.
Benchmark
ISPM-Enterprise-SQL@v1
Bundled dataset
ispm-crossvendor-v1

Choose by ownership boundary

The first three use a known runtime. Custom makes your binary part of the submitted candidate.

Installed CLI

Claude Code

Best when you already operate Claude Code and want to carry CLAUDE.md, skills, or subagents into the candidate.

Installed CLI

Codex

Best when you already operate Codex and want its native login, configuration, and workspace-write sandbox.

Reference runtime

osec-agent-1

Best for a small reference loop where the model is explicit and OSB owns the agent implementation.

Submitted binary

Custom ACP agent

Best when the agent itself is your product and you can implement ACP, package a static binary, and honour the gateway boundary.
Agent integration tradeoffs
AgentWhat you provideModelPrimary risk to check
Claude CodeCLI install, login, permission postureCLI default or manifest pinA headless permission prompt stalls the task
CodexCLI install and local login/configCLI default or manifest pinSystem-prompt override is unsupported
osec-agent-1Matching release binary and model routeRequired in the manifestModel name and provider route must agree
CustomStatic Linux ACP executable and assetsPlatform catalog through the gatewaystdout must remain a clean JSON-RPC channel

The common contract

Every path follows the same directory, preflight, one-task validation, and inspection loop.
  1. Create a harness directory

    The directory name is the harness id you pass on the command line. Its contents are the candidate, not a loose set of flags.

    candidate layout
    harness/<id>/
    ├── manifest.toml # candidate identity; commit this
    ├── config.toml # optional machine-local routing
    ├── CLAUDE.md | AGENTS.md # optional context; choose one
    ├── skills/ # Claude Code only
    └── agents/ # Claude Code only
  2. Keep identity separate from machine routing

    manifest.toml declares the candidate. An optional config.toml holds local concurrency, dataset, and provider-routing detail. Gitignore that machine-local file, and never write a secret into either.

  3. Run preflight

    shell
    $ osb doctor

    Doctor reports host readiness. The strict manifest loader runs again in the command preflight and rejects unknown keys, credential fields, and invalid per-agent combinations.

  4. Validate exactly one task

    shell
    $ osb run ISPM-Enterprise-SQL@v1 <harness-id> \
    --tasks aws-active-access-keys-older
    $ osb inspect

One protocol underneath

Every kind is driven as an Agent Client Protocol agent over stdio. The CLI choices use adapters; osec-agent-1 and custom implement the agent side directly.
  • OSB is the ACP client and opens one session per solve.
  • The benchmark data surface arrives as MCP tools, including get_schema and run_query.
  • Session updates become the ordered evidence saved with the run.
  • Local model credentials stay in your environment; platform credentials stay behind the per-run gateway.

What a good one-task validation proves

Treat the smoke test as an integration gate, not a score claim.
  • The intended executable starts without an interactive prompt.
  • The candidate receives the benchmark MCP tools over ACP.
  • The provider routes respond before sustained token spend.
  • The task reaches scored and the run can be inspected.
  • The saved header names the intended harness, the agent type, ISPM-Enterprise-SQL@v1, and ispm-crossvendor-v1.