El blog de Deska
Cómo lograr que los logs sean lo suficientemente consistentes para consultar
Aprende a implementar estrategias de logging estructural para que tus logs sean lo suficientemente consistentes para consultar al depurar agentes de IA.
· 10 min de lectura
Los logs de texto estándar son un elemento básico del desarrollo de software, pero a medida que avanzamos hacia sistemas autónomos, el enfoque tradicional de imprimir cadenas en una consola ya no es suficiente. Al construir herramientas u orquestar múltiples flujos de trabajo, el principal desafío es lograr que los logs sean lo suficientemente consistentes para consultar. Sin una estructura predecible, identificar el punto específico de falla en una cadena de cinco llamadas de agentes diferentes se convierte en una tarea manual en lugar de un ejercicio basado en datos.
El problema de los logs legibles para humanos
La mayoría de los desarrolladores comienzan con sentencias print simples o niveles de logging básicos. Si bien estos son fáciles de escanear para un humano durante una sesión en vivo, son notoriamente difíciles de analizar a escala. La falta de consistencia crea varios cuellos de botella técnicos.
Primero, los logs basados en texto dependen de regex para el filtrado. Si un desarrollador registra un evento como Usuario inició sesión y otro como Login exitoso para usuario, la capacidad de consulta del sistema se rompe. Segundo, el contexto se pierde a menudo. Una marca de tiempo y un mensaje no capturan el estado de la aplicación, la versión específica del modelo al que se llama o el identificador único de la sesión.
Para solucionar esto, debemos pasar de registrar mensajes a registrar datos. Esta transición es esencial para cualquier entorno de desarrollo moderno, especialmente cuando se utilizan herramientas de orquestación complejas.
La anatomía de un log consultable
Una entrada de log es lo suficientemente consistente para consultar cuando cada campo tiene un tipo y cada evento sigue un esquema definido. Existen cuatro pilares esenciales para este enfoque.
- Cumplimiento del esquema. Cada log debe ser un objeto JSON válido. Esto permite que las bases de datos y las herramientas de búsqueda indexen los campos automáticamente.
- Metadatos contextuales. Cada entrada debe incluir un
trace_idosession_id. Esto permite reconstruir todo el trayecto de una sola solicitud a través de múltiples servicios. - Disciplina de niveles. Utiliza niveles como
DEBUG,INFO,WARNyERRORde manera estricta. Un error solo debe registrarse si se requiere una acción, mientras que info debe representar cambios de estado. - Nombres semánticos. Utiliza una estructura plana para las claves. En lugar de anidar objetos profundamente, usa claves como
user_idyrequest_statuspara simplificar el filtrado.
Implementación de logging estructurado
Implementar estos cambios requiere una librería que admita salida estructurada. En Python, librerías como structlog son excelentes opciones. En Node.js, pino o winston proporcionan la estructura necesaria para formatear logs como JSON sin sacrificar el rendimiento.
Cuando implementas logging estructurado, tu salida cambia de esto: 2023-10-27 10:00:00 - INFO - Agente inició tarea 45
A esto: {"timestamp": "2023-10-27T10:00:00Z", "level": "INFO", "event": "agent_task_started", "task_id": 45, "agent_name": "OpenCode"}
Este cambio te permite ejecutar consultas como "muéstrame todas las tareas donde el agente fue OpenCode y el tiempo de ejecución superó los 5 segundos".
Cómo manejan la visibilidad de logs diferentes herramientas
Las herramientas de visibilidad difieren en enfoque cuando se trata de presentar estos logs al desarrollador. Las herramientas de CLI tradicionales a menudo requieren dirigir la salida a utilidades secundarias como jq para que el JSON sea legible. Las plataformas de observabilidad en la nube proporcionan tableros potentes, pero suelen introducir latencia y costos elevados durante la fase de desarrollo.
Los entornos locales proporcionan un punto medio. Por ejemplo, Deska maneja el logging permitiendo ejecutar múltiples paneles de terminal uno al lado del otro. Si estás ejecutando un agente como Claude Code en un panel y tus logs de backend en otro, puedes ver la relación entre ambos en tiempo real. Debido a que el espacio de trabajo es un lienzo infinito, puedes alejar el zoom para ver los logs de varios contenedores o agentes simultáneamente.
El uso del panel de terminales en Deska asegura que te mantengas en un entorno local-first al mismo tiempo que mantienes la alta visibilidad requerida para depurar logs estructurados.
Comparación de estrategias de logging
La siguiente tabla compara las tres formas más comunes en que los desarrolladores manejan su salida de consola durante el desarrollo de herramientas de agentes.
| Estrategia | Capacidad de búsqueda | Esfuerzo de implementación | Caso de uso |
|---|---|---|---|
| Texto plano | Baja | Nulo | Scripts pequeños y prototipado |
| Pares Clave-Valor | Media | Bajo | Aplicaciones del lado del servidor |
| JSON estructurado | Alta | Medio | Sistemas de producción y agentes de IA |
Aunque JSON requiere más configuración, los beneficios a largo plazo para la capacidad de consulta son innegables. Transforma los logs de un flujo de texto en una base de datos consultable del comportamiento del sistema.
Integración de logs con agentes de IA
Al trabajar con agentes de programación como Codex CLI o Claude Code, los logs se vuelven aún más críticos. Dado que estos agentes suelen tomar varias decisiones por minuto, necesitas saber exactamente qué provocó un cambio de código específico.
Al usar Deska, puedes ejecutar estos agentes en paneles dedicados dentro del canvas. Si un agente comete un error, puedes consultar tus logs estructurados para encontrar la secuencia exacta de prompt y respuesta que condujo al fallo. Incluso puedes usar el asistente Ask Deska para que te ayude a navegar por tu espacio de trabajo o encontrar logs específicos preguntando por voz o chat.
La capacidad de mantener tus datos y almacenamiento de forma local significa que tus logs, que podrían contener fragmentos de código sensibles o claves de API, nunca salen de tu máquina a menos que elijas moverlos explícitamente.
Monitoreo de logs en movimiento
A veces el desarrollo no se detiene cuando te levantas de tu escritorio. Si tienes una tarea de agente de larga duración, es posible que desees verificar el progreso de forma remota. La aplicación mobile de Deska te permite emparejar tu teléfono directamente con tu computadora.
Esta configuración te permite monitorear tus logs consistentes desde otra habitación o mientras viajas. Como la conexión es un relevo seguro y no expone puertos, tus logs estructurados permanecen privados mientras vigilas el rendimiento de tu agente.
FAQ
¿Cómo lograr que los logs sean lo suficientemente consistentes para consultar en Python?
Utiliza una librería como structlog para forzar toda la salida a un formato JSON. Asegúrate de que todos los loggers en tu aplicación compartan una configuración común que incluya una marca de tiempo, nivel de log y un ID de solicitud único para cada transacción.
¿Cuál es el mejor formato para el logging estructurado?
JSON es actualmente el estándar de la industria para el logging estructurado. Es compatible con casi todos los agregadores de logs y es fácil de analizar con herramientas de línea de comandos estándar como jq o dentro de entornos de desarrollo personalizados.
¿Por qué mis logs son difíciles de buscar?
Es probable que tus logs sean difíciles de buscar porque carecen de un esquema fijo. Si diferentes partes de tu aplicación utilizan diferentes convenciones de nombres para el mismo punto de datos, o si el contexto importante como los IDs de usuario está enterrado dentro de cadenas largas, las herramientas de búsqueda no pueden indexarlos de manera efectiva.
Empieza a construir con Deska
Preparar tu entorno para el desarrollo con agentes requiere las herramientas adecuadas para visualizar tus datos. Deska proporciona un espacio de trabajo gratuito y local-first que apoya tus necesidades de registro a través de su lienzo infinito y paneles laterales. Puedes descargar la aplicación para Mac, Windows o Linux para comenzar a organizar tu flujo de trabajo.
Visita la página de descarga para comenzar con el espacio de trabajo y explorar cómo el logging estructurado puede mejorar tu ciclo de desarrollo.