Radar · 05/08/2026 · ocurrido el 04/08/2026 · coding

LLM 0.32: trazas de razonamiento visibles, herramientas server-side y logs estilo Git

LLM, el framework CLI y Python de Simon Willison para trabajar con modelos, sale en versión 0.32. Willison la describe como la versión más importante desde que el proyecto nació. Tres direcciones convergentes: trazas de razonamiento inspeccionables, herramientas server-side y logs content-addressable en SQLite.

Por qué te importa. Si construyes agentes, estas features resuelven problemas concretos. Los modelos de reasoning ahora envían la traza de su pensamiento a stderr, separada del output: puedes hacer pipe del resultado a otra herramienta sin llevar encima el razonamiento. Las herramientas server-side te permiten delegar capacidades al proveedor en lugar de implementarlas tú: OpenAI ofrece ejecución de código y búsqueda web, el plugin llm-anthropic añade búsqueda web, ejecución de código y sobre todo AnthropicMCP, que ejecuta llamadas MCP directamente en el proveedor dentro de una única solicitud. Los logs SQLite reescritos estilo Git guardan cada mensaje una sola vez, referenciándolo por hash en lugar de duplicar el historial completo en cada turno de conversación.

El modelo por defecto se convierte en GPT-5.6 Luna, la variante económica de la familia GPT-5.6 que a finales de julio ya había bajado a 0,20 dólares por millón de tokens. El comando llm openai endpoint ejecuta prompts puntuales contra cualquier API compatible con OpenAI, incluso un modelo local en LM Studio, sin instalar LLM.

Willison escribe que muchos cambios fueron guiados por Datasette Agent, su proyecto de agente. «Imagino que LLM es ahora un framework para agentes», concluye el post.

En detalle

Qué había antes. LLM nace como wrapper CLI para llamar modelos desde terminal y mantener su historial en SQLite. En los últimos meses el panorama cambió: los modelos hacen razonamiento interno antes de responder, devuelven llamadas a herramientas en lugar de solo texto, y las conversaciones multi-turno se volvieron el esquema normal para agentes. LLM 0.32 reescribe la arquitectura para seguir esta evolución.

Las trazas de razonamiento. Cuando llamas a un modelo de reasoning, este produce un texto de “pensamiento” antes de la respuesta. Antes, LLM no gestionaba este texto de forma distinta. Ahora lo envía a stderr y mantiene stdout limpio para la respuesta. Es una separación que importa: si usas LLM dentro de un pipeline shell, el razonamiento no contamina el resultado. El flag -R / --hide-reasoning lo suprime completamente.

Herramientas server-side. Hasta ahora las herramientas en LLM se ejecutaban lado cliente: tu código ejecutaba la función y devolvía el resultado al modelo. Ahora LLM soporta herramientas que ejecuta directamente el proveedor. El ejemplo más interesante es AnthropicMCP: pasas un endpoint MCP y Anthropic lo llama dentro de la misma solicitud API, sin que tu código actúe de intermediario.

Willison lo muestra con un comando que pide a Claude cuántas líneas hay en una tabla, haciendo que Anthropic ejecute las llamadas MCP contra un servidor Datasette. En una única solicitud y respuesta, el modelo interroga la base de datos y contesta.

Logs content-addressable. El problema: en una conversación multi-turno, cada solicitud lleva consigo todo el historial de mensajes anteriores. Si logueas cada solicitud, duplicas el mismo JSON en cada turno. La nueva arquitectura guarda cada mensaje una sola vez, con un hash que lo identifica, como Git hace con los blobs. Los comandos llm logs y llm logs --json reconstruyen la vista legible desde el formato content-addressable. Para quien ejecuta agentes con contextos largos, el espacio en disco deja de crecer cuadráticamente.

API Python. Dos cambios. El parámetro messages=[] permite pasar el historial completo en una sola llamada, en lugar de crear una conversación y enviar mensajes uno a uno. El método stream_events() devuelve eventos tipados (razonamiento, texto, otros) en lugar de una secuencia de strings, porque los modelos hoy devuelven contenido heterogéneo: texto, razonamiento, llamadas a herramientas, adjuntos.

Compatibilidad. Los plugins existentes siguen funcionando, pero los que proporcionan modelos extra deben actualizar a 0.32 para soportar el nuevo sistema de streaming events. llm-anthropic 0.26 ya está listo con los modelos Claude 5. llm-gemini, llm-openrouter y llm-mistral vienen en camino.

Limitaciones. El comando llm openai endpoint no logguea las solicitudes: útil para prompts puntuales, pero pierdes trazabilidad si lo usas en un flujo repetitivo. El plugin llm-chat-completions-server implementa la API semi-estándar de OpenAI, pero la palabra “semi” es significativa: la compatibilidad no está garantizada en cada cliente. Las herramientas server-side dependen de lo que el proveedor ofrezca: sin portabilidad entre OpenAI y Anthropic en las mismas capacidades.

Escribe para buscar en curso, playbooks, skills, papers…