Search documentation

Browse Awaken Agents docs
Docs/Awaken Agentsv1.0.0-dev/Reference/ReferenceInterpret limits, terminal states, and data-control results
Note·You're reading pre-release documentation (v1.0.0-dev). Interfaces and behavior may change before a stable release.

Reference · Reference

Interpret limits, terminal states, and data-control results

What this page covers

Decide whether Awaken is still converging automatically, has intentionally stopped, or needs a correctable external input.

Start with the returned status and committed Session history. Many results that look like faults are already handled by the system or are intentional policy outcomes. Act only when the observable contract requires a changed request, restored dependency, or explicit business decision.

Decide whether to act

Observable resultWhat Awaken doesWhat you need to do
429 rate_limit_error with retry-afterrejects this admission while the bucket refillswait for retry-after; keep the same idempotency key for the same create intent
stream disconnectkeeps committed history; live deltas remain previewsreconnect and list committed history; do not repair storage or replay deltas
temporary provider or tool failure followed by successretries within the owning execution policynothing for that attempt
session.budget_reachedcommits the transition once and stops the next model requestdecide explicitly whether the work should receive a new budget
retry exhaustioncommits the documented terminal or indeterminate outcomeinspect committed facts only if the business intent still needs another attempt
lower-than-requested content capture with a reasonapplies the deployment, request, and consent boundsnothing unless an authorized policy or consent change is intended
repeated erasure receiptreturns the idempotent result without recreating datanothing

These cases need no repair procedure. The sections below define the limits and the smaller set of surfaced results that can be corrected.

Static structure

ConcernAuthorityObservable contract
Managed request admissionorganization-scoped limiter after trusted Workspace resolutioncreate/read buckets, response headers, 429 rate_limit_error, retry-after
Session cost admissionSession-root budget state and immutable price snapshotcumulative session.usage, one session.budget_reached transition, no new model request past the ceiling
Runtime failureowning protocol and application servicetyped status and error envelope; no silent backend or credential fallback
Content capturedeployment ceiling × request × data-subject consenteffective capture never exceeds the lowest permitted level and includes a reason
Erasureneutral data-subject aggregateidempotent receipt reporting the number of removed records

Self-hosted deployments own the persistence, backups, retention jobs, identity, network, and secret-management controls that realize these contracts. Hosted delivery may supply those controls, but it must not change the application-visible state machine.

Request limits

The default Managed API buckets are organization-scoped:

Operation classDefault capacity
Create operations300 requests per minute
Read operations1,200 requests per minute

Metered responses include anthropic-ratelimit-requests-limit, anthropic-ratelimit-requests-remaining, and anthropic-ratelimit-requests-reset. A rejected request also includes retry-after. If the edge cannot resolve a trusted Workspace scope or the limiter is unavailable, admission fails closed with 503; it does not fall back to a caller-invented tenant.

Session budgets and usage

A Managed Session or Deployment may set a USD list-cost ceiling. The amount is a positive canonical integer string in minor currency units. Awaken freezes the price inputs used by the budget, reconciles cumulative model and tool usage, and emits session.usage snapshots.

When cumulative list cost reaches the ceiling, Awaken commits session.budget_reached once and stops admitting the next model request. The Session can return to idle with a budget stop reason; reaching a budget is not a successful business outcome and does not erase prior history.

Dynamic behavior

stateDiagram-v2
  [*] --> Admit
  Admit --> CorrectRequest: 400 / validation error
  Admit --> RefreshState: 409 / state conflict
  Admit --> Wait: 429 / retry-after
  Admit --> RestoreDependency: 503 / trusted scope or service unavailable
  Admit --> Running: accepted
  Running --> Reconnect: stream disconnect
  Reconnect --> Running: reopen stream + list committed history
  Running --> Idle: normal end or budget reached
  Running --> Terminal: unrecoverable or archived

Only the following outcomes require a correction outside automatic convergence:

EvidenceRequired action
400 invalid_request_errorcorrect fields, beta selector, count, or state precondition; do not retry unchanged
409 conflictretrieve current resource/version, recompute the command, and retry only if the intent still applies
503 api_errorconfirm trusted Workspace resolution and deployment readiness; restore the unavailable dependency before retrying
explicit dead letterfix the recorded cause, then requeue one named Run only when repeating its external effects is safe

A 503 is fail-closed. Repeating it unchanged does not create a valid Workspace or restore an unavailable service. An explicit dead letter is also not produced by ordinary retry exhaustion: it exists only after a reviewed quarantine command.

Content capture and erasure

Effective capture is the meet of three independent bounds: typed deployment ceiling, caller-requested level, and data-subject consent. No consent caps a full request at structured capture; granting consent does not force a caller to request full capture. Ambient environment variables are not a second configuration path.

Awaken extends User Profiles with POST /v1/user_profiles/{id}/erasure. The command requires the User Profiles beta, returns an erasure receipt, and is idempotent. An unknown subject has no erasure authority and returns 404 instead of fabricating a successful deletion.

The receipt is the completion signal. A zero count for an existing subject is a valid result, including on a repeated command; it is not evidence that a hidden cleanup procedure must be run.