ORBAgents
Autonomy without unlimited authority.
Each agent is an identity with its own budget, API keys and policy. Policies are enforced before money is reserved, inside the same database transaction.
Identities & budgets
An agent is an account with a leash.
Own balance
Owners allocate credits from the organisation (or a parent agent) to an agent. The agent spends only what it holds; owners can reclaim the remainder at any time.
Own keys
Agent-bound API keys carry restricted default scopes and can have their own spend cap and model allowlist. A key can never mint a key broader than itself.
Own status
Active, paused or revoked. Revoking an agent revokes its keys and returns unspent funds to its parent.
Policy templates
Start from a template, then tune.
Template values below are the actual defaults applied by the API. Every field can be overridden per agent.
| Template | Daily cap | Monthly cap | Per request | Per payment | Intended for |
|---|---|---|---|---|---|
| Conservative | $1.00 | $10.00 | $0.05 | $0.10 | Tight caps, small requests — ideal for new or untrusted agents. |
| Standard | $5.00 | $50.00 | $0.25 | $1.00 | Balanced defaults for production agents. |
| Research | $20.00 | $200.00 | $1.00 | $2.00 | Higher ceilings for long-context retrieval and synthesis. |
| Coding | $15.00 | $150.00 | $0.75 | $0.50 | Room for large code contexts; modest payment limits. |
curl https://<your-orbit-host>/v1/agents \
-H "Authorization: Bearer $ORBIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "research-agent",
"initial_allocation_usd": "10",
"policy": { "template": "research" }
}'Rule order
- Agent and every ancestor must be active (not paused or revoked).
- Model, tool and payee allowlists — at every level of the hierarchy.
- Per-request maximum (inference and tools) or per-payment maximum (payments).
- Daily cap, then monthly cap — each counting the whole subtree's spend in UTC windows.
API-key spend caps and key-level model allowlists are checked first. Daily limits can never exceed monthly limits.
Simulator
See which rule fires.
Spend-policy simulator
Simulator · illustrative inputsAllowed
Funds would be reserved for the worst-case cost, then settled on actual usage.
- Emergency pause (agent and ancestors) — Agent and ancestors are active
- Model allowlist — No allowlist set (all models permitted)
- Per-request maximum — $0.12 vs limit $0.25
- Daily cap (UTC day, includes children) — $4.20 spent + $0.12 vs cap $5.00
- Monthly cap (UTC month, includes children) — $18.00 spent + $0.12 vs cap $50.00
Mirrors the server's rule order. Real enforcement happens server-side inside the same database transaction as the reservation, with the agent row locked so concurrent requests cannot jointly exceed a cap.
Hierarchy
Children can only narrow.
Limits are ceilings
A child's daily, monthly, per-request and per-payment limits must be set and be ≤ the parent's. Unset values inherit the parent's.
Allowlists are subsets
A child's model, tool and payee allowlists must be subsets of the parent's. Effective allowlists are intersected down the chain.
Spend rolls up
A parent's caps count everything its descendants spend, so a fleet of children cannot jointly exceed the parent.
Delegation is explicit
An agent can only create children if its owner granted that right, and it can never pass delegation rights on.
Owner-only policy edits
Only a human owner can change an agent's policy. Agents can never edit their own policy or a parent's.
Pause cascades
Pausing an agent blocks it and every descendant until the owner resumes it.
Loop breaker
Stops runaway agents.
Checked on every request from an agent over a rolling 60-second window.
| Signal (per minute) | Default threshold |
|---|---|
| Total requests | 120 |
| Identical requests (same fingerprint) | 10 |
| Failed requests | 20 |
Action: pause (default)
429 loop_detected. The owner reviews activity and resumes it.Action: throttle
429 rate_limited but the agent stays active.