Pilot is the runtime for agents you can actually ship.
Define an agent in a few lines, hand it tools, and Pilot runs the loop — retries, state, human review, and a trace of every decision it made.
Running 4
- Backfill customer embeddings running · 3m 40s
- Reconcile Stripe payouts needs review · +212 −40
- Draft the release notes done · 1m 02s
- Triage overnight errors queued
Backfill customer embeddings
Backfill embeddings for every customer record created before March, then verify the index is complete.
Read schema/customers.sql
Planned 3 steps · 1 subagent
Thought for 6s
Batching 41,880 records at 500 per call. I will checkpoint after every batch so a failure resumes instead of restarting.
jobs/BackfillEmbeddings.php +84 −0
services/EmbeddingClient.php +36 −12
tests/BackfillTest.php +58 −0
Trace
- Backfill customer embeddings running · 3m 40s
- Reconcile Stripe payouts needs review · +212 −40
- Draft the release notes done · 1m 02s
- Triage overnight errors queued
batch 84/84 · 41,880 embedded
verify: index complete, 0 gaps
done in 4m 12s · $1.94
Teams running agents on Pilot today
- Northbeam
- Cadence
- Vector Field
- Ledgerline
- Substrate
- Ironwood
- Halcyon
- Fieldnote
How it works
Fifteen lines, then it runs itself.
You already know what the agent should do. Pilot handles the parts that make it survive production — the retries, the checkpoints, the approvals, and the record of what happened.
Read the loop guide-
01
Describe the agent
A name, a goal, and the tools it may call. Pilot infers the schema from your function signatures, so the model only ever sees arguments that type-check.
About fifteen lines
-
02
Let the loop run
Pilot plans, calls tools, checkpoints after every step, and retries the ones that fail. Long runs park themselves waiting on a human instead of dying at the timeout.
Minutes, hours, or days
-
03
Read the trace, then ship
Every decision, every argument, every token is recorded. Replay a run against a new prompt or a cheaper model and diff the two before you change anything.
Before it reaches production
What’s in the box
Everything the demo skipped
The loop is the easy part. What makes an agent shippable is what happens when a tool times out, a human has to approve something, or you need to explain a decision three weeks later.
A loop that survives contact with reality
Plan, call, observe, repeat — with retries, backoff, and a checkpoint after every step. A run that hits a dead tool at minute nine resumes from minute nine, not from zero.
Durable for hours or days
Tools the model cannot misuse
Write an ordinary function; Pilot derives the schema from its signature and validates every call against it. Arguments that would not compile never reach your code.
Typed, validated, versioned
State that outlives the process
Working memory, scratchpads, and results persist outside the run, so a restart, a deploy, or a week-long pause costs you nothing.
Human review, anywhere in the loop
Park a run on an approval gate, route it to the right person, and resume exactly where it stopped once they sign off.
A trace of every decision
Prompts, tool arguments, results, tokens, and cost — recorded per step and replayable against a different model or prompt.
Evals that run in CI
Turn any recorded run into a test case. Pilot re-runs your suite on every change and shows you exactly which step regressed.
Runs anywhere you already deploy
A library first — inside your app, a queue worker, a cron, or a container. No sidecar, no broker, no new platform to operate.
Cost
Know what a run costs before it runs
Agents are cheap until they are not. Pilot meters every call, attributes it to the step that made it, and stops a run that walks past its budget.
- Per-run and per-step spend, live
- Hard budget ceilings that halt instead of overrun
- Cached tool results reused across retries
Spend by step
Last 24h-
Planning $0.21
-
Tool calls Recommended $1.02
-
Review pass $0.44
-
Retries $0.27
Averaged over 3,410 runs on this workspace.
- 41ms
- Median framework overhead per step
- 8.4×
- Cheaper after caching and model routing
- 99.2%
- Runs that resume cleanly after a failure
- 12k
- Agents in production on Pilot today
Measured across 1.4M agent runs on Pilot in 2025
The loop
A run you can pause, inspect, and resume
Every step is checkpointed. When a tool times out or a human needs to approve something, the run parks itself instead of dying and losing an hour of work.
- Checkpoints after every step, resumable for days
- Human approval gates anywhere in the loop
- Replay any run against a new prompt or model
Run 8f21c
4m 12s-
Plan and fan out 0–24s
-
Tools, 84 batches Recommended 24–186s
-
Awaiting approval 186–214s
-
Verify and commit 214–252s
Every phase replayable in isolation.
Evidence
Engineers who put agents in front of customers
We had six months of agent demos and nothing in production. The thing that changed was checkpointing — once a run could survive a bad tool call, we could actually put one in front of customers.
Mara Vane
Staff engineer, Northbeam
8 agents in prod
The trace is the product. When an agent does something strange at 2am, I can replay the exact run instead of guessing from logs.
Theo Adeyemi
Platform lead, Cadence
Typed tools caught more bugs in a week than our eval suite caught in a quarter. The model simply cannot pass an argument that does not compile.
Priya Raman
Founder, Vector Field
We moved off a homegrown loop in an afternoon. That is the whole review.
Jonas Meyer
Backend engineer, Substrate
Your first agent, running by lunch.
The runtime is open source and the docs are short. Install it, wire up one tool, and watch the first trace come back.
Apache 2.0 · No account needed to start · Bring your own models