Integração com Chat
Conheça como o Capellaris se integra com plataformas de chat como Slack e Microsoft Teams, permitindo interações naturais com os agentes.
Visão Geral da Integração
A integração com plataformas de chat é um componente essencial do Capellaris, permitindo que os usuários interajam com os agentes através de interfaces familiares e já utilizadas no dia a dia da empresa. Esta abordagem elimina a necessidade de aprender novas interfaces e facilita a adoção do sistema.
Principais Benefícios
- Facilidade de Uso: Interação com os agentes através de plataformas já utilizadas pelos usuários.
- Colaboração: Possibilidade de incluir os agentes em conversas e canais existentes.
- Contextualização: Os agentes têm acesso ao contexto das conversas para fornecer respostas mais relevantes.
- Notificações: Utilização dos sistemas de notificação das plataformas para alertar sobre tarefas e atualizações.
- Histórico: Aproveitamento do histórico de conversas para referência futura e aprendizado.
O sistema atualmente suporta integração com Slack e Microsoft Teams, com planos para expandir para outras plataformas como Discord, Telegram e WhatsApp Business no futuro. A arquitetura modular permite adicionar novas integrações de forma simples e consistente.
Slack
Integração completa com o Slack, permitindo interações em canais públicos, privados e mensagens diretas, com suporte a rich messages e blocos interativos.
Microsoft Teams
Integração com o Microsoft Teams, permitindo interações em canais e chats, com suporte a cards adaptativos e botões de ação.
Arquitetura de Integração
A arquitetura de integração com chat foi projetada para ser modular, extensível e robusta, permitindo adicionar novas plataformas de chat com facilidade e garantindo uma experiência consistente independentemente da plataforma utilizada.
Diagrama de Arquitetura
+---------------------+ +---------------------+ +---------------------+ | | | | | | | Plataformas | | Conectores | | Sistema de | | de Chat |<--->| de Chat |<--->| Gerenciamento | | (Slack, Teams) | | (Adaptadores) | | de Agentes | | | | | | | +---------------------+ +---------------------+ +---------------------+ ^ ^ | | v v +---------------------+ +---------------------+ | | | | | Formatadores | | Interface de | | de Mensagem | | Confirmação Humana | | | | | +---------------------+ +---------------------+
Componentes Principais
ChatIntegration
O componente central que gerencia a integração com diferentes plataformas de chat. Ele coordena a comunicação entre os conectores específicos de cada plataforma e o sistema de gerenciamento de agentes.
Responsabilidades:
- Gerenciar os conectores para diferentes plataformas de chat
- Rotear mensagens entre os usuários e os agentes apropriados
- Coordenar o processo de confirmação humana
- Gerenciar o contexto das conversas
- Monitorar o status das integrações
Conectores de Chat
Os conectores são adaptadores específicos para cada plataforma de chat, responsáveis por traduzir as mensagens entre o formato interno do sistema e o formato específico de cada plataforma.
Conectores Implementados:
- SlackConnector: Integração com o Slack
- TeamsConnector: Integração com o Microsoft Teams
Formatadores de Mensagem
Os formatadores de mensagem são responsáveis por converter as respostas dos agentes em formatos ricos e interativos específicos de cada plataforma, como blocos interativos no Slack ou cards adaptativos no Teams.
Tipos de Formatação:
- Formatação de texto (negrito, itálico, listas, etc.)
- Blocos interativos (botões, menus, etc.)
- Cards e attachments
- Gráficos e visualizações
- Links e referências
Interface de Confirmação Humana
A Interface de Confirmação Humana gerencia o processo de aprovação para execução de tarefas, garantindo que os agentes não realizem ações não autorizadas. Ela utiliza as plataformas de chat para enviar solicitações de aprovação e processar as respostas.
Funcionalidades:
- Envio de solicitações de aprovação
- Processamento de respostas (aprovar, rejeitar, solicitar mais informações)
- Timeout e escalação de solicitações não respondidas
- Registro de aprovações e rejeições
- Níveis de aprovação baseados em complexidade e impacto da tarefa
Integração com Slack
A integração com o Slack permite que os usuários interajam com os agentes de IA diretamente nos canais e mensagens diretas do Slack, aproveitando todos os recursos da plataforma como threads, reações, blocos interativos e notificações.
Funcionalidades
- Menções: Os agentes podem ser mencionados em canais usando @agente_nome
- Mensagens Diretas: Os usuários podem enviar mensagens diretas para os agentes
- Threads: As conversas são organizadas em threads para manter o contexto
- Blocos Interativos: Botões, menus e outros elementos interativos para facilitar a interação
- Reações: Os usuários podem reagir às mensagens dos agentes para fornecer feedback rápido
- Notificações: Os agentes podem enviar notificações para alertar sobre tarefas e atualizações
Configuração
Requisitos:
- Workspace do Slack
- Permissões de administrador para instalar aplicativos
- Criação de um aplicativo Slack na plataforma de desenvolvedores do Slack
- Configuração de webhooks e permissões apropriadas
Exemplo de Código: Configuração do Slack
# Configuração do conector Slack slack_config = { "token": "xoxb-your-token", "signing_secret": "your-signing-secret", "allowed_channels": ["general", "marketing", "development", "finance"], "default_response_timeout": 300, # 5 minutos "notification_preferences": { "task_completion": True, "approval_requests": True, "error_notifications": True }, "formatting": { "use_blocks": True, "use_attachments": True, "max_text_length": 3000 } } # Inicializar o conector slack_connector = SlackConnector(slack_config) # Registrar o conector no sistema de integração chat_integration = ChatIntegration() chat_integration.add_connector("slack", slack_connector) # Configurar a interface de confirmação humana confirmation_interface = HumanConfirmationInterface() confirmation_interface.register_platform("slack", slack_connector)
Exemplo de Interação
Solicitação de Tarefa:
Usuário (em #marketing):
@agente_marketing analise os resultados da nossa campanha de email marketing do último trimestre e sugira melhorias para aumentar a taxa de conversão.
Solicitação de Aprovação:
Agente de IA (em thread):
Solicitação de Aprovação
O agente de marketing gostaria de executar a seguinte tarefa:
"Analisar os resultados da campanha de email marketing do último trimestre e sugerir melhorias para aumentar a taxa de conversão."
Esta tarefa envolverá acesso aos dados de marketing e análise de métricas de campanha.
Resposta do Agente:
Agente de Marketing (em thread):
Aqui está a análise dos resultados da campanha de email marketing do último trimestre:
Métricas Principais:
- Taxa de abertura: 24.3% (↓ 2.1% em relação ao trimestre anterior)
- Taxa de clique: 3.7% (↓ 0.5% em relação ao trimestre anterior)
- Taxa de conversão: 1.2% (↓ 0.3% em relação ao trimestre anterior)
- Taxa de descadastramento: 0.8% (↑ 0.2% em relação ao trimestre anterior)
Recomendações para melhorar a taxa de conversão:
- Melhorar a segmentação de público com base no comportamento de compra
- Otimizar os assuntos dos emails para aumentar a taxa de abertura
- Redesenhar as CTAs para torná-las mais claras e atrativas
- Implementar testes A/B para diferentes layouts e conteúdos
- Ajustar o timing dos envios com base na análise de horários de maior engajamento
Gostaria de elaborar alguma dessas recomendações em mais detalhes?
Integração com Microsoft Teams
A integração com o Microsoft Teams permite que os usuários interajam com os agentes de IA diretamente nos canais e chats do Teams, aproveitando recursos como cards adaptativos, botões de ação e notificações.
Funcionalidades
- Menções: Os agentes podem ser mencionados em canais usando @agente_nome
- Chats Privados: Os usuários podem iniciar chats privados com os agentes
- Cards Adaptativos: Interfaces ricas e interativas para apresentação de informações
- Botões de Ação: Elementos interativos para facilitar a interação
- Abas Personalizadas: Interfaces dedicadas dentro do Teams para interações mais complexas
- Notificações: Os agentes podem enviar notificações para alertar sobre tarefas e atualizações
Configuração
Requisitos:
- Tenant do Microsoft 365
- Permissões de administrador para registrar aplicativos
- Registro de um aplicativo no Azure Active Directory
- Configuração de bot no Bot Framework
- Configuração de permissões e escopos apropriados
Exemplo de Código: Configuração do Teams
# Configuração do conector Teams teams_config = { "app_id": "your-app-id", "app_password": "your-app-password", "tenant_id": "your-tenant-id", "allowed_teams": ["Marketing", "Development", "Finance"], "default_response_timeout": 300, # 5 minutos "notification_preferences": { "task_completion": True, "approval_requests": True, "error_notifications": True }, "formatting": { "use_adaptive_cards": True, "use_hero_cards": True, "max_text_length": 2000 } } # Inicializar o conector teams_connector = TeamsConnector(teams_config) # Registrar o conector no sistema de integração chat_integration = ChatIntegration() chat_integration.add_connector("teams", teams_connector) # Configurar a interface de confirmação humana confirmation_interface = HumanConfirmationInterface() confirmation_interface.register_platform("teams", teams_connector)
Exemplo de Card Adaptativo
# Exemplo de card adaptativo para solicitação de aprovação approval_card = { "type": "AdaptiveCard", "version": "1.3", "body": [ { "type": "TextBlock", "size": "medium", "weight": "bolder", "text": "Solicitação de Aprovação" }, { "type": "TextBlock", "text": "O agente de marketing gostaria de executar a seguinte tarefa:", "wrap": True }, { "type": "TextBlock", "text": "Analisar os resultados da campanha de email marketing do último trimestre e sugerir melhorias para aumentar a taxa de conversão.", "wrap": True, "isSubtle": True, "italic": True }, { "type": "TextBlock", "text": "Esta tarefa envolverá acesso aos dados de marketing e análise de métricas de campanha.", "wrap": True } ], "actions": [ { "type": "Action.Submit", "title": "Aprovar", "data": { "action": "approve", "task_id": "task_123456" }, "style": "positive" }, { "type": "Action.Submit", "title": "Rejeitar", "data": { "action": "reject", "task_id": "task_123456" }, "style": "destructive" }, { "type": "Action.Submit", "title": "Solicitar mais informações", "data": { "action": "more_info", "task_id": "task_123456" } } ] } # Enviar o card para o Teams teams_connector.send_adaptive_card( recipient="user@company.com", card=approval_card, conversation_id="conversation_123456" )
Processo de Confirmação Humana
O processo de confirmação humana é um componente essencial do Capellaris, garantindo que os agentes não realizem ações não autorizadas. Este processo utiliza as plataformas de chat para enviar solicitações de aprovação e processar as respostas dos operadores humanos.
Fluxo de Confirmação
- Solicitação de Tarefa: Um usuário solicita que um agente execute uma tarefa através da plataforma de chat.
- Análise da Tarefa: O sistema analisa a tarefa para determinar seu nível de complexidade e impacto.
- Identificação de Aprovadores: Com base na análise, o sistema identifica os operadores humanos que podem aprovar a tarefa.
- Envio de Solicitação: Uma solicitação de aprovação é enviada para os aprovadores através da plataforma de chat.
- Resposta do Aprovador: O aprovador responde à solicitação, aprovando, rejeitando ou solicitando mais informações.
- Processamento da Resposta: O sistema processa a resposta e, se aprovada, permite que o agente execute a tarefa.
- Notificação ao Usuário: O usuário é notificado sobre a decisão e, se aprovada, sobre o progresso e conclusão da tarefa.
Níveis de Aprovação
Nível Baixo
Tarefas simples com baixo impacto e sem acesso a dados sensíveis.
Exemplos: Análises básicas, resumos de informações públicas, recomendações gerais.
Nível Médio
Tarefas com impacto moderado ou acesso a dados internos não sensíveis.
Exemplos: Análises detalhadas, criação de relatórios, recomendações específicas.
Nível Alto
Tarefas com alto impacto ou acesso a dados sensíveis ou confidenciais.
Exemplos: Análises financeiras, acesso a dados de clientes, decisões estratégicas.
Exemplo de Código: Solicitação de Aprovação
def request_approval(self, task_id, task_description, agent_id, platform, channel, requester): """ Solicita aprovação para execução de uma tarefa. Args: task_id (str): Identificador único da tarefa task_description (str): Descrição da tarefa a ser executada agent_id (str): Identificador do agente que executará a tarefa platform (str): Plataforma de chat (slack, teams) channel (str): Canal ou conversa onde a solicitação foi feita requester (str): Identificador do usuário que solicitou a tarefa Returns: str: ID da solicitação de aprovação """ # Determinar o nível de aprovação necessário approval_level = self._determine_approval_level(task_description, agent_id) # Identificar aprovadores com base no nível approvers = self._identify_approvers(approval_level, platform, channel) if not approvers: # Se não houver aprovadores disponíveis, notificar o solicitante self._notify_no_approvers(platform, channel, requester, task_id) return None # Criar solicitação de aprovação approval_request = { "id": f"approval_{uuid.uuid4().hex}", "task_id": task_id, "task_description": task_description, "agent_id": agent_id, "requester": requester, "approval_level": approval_level, "approvers": approvers, "platform": platform, "channel": channel, "status": "pending", "created_at": datetime.now().isoformat(), "expires_at": (datetime.now() + timedelta(minutes=30)).isoformat() } # Armazenar a solicitação self.approval_store.store_request(approval_request) # Enviar solicitação para os aprovadores for approver in approvers: self._send_approval_request( platform=platform, recipient=approver, approval_request=approval_request ) # Configurar timeout para a solicitação self._schedule_approval_timeout(approval_request["id"], 30 * 60) # 30 minutos return approval_request["id"]