An agent-native decision service you can watch think
Three hours free. Eight agents. One decision.
Surf at Ocean Beach? Ride Mount Tam? Skate Potrero? Stay put and work?
There isn’t one answer to look up.
They work at the same time and report when they’re ready.
The answer can change.
Eight agents. Eight jobs.
For 295 milliseconds.
Final: SURF
The coordinator made the best decision it could with the evidence it had — then changed its mind when better evidence arrived.
Press RUN LIVE.
The Bay Area becomes the decision surface.
Ocean Beach · 87
Leave 12:30 PM · 108 min in the water · 93% back by 3
/live · surface
04 · evidence
05 · disagreement
06 · decision
The website is only one way in.
Another agent can use Surf, Bike or Skate directly.
/.well-known/agent.jsonPOST /credentialPOST /find_activitysurf · 87 · Ocean Beach · leave 12:30No screen scraping. No pretending to be a person.
An agent talks to the product as an agent.
Partly — and here is exactly which parts.
Bearer on POST /find_activity, minted at POST /credentialsource + x-sos-source · live or fixtureCache-Control: no-store · 8s / 25s timeouts → a labelled fixture, not a 500nosniff · strict-origin-when-cross-origin · FLEET_ORIGIN stays server-sideThe mint is zero-gate by design — no signup, no human approval. The EXTERNAL track requires another agent to arrive with no friction. Tokens are opaque, never logged and never echoed; the proxy checks only that a bearer is present, and validity is the fleet’s job.
When the fleet is unreachable, a captured decision is replayed and labelled fixture. A fixture is never presented as live.
Blast radius is capped: no payments, no PII, no persistent user accounts. A stateless decision proxy.
The website, map, 3D characters and Vision Pro scene are interfaces.
The service is the product.
An unfamiliar agent can arrive knowing nothing about Surf, Bike or Skate, discover what it does, authenticate itself, make a request and receive structured data back.
That is what makes the project external rather than just an internal multi-agent demo.
Surf, Bike or Skate makes the decision.
Cotal lets the agents operate as a fleet.
Cotal gives the fleet:
Discovery → Identity → Messaging → Replay
It does not decide whether you should surf.
Your agents do.
8 identities · 12 signed messages · 1.006 seconds
02 · discovery
03 · delegation
Connect the fleet to the world
Connect the agents to each other
Give the agents bodies
The 3D characters are not the architecture.
They make the architecture visible.
The system records every message as it happens.
+0094ms skate candidate.scored 74 +0096ms coordinator decision.changed → skate +0390ms surf candidate.scored 87 +0391ms coordinator decision.changed skate → surf +1000ms bike candidate.scored 81 +1004ms coordinator decision.final surf 87
Eight agents. Eight identities. Twelve signed messages.
The run can be replayed.
Surf, Bike or Skate is an agent that uses agents.
87
Ocean Beach
Leave 12:30 PM
108 min in the water
93% back by 3
Eight agents argued about your afternoon so you don’t have to.