Skip to main content
You do not write an agent harness to use Obversa; you point Obversa at one. An agent harness is the software around a model that turns it into an agent: the loop that reads the model’s answer and acts on it, the tools it may call, the memory it keeps between turns, and the guardrails. Claude Code, Codex, OpenCode and Grok’s CLI are agent harnesses. Obversa treats each of those as an engine. One bounded call to an engine is one step, and the step’s result is what the workflow reads. The file below uses a stand-in engine from the testing module so it runs offline; a real team names a seat helper such as claude() or codex() instead:

Inner and outer

Things that catch people out

  • A harness does not review itself well. A second seat from a different provider catches what the first agrees with. The workflow is where that second seat is declared.
  • Each call is fresh. Every engine call runs in a new process, so nothing leaks from one step to the next except what the workflow hands over. See engine plugins.
  • The name is shared. Harness engineering, in this crowd, means building the inner loop. Obversa is the layer above it. See what is a meta-harness.

Where to go

Plugins and tools for the harnesses Obversa drives today; one agent, one job for the runtime’s smallest call.