2.5 KiB
2.5 KiB
Runbook: FAQ Lookup (Captain/Jasmine)
Data: 16/01/2026
Objetivo: documentar como o FAQ Lookup funciona apos o ajuste, para facilitar diagnostico e correcoes futuras.
1. Fluxo esperado (resumo)
- O agente chama a ferramenta
faq_lookupcom umquery(ou semquery). - A ferramenta resolve o melhor texto de busca:
- usa
last_user_messagedo contexto, se existir e nao for saudacao; - senao usa o
querypassado, se valido; - senao busca a ultima mensagem do usuario na conversa.
- usa
- A busca ocorre em
@assistant.responses.approved.search(query). - Retorna respostas formatadas ou
"No relevant FAQs found for: <query>".
2. Onde a logica vive
enterprise/lib/captain/tools/faq_lookup_tool.rb- Logs de debug:
log/faq_debug.log
3. Requisitos de contexto
Para funcionar de forma confiavel, pelo menos um destes deve existir:
state[:last_user_message]notool_context.args[:query]ouargs['query']valido.conversation.iddisponivel no contexto (para fallback).
4. Como o query e resolvido
- Preferencia 1:
state[:last_user_message](nao-saudacao). - Preferencia 2:
queryexplicito (nao-saudacao). - Fallback: ultima mensagem recebida na conversa:
- pega as 10 ultimas mensagens incoming, nao privadas;
- ignora saudacoes; retorna a mais recente valida.
Saudacoes ignoradas: oi, ola, bom dia, boa tarde, boa noite (normalizadas).
5. Logs importantes
Arquivo: log/faq_debug.log
Entradas esperadas:
FaqLookupTool CALLED with args: ...resolve_query: Using state[:last_user_message] = '...'resolve_query: Using explicit query = '...'resolve_query: Using fallback = '...'SUCCESS: Found X results for '...'RETURN: No results for '...'RETURN: No query provided
6. Checklist rapido se quebrar
- Verifique se o tool esta registrado como
faq_lookup. - Confirme que o
tool_contextpossuilast_user_messageouconversation.id. - Garanta que o
querynao e apenas saudacao (ele sera descartado). - Verifique
log/faq_debug.logpara confirmar o texto usado na busca. - Valide se existem
responses.approvedno assistente.
7. Problemas comuns e acoes
Sintoma: retorna sempre "No relevant FAQs found".
Causas provaveis:
queryvazio (somente saudacao).- nenhum
approvedresponse para o assistente. - contexto sem
conversation.id.
Acoes:
- conferir logs do
faq_debug.log; - testar com
queryexplicito e nao-saudacao; - validar se os embeddings/indices do FAQ estao ok.