Skip to content

Observabilidad y Logger de Eventos ​

Para habilitar la auditoría rigurosa y el monitoreo en tiempo real del razonamiento y las acciones de los agentes, gz-ia implementa un subsistema de observabilidad estructurada en [internal/features/logger](file:///home/gountzjs/eworkspace/projects/gountz-harness/internal/features/logger).


El Protocolo de Etapas: READ $\rightarrow$ PENDING $\rightarrow$ FINISH ​

El ciclo de ejecución de cualquier tarea o subtarea de un agente sigue un protocolo determinista de 3 etapas secuenciales:

  1. READ (Exploración & Contexto):
    • El agente o subagente examina el código fuente, lee documentación o analiza el problema.
    • Estado caracterizado por ser de solo lectura.
  2. PENDING (Ejecución & Modificación):
    • El agente inicia la edición de archivos, creación de tests o ejecución de herramientas de compilación.
    • Etapa activa de computación o mutación del workspace.
  3. FINISH (Finalización & Conclusión):
    • El agente reporta la conclusión de la etapa con un estado:
      • OK: La tarea concluyó satisfactoriamente.
      • FAILED: Ocurrió un error (el campo error documenta la causa).

Formato del Evento (.events.jsonl) ​

Cada evento se almacena como una línea JSON independiente en .harness/sessions/<id>.events.jsonl, permitiendo streaming y procesamiento concurrente sin bloqueo:

json
{
  "timestamp": "2026-09-24T18:15:22.104Z",
  "session_id": "3f9a12c8",
  "action": "Analizar interfaz de base de datos",
  "stage": "READ",
  "status": "OK",
  "agent": "agy",
  "role": "code-analyst",
  "duration_ms": 340,
  "error": ""
}

Soporte para Subagentes Recursivos ​

Cuando un agente invoca a un subagente secundario para delegar una subtarea especializada, el evento incluye el campo parent_session_id o metadatos de linaje:

json
{
  "timestamp": "2026-09-24T18:16:05.890Z",
  "session_id": "sub_9c2d14e7",
  "parent_session_id": "3f9a12c8",
  "action": "Ejecutar pruebas unitarias de integración",
  "stage": "PENDING",
  "status": "OK",
  "agent": "claude",
  "role": "test-runner",
  "duration_ms": 1250,
  "error": ""
}

Esto permite reconstruir el árbol completo de ejecución distribuida entre múltiples agentes cooperantes.


Inyección de Eventos: session log ​

Tanto los scripts de automatización como los propios agentes (a través de llamadas al CLI o herramientas MCP) pueden registrar eventos en la sesión:

bash
# Registrar inicio de fase de lectura
gz-ia session log 3f9a12c8 \
  --action "Indexar dependencias" \
  --stage READ \
  --status OK \
  --agent agy

# Registrar finalización exitosa
gz-ia session log 3f9a12c8 \
  --action "Indexar dependencias" \
  --stage FINISH \
  --status OK \
  --agent agy \
  --duration 420

Transmisión y Consulta de Logs: session logs ​

Permite visualizar la cronología de eventos o conectarse en modo streaming en vivo:

bash
# Consultar los eventos históricos de la sesión
gz-ia session logs 3f9a12c8

# Seguir en vivo la llegada de nuevos eventos (equivalente a tail -f)
gz-ia session logs 3f9a12c8 --follow

# Emitir los eventos en formato JSON crudo para canalizar con jq
gz-ia session logs 3f9a12c8 --json | jq '.action'

Desarrollado con rigor de ingeniería | Gountz IA (gz-ia)