Skip to main content

all systems normal · status.trellisagents.example v2.3.0 · tokens pass through at $0 margin

trellis Agents

agent infrastructure

Run AI agents
in production.

Demos are easy; Tuesday at 3 a.m. is hard. Trellis is the runtime between your agents and your systems — durable orchestration, guardrails the model can't talk its way past, eval gates in CI, and a priced trace for every run.

  • First run traced in ~10 min
  • Free dev tier · 1,000 runs/mo
  • $0 margin on tokens
trellis — zsh
$ trellis deploy support-triage
manifest valid · 4 tools · 3 policies (enforce)
eval gate: 13/13 suites passed (baseline v41)
deployed support-triage@v42 → prod
 
$ trellis runs tail --agent support-triage
run_01J9 ✓ resolved 6 calls · 12.9k tok · $0.0040 · 4.2s
run_01JA ✓ resolved 5 calls · 10.1k tok · $0.0033 · 3.8s
run_01JB ⚠ escalated 7 calls · 15.4k tok · $0.0049 · 6.1s
run_01JC ✓ resolved 6 calls · 12.6k tok · $0.0039 · 4.0s
fig. 00 — deploy behind an eval gate, then watch priced runs stream

Engineering teams running agents on Trellis

  • Halyard
  • Corelab Genomics
  • Bracken Freight
  • Quillbase
  • Mosstone Labs
  • Vantry

observability

Every run is a trace. Every span has a price.

Model calls, tool calls, guardrail verdicts, and approvals land as spans in one tree — with token counts, latency, and dollars on every node. When a run goes sideways you read what happened; you don't reconstruct it from logs.

The same trace data becomes your eval sets, your cost rollups, and your invoice line items. One source of truth, three jobs.

See the trace model
console — run 01J9F8QK
run 01J9F8QK · support-triage@v42 · resolved · $0.00404 · 4.21s
├─ guardrail input.screen — pass · 41ms · $0.00008
├─ model plan — 1,842 in / 214 out tok · 620ms · $0.00041
├─ tool orders.lookup — ok · 180ms
├─ model draft_response — 2,104 in / 388 out tok · 840ms · $0.00055
├─ guardrail refund.policy — pass (amount ≤ $500) · 38ms · $0.00008
├─ tool refunds.create — ok · $42.00 refunded · 310ms
├─ model summarize — 1,610 in / 196 out tok · 530ms · $0.00036
└─ guardrail output.screen — pass · 44ms · $0.00008
fig. 01 — a traced support run, span by span, at real arithmetic

Platform figures

11 ms
median orchestration overhead per agent step

p50, all regions, trailing 90 days

99.96%
runs API uptime

trailing 12 months, public status history

38M
agent runs traced on our peak day

sum across customer workspaces, June 2026

$0.00
our margin on model tokens

pass-through at provider list price, invoiced line by line

agents/support-triage.ts
import { agent, tool } from "@trellis/sdk"; const refund = tool("refunds.create", { schema: RefundArgs, // validated before execution policy: "refund.policy", // enforce: ≤ $500, allowlisted endpoints }); export const supportTriage = agent("support-triage", { model: "economy-30b", tools: [ordersLookup, refund, escalate], budget: { tokens: 40_000, usd: 0.05, wallClock: "60s" }, onFail: escalateToHuman, // runs never die silently });
fig. 02 — an agent is config, not vibes: schemas, budgets, and a failure path

developer experience

Agents as code, budgets as law.

Declare tools with argument schemas, attach policies, set hard budgets on tokens, spend, and wall-clock. The runtime enforces all of it — the step that would blow the budget never executes, and the failure path is a branch you wrote, not an exception you didn't.

TypeScript and Python SDKs, an HTTP API underneath, OpenTelemetry out the back.

a note before you buy

Most workflows shouldn't be agents. We wrote that down.

If your workflow is enumerable, a pipeline beats an agent on cost, latency, and debuggability — and we'd rather you find that out before an invoice. Our CTO's essay has the decision framework and the arithmetic.

When not to use an agent →

$ trellis estimate --honest

Price your stack before you talk to us.

The configurator does the arithmetic in the open — per-run cost at 10k, 100k, and 1M runs, assumptions stated. Bring the estimate to a demo, or don't book one at all.

Sample site by SearchPod