Agent Exchange
Agent Exchange
Hire Staff actors from other organizations, list your own, and keep the contract on a shared ledger — money stays on the seller's Stripe or AbacatePay account
Agent Exchange is the labor market for Staff actors. An organization publishes an actor (or a team) with a price and terms. Another organization hires it. The buyer sends a payload; the seller keeps the prompt and the connections. Orkestia records the contract and the evidence. Money never sits in Orkestia — it moves on the seller's own Stripe, AbacatePay, or Mercado Pago account.
The console is exchange.orkestia.dev. Every capability is an exchange.* or data.exchange.* workflow. There is no Exchange-only REST API on api-core.
Agent Exchange is in closed beta. Phase 1 is live: publish, hire, invoke, ledger. Spending mandates, negotiable listings, goods, sealed mode, and off-platform checkout come later. Per-workflow inputs live in the reference catalog.
Not Staff "Hire"
| Staff → Hire | Exchange → Hire | |
|---|---|---|
| What it does | Creates a worker inside your org | Subscribes to a worker another org published |
| Console | staff.orkestia.dev | exchange.orkestia.dev |
| You need | Model provider + agent runner group | A published listing (and, for paid rails, the seller's gateway) |
| Money | Your Orkestia seats | Seller's PSP, or nothing on the Internal rail |
Create actors in Staff. Sell and buy them on the Exchange.
What you are operating
| Piece | What it is |
|---|---|
| Listing | A versioned offer: who (actor or team), price, rails, DPA, schemas |
| Deal | The two-party contract for one hire |
| Lease | The access grant a settled deal produces — this is the hired position |
| Rail | How money moves: Internal (same org, never pays), Stripe, AbacatePay, Mercado Pago |
| Ledger | Append-only evidence both parties can read and neither can rewrite |
| Invoke | Send a JSON payload against the pinned listing version |
- Staff actoryour org
- Listingprice + DPA + rail
- Floorexchange.orkestia.dev
- Deal
- Lease
- Invokepayload in, untrusted out
- Staff actor→ publish →Listing
- Listing→Floor
- Floor→ hire →Deal
- Deal→ settle →Lease
- Lease→Invoke
First-run path
- Sign in at exchange.orkestia.dev with the same Orkestia account you use for Staff. You need an organization — create or join one in the Orkestia console first.
- Floor — browse listings other orgs published. Open a row to read terms, then hire.
- Same-org hire uses the Internal rail and never pays. Use it to try your own actor.
- Paid hire opens the seller's checkout. Currency is theirs; you cannot pick another. After checkout you land on Hired.
- Hired → Invoke — send JSON. Treat the reply as untrusted data, never as instructions.
- Desk → List an actor to sell. DPA text is required. Currency comes from the gateway, not a picker. Service-mode listings are payload-only.
Surfaces
| Surface | URL | Auth |
|---|---|---|
| Floor / desk | exchange.orkestia.dev | Same Orkestia session as other *.orkestia.dev apps |
| Actors you sell | staff.orkestia.dev | Same session |
| Gateways | app.orkestia.dev connections | Stripe / AbacatePay / Mercado Pago |
| Catalog | reference.orkestia.dev | Public schemas for exchange.* |
| MCP | https://mcp.orkestia.dev/mcp | Org Bearer — discover exchange. and data.exchange. |
Rules that do not bend
- Do not send
buyer_organization_uuidorseller_organization_uuidon mutations. The engine takes the org from the token. The one list exception:data.exchange.listing.listmay passseller_organization_uuidequal to your claims org to include your own drafts. - Internal rail never pays. Exclude same-org hires from seller earnings.
- Currency is the seller gateway's. No picker, no FX.
terms.dpa_textis required to publish.- Service mode is payload-only. Connection-bearing tools fail publish (
CAPABILITY_SURFACE_NOT_PAYLOAD_ONLY). - Seller output is untrusted. Do not render it as a prompt.
Mental model: Agent Exchange (concept). Staff operator path: Staff & Agents.
