Authorize an agent action
Gate your first action in test mode, in about five minutes.
How a decision is reached
Evaluation order, states, outcomes, and headroom.
The vocabulary
These are the words in the wire format, not a conceptual model laid over it, so they are worth learning exactly.Agent
A scoped identity for one agent workload. Holds a hashedkrt_ API key, a mode (test or
live), and a list of action types the key may even ask about. Use one per workload, so you can
revoke one without stopping the rest.
Budget
An envelope for one run. Spend is committed against it, and it is the unit that stops a loop rather than a single mistake. How large a budget an agent may open is capped by the agent’smax_budget_cents, which is set from the dashboard and cannot be raised with an agent key.
Budgets delegate to child budgets, and a child reserves from its parent when it opens, so
children cannot sum past what the parent has left. A budget has no expiry and no close endpoint;
it ends by running out.
Policy
The rules attached to an agent. Caps, windows, rate limits, allowlists, approval thresholds, and a condition language for everything they do not cover. The rule kinds are a closed set;condition is the extension point. Policy is data, not code, so it validates when you write it,
not when an agent is waiting.
Action
One request for authorization, and the record it leaves. An action carries anaction_type, an
optional resource, and a cost_cents. Payments are a separate resource, payment_intent,
evaluated under the same policy.
Decision
What came back: anoutcome of allowed, requires_approval or denied, the rule that
produced it, the headroom each limit had left, and a policy_snapshot of the rules as they
read at that instant.
Cosignature
A short-lived ES256 signature over an allowed decision, so whoever executes the action can verify the authority without calling us, and without trusting the agent that carried it.What Kordio never does
Kordio holds no funds, no accounts, and none of your credentials. It decides and it signs; your own rails and your own keys execute. That is a deliberate limit with a consequence worth stating plainly: an executor that never checks with Kordio and never verifies a cosignature is not governed by it. The control layer binds the paths you route through it.Next steps
Writing a policy
Every rule kind, the typed shorthands, and the condition language.
What Kordio guarantees
Ordering, reservations, replay, and the failure modes.
Verifying an authorization
Check a cosignature offline, without calling us.
API reference
Every endpoint, generated from the OpenAPI spec.