2.0 KiB
2.0 KiB
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
- Os logs mostraram que o agente recebia a mensagem e gerava uma resposta de texto (
ResponseBuilderJobfuncionava). - A ferramenta
react_to_messageexiste emtools.ymle no código (Captain::Tools::ReactToMessageTool). - Causa Raiz: A classe
Captain::Assistant(métodoagent_tools) carregava apenas ferramentas hardcoded (faq_lookup,handoff) e ferramentas personalizadas (HttpTool). Ela ignorava todas as outras ferramentas nativas ativadas viaToolConfig(comoreact_to_message).
Solução Aplicada
Modificado enterprise/app/models/captain/assistant.rb para carregar dinamicamente as ferramentas:
# 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
- Faça o deploy/restart da aplicação.
- Garanta que a ferramenta "Reagir a Mensagens" esteja habilitada na UI do assistente.
- Envie uma mensagem de agradecimento ("Obrigado", "Valeu") como cliente.
- O agente agora deve ter acesso à ferramenta e poderá optar por usá-la.
Notas Adicionais
- O erro
relation "installation_configs" does not existobservado 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.