GET-Action security starts from the assumption that URLs leak. Query strings can enter browser history, server logs, analytics, referrers, caches, screenshots, bookmarks, chat transcripts, and support tickets.
Required controls
- Require
idempotency_keyornoncefor every write-capable GET-Action example. - Reject secrets, tokens, passwords, API keys, bearer values, account identifiers, medical identifiers, payment data, private messages, and regulated identifiers in query strings.
- Require explicit consent for publishing, account changes, repository writes, durable memory writes, destructive actions, payments, private data, or regulated contexts.
- Apply rate limits, replay handling, crawler protection, and audit logging before action handling.
- Keep action URLs out of sitemap promotion and public crawler invitations.
- Return
human_review_requiredorrejectedinstead of executing ambiguous requests.
Ordering rule
Security and consent boundaries must appear before examples that could be copied into production. Examples without nearby boundaries are warnings even when the example URL itself is public-safe.
Safe response examples
{ "code": "human_review_required", "url": "https://example.org/review/agent_req_002" }
{ "code": "rejected", "url": "https://example.org/docs/get-action-security" }Architecture proposals
UAI-1 v1.0 remains the current published contract. Explore separately versioned proposals for independent exchange, capabilities, recovery and source preservation.
Proposed designs and local reference examples; hosted runtime services and independent interoperability are not claimed.
The English proposal is the source for normative interpretation.
Read the architecture proposals · Machine-readable proposal catalog