← Blog
LaunchAugust 17, 2026Updated September 7, 20268 min read

Vetta: the most efficient managed agent for long horizon tasks

Same model, same tasks, only the stack changed: Vetta finishes a task 2.7x cheaper than the next-best harness while completing more of them. We built every layer of the stack to make that number possible.

Dennis Zax· CTO, Naïve

TL;DR

  • Vetta is a managed agent for long horizon work: tasks measured in hours, where the agent keeps its own state and finishes without a person in the loop.
  • On Long Horizon Terminal Bench, with the model held fixed, Vetta costs $0.2232 per task against $0.5995 for Claude Code at the same latency. 2.7x cheaper, at a higher resolve rate.
  • We built and optimize every layer: the harness, the serverless runtime, completion windows, sandboxes, budgets, and identity. The efficiency is structural, not a discount.
  • Vetta is the engine under Naïve: every agent a company template provisions with naive up is a Vetta agent, and every primitive it reaches for is a Vetta primitive.
  • Vetta is in early access today at vetta.sh.

Intelligence stopped being the bottleneck for autonomous work. Economics did not. A model that can finish a multi-hour task is useless in production if the run costs more than the work is worth, or if the machine hosting it bills for every hour the agent spends waiting.

Vetta is our answer: a managed agent built for long horizon tasks, where every layer of the stack is optimised for one number, the most intelligence per dollar spent.

The engine under Naïve

Naïve is a company you run; Vetta is what runs it. Every company template on this site is a repository with a naive.config.ts that declares a team of agents, and naive up provisions that team into your organization as Vetta agents. The media channel that posts every day, the agency that answers the inbox, the newsletter that ships on schedule: each is a set of Vetta sessions with a budget, a completion window, an isolated computer, and an identity of its own.

That is also why the primitives on this site map so cleanly to what follows. Runtime, Identity, Cloud, and Trust are Vetta's layers with Naïve's names on them. Everything in this post about cost is therefore a statement about what it costs to run a Naïve company, and if you want the engine without the company, it is available directly at vetta.sh.

Where the money goes

A long horizon task pays three bills from start to finish. It pays for every model call. It pays for the machine hosting the loop, including every hour the agent spends waiting on a schedule, a CI run, or a reply. And it pays a quieter third bill: the person who has to hand over credentials, approve access, and watch the run.

Most stacks only control one of those bills, because they only own one layer. We built all of them: the harness, the serverless runtime underneath it, the orchestration and self-improvement layers on top, and the surfaces you drive it from.

Vetta managed agents infrastructure: models and tools flow into the harness, runtime, orchestration, and self-improvement layers, out to Web Studio, API, CLI, and SDK

The model is a commodity: 20+ providers plug into the same routing layer, and every arm in the benchmarks below ran the same model. What decides the cost of a finished piece of work is everything wrapped around the model, and we own all of it. Vetta runs multiple harnesses out of the box today, and our own harness, tuned against this exact runtime, is next.

Each layer below exists to cut one of the three bills: the completion window prices the model call, the runtime and its sandboxes eliminate the idle machine, and identity removes the person from the loop. First, the proof that it adds up.

Every layer is ours to optimize

The proof

We publish results on the benchmarks page, computed from the same database our billing runs on. Two suites, two different axes.

Long Horizon Terminal Bench holds the model fixed (glm-5.2 in every arm) and swaps the harness across five contenders and three completion windows. This is the live efficiency leaderboard from that page, dollars per attempted task first:

#HarnessWindow$ / taskResolve$ / solveMinutesOutput
1Vettaloose ◆$0.106862.5%$0.170945 min16.2k
2Hermesloose$0.161946.7%$0.346956 min10.7k
3Vettapriority ◆$0.189581.3%$0.233251 min20.5k
4Claude Codeloose$0.201568.8%$0.293158 min21.8k
5Vettaimmediate$0.223275.0%$0.297625 min18.0k
6Codexloose$0.263570.2%$0.375354 min48.2k
7Hermespriority$0.366268.8%$0.532756 min15.4k
8Claude Codepriority$0.429375.0%$0.572563 min29.9k
9Codexpriority$0.505551.4%$0.983557 min44.7k
10Claude Codeimmediate$0.599568.8%$0.872026 min21.7k
11Piimmediate$0.619756.3%$1.101630 min23.0k
12Hermesimmediate$0.684462.5%$1.095038 min11.9k
13Codeximmediate$0.764757.7%$1.325326 min34.8k
14Pipriority37.5%33 min18.6k
15Piloose37.5%34 min18.8k

◆ on the cost-efficiency frontier — no other configuration is both cheaper and higher-scoring. Dollars are what the vendor billed, not list price; cells without a verified invoice reading show no cost and are unranked on spend. Model held fixed at glm-5.2 in every cell. Interactive version at vetta.sh/benchmarks.

The result repeats off the terminal too: on SWE-Bench Pro, Vetta is cheapest per solved task on all three models it was run against.

2.7x

cheaper per task than Claude Code, same model, same latency

75.0%

resolve rate at the immediate window on LHTB

81.3%

resolve rate at priority: the highest of any cell in the study

$0.2976 to $1.3253

per solved task across cells; the model never changed

One benchmark could be a lucky configuration. The same result on two suites, across two different axes, is a property of the stack. So where does the 2.7x come from? Take the three bills in order.

Bill one: the model call

Latency is a price you choose per request. The completion window is one field with three settings: immediate answers now, priority soon, loose eventually. Same model, same weights, different tariff. It defaults on the agent and overrides per session:

One field decides the tariff
const session = await vetta.sessions.create({
  agent_id: agent.id,
  message: "Reconcile yesterday's refunds against the ledger",
  window: "priority", // immediate | priority | loose
});

Isolating the window in the benchmark data shows what it is worth. Dollars per completed task, Vetta against the cheapest competing harness in the same window:

$ per completed task by completion window

Vetta · immediate$0.2976
Best competitor · immediate$0.8720
Vetta · priority$0.2332
Best competitor · priority$0.5327
Vetta · loose$0.1709
Best competitor · loose$0.2931

An agent a person is watching should be on immediate. An agent that starts at midnight and delivers at nine has no reason to be, and pays materially less for the same model.

That settles what a model call costs. But a long horizon agent spends most of its wall-clock time not calling the model at all, which is the second bill.

Bill two: the idle machine

The Vetta Runtime is where most of the cost behaviour on long horizon work comes from, and it is serverless from the ground up: the agent loop runs on durable objects, not on a machine you rent by the hour.

The loop is an alarm, not a call stack. Each cycle: wake on a trigger, take one bounded turn, commit the transcript and cursor to durable storage, sleep. Between turns there is no process to pay for. A session waiting on a nightly schedule or a human reply costs only what its stored state occupies, and a crash loses at most one turn, never the run.

The durable loop: wake → turn → commit → sleep

1 · wake

trigger: message, schedule, tool result

2 · turn

one bounded slice: model call + tools

3 · commit

transcript + cursor to durable storage

4 · sleep

release compute, set next alarm

Between turns there is no process.

That shape is what changes the hosting bill at fleet scale. From Naïve Lab, the modelled cost of hosting one million agents for a month, over published rate cards:

Cost of hosting 1 million agents per month

Vetta · serverless~$44k to $60k
Hosting Hermes / Eve / OpenClaw / Pi~$740k to $1.5M
VM per tenant on AWS~$14M

Every call is priced before it is made. Budgets are structural, not a report you read the next morning. An agent cannot be created without one; a call that would breach the cap is refused before it runs.

A budget is a constructor argument, not a report
const agent = await vetta.agents.create({
  name: "nightly-triage",
  model: "glm-5.2",
  budget: { cap_micro_usd: 50_000_000, max_task_micro_usd: 5_000_000, period: "month" },
});

Cost-efficient sandboxes. Each session gets an isolated computer: a paused micro-VM meters its stored disk and no vCPU at all, so an agent that works for twenty minutes across an eight hour window pays for twenty minutes of compute.

A paused sandbox bills storage only
const computer = await vetta.computers.create({ vcpu: 2, memory_mb: 2048, browser: true });
await vetta.computers.exec(computer.id, "pnpm test");
 
await vetta.computers.pause(computer.id); // no vCPU metered until resume

V8-isolate sandboxes (coming soon). The next runtime tier drops the machine entirely: an in-isolate shell plus a WASM registry runs roughly 95% of typical ops commands inside a V8 isolate, no real computer needed. On our isolated-vm backend a sandbox goes from create to first execution in about 2.79 ms and holds resident state in about 1.2 MB of RAM per agent, which is what makes fleets of mostly-idle agents economically boring. This is ongoing research at Naïve Lab.

With the model call priced and the idle machine gone, one cost is left, and it is the one nobody meters: the human who has to stay in the loop.

Bill three: the person in the loop

An agent that needs a person to lend it their logins, share a bot token, or approve every credential is not unattended, it is supervised. Vetta removes that dependency by giving the agent someone to be. An identity is a named persona with real endpoints: verified domains, inboxes, phone numbers, and two pieces built for unattended operation.

Passport. Third-party apps the identity has authorized over OAuth. The agent connects to real services as its persona, not as a shared bot token.

Vault. A write-only credential store. Values are injected at the network boundary; the agent uses secrets it can never read, and no route ever returns a credential value.

One persona, real endpoints, sealed credentials

Identity

A persona with its own domain, inbox, and phone number.

Passport

Apps authorized over OAuth.

GitHubGmailSlackNotionLinearStripe

Vault

Secrets the agent uses but can never read.

One persona, a real OAuth grant, a sealed credential
const ava = await vetta.identities.create({
  name: "Ava Sales",
  description: "Outbound SDR persona for the growth team",
});
await vetta.identities.attach(agent.id, ava.id);
 
// Passport: the persona authorizes a real service over hosted OAuth
await vetta.connections.connect({ auth_config_id: crmAuth.id, identity: ava.id });
 
const vault = await vetta.vaults.create({ display_name: "ava-vault", identity_id: ava.id });
await vetta.vaults.credentials.create(vault.id, {
  kind: "env_var",
  key: "STRIPE_KEY",
  value: stripeKey, // travels once, sealed server-side; no route ever returns it
});

Every identity action is gated by policy, so what a persona may do is declared, not hoped. Access is set up once, then the agent runs for months without anyone lending it a login.

That is the whole argument. Model calls priced per request, idle time metered at storage, and no standing human cost: three bills, each cut structurally. The 2.7x on the leaderboard is what they add up to.

What it means for a Naïve company

A Naïve company is a fleet of these agents that has to stay economically boring for months, not a single run that has to impress once. The three bills above are the reason the templates can run unattended: a channel that wakes on a schedule and sleeps between posts pays for storage while it waits, an agency inbox that nobody is watching can answer on priority instead of immediate, and every agent in the team carries its own budget, so a bad day for one cannot become a bad month for the company.

The same is true of the identity layer. When a template gives an agent a domain, an inbox, a vault, and a set of connections, those are the Vetta identity primitives described above, provisioned for you by naive up. You never lend a Naïve agent your own login, and nothing in your organization can read a credential it was given.

Start building

Vetta is in early access. Create an agent with a budget, pick a window, give it work.

Three ways to get started with Vetta

Hand it to your agent01

Paste one prompt into Claude Code, Codex, or Cursor and it sets Vetta up in your project.

Install the CLI02

Create agents, run sessions, stream events, and see cost from the terminal.

Open the Studio03

Agents, sessions, budgets, and the ledger, all in the browser.

app.usenaive.ai

If you want the company rather than the engine, pick a template and run naive up; the agents it provisions are the ones on the leaderboard above. Everything else about Vetta, from the API reference to the studio, lives at vetta.sh.

The models will keep getting better. The bill for running them is ours to fix.