Implementation: DESIGN (server) · Exposure: PUBLIC PREVIEW (contract). The Agency API is not live yet. This page describes the published v0.3 contract so you can review and build against it; details may change before alpha.
An attention request is how a run asks for a person. Agents request attention; they never notify people directly. An attention controller owns delivery, quiet hours, deduplication and quotas. These endpoints open with the rest of the API, after a run can survive restart, resume, verify, replay and receipt-backed completion.

Endpoints

You can also answer with POST /v1/runs/{run_id}/input and an attention_id. The two are equivalent.

How it works

  1. Policy returns ASK, or the run needs data, reaches its budget, gets an inconclusive verification, falls below a confidence threshold, or cannot safely resume an interrupted effect. The run emits an attention request and moves to needs_attention.
  2. The request has a kind: approval (a policy ask) or informational.
  3. The attention controller delivers it under the applicable attention policy.
  4. A person answers. The first valid answer wins. The answer is written as a receipt before it takes effect.
  5. If nobody answers before expires_at: an approval resolves as a rejection (fail closed, outcome: rejected); an informational request becomes expired with no rejection implied (outcome: none).
Only policy ASK outcomes become approval requests. A hard policy deny never becomes an attention request, and an approval can never override one (403 ERR_POLICY_DENIED).

The AttentionRequest object

Attention IDs match ^att_[A-Za-z0-9]+$.

Reasons

Status

AttentionStatus

Proposed action

proposed_action (ProposedAction) describes what an approval would allow.

Resolution

resolution (AttentionResolution) is set once the request is no longer open.

List attention

The needs-you queue across runs and campaigns. Returns attention requests visible to the caller, most urgent first.

Parameters

status takes a comma-separated list, for example ?status=open.

Responses

AttentionPage:

Example

List attention for a run

Attention requests raised by one run.

Parameters

Responses

Example

The response is an AttentionPage with the same shape as above.

Get an attention request

Parameters

Responses

Example

The response is one AttentionRequest.

Respond to an attention request

Equivalent to POST /v1/runs/{run_id}/input with this attention_id. The first valid response wins; later ones get 409 ERR_ATTENTION_RESOLVED. Expired requests resolve as expired and, for approvals, are treated as a rejection.

Parameters

Request body

AttentionResponse. type must be one of the request’s response_options.

Responses

Examples

Approve:
The 202 response is the updated AttentionRequest (shortened):
Raise a budget after budget_exhausted by supplying data. The shape of value for a given request is described by that request’s summary and proposed_action; the v0.3 contract leaves value untyped.
Already answered:

Attention policy

Delivery limits are set by an AttentionPolicy, which a campaign can supply. The numeric defaults are versioned platform defaults (defaults_version), not fixed constants.