Visor de Hilos de Chat
Pega un array de messages de OpenAI o Anthropic (JSON) y míralo como un hilo de chat legible. Coloreado por rol. Parámetros de tool-calls expandibles. Solo navegador, sin subida.
¿Para qué sirve?
Las apps de LLM registran sus conversaciones como arrays JSON de mensajes — eso es lo que se envía a la API y lo que ves en logs de auditoría, trazas de evaluación, datasets de fine-tuning y debug del SDK. Leer esos arrays a ojo es horrible: muros de strings escapados, argumentos de tool-call envueltos en JSON-dentro-de-JSON escapado, prompts de sistema mezclados con el resto. Esta herramienta te da un render rápido en burbujas para que escanees la conversación real, veas qué mensajes incluyeron tool-calls y encuentres el prompt que descarriló.
Qué formatos entiende
- OpenAI Chat Completions.
[{role, content}, ...]contool_callsopcionales en mensajes de asistente yrole: "tool"para resultados de tool. La forma más común. - Anthropic Messages API.
[{role, content: [...]}]dondecontentes un array de bloques (text,tool_use,tool_result,image). El system prompt suele ir top-level — pégalo como mensaje de sistema si quieres verlo. - Dumps de mensajes de LangChain.
[{type: "human" | "ai" | "system", content: ...}]— forma antigua de LangChain, aún común en trazas guardadas. - Objetos wrapper. Si pegas
{"messages": [...]}o{"input": [...]}, se desenvuelve automáticamente.
Qué se renderiza
- Burbujas coloreadas por rol. System = gris centrado, user = índigo a la derecha, assistant = neutro a la izquierda, tool result = verde.
- Tool-calls. Expandidos por defecto con argumentos formateados. Se soportan tanto
tool_callsde OpenAI como bloquestool_usede Anthropic. Los mensajes de resultado aparecen en su propia burbuja. - Code fences e inline code. Bloques con triple backtick van a
<pre>en monoespaciado, backticks simples a inline. Sin resaltado de sintaxis (no llevamos tokenizer), la indentación se preserva. - Referencias de imagen. Los bloques de imagen de Anthropic se muestran como una píldora con la URL o media-type — no cargamos la imagen (la herramienta queda offline).
- Línea de stats. Formato detectado, número de mensajes, número de tool-calls y estimación rápida de tokens con la misma heurística que nuestro Token Counter.
Errores comunes
- Comas finales. El JSON estándar no las permite. Si copiaste de un debugger o REPL, puede que tengas que limpiar
{...},]→{...}]antes de pegar. - Comillas simples. El
reprde Python usa simples. Pásalo porjson.dumps, o usa un convertidor Python-literal a JSON. - System prompt de Anthropic. La instrucción de sistema en la API de Anthropic es un campo top-level, no un mensaje. Si tu dump solo tiene el array de messages, el system prompt no estará — pégalo como
{"role": "system", "content": "..."}al principio. - Argumentos de tool-call como JSON escapado. OpenAI devuelve
argumentscomo string JSON. Lo desescapamos y formateamos. Si el JSON dentro del string está roto, se muestra el string crudo. - Privacidad. Nada sale de la página. Todo el render corre en JS sobre el JSON que pegas. No pegues nada que no pegarías en una app de notas.