Skip to content

Cost and data flow

A run pays for two kinds of call: agent calls, billed to the account or key each agent runs under, and Jev calls, one TypeSafe API call each. Agent CLIs use the accounts logged into them; chat APIs bill the key they are given. No prices are given here, because they depend on your plans and keys.

With N agents and the standard review:

Mode and what happensAgent callsJev callsRounds
fast: Jev accepts a draft judged aloneN1 … N1
fast: Jev accepts none, so the drafts mergeN + 1N + 12
balanced: no cross-review, then a mergeN + 112
balanced: one cross-review, then adopted whole2N22
balanced: one cross-review, then a merge2N + 123
balanced: two cross-reviews, then adopted3N33
balanced: two cross-reviews, then a merge3N + 134
ultra: one cross-review, then a merge2N + 113
ultra: two cross-reviews, then a merge3N + 124
ultra with --review-rounds 0N + 112

A round here is one set of agent calls made at the same time; the rounds run one after another, so they, not the calls, are the wall clock. With the default two agents, balanced makes three to seven agent calls and ultra five or seven.

  • --finalizer none drops the merge, one agent call and one round, whenever a cross-review ran and Jev rates one plan stronger; on a tie, the merge still runs.
  • --finalizer <name> always merges: balanced then never adopts a plan whole.
  • fast still pays for the agents it stops. An agent aborted mid-draft counts as a call and has billed what it used. Only the verdict that decided the run is saved; the verdicts of drafts Jev turned down alone are not.
  • --review-mode debate spends 2N agent calls on its first review where a cross-review spends N — a critique and a reply from each agent — plus one call per agent that checks a claim with --claim-checks. Its Jev call rules on the disagreements in the same request; see debate review. It runs in balanced and ultra; fast rejects it.

Every run reports its own totals on stderr, and --json includes them as cost. The four runs on Modes compared spent this, counted from their rounds folders and written as the cost line reads:

[jev-planner] fast mode, 3 agent calls, 3 Jev calls, 0 cross-review rounds, merged
[jev-planner] balanced mode, 7 agent calls, 3 Jev calls, 2 cross-review rounds, merged
[jev-planner] ultra mode, 7 agent calls, 2 Jev calls, 2 cross-review rounds, merged
[jev-planner] ultra mode, debate review, 9 agent calls, 2 Jev calls, 2 cross-review rounds, merged

The fast run judged both drafts alone, accepted neither, then judged them together. Its drafts round took 3m41s because, with two agents, it has to wait for both: a round never falls below two plans.

A balanced or fast round also stops waiting for a slow agent once half the agents (rounded up) have answered: the rest get --straggler-grace seconds, then their calls are aborted rather than left running, so a dropped call stops billing where the provider bills by use.

  • Jev sees the task and the agents’ plan text, not a direct repository snapshot.
  • Chat APIs see the repository snapshot described in the agents reference.
  • Every agent that cross-reviews, checks a claim or merges sees the other agents’ plans, which may contain file names or code details. When balanced skips the review, only the finalizer sees them all; a draft fast accepts is read by no other agent.
  • Jev reads the first 40,000 characters of each plan.

Do not run this on material you are not allowed to send to every provider you select.