Integração A2A — Para Parceiros¶
O que é o protocolo A2A?¶
O Agent-to-Agent (A2A) é um protocolo que permite que seu sistema de IA se comunique com o agente iFriend através de JSON-RPC 2.0 sobre HTTP.
Quando usar?¶
- Seu agente de IA precisa de informações de turismo que a iFriend possui
- Você quer que seus usuários façam reservas de experiências
- Você quer oferecer serviços da iFriend como parte do seu ecossistema
Quick Start¶
1. Obtenha as credenciais¶
Entre em contato com a equipe iFriend para receber:
- A2A_BASE_URL — URL do endpoint
- Credenciais JWT com role ROLE_A2A_USER
2. Discover o Agent Card¶
curl https://agents.theifriend.com/trip/a2a/.well-known/agent-card.json
Você receberá algo como:
{
"name": "ifriend_agent",
"version": "3.3.6",
"protocolVersion": "0.2.6",
"capabilities": {
"streaming": false,
"pushNotifications": false
},
"skills": [
{"id": "discovery", "name": "Busca de experiências"},
{"id": "quote", "name": "Cotação de preços"},
{"id": "booking", "name": "Reservas"},
...
]
}
3. Envie uma mensagem¶
curl -X POST https://agents.theifriend.com/trip/a2a/ \
-H "Content-Type: application/json" \
-H "Authorization: Bearer SEU_JWT_TOKEN" \
-d '{
"jsonrpc": "2.0",
"id": "1",
"method": "message/send",
"params": {
"message": {
"role": "user",
"parts": [{"type": "text", "text": "Quero experiências em São Paulo"}]
}
}
}'
4. Receba a resposta¶
{
"jsonrpc": "2.0",
"id": "1",
"result": {
"taskId": "task-abc123",
"messages": [
{
"role": "agent",
"parts": [{"type": "text", "text": "Encontrei várias experiências..."}]
}
]
}
}
Autenticação¶
Todas as requisições devem incluir um JWT válido no header:
Authorization: Bearer <jwt_token>
O token deve ter a claim roles contendo ROLE_A2A_USER.
Métodos Disponíveis¶
| Método | Descrição |
|---|---|
message/send |
Envia mensagem e recebe resposta |
message/stream |
Streaming de resposta (se habilitado) |
tasks/get |
Consulta task existente |
tasks/cancel |
Cancela task em andamento |
Exemplos de Código¶
Consulte Exemplos para código em Python e outras linguagens.
Limites¶
- Timeout: 60 segundos por requisição
- Tasks expiram após 24 horas (TTL configurável)
- Rate limit: Entre em contato para limites específicos
Suporte¶
Em caso de dúvidas: suporte@ifriend.com