Cuando una conversación con LLM falla, casi nunca falla en el turno donde lo notás. El output malo del turno 6 suele venir arrastrado de algo que pasó turnos antes: una asunción mal hecha, una pregunta vaga, una respuesta floja que nadie cuestionó.
Para poder diagnosticar, necesitás ver la conversación entera. Y para ver la conversación entera, tenés que haberla loggeado bien desde el principio.
{
"conversation_id": "...",
"system_prompt": "<full text>",
"model": "claude-opus-4-7",
"params": { "temperature": 0.7, "max_tokens": 2048 },
"turns": [
{ "role": "user", "ts": "...", "content": "..." },
{ "role": "assistant", "ts": "...", "content": "..." }
]
}| Anti-patrón | Por qué falla |
|---|---|
| Solo loggear el último turno | No reproducís el bug. |
| Loggear sin conversation_id | Imposible reconstruir la sesión. |
| Loggear sin system_prompt | Cuando cambia, perdés la historia. |
| Loggear con prints en consola | Se pierden, no se buscan, no se filtran. |
Tip avanzado: si tu app deja al usuario corregir/editar mensajes anteriores (como ChatGPT), tu log tiene que capturar cada versión del mensaje, no solo la última. Si no, vas a tener conversaciones donde "el usuario dijo X" y el modelo respondió a "Y" sin que entiendas por qué.
A la derecha, dos formas de loggear conversaciones. ¿Cuál te permite debuggear el bug del turno 6?