POST /agent/messages sends a turn to the authenticated user’s personal agent. GET /agent/conversation returns the same conversation history.
One agent, many channels
Web, iOS, MCP, iMessage, WhatsApp, SDKs, and the CLI are access channels. They do not create separate agents or separate identities.Idempotent requests
SetrequestId to a stable caller-generated value when retrying a message. Darwin uses it to correlate retries and downstream work without changing the authenticated owner.
Tool use
The agent receives only tools allowed by the current owner-scoped turn grant. Account-sensitive actions pass through Darwin’s Action Gateway, which:- resolves the authenticated owner;
- verifies scopes, resource ownership, connections, and approvals;
- executes the action with the correct credential;
- records an audit event.
approval_required. Present the approval to the user instead of retrying the write automatically.
The Agent reasons about a request, but the API remains the policy and credential boundary.