One docs

suiss One · Docs

Task

Draft reference for the Task record: fields, the task state machine, protocol mappings, the intent pipeline and failure behaviour.

Draft reference. Field names, values and rules may change before release.

A Task is One's record of single-person work. Work that involves a promise to someone else is a Work Commitment instead; a task that prepares for one carries a commitment_ref, and the task's state never changes the commitment's state.

Fields

FieldContent
IdentifierTask identifier, independent of model and device
OwnerThe person's Access identity. A task always belongs to one person
Purpose and originYour request, or a reference to the Trigger or routine suggestion that led to it
PlanOrdered steps. Each step has a capability name, typed inputs with a provenance label per input, and a step state
Finish criterionA verifiable definition of the result, such as "order confirmation email arrived" or "reservation number received"
Authority bindingReferences to the bound Mandate and Trigger; an Access action reference on every step with an external effect
WaitingReferences to open Relay waitpoints
CheckpointReference to the last checkpoint
Life areaThe area used to filter memory retrieval
BudgetStep budget and, if any, amount budget, from the Mandate. The narrower one applies
Sub-agentsReferences to sub-agent instances working on the task
commitment_refOptional link to a Work Commitment the task prepares for

Every task also carries the common record fields. Each step records the execution place chosen and the reason, and the action path used.

States

State is not stored. It is computed deterministically from the task's event history, kept by the executor's long-task engine.

StateMeaningCan move to
pendingPlanned; the first step has not startedrunning, cancelled
runningA step is runningAny state
waiting_userWaiting for your approval, input or takeover. The wait is a Relay waitpointrunning, cancelled, failed (expired)
waiting_externalWaiting for an outside event: another One's reply, a price threshold, a website, a Trigger eventrunning, cancelled, failed (expired)
pausedStopped by you or by One, with stop confirmation from the executorrunning, cancelled
completedThe finish criterion was verifiedTerminal
failedThe finish criterion could not be reached; the reason and the completed steps are visibleTerminal
cancelledYou gave up, or the authority was removedTerminal
pending ──► running ◄──────────────┐
   │          │                     │
   │          ├──► waiting_user ────┤──► failed (expired)
   │          ├──► waiting_external ┤──► failed (expired)
   │          ├──► paused ──────────┘
   │          ├──► completed
   │          ├──► failed
   ▼          ▼
cancelled ◄───┴── (from pending, running, waiting_*, paused)
  • paused is written only after the executor confirms the stop. Cancelling authority in Access does not mean the work stopped.
  • If the executor is unreachable or does not report, the user-facing result is "unknown", never "running".

Protocol mappings

States are projected to protocols through a mapping table; if a protocol changes, only the table changes.

ProtocolTarget states
MCP Tasksworking, input_required, completed, failed, cancelled
A2A Tasksubmitted, working, input-required, auth-required, completed, failed, canceled, rejected

Intent pipeline

Every external effect follows these steps in order:

StepWhat happensOn failure
1. Typed intentThe model produces a typed intent—
2. Schema validationValidated against the capability's input schema (JSON Schema 2020-12)The intent is dropped, the model does not retry, and you are asked
3. Data-flow policyOne's deterministic policy and provenance rules; Rule of TwoEscalated to your approval
4. Access decisionOne builds an intent envelope and gets a decisionDeny: no action
5. ExecutionOnly an allowed intent goes to the executorEffect reported as unknown if it cannot be verified

Access decision values

ValueMeaning
ALLOWThe action may run
DENYThe action may not run
REQUIRE_ACTIONSomething is still required before it can run, such as step-up authentication or an approval

Continuing after an approval, a takeover, a checkpoint or a long sleep is a new Access decision. If authority narrowed or was removed in between, the work does not continue.

Batches

In a batch with several external effects, the first failure stops the rest. Each item is reported as done, failed or not run. Continuing is your explicit action and a new Access decision.

Execution placement

ConditionPlace
Possible through an API, a tool server or a commerce protocolCloud executor calls the API
No sign-in needed, or long-runningIsolated cloud machine
Needs your session and you are at the deviceLocal executor on your device
Needs your session and you are awayTask moves to waiting_user

Long-task engine guarantees

PropertyDesign
Durable executionEvent history plus deterministic replay; another worker continues after a crash
External effectsSeparate steps with an idempotency key and a recorded result; never repeated on replay
Crash between send and recordThe result is verified (page, confirmation email, API query) instead of sending again; if it cannot be verified, the step is shown as unknown and you decide
Human waitsRelay waitpoints; no timer of One's own. Expiry stops the work
CheckpointsLogical state stored durably; browser state as an encrypted snapshot that never outlives its profile. On resume the page is reloaded and re-checked; changes are put to you
Task state locationNever in a model layer or a provider-managed agent runtime

Replay is guaranteed by the event history. That an external effect happens only once holds only when the other system supports the idempotency key.

User commands

These work on every surface, including voice:

CommandEffect
"What are you doing?"Current task and step, from records
"Why?"The decision's reasons, with links to the records it rests on; never raw reasoning
"Stop"Suspends authority in Access and asks the executor to stop. Shown as "stopping" until the executor confirms. Accepted on every surface, with no approval ceiling
"Undo"Offered only for reversible actions; compensable actions offer their own label, such as "Request refund"
"Don't do this again"Opens a proposal to narrow the related rule or Grant

Failure behaviour

UnavailableBehaviour
AccessNo consequential action, no new-party sharing, no authority-requiring retrieval. Read-only and local work continues
RelayRecords and tasks unaffected; notification, waitpoint and mailbox requests wait in the outbox
ExecutorTask state becomes unknown; stop requests are recorded and confirmation awaited
WorkNew commitment and proposal operations wait in the outbox; single-person work continues
PayNo payment; the payment step waits and stops if it expires
Model serving, or attestation unverifiableLanguage-model work waits; no outside model or unattested node is used
Device offlineOffline core runs; pending operations queue, signed
One cloudRunning work continues in the executor under Access rules or pauses; stopping works through Access and the executor without One