Capacidades — O que você pode construir com o iFriend Agents¶
Esta página é o ponto de partida para quem chega no projeto: um mapa de tudo que a plataforma já sabe fazer hoje, com o que está pronto/ligado em produção e o que existe no código mas ainda precisa ser conectado. Cada seção linka para a documentação detalhada correspondente.
Agentes disponíveis¶
O root_agent (orquestrador) delega para sub-agentes especializados
conforme a intenção do usuário. Alguns estão sempre ativos; outros dependem
de feature flags.
| Agente | O que faz | Ativação |
|---|---|---|
discovery_agent |
Busca produtos/experiências/guias no catálogo e consulta disponibilidade | Sempre ativo |
quote_agent |
Calcula preços, variações, faixas etárias e conversão de moeda | Sempre ativo |
utils_agent |
Envia emails e gera relatórios CSV | Sempre ativo |
support_agent |
Escala para atendimento humano via WhatsApp (com pré-qualificação) | Sempre ativo |
booking_info_agent |
Consulta reservas existentes (status, voucher) | Sempre ativo |
research_agent |
Pesquisa na web em tempo real (clima, eventos) via Google Search | Sempre ativo (tool) |
faq_agent |
FAQ genérico da plataforma iFriend | Sempre ativo (tool) |
itinerary_agent |
Monta roteiros de viagem dia a dia, multi-destino | ENABLE_ITINERARY (padrão: ligado) |
custom_tour_agent |
Qualifica leads para tours personalizados | ENABLE_CUSTOM_TOUR (padrão: ligado) |
booking_agent |
Identifica/cria contas e emite reservas | ENABLE_BOOKING (padrão: ligado) |
payment_agent |
Processa pagamento com cartão (tokenização, parcelas) | ENABLE_PAYMENT (padrão: ligado, requer ENABLE_BOOKING) |
proposal_agent |
Gera propostas comerciais em PDF para grupos | ENABLE_PROPOSAL (padrão: ligado) |
custom_affiliate_booking_agent |
Gera link de reserva que redireciona para o fluxo próprio do affiliate | ENABLE_CUSTOM_AFFILIATE_BOOKING (padrão: desligado) |
knowledge_base_agent |
Responde FAQ usando a base de conhecimento própria do affiliate | ENABLE_KNOWLEDGE_BASE (padrão: desligado) + affiliate precisar ter KB configurada |
Ver Agentes para detalhes de cada um, e Como Adicionar Novo Agente para criar o seu.
Canais de mensageria¶
Todos os canais implementam a mesma interface (MessagingAdapter) e passam
pelo mesmo pipeline (ConversationProcessor) — áudio, arquivos, anti-loop e
sessão funcionam igual em qualquer canal.
| Canal | Status |
|---|---|
| Slack | ✅ Produção |
| WhatsApp (Evolution API, self-hosted) | ✅ Produção |
| WhatsApp Official (Meta Cloud API) | ✅ Produção |
| WebChat (REST puro) | ✅ Produção |
| SSE (Server-Sent Events, streaming) | ✅ Produção |
| Telegram | ⚠️ Exemplo/referência — o próprio código indica passos pendentes para produção |
Ver Fluxo de Mensagens e Mensageria (inclui como criar um novo adapter).
Customização por Affiliate (multi-tenant)¶
Cada affiliate (agência de turismo) pode ter, hoje:
- Markups de preço próprios (por tipo de produto: guia, experiência, ingresso, transfer, pacote).
- Branding em emails e no atendimento (logo, contato, WhatsApp).
- Whitelabel: domínio e visual próprios, com o agente embutido no site do affiliate.
- URL de reserva customizada: em vez do fluxo de booking padrão, gera um link que redireciona para o sistema do affiliate (
ENABLE_CUSTOM_AFFILIATE_BOOKING). - Knowledge base / FAQ customizado: upload de documentos próprios (PDF/DOCX/TXT), indexados em vetores, respondidos pelo
knowledge_base_agentem vez do FAQ genérico.
Ver Affiliate → Configuração, Whitelabel, Knowledge Base e o guia para adicionar novas customizações por affiliate, Estendendo a Configuração do Agente.
Integração com outros agentes (A2A)¶
- Como cliente: o iFriend pode chamar agentes externos (parceiros) via protocolo A2A — descoberta por Agent Card, chamadas síncronas ou streaming, e acompanhamento de tasks longas.
- Como provedor: o
root_agentpode ser exposto via A2A para que outros agentes/sistemas o chamem (ENABLE_A2A, padrão desligado), publicando um Agent Card com 8 skills (discovery, itinerary, quote, booking, payment, support, custom_tour, booking_info).
Ver Integração A2A → Para Parceiros e Para Desenvolvedores.
Memória entre sessões¶
| Backend | Melhor para |
|---|---|
| CloudSQL (padrão) | Produção — baixa latência, custo previsível |
| Redis | Cache rápido de memórias recentes (combinar com CloudSQL para histórico) |
| Firestore | Zero manutenção de servidor, escala automática |
| OpenMemory | Busca semântica avançada sobre embeddings |
Ver Memória e Session/Memória/Auth.
Outras capacidades de plataforma¶
| Capacidade | O que faz |
|---|---|
| Transcrição de áudio | Mensagens de voz transcritas via Gemini 2.5 Flash antes de chegar ao agente |
| Arquivos/documentos | PDF, imagens, CSV, DOCX processados nativamente pelo Gemini |
| Envio de email | Confirmações e propostas via SendGrid |
| Busca de produtos | Busca semântica (BigQuery + embeddings) com filtro geográfico |
| Analytics/billing | Tracking de uso por processo, com fan-out para PostHog e BigQuery |
| Escalação humana | Formulário de contato + WhatsApp, com detecção de horário comercial; opcionalmente passando antes pelo agente SDR do Agentforce (ENABLE_AGENTFORCE_HANDOFF, ver Handoff Trip → Agentforce) |
| Proteção de dados (PII) | Remove campos sensíveis das respostas de API antes do LLM ver |
| Anti-loop | 4 camadas de proteção contra loops bot-a-bot |
| Autenticação JWT | Identifica o usuário/affiliate em qualquer canal |
O que existe no código mas ainda não está "ligado"¶
Para não gerar expectativa errada — estas capacidades têm implementação completa, mas não estão conectadas a nenhum agente/fluxo ativo hoje. Vale saber que existem antes de reimplementar do zero:
- Tools de A2A client (
listar_agentes_a2a,chamar_agente_a2a,consultar_task_a2a) — funcionam de ponta a ponta, mas não estão notools=[...]de nenhum agente ainda. - Email via Gmail e MailerSend — implementações completas, mas só o
SendGrid está de fato conectado ao
utils_agent. - Memória via Firestore/OpenMemory — implementadas, mas a fábrica
(
MEMORY_BACKEND) hoje só resolveredis/cloudsql/inmemory. - Write-back do
knowledgeBaseCollectionnoaffiliate_config— o worker de indexação já sabe fazer a chamada, mas ela está isolada como no-op até o endpoint na iFriend API ser confirmado (ver Knowledge Base).
Onde ir a partir daqui¶
- Primeira vez no projeto? Visão Geral → Arquitetura e Fluxo de Dados → Setup Local.
- Vai criar um agente novo? Como Adicionar Novo Agente.
- Vai customizar algo por affiliate? Estendendo a Configuração do Agente.
- Vai integrar outro sistema via A2A? Para Parceiros.