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"]