Naïve raises $28.5M Series A to build autonomous company infrastructure

See more ↗
← Blog
LaunchAugust 23, 20267 min read

Vetta: the most efficient managed agent for long horizon tasks

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 in early access today.

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.

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:

?Show all harness × window cells, or only one completion window.

Sorted by $ / task

#HarnessWindow
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.

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.

Start building

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

Three ways to get started

01

Hand it to your agent

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

02

Install the CLI

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

03

Open the Studio

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

app.usenaive.ai

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