fix: loguea la respuesta cruda del AI cuando no trae texto usable
Cuando el AI respondía sin error pero con un content que no era string (o vacío), ProcessWidgetMessage caía en silencio al mensaje genérico de "dame más detalle" sin dejar ningún rastro en el log — no había forma de saber qué pasó. Ahora loguea el JSON crudo (agentMessage.Raw) en ese caso, y también cuando se agotan las 3 rondas de tool-calling sin llegar a una respuesta final. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
f3f2f421d6
commit
7c4bb8713b
@@ -278,6 +278,13 @@ func ProcessWidgetMessage(agente *models.UmindAgente, sessionID, userText string
|
||||
if s, ok := aiMsg.Content.(string); ok {
|
||||
content = s
|
||||
}
|
||||
if strings.TrimSpace(content) == "" {
|
||||
// El AI respondió sin error pero sin texto usable — antes esto se
|
||||
// perdía en silencio y el visitante recibía el mensaje genérico de
|
||||
// "dame más detalle" sin ninguna pista de qué pasó. Con .Raw (ver
|
||||
// agentMessage.UnmarshalJSON) queda el JSON crudo para diagnosticar.
|
||||
log.Printf("[UMIND] Respuesta del AI sin texto usable (agente %d) round %d: %s", agente.ID, round, string(aiMsg.Raw))
|
||||
}
|
||||
finalResponse = content
|
||||
_ = models.SaveUmindMensaje(agente.ID, sessionID, "assistant", content)
|
||||
break
|
||||
@@ -298,6 +305,7 @@ func ProcessWidgetMessage(agente *models.UmindAgente, sessionID, userText string
|
||||
}
|
||||
|
||||
if finalResponse == "" {
|
||||
log.Printf("[UMIND] Agente %d: se agotaron las rondas de tool-calling sin una respuesta final", agente.ID)
|
||||
finalResponse = "Un momento, por favor — dame un poco más de detalle sobre lo que necesitas."
|
||||
}
|
||||
return finalResponse, nil
|
||||
|
||||
Reference in New Issue
Block a user