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:
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.
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.
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 campoerrordocumenta la causa).
- El agente reporta la conclusión de la etapa con un estado:
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:
{
"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:
{
"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:
# 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 420Transmisión y Consulta de Logs: session logs
Permite visualizar la cronología de eventos o conectarse en modo streaming en vivo:
# 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'