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

2.5 KiB

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).