Skip to main content
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

Set requestId 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:
  1. resolves the authenticated owner;
  2. verifies scopes, resource ownership, connections, and approvals;
  3. executes the action with the correct credential;
  4. records an audit event.
External writes may return 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.