Skip to main content
A Harness is a reusable preset for what drives an agent: the agent runtime and its exact version, an optional Anthropic-compatible LLM provider, and advanced runtime settings. Configure it once, then pick it on any agent, context builder, app builder, or the data builder. Without a harness, everything runs on the built-in Claude Agent SDK against stock Anthropic. Create a harness when you need to:
  • Pin the runtime version so an image update never changes agent behavior.
  • Route model calls to your own gateway — an LLM proxy, a self-hosted model server, or another provider’s Anthropic-compatible endpoint.
  • Tune the runtime — compaction, thinking budget, timeouts.

Open Harnesses

Open the More menu on the left rail and choose Harnesses. Each card summarizes the preset, for example sdk@0.3.204 · gateway.example.com · my-model · 2 advanced settings, or built-in SDK · stock Anthropic. Admins and Builders can create, edit, and delete harnesses. Every member can view them.

Runtime: Claude Agent SDK vs Codex

The runtime is fixed once the harness is created; to switch runtimes, create a new harness.

Create a harness

1

Start the dialog

Click New harness.
2

Name and runtime

Enter a Name (unique in the workspace, e.g. gateway-prod) and an optional Description. Leave Runtime on Claude Agent SDK.
3

Pin a version (optional)

Enter an exact Version, or leave it blank for the built-in default.
4

Point at a gateway (optional)

Fill in the LLM provider fields to route model calls to an Anthropic-compatible endpoint.
5

Add advanced settings (optional)

Use + Add setting… to tune the runtime.
6

Create

Click Create, then select the harness on your agents.

Version pinning

  • Only exact versions are accepted — no tags such as latest and no ranges such as ^0.3. A floating tag would defeat the pin.
  • A pinned version that differs from the built-in one is installed inside the sandbox when the run starts, which adds start-up time.
  • Pin a version when you validated your agents against it, or when your gateway requires specific wire behavior.

LLM provider (Anthropic-compatible gateway)

Leave Claude base URL blank to use stock Anthropic; the other provider fields stay disabled. Fill it in to send every model call to your own endpoint.

How the auth token secret works

The Auth token secret stores only a name, never the key itself:
1

Store the provider key as a workspace secret

Add the gateway’s key under Workspace settings -> Secrets, for example with the name gateway_api_key. The picker lists the workspace’s secrets.
2

Select it on the harness

Choose it under Auth token secret. Saving checks that the name exists as a workspace secret or as a Secret slot in the workspace’s Default vault; an unknown name is rejected.
3

At run time

DataGen looks the name up first among the Secrets the run’s vault provides (matched case-insensitively, hyphens as underscores), then among workspace secrets. The value is exported as both ANTHROPIC_AUTH_TOKEN (sent as a Bearer token) and ANTHROPIC_API_KEY (sent as x-api-key), so gateways that accept either header work, and your real Anthropic key never reaches the custom URL.
With No secret (use default auth), the existing ANTHROPIC_API_KEY from the vault or workspace secrets is sent to the custom base URL. Select an auth token secret whenever the gateway is not operated by you or does not expect your Anthropic key. A Claude subscription OAuth token is always removed when a custom base URL is set.

Model precedence

When Provider model is set, every agent bound to the harness runs on it. The agent’s Default model and any automation’s model are ignored, and the agent settings show a note saying which model the agent always runs on. Leave Provider model blank to let each agent’s default model apply.

Advanced settings

+ Add setting… offers an allowlist of runtime settings. Each one is injected into the sandbox as the env var of the same name; only these keys are accepted.
Gateways that translate to OpenAI-style backends (for example vLLM) may reject the effort value high. Set CLAUDE_CODE_EFFORT_LEVEL to medium for them.

Where a harness is selected


Gotchas

The harness pins a Provider model. Clear it on the harness, or bind those agents to a different harness.
Some providers cannot map Claude model names. Set both Provider model and Provider small model so every model slot — including subagents and fast background calls — uses a model the provider serves.
The Auth token secret must exist as a workspace secret or as a Secret in the Default vault before you save. Create it first, then select it.
Clearing Claude base URL also clears the auth token secret and both model fields, so the harness returns to stock Anthropic cleanly.
Agents pinned to it fall back to the built-in default (built-in SDK, stock Anthropic).

Next

Data overview

Connect a database and publish data models your agents can query.

Build an agent

Put the vault, sandbox environment and harness together on an agent.