A2A Integration
The Agent-to-Agent (A2A) protocol integration enables AI agents to communicate with each other using payment-protected message streams. The Nevermined Payments Library provides complete A2A server functionality with automatic payment handling.Overview of A2A Integration
The A2A integration provides:- Agent Card: Payment metadata extension for discovery
- Streaming Support: Real-time task updates via Server-Sent Events
- Task Management: Async execution with status tracking
- Credit Burning: Automatic credit settlement after task completion
- EventBus Pattern: Clean event-driven architecture for task execution
Build Payment Agent Card
The agent card is published at/.well-known/agent.json and includes payment metadata:
Payment Extension Structure
The agent card includes a Nevermined payment extension incapabilities.extensions:
Implement Executor
The executor contains your agent’s business logic and emits events via the EventBus:EventBus Events
The executor communicates via event publishing:Task Event
Status Update Event
Message Event (Streaming)
Signal Completion
Start A2A Server
Start the complete A2A server with payment integration:Credit Reporting
The executor reports credits used in the final status update:Fixed Credits
Dynamic Credits
Calculate credits based on actual usage:Streaming Example
For long-running tasks, stream partial results:Complete Example: Weather A2A Agent
Server Configuration Options
Best Practices
- Always Report Credits: Include
creditsUsedin final status updates - Handle Errors: Emit ‘failed’ status on errors
- Signal Completion: Always call
eventBus.finished() - Streaming for Long Tasks: Use message events for real-time updates
- Graceful Shutdown: Implement proper server cleanup
- Descriptive Agent Cards: Provide clear descriptions and skills
- Version Control: Include version in agent card metadata
Related Documentation
- Agents - Register your A2A agent in Nevermined
- Payment Plans - Configure pricing for your agent
- Validation of Requests - Understanding credit settlement
Source References:
RUN.md(A2A Server section, lines 88-156)src/a2a/server.ts(PaymentsA2AServer)src/a2a/agent-card.ts(buildPaymentAgentCard)tests/integration/a2a/complete-message-send-flow.test.ts(executor patterns)tests/e2e/helpers/a2a-setup-helpers.ts(setup examples)