chatwoot-develop/.context/planos/walkthrough.md

57 lines
2.5 KiB
Markdown

# Walkthrough - Captain Assistant Enhancements
Nesta etapa, implementamos a infraestrutura para suporte multi-LLM, uma nova interface de Ferramentas (Skills) para os assistentes e a lógica de transbordo humano.
## 🚀 O que mudou?
### 1. Configuração Multi-LLM
Agora é possível configurar o Provedor (OpenAI ou Gemini) e o Modelo específico diretamente nas configurações básicas do Assistente no Chatwoot.
- **Arquivos:** `AssistantBasicSettingsForm.vue`, `AssistantsController.rb`.
- **Benefício:** Flexibilidade para usar modelos mais baratos (Flash) para triagem e modelos potentes para vendas.
### 2. Interface de Ferramentas (Skills)
Criamos uma nova aba "Skills (Tools)" nas configurações do assistente que permite ativar e configurar ferramentas externas.
- **Backend:** Modelo `Captain::ToolConfig`, `Captain::ToolsController`, Rotas aninhadas.
- **Frontend:** `Tools/Index.vue`, Store e API atualizados.
- **Ferramentas Disponíveis:** `status_suites`, `maria_fotos`, `escalar_humano`.
### 3. Transbordo Humano (Handoff)
A ferramenta `escalar_humano` foi integrada ao pipeline de resposta do Captain.
- **Lógica:** Quando o `JasmineBrain` detecta a intenção de falar com um humano, ele dispara a ferramenta.
- **Efeitos Colaterais:**
- Adição da label `desligar_ia`.
- Desativação da IA no atributo customizado da conversa.
- Retorno de `conversation_handoff` para o Chatwoot, fazendo com que o bot seja desatribuído e a equipe notificada.
## 🛠 Como Verificar
### Configuração LLM
1. Acesse as configurações de um Assistente.
2. Altere o provedor para **Gemini** e salve.
3. Verifique se as configurações persistem ao recarregar a página.
### Skills (Tools)
1. Vá para a aba **Skills (Tools)** no menu lateral do Assistente.
2. Ative a ferramenta **Check suite availability**.
3. Insira uma URL de Webhook ou IDs do Plug&Play e saia do campo para salvar (Auto-save no blur).
4. Verifique no banco de dados: `Captain::ToolConfig.last` deve refletir as mudanças.
### Handoff
1. Envie uma mensagem que exija transbordo (ex: "Quero falar com um atendente").
2. O Log do Rails deve mostrar a detecção de intenção e a execução da ferramenta.
3. A conversa deve ser marcada com a label `desligar_ia` e o bot deve parar de responder.
## 📝 Notas Técnicas
- O `ToolRunner` agora busca configurações priorizando o Assistente (`captain_assistant_id`), mantendo compatibilidade com Inboxeslegadas.
- O `AssistantChatService` atua como orquestrador entre o Cerebelo (`JasmineBrain`) e o Corpo (`ToolRunner`).