pinecallDocs
Guides / The harness

The harness

Personas, simulations, judges, goldens, cases and monitors: six stations, each a tab, a verb and a tool.

An agent is held to one harness, before a change ships and after it does. It has six stations, and each one is a screen of the console, a verb of the CLI and a tool of the MCP server — the same thing in three places, never three things.

station the question it answers console CLI
Personas who calls this agent? Harness ▸ Personas pinecall personas
Simulations what happens when they do? Harness ▸ Simulations pinecall simulate
Judges what must every call have done? Harness ▸ Judges pinecall judges
Goldens & runs is this change safe to ship? Test ▸ Goldens pinecall test, pinecall runs
Cases which real call broke, and is it fixed? Harness ▸ Cases pinecall cases
Monitors which number slipped, over days? Harness ▸ Monitors pinecall monitors

The sidebar's Harness section holds five of them — Simulations, Personas, Cases, Judges, Monitors — and each is one screen whoever is in view: the agent in view's, or every agent's under each one's name. Simulations is the form and every simulation already run down the left, the one open beside them; Personas and Cases a list down the left, the one open beside it. Nothing you open takes you to another screen. Goldens are a tab of Test, which, with one agent in view, opens on an overview of all six: each station with its number right now — personas written, simulations run, goldens passing and failing, cases waiting — and the latest runs. Quality, for every agent or one, is how the real calls are going: the share the judges held a day at a time, and what broke. Observability is the same calls as numbers, day by day.

Before a change ships#

Write who calls#

A persona is a caller a model plays: a goal, a manner, the facts they know, and their own rule for hanging up satisfied. Four to start — the one who books, the one who cancels, the one who asks what you do not do, the one who will not say their name.

Terminal
pinecall personas add el-que-cancela --goal "cancelar la cita del jueves" --style "apurado, al grano"

Put one on the line#

A simulation is that caller against the agent, in writing or out loud, improvised turn by turn. Pinecall plays the caller and calls the agent as anybody calls it, so whatever answers it answers the simulation: the agent you deployed, in production or the sandbox, or the one pinecall start holds in your directory. The console's Harness ▸ Simulations starts one and shows it as it happens; a spoken one is heard live, both sides. Its tools run for real: an agent that books, books.

Terminal
pinecall simulate --persona el-que-cancela --voice

Say what every call must have done#

The judges read every call at hang-up: the runtime's panel — consent, grounded, promises — and the ones you write, one question each, for the org or for one agent. A simulation meets them too, so a persona's run is a verdict, not a transcript to read.

Terminal
pinecall judges add offers-next-slot "The agent offered the next free slot before ending." --agent front-desk

Replay the goldens#

A golden is a conversation written down with what must be true at the end. pinecall test replays every one under every model you name and answers a matrix; CI runs it before a deploy and fails on a golden that broke. Every run is kept: the console's Goldens tab lists them with what changed since the run before, and pinecall runs diff says it in a terminal.

Terminal
pinecall test --models haiku,sonnet
pinecall runs diff

After it does#

A broken call comes back as a case#

Every real call is judged at hang-up. One that breaks a judge is kept whole as a case: the caller's words, the state it opened in, what memory recalled, and what the broken judges forbid. You play it again against the agent you hold, fix it where it belongs — the settings, or the code — and approve it into the nightly, so the same mistake cannot come back unseen.

A number that slips fires a monitor#

A monitor watches one number of the Observability series — end-to-end or first-token latency at the median, the judges' held rate, the share a person took over, the share of tools that failed, spend, calls — over 1, 7 or 30 days, above or below a line, for every agent or one. The first seal of a call that finds it on the wrong side fires monitor.fired on the agent's log, once a day, with the value that crossed; Harness ▸ Monitors shows the last day each fired, the bell tells whoever chose it, and the org's webhook gets the post (Alerts).

Terminal
pinecall monitors add "slow answers" --metric e2e_median_s --above 2 --days 7
pinecall monitors add "judges slipping" --metric held_rate --below 0.9 --agent front-desk

Drift says it in points#

Drift compares a judge's held-rate this week against the month before and exits 1 past a threshold, for a scheduled job. A monitor is the same idea over any number, set once in the console and fired by the runtime.

The same harness from an assistant#

Every station is a tool of the MCP server: personas, simulate, judges, test and runs, cases, monitors. An assistant that holds the agent can write a caller, put it on the line, read the verdict and set a monitor on what it found, in one conversation.

Next steps#