Skip to main content
A harness is the agent loop that drives a chat: it decides which tool to call next, what to say, and when to stop. Every chat runs on Ana’s own loop by default. With Agent Harnesses on, a chat can run on Codex, Claude Code, or an agent your workspace hosts instead. Whichever harness drives the chat, it works through Ana’s tools, so it reads the same connectors and Ontology, runs Python and SQL in the same sandbox, and is held to the same permissions and approvals as Ana. Its results show up in the thread as ordinary steps.
Availability: Agent Harnesses is a Beta feature. An admin turns it on under Settings → Capabilities → Beta → Agent Harnesses.

The harnesses

Codex and Claude Code can only drive the model families they were built for. The Harnesses sub-tab under Settings → Models shows a compatibility matrix of which catalog models each harness can run.

Picking a harness

Open the model picker in the chat composer. With harnesses on, it lists the harnesses you can use beside the models each one runs, so you pick a harness and a model together. A chat keeps its harness for its whole life. To switch, start a new chat. New chats start on your default harness. It comes from, in order:
  1. Your personal default, set under Settings → Personal, if your role lets you choose a harness.
  2. Your role’s default harness.
  3. The workspace’s default harness, set by an admin.
  4. Ana.
The same rule applies wherever a chat starts without anyone picking a harness: Slack and Teams threads use the default of the person who started the thread, playbook runs use the default of the member they run as, and chats started from the API or CLI use the caller’s default. When a chat lands on a default harness that can’t run the chat’s default model, the harness switches to a model it can run: your own model choice for that harness, then the harness’s workspace default model, then the workspace or system default. A model you or a playbook chose explicitly is never swapped; if the default harness can’t run it, that chat runs on Ana instead.

Setting it up

  1. Turn on Agent Harnesses under Settings → Capabilities → Beta.
  2. Under Settings → Models → Harnesses, turn each harness on or off and set its default model.
  3. Pick the workspace default under Org defaults. New chats start on it unless a role or member default applies.
  4. Under Settings → Models → Role Access, switch the view to harnesses to set, per role, a Default Harness, the Allowed Harnesses, and whether members Can Switch. A member who can’t switch can only use the default harness resolved for them: their role’s default, or the workspace default or Ana when the role has none.

Adding a workspace harness

A workspace harness is an agent you host that speaks the Agent Client Protocol over a secure WebSocket. It calls Ana’s tools through that connection and brings its own model.
  1. Under Settings → Models → Harnesses, click Add harness.
  2. Enter a name and its wss:// address, plus an optional authorization header.
  3. Test the connection. The harness page shows the result of the last test and the harness’s usage over the last 30 days.

Playbooks

A playbook can pin a harness next to its model in the playbook editor, or with the harness key (ana, codex, or claude_code) in its config file. Leaving it unset runs each playbook run on the run-as member’s default harness. When playbooks are managed as config files, saving one checks that its harness is turned on and can run its pinned model. Workspace harnesses can’t be pinned on a playbook.

Good to know

  • Long threads are summarized by Ana, whichever harness the chat runs on.
  • Codex and Claude Code each start a sandbox of their own for every reply, in addition to the chat’s sandbox where tools run.
  • Turning Agent Harnesses off doesn’t move existing harness chats to Ana. Their next message fails, and a playbook pinned to a harness fails its runs, until the feature is turned back on or the pin is removed.
  • Saved agents run from the Agents page or on their schedule, evaluations, and other system jobs always run on Ana.