chatwoot-develop/progresso/2026-01-11_fix_missing_agent_tools.md
2026-01-12 19:04:15 -03:00

47 lines
2.0 KiB
Markdown

# Fix: Missing Built-in Agent Tools (ReactToMessage)
## Sintoma
O usuário relatou que o Assistente Captain AI respondia com texto (ex: "Valeu!") em vez de usar a ferramenta `react_to_message` (reação com emoji), mesmo com a ferramenta ativada na interface.
## Análise
1. Os logs mostraram que o agente recebia a mensagem e gerava uma resposta de texto (`ResponseBuilderJob` funcionava).
2. A ferramenta `react_to_message` existe em `tools.yml` e no código (`Captain::Tools::ReactToMessageTool`).
3. **Causa Raiz:** A classe `Captain::Assistant` (método `agent_tools`) carregava apenas ferramentas _hardcoded_ (`faq_lookup`, `handoff`) e ferramentas personalizadas (`HttpTool`). Ela **ignorava** todas as outras ferramentas nativas ativadas via `ToolConfig` (como `react_to_message`).
## Solução Aplicada
Modificado `enterprise/app/models/captain/assistant.rb` para carregar dinamicamente as ferramentas:
```ruby
# Before
tools = [
self.class.resolve_tool_class('faq_lookup').new(self),
self.class.resolve_tool_class('handoff').new(self)
]
# ...load scenarios...
# ...load custom tools...
# After
# ...
# Add enabled built-in tools
tool_configs.where(is_enabled: true).each do |tool_config|
tool_class = self.class.resolve_tool_class(tool_config.tool_key)
next unless tool_class
tools << tool_class.new(self) unless tools.any? { |t| t.is_a?(tool_class) }
end
# ...
```
## Como Validar
1. Faça o deploy/restart da aplicação.
2. Garanta que a ferramenta "Reagir a Mensagens" esteja habilitada na UI do assistente.
3. Envie uma mensagem de agradecimento ("Obrigado", "Valeu") como cliente.
4. O agente agora deve ter acesso à ferramenta e poderá optar por usá-la.
## Notas Adicionais
- O erro `relation "installation_configs" does not exist` observado nos logs parece ser um problema de ordem de inicialização ou migração pendente no ambiente do usuário, mas não bloqueia a execução principal se o servidor inicia.