Shared vs isolated
Isolated per session
Tools, MCP servers, model, harness, system prompt, skills, and — most importantly — conversation context. Each member reasons over only its own turns and the brief it was handed.
Shared across the team
The team board, when it is enabled — one board per agent, readable and writable by every session on the team. Vault credentials. And a micro-VM filesystem, conditionally — see below.
What a member holds while it runs
A harness declares anexecution mode, and that is the field that decides what a session holds between turns — separately from where the loop runs. isolate runs the loop in the session object itself, so a session between turns holds no machine and bills storage only. sandbox runs the agent as a process on a micro-VM, which the session holds across turns. The harness catalogue publishes it per harness.
Because a team may mix harnesses, that decision is made per member, at spawn, from the member’s own harness — never from its role on the team:
This is measured, not designed-for. A production run of a mixed team had the
pi member holding its own micro-VM while the vetta member ran with no machine at all — the same team, the same run, two different cost profiles, decided by each member’s harness.isolate member on long-horizon work: a member that spends most of its life parked costs very differently on isolate than on sandbox.
How budget flows
- The coordinator’s budget bounds the whole team — every delegated call draws from the same organization balance.
- Every call in every session is quoted pre-flight. A member cannot spend past the org balance or the coordinator’s
max_task_usd, no matter how many members fan out. - Because delegation isolates context, downstream calls carry far fewer tokens, so a well-factored team completes the same work for less than a single agent dragging its full history through every turn.
- Board reads and writes are ordinary tool calls and are metered like any other.
CLI
Events
The coordinator’s own event stream carries a condensed, cross-session view alongside its ordinary events. You can read it withvetta session events or follow it with vetta session stream.
Those three are the whole set a team emits. The event enum also carries
thread.running, which nothing writes today — if you are matching on the enum exhaustively, handle it, but do not wait for it.
A member’s result is not carried by an event. It folds back into the coordinator’s transcript as the tool result of the
send_to_agent call that started it — free-form text, or the typed structured_output when the delegation supplied an output_schema. thread.idle is how the event log records that it landed.seq semantics.
What a parked coordinator does
A coordinator that has fanned out parks with theawaiting_delegation stop reason rather than polling. It wakes when the fan-out it was waiting on is complete — or earlier, if something arrives that is not a delegation result: a person steering it, or a member’s board write, which is a thing the coordinator may want to act on long before that member’s session finishes.
The saving is real: a fan-out of four would otherwise cost four model calls, three of which could only conclude that three members are still running.
Back to the team overview
The two coordination mechanisms, and the coordinator model at a glance.