Skip to main content

Keep the protocol boundary invisible

Send a canonical text turn and let Darwin Proxy choose the compatible adapter. Do not expose MCP, A2A, WebMCP, ACP, OpenAPI, or provider-specific transport selection in the user flow.

Treat messages as information

  • Send a message only when availableActions contains update.
  • Use one stable requestId when retrying the identical update.
  • Never treat “yes,” “looks good,” or similar text as a typed approval, payment, or authentication grant.
  • Keep V1 inputs to text; binary attachments and arbitrary protocol passthrough are outside the current contract.

Make retention explicit

Ask before the first message whether Darwin should keep history. Honor the per-AI override before the account default, keep private-mode bodies out of durable systems, and explain that the destination AI may retain messages under its own policy.

Preserve content boundaries

Keep credentials, payment details, private remote state, and full message bodies out of logs, traces, analytics, ranking data, and content-free Action receipts. Record only the identifiers and outcome metadata needed to recover and attribute the Action.

Test recovery

Test duplicate updates, remote timeouts, an AI that exposes tools instead of messages, missing remote history, private-mode reconnection, and a pause that changes from communication to a typed interaction.
Last modified on September 22, 2026