American Express's Intent Intelligence Framework shifts authorization from post-hoc verification to pre-execution intent binding — a pattern any team building autonomous agents should study. The core insight: capture and cryptographically sign user intent before an agent touches a tool, then enforce that signed intent at a gateway layer. This article deconstructs Amex's commerce-focused primitives into reusable architectural patterns for high-stakes agentic workflows.
Why Intent Capture Must Shift Left in the Agent Loop
Nondeterministic LLMs make post-action guardrails fundamentally insufficient. When an agent hallucinates a merchant name or misreads a budget constraint, detecting the error after a database write or API call has already executed means cleanup, not prevention. Amex's framework addresses this by moving intent capture to the front of the transaction lifecycle — before any credential is minted or tool invoked.
The pattern is straightforward: a Create Intent API ingests the user's natural-language instruction ("buy white Nike sneakers, size 9, under $150") alongside structured constraints (merchant, budget ceiling, product attributes). The user then authenticates and signs off on that captured intent. Only then does the system mint an Intent ID and a Proof of Intent Token containing the signed constraints. That token becomes the authorization artifact that gates every downstream action.
This architecture mirrors what security engineers have long practiced with capability-based security: authorize the intent, not the actor. The agent holds no raw secrets; it holds a time-bounded, scope-limited credential derived from the intent token. If the agent later tries to purchase Adidas instead of Nike, the validation gateway rejects the request because the presented credential doesn't match the signed intent.
Anatomy of an Intent Token: What Gets Signed and Why
The Proof of Intent Token is the linchpin. While Amex hasn't published a formal schema, the TechCrunch interview reveals the high-level constraints it carries: merchant identity, budget ceiling, product category and attributes, and implicitly the agent identity and timestamp. For non-payment domains, engineers should design their tokens to include:
- Action scope: the exact operation permitted (e.g., "database.write:orders", "api.call:stripe.charges.create")
- Parameter constraints: structured fields the agent must match (amount ≤ 150, currency=USD, merchant_id=nike_us)
- Agent identity: which agent instance or delegation chain is authorized
- User signature: cryptographic proof of human consent (WebAuthn, passkey, or platform auth)
- Expiry and nonce: replay protection and time-bounding
The token serves triple duty: it's the authorization grant, the audit trail for dispute resolution, and a fraud signal when mismatches appear. A mismatch between the token's merchant field and the agent's actual API call becomes a high-fidelity signal for model fine-tuning — far more actionable than generic "agent went rogue" logs.
Scoped Credentials: Replacing Raw Secrets with Intent-Bound Tokens
Amex's "secure digital payment credential" is derived from the Intent Token, not the user's raw card number. The pattern generalizes: any sensitive action — database write, infrastructure change, API key usage — should consume a short-lived, scope-limited credential minted from the intent token, never a long-lived secret.
Key properties of this credential model:
- Derivation, not delegation: the credential is cryptographically derived from the intent token, so it cannot be forged without the user's signed intent
- Automatic expiry: tied to intent scope — single-use, time-windowed, amount-capped, or parameter-hashed
- Revocation path: when the validation gateway detects intent-token mismatch, it revokes the derived credential and emits an alert
This eliminates the "agent has my API key" anti-pattern. The agent never sees the raw secret; it presents the intent-derived credential to a gateway that validates scope before proxying the request.
Early Mismatch Detection: The "White Nike vs Adidas" Pattern
Amex's concrete example — user asks for white Nike size 9, agent submits Adidas — illustrates a validation layer that compares agent-proposed actions against signed intent before side effects occur. This is not an LLM judge; it's a structured schema diff at the gateway layer.
Implementation pattern:
- Define an intent schema (JSON Schema, Protobuf, or similar) that captures all constrainable parameters
- At intent capture, validate user input against schema and emit the signed token
- At execution time, the gateway parses the agent's proposed tool call into the same schema
- Perform a deterministic field-by-field diff: merchant_id must match, amount ≤ budget, product_category ∈ allowed_set
- Fail-closed: any mismatch blocks the tool call and logs the full context (intent_id, token_hash, proposed_params, diff_result)
The gateway is stateless and replay-safe — it validates the token signature, checks expiry, then diffs. This keeps latency predictable (single-digit milliseconds for schema validation) and removes the agent's reasoning loop from the security critical path.
Graduated Autonomy: From Explicit Consent to Standing Intent
Bozian's "household staples" scenario reveals the autonomy spectrum: not every action warrants per-request consent. The framework supports three tiers without collapsing the guardrail model:
- Explicit consent: per-action intent capture. High value, high risk, novel merchants. User authenticates each time.
- Parametric constraints: user defines a policy ("reorder paper towels when quantity < 12, price < $30, any merchant"). The agent operates within bounds; the gateway validates each action against the standing policy token.
- Standing intent with anomaly overlay: pre-approved policy plus ML-based anomaly detection (unusual merchant, velocity spike, geographic mismatch). Anomalies trigger step-up auth or human review.
Each tier uses the same token-and-gateway machinery. The difference is token lifetime and constraint granularity. A standing intent token might be valid for 90 days with a monthly spend cap; an explicit token expires in 10 minutes for a single transaction.
Integration Hooks: Where the Framework Lives in Your Stack
Mapping the Amex flow (Create Intent API → auth → token → credential → gateway) to a practical middleware layer:
- Middleware intercepts tool calls tagged as "guarded actions" (via decorator, trait, or manifest)
- Stateless intent validation service receives (intent_id, proof_token, proposed_action) and returns allow/deny + diff details
- Credential minting happens on allow: the service derives a short-lived credential scoped to the validated action
- Observability: emit
intent_id,token_hash,validation_result,diff_summaryto your tracing system (OpenTelemetry, Datadog, etc.)
This layer drops into n8n, LangGraph, or custom orchestration as a pre-tool-call hook. The agent code stays clean — it proposes actions; the middleware decides. Teams wanting a starter kit that bakes in intent-capture middleware can explore the agentic AI development toolkit.
Open Questions for Custom Implementations
The TechCrunch piece leaves several implementation gaps that teams must prototype or pressure-test with vendors:
- Multi-agent delegation: Can Agent B inherit Agent A's intent token? The framework implies a delegation chain (token includes agent_id), but the spec for chained derivation — where Agent A mints a sub-token for Agent B with further constrained scope — is undefined.
- Offline/async flows: How does intent capture work when the user isn't in the loop (scheduled jobs, webhook-triggered agents)? Amex's model assumes interactive auth; async patterns need a pre-authorized policy token with explicit user consent logs.
- Cross-domain intent: A single token spanning payment + data access + compute (e.g., "book travel: pay flight, read calendar, call API") requires a unified schema and a gateway that understands multiple resource types. No standard exists yet.
These aren't blockers — they're the next layer of engineering work. The foundation (intent capture → signed token → gateway validation) is solid and portable.
Frequently Asked Questions
Does this require Amex's infrastructure or can I build it myself?
The patterns are infrastructure-agnostic. You need: a schema for intent, a signing mechanism (user auth + cryptographic signature), a stateless validation gateway, and a credential derivation function. Any team can build this with standard crypto libraries and an API gateway.
What's the latency overhead of the intent capture + auth flow?
Amex hasn't published numbers. The critical path is: user auth (WebAuthn/passkey ~200-500ms), token signing (~1-5ms), gateway validation (~1-3ms for schema diff). For interactive flows, user auth dominates. For standing intents, the per-action overhead is single-digit milliseconds.
How do I handle agent self-correction when the gateway rejects an action?
The gateway returns a structured diff (expected vs. proposed). The agent can use this to reformulate — e.g., "merchant mismatch: expected nike_us, got adidas_us" — and retry with corrected parameters, provided the retry still falls within the original intent token's scope and expiry.
Building guardrails that actually hold requires moving authorization upstream of execution. Amex's framework proves the pattern works at payments scale; the primitives transfer cleanly to any domain where agents take high-stakes actions. Teams needing help designing scoped-credential pipelines and validation gateways can reach out for a custom agentic system architecture review.



