Skip to content

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_agent em 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_agent pode 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 no tools=[...] 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ó resolve redis/cloudsql/inmemory.
  • Write-back do knowledgeBaseCollection no affiliate_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