WebChat and every public task ingress use Message Service as the durable fact
source. ACP remains available to compatible Device Agent clients for live
session events and tools, but it is not a second task database and is not the
default WebChat dispatch path.
Ten-minute path
- Install and bind a Device Agent, bind BeeRunner by QR code, or provision a Redroid instance.
- Create an
oag_user API key in Settings -> API Keys. - Find the Android instance and its Agent.
- Submit a durable task and watch its event stream.
- Cancel through the task API if the result is no longer needed.
Single-writer rule
A phone can safely execute only one mutating task at a time. BeeOS therefore uses a device-level lease across WebChat, OpenAPI tasks, A2A, MCP, and atomic control calls.- A second writer fails immediately with
device_busy; BeeOS does not hide it in an unbounded queue. - OpenAPI atomic calls return HTTP
409with error codedevice_busy. - A2A projects the conflict as
rejectedwith reasondevice_busy. - MCP returns a structured tool error carrying
device_busy. - Screenshots, UI tree reads, app listing, and passive live viewing may coexist with the active writer.
Task states
The product task states are:input_required and auth_required are resumable pauses. A deadline expiry is
failed with reason timeout. An uncertain delivery is also failed, with
outcomeCertainty=uncertain; do not automatically replay it because an action
may already have reached the phone.
Protocol adapters may use their standard wire vocabulary. For example, A2A
uses working, completed, and rejected; the BeeOS product projection keeps
the meaning above.
Atomic control
For Device Agent and Redroid,GET /api/v1/instances/{id}/mobile returns the
live geometry and supported actions. The v1 safe surface includes:
action_unsupported for this direct surface; submit a task instead.
Evidence and artifacts
Task replies and artifacts are read through the task/message APIs. Artifact resolution is owner-scoped: afile_id or URL from another user is not
readable. Preserve the terminal reason, action results, screenshots, and task
ID together when building an audit trail.