never_say
guardrails and handoff run in real time on every call; evals score the call
after it ends.
The primitives
Most of the harness is declared in the playbook:
playbook.yaml (excerpt)
Good to know
- Two runtimes, two dial paths. Agents built in Agent Studio are dialed
with the Task API. Agents
created with the SDK are dialed with
client.calls.create(). Do not mix them. - Handoff is a warm transfer on Agent Studio agents: the caller hears hold music while the person hears an announcement. The transcript is not passed to the person.
On the spine
The harness wraps every interaction. It reads context and the entity before the first turn, and it records tool calls, handoffs and the evaluation score on the interaction’s outcome.What stays hidden
Prompt assembly, which provider served a turn, retry timers and failover. You declare tools, gates and handoff numbers; the harness runs them.Status
Production: the runtime, HTTP tools, retries,never_say guardrails,
human handoff, evals, and call-level observability. In build: MCP tools,
and a policy layer for guardrails beyond the playbook.
Go deeper
Tools
Declare HTTP and Python tools in a playbook.
Playbooks
Checkpoints, gates and
never_say.Evals
Score conversations before and after launch.
Agents
The workers the harness runs.