Harnesses
A harness is a visual graph that defines how your agents are wired together — inputs, agents, guardrails, and outputs on a canvas. Build it, run it, evaluate it, and export portable OpenTelemetry traces.

A harness is the structure around your model — the wiring that turns a raw LLM into a reliable agent. In Invoked you build harnesses on a visual canvas: connect inputs, agents, guardrails, and outputs into a graph, then run, evaluate, and export them.
The thesis is simple: the harness matters more than the model. A good harness makes a modest model dependable; a bad one wastes a great model. Invoked makes that harness explicit, observable, and reusable.
Harnesses are a top-level section in the sidebar with two tabs — Build and Assertions. (Exporting a harness or a run's trace lives under Toolkit → Import, Data & Runs → Export, alongside Import and Run History.)
Build
The Build tab is the design canvas. Drag nodes onto the graph and connect them:
- Input — where a run's data enters (source only).
- Agent — a model with a role, tools, and instructions.
- Guardrail — a check placed between agents to validate or gate output.
- Output — where results leave the graph (sink only).
The canvas guides valid connections based on the graph grammar, so the structure stays sound as you build.
Assertions
The Assertions tab defines behavioral checks that run against a harness's captured runs — expected tool called, max latency, output JSON-Schema — and shows each one green or red. Assertions turn "did this change break anything?" into a repeatable pass/fail check rather than a guess.
Not to be confused with Model Evals (under AI), which compares different models side by side on the same prompt. Assertions check a single harness's behavior against rules; Model Evals compare models against each other.
Export
Export (under Toolkit → Import, Data & Runs → Export) emits a portable trace of a run in an OpenTelemetry / OpenInference-shaped format — an AGENT span for the run and a TOOL span per step, with inputs, outputs, tool names, token counts, latency, and errors. It drops straight into the observability and eval tools your team already uses — Arize/Phoenix, Langfuse, or Braintrust — so Invoked is the layer above your stack: build and prove the agent here, export the evidence to wherever you monitor. Your traces aren't locked inside Invoked.
Harness recipes can also be exported as YAML for PR-style review and sharing, while the living run history and performance stats stay in your workspace.