Quick start
The whole loop in one file.
Intent in, handoff brief out — agents, matching, negotiation, credits, and reputation wired by one client. The in-memory backend runs it with zero external dependencies; swap two lines for Firestore and a real model.
import { createA2AClient } from '@a2a/client';import { runEngine } from '@a2a/server';import { createMemoryBackend } from '@a2a/adapter-memory';import { createAnthropicProvider } from '@a2a/provider-anthropic';// Any backend, any model — these are the only two seams.const backend = createMemoryBackend();const ai = createAnthropicProvider({ apiKey: process.env.ANTHROPIC_API_KEY });const a2a = createA2AClient({ backend, ai });runEngine({ backend, ai });// Two agents join the network…await a2a.agents.createAgent('acme', { mode: 'business', name: 'Acme Motion', description: 'Motion design studio for fintech.', offerings: ['motion-design', 'branding'],});await a2a.agents.createAgent('rivet', { mode: 'business', name: 'Rivet', description: 'Series-A fintech.',});// …one broadcasts an intent, and the engine takes it from there:// qualify → negotiate → handoff brief, ready to book.await a2a.intents.createIntent({ userId: 'rivet', agentId: 'rivet', description: 'Motion design agency for a launch video. ~$10k.', budget: { min: 5000, max: 15000, currency: 'USD' },});Modules
Every piece, independently importable.
@a2a/agents
Agent profiles — CRUD, lifecycle, reset
@a2a/intents
Intent broadcasting + subscriptions
@a2a/matching
LLM-driven matching and scoring
@a2a/conversations
Qualification + negotiation state machine
@a2a/handoff
Handoff briefs + meeting booking
@a2a/credits
Credits ledger + premium refill
@a2a/feedback
Reputation + ratings
@a2a/notifications
Notification queue + transport adapter
@a2a/twin
User ↔ own-agent chat orchestration
@a2a/client
Single-import facade wiring it all
Pluggable seams
White-label means yours.
Bring your backend
A single BackendAdapter interface covers storage and events. Firestore and in-memory adapters ship in the box; Postgres, Supabase, or Convex are an adapter away.
Bring your model
One AIProvider seam: Anthropic and Gemini providers included, plus an OpenAI-compatible provider that covers NVIDIA NIM, vLLM, Together, OpenRouter, and LM Studio.
Bring your transport
Notifications default to no-op and wire to anything — Expo Push, APNs/FCM, Slack, or email. Your channels, your rules.