Skip to content

Logging Estructurado

Triggerfish usa logging estructurado con niveles de severidad, rotacion de archivos y salida configurable. Cada componente -- el gateway, orquestador, cliente MCP, proveedores LLM, motor de politicas -- registra a traves de un logger unificado. Esto significa que obtiene un unico flujo de logs consistente sin importar donde se origina un evento.

Niveles de Log

La configuracion logging.level controla cuanto detalle se captura:

Valor de ConfigSeveridadQue se Registra
quietSolo ERRORFallos criticos y crashes
normal (predeterminado)INFO y superiorInicio, conexiones, eventos significativos
verboseDEBUG y superiorLlamadas a herramientas, decisiones de politica, solicitudes a proveedores
debugTRACE (todo)Payloads completos de solicitud/respuesta, streaming a nivel de token

Cada nivel incluye todo lo de arriba. Configurar verbose le da DEBUG, INFO y ERROR. Configurar quiet silencia todo excepto errores.

Configuracion

Establezca el nivel de log en triggerfish.yaml:

yaml
logging:
  level: normal

Esa es la unica configuracion requerida. Los valores predeterminados son adecuados para la mayoria de los usuarios -- normal captura suficiente para entender que esta haciendo el agente sin inundar el log con ruido.

Salida de Log

Los logs se escriben a dos destinos simultaneamente:

  • stderr -- para captura por journalctl cuando se ejecuta como servicio systemd, o salida directa al terminal durante desarrollo
  • Archivo -- ~/.triggerfish/logs/triggerfish.log

Cada linea de log sigue un formato estructurado:

[2026-02-17T14:30:45.123Z] [INFO] [gateway] WebSocket client connected
[2026-02-17T14:30:45.456Z] [DEBUG] [orch] Tool call: web_search {query: "deno sqlite"}
[2026-02-17T14:30:46.789Z] [ERROR] [provider] Anthropic API returned 529: overloaded

Etiquetas de Componente

La etiqueta entre corchetes identifica que subsistema emitio la entrada de log:

EtiquetaComponente
[gateway]Plano de control WebSocket
[orch]Orquestador del agente y despacho de herramientas
[mcp]Cliente MCP y proxy de gateway
[provider]Llamadas a proveedores LLM
[policy]Motor de politicas y evaluacion de hooks
[session]Ciclo de vida de sesion y cambios de taint
[channel]Adaptadores de canal (Telegram, Slack, etc.)
[scheduler]Cron jobs, triggers, webhooks
[memory]Operaciones del almacen de memoria
[browser]Automatizacion del navegador (CDP)

Rotacion de Archivos

Los archivos de log se rotan automaticamente para prevenir uso de disco ilimitado:

  • Umbral de rotacion: 1 MB por archivo
  • Archivos retenidos: 10 archivos rotados (total ~10 MB maximo)
  • Verificacion de rotacion: en cada escritura
  • Nomenclatura: triggerfish.1.log, triggerfish.2.log, ..., triggerfish.10.log

Cuando triggerfish.log alcanza 1 MB, se renombra a triggerfish.1.log, el anterior triggerfish.1.log se convierte en triggerfish.2.log, y asi sucesivamente. El archivo mas antiguo (triggerfish.10.log) se elimina.

Escrituras Fire-and-Forget

Las escrituras a archivo son no bloqueantes. El logger nunca retrasa el procesamiento de solicitudes para esperar que una escritura en disco se complete. Si una escritura falla -- disco lleno, error de permisos, archivo bloqueado -- el error se absorbe silenciosamente.

Esto es intencional. El logging nunca debe hacer fallar la aplicacion ni ralentizar al agente. La salida stderr sirve como respaldo si las escrituras a archivo fallan.

Herramienta de Lectura de Logs

La herramienta log_read le da al agente acceso directo al historial de logs estructurado. El agente puede leer entradas de log recientes, filtrar por etiqueta de componente o severidad, y diagnosticar problemas sin salir de la conversacion.

ParametroTipoRequeridoDescripcion
linesnumbernoNumero de lineas de log recientes a retornar (predeterminado: 100)
levelstringnoFiltro de severidad minima (error, warn, info, debug)
componentstringnoFiltrar por etiqueta de componente (ej., gateway, orch, provider)

Pregunte a su agente "que errores hubo hoy" o "muestra los logs

recientes del gateway" -- la herramienta log_read maneja el filtrado y la recuperacion. :::

Ver Logs

Comandos CLI

bash
# Ver logs recientes
triggerfish logs

# Transmitir en tiempo real
triggerfish logs --tail

# Acceso directo al archivo
cat ~/.triggerfish/logs/triggerfish.log

Con journalctl

Cuando Triggerfish se ejecuta como servicio systemd, los logs tambien son capturados por el journal:

bash
journalctl --user -u triggerfish -f

Debug vs Logging Estructurado

La variable de entorno TRIGGERFISH_DEBUG=1 aun se soporta por

compatibilidad hacia atras pero se prefiere la configuracion logging.level: debug. Ambas producen salida equivalente -- logging completo a nivel TRACE de todos los payloads de solicitud/respuesta y estado interno. :::

Relacionado