What it is
The Agency API is the public developer surface for the Allternit agent kernel. You send a goal. The service compiles it into explicit internal contracts (a task, agent state, a compute graph, policy, verification) and returns one durable Run that you can stream, steer, pause, cancel, audit and replay. The contract summary is: goal in, one durable verified Run out. Onlygoal is required. Everything else has a resolved, recorded default. What comes back is one durable object you can observe and control for the life of the work.
Availability
No endpoint on this page is live. The alpha opens only after one end-to-end run can survive restart, resume, verify, replay and receipt-backed completion. That gate is not met today: the public endpoint and the request compiler are not served, the conformance suite is not built, and no end-to-end bug-fix run has passed the gate. Inside the kernel, the signed receipt chain (effect receipts) and recorded-only replay are on main, internal only, and work-runtime runs have no public event stream yet. See what is live today. Use this reference to understand the shape of the API and to plan an integration. Do not build production systems against it yet.Example values throughout this reference (IDs, capability and model class names, amounts, dates, default values) are illustrative. The structure and field names follow the contract.
Agents API vs Agency API
An Agent is configuration and identity. Agency is execution of work.Simple outside, explicit inside
The request can be small because the server makes everything explicit before it runs anything.- Only
goalis required. Workspace, authority, budget and completion are optional. - Defaults are resolved, recorded and returned. Whatever you omit is filled from the agent’s and profile’s versioned defaults and returned on
Run.resolvedbefore execution starts. The run staysaccepteduntil that is recorded. - No hidden permissive defaults. If a safe default cannot be resolved, the call fails with
422 ERR_DEFAULTS_UNRESOLVABLEand no run executes. - No implicit loop. The service never runs a free-form agent loop. It compiles the request into contracts and executes those.
- Kernel internals stay out of the default view. Which model, decision backend, graph branch, tool schema, cache or verifier ran is recorded in receipts and shown with
view=debug. None of it is a required field or part of a default response. - No model or vendor names. Models are interchangeable components. You constrain by capability, model class, locality and trust class.
Run.resolved.enforcement.
Progressive disclosure
The API has four tiers. Most integrations only need the first.
Tier C and D fields are marked
x-disclosure-tier in the OpenAPI file. Runtime hints never change semantics, eligibility, policy or evidence. Graph input is treated as opaque until the public Graph contract is frozen.
Object model
There is no Thread API.
thread_id is a correlation ID only, and messages arrive as run.message events.
Base URL
/v1).
Authentication
Send an API key as a bearer token. Keys are scoped to one workspace or organization.GET /.well-known/jwks.json needs no authentication. It serves the public keys used to verify receipts.
Common headers
Request
Response
Pagination
Every list endpoint is cursor-paginated.
Every list response has this envelope:
The minimal call
The smallest valid request has one field.202 Accepted with the Run. Everything the server resolved for you is in resolved.
resolved.defaults_source is request. Supplying a field overrides the default. It never widens authority beyond your entitlement or hard policy.
Endpoints
Product laws
These hold for every call.- The API is not the kernel. HTTP, an SDK or local IPC may all drive the same kernel.
- The request may be simple only because the server compiles it into explicit internal contracts.
- The external agent identity does not reveal internal components unless you ask for debug or receipt views.
- Models cannot own permission, lifecycle, completion, durable truth or policy.
- No unattended executor may bypass policy because its own harness is in a yolo or auto-approve mode.
- Hard policy comes before probabilistic judgment. Probabilistic systems may raise friction but cannot weaken a hard deny.
- Completion is owned by the verifier and the system, not by the model that did the work.
- Effectful retries require idempotency receipts.
- Run state survives model eviction, cache loss, executor death and process restart.
- Every material transition is observable through typed events and receipts.
- No model or vendor names in the contract.
- Judge failure fails closed: a timeout, missing calibration or low confidence becomes an ask, never an allow.
- Agents request attention. They never notify people directly.
- Replays never cause effects.
- Untrusted input stays fenced and is never concatenated into control instructions.
- Grants are explicit, scoped and expire with the run.
- Receipts are append-only.
OpenAPI file
The full contract is available as an OpenAPI 3.1 file:Download openapi-v0.3.yaml
Allternit Agency API v0.3 (preview contract)
Next
- Quickstart
- Runs
- Errors
- Schemas
- Concepts: Living Agent Architecture, The kernel