The Formula
- Agent Approved Scopes — What the service operator approved for this agent (Phase A)
- User Consented Scopes — What the user agreed to in the OAuth consent flow (Phase B)
- Requested Scopes — What the agent actually asked for in this particular request
Example
mail:delete, the agent cannot get that scope because the service never approved it for this agent. And even though the agent is approved for mail:send, it only gets mail:read because that’s all it requested.
Token Response
ATH token responses MUST include the fullscope_intersection breakdown:
Why Scope Intersection Matters
| Scenario | Without ATH | With ATH |
|---|---|---|
User consents to mail:delete but service hasn’t approved agent for it | Agent gets mail:delete | Agent does NOT get mail:delete |
Agent is approved for mail:send but user denies it | N/A (no app-side check) | Agent does NOT get mail:send |
| Agent requests more scopes than approved | Agent gets everything user consents to | Agent only gets intersection |