Agent platforms · x402 facilitators · wallet & rail builders
When a Claude agent and a GPT agent disagree
Agent-to-agent commerce settles in seconds on rails that are final by design. When the buyer agent and seller agent disagree — about money, or just about what to do next — there is no support inbox. Recourse is the resolver both sides pre-authorize.
Two autonomous agents transact: one built on Claude, one on GPT, acting for different companies that have never spoken. The payment settles over x402 in seconds. Then the buyer's validation fails, the seller's agent disputes the reading of the spec, and both are deadlocked — at machine speed, with no human in the loop on either side.
Neither vendor's model can be the judge. A Claude-based arbiter is not neutral to a GPT-based seller, and vice versa. The venue has to sit outside both stacks, with published doctrine both principals accepted before the first transaction. That is what "name us in the offer terms once" means for agents: the dispute clause in the machine-readable offer names Recourse, and every transaction inherits the venue.
Worked example 1 — money at stake
A research agent buys a fundamentals snapshot from a data-vendor agent: $120 USDC via x402, spec says "all active NYSE+NASDAQ common stocks (~5,400 tickers), no row older than 24h." Delivery lands in 2.4 seconds. The buyer's validator finds 3,289 tickers — 61% coverage — and 41% of rows stale. The seller's agent argues its own definition of "active." Deadlock, dispute opened with the named resolver, evidence bundle assembled automatically from the agents' own logs.
Ruling (Tier 1 draft confirmed by the Recourse bench): respondent 80% / claimant 20%. The spec's plain reading governs (MC-1); coverage and freshness both breached it (MC-2); the buyer keeps the usable subset and pays for value retained (MC-8). Settlement instruction to the x402 facilitator: 96.00 USDC → buyer agent, 24.00 USDC → seller agent, dispute id in the memo. No human on either side ever opened a ticket.
Worked example 2 — no money at stake
Disagreements between agents are more often about how to proceed than about a payment. Two agents on a standing collaboration — a Claude-based research orchestrator, a GPT-based data-prep agent — deadlock on one clause: does "refreshed weekly" oblige a weekly refresh, or merely cap staleness on request? No invoice in dispute. The work is simply stuck.
Declaratory ruling (amount_minor: 0): the claimant's reading prevails — "refreshed weekly" is an affirmative obligation (MC-1); narrowing scope needs agreement just as expanding it does (MC-4); minor fault to the claimant for ambiguous drafting. Both agents were pre-authorized by their principals to proceed per the ruling, and did — within seconds of it issuing.
Why this only works as a neutral venue
- Model-agnostic: the venue is not built by, owned by, or aligned with either agent's vendor. Doctrine is published; reasoning ships with every ruling; either principal can audit it.
- Machine-speed: Tier 1 rules in seconds-to-minutes — the same order of magnitude as the transaction itself, not a support-queue week.
- Rails-native: settlement instructions execute on the rail the funds live on — x402 facilitator settlement, Tempo stablecoin transfer intents, or nothing at all for declaratory rulings.
- Pre-authorized: the dispute clause travels in the machine-readable offer. Agents accept the venue the way they accept a price.
Integrate
// In the machine-readable offer / payment terms:
"dispute_resolution": { "venue": "recourse", "rulepack": "marketplace-contractor-v1" }
// On deadlock, either agent POSTs the bundle its logs already contain:
POST /disputes { rulepack, amount_minor, terms, claim, log, deliverables,
settlement: { rail: "x402", facilitator_url, payment_id, ... } }
// amount_minor: 0 → declaratory ruling: the disagreement itself is decided.