2026-08-01T17:27:19.198Z

AI Observabilidad del agente bajo el reloj Skew: Reconstruir el orden del evento

Una auditoría determinista de once eventos muestra cómo la secuencia de origen, los bordes de dependencia, el tiempo de colección y la duración monótona evitan que las líneas de tiempo falsas de agente-salud.

Un agente AI puede producir un rastro perfectamente plausible cuyos sellos de tiempo cuentan una historia imposible. Un resultado de la herramienta aparece antes de la solicitud que la causó. Una finalización aterriza antes de que comience la carrera. Un registro de progreso retrasado llega después del resultado y hace que una carrera terminada parezca activa de nuevo. La respuesta práctica no es arreglar la línea de tiempo ordenando más duramente. No deducir el estado del agente a partir de las marcas de tiempo del reloj de pared de origen. Mantenga cuatro pruebas event at , observed at , source seq y depends on y use cada una para el trabajo que realmente puede apoyar. Reconstruir el orden causal de las dependencias y la secuencia por fuente. Utilice el reloj de la colección para la frescura de la evidencia. Medir las duradas con un reloj monótono dentro de un proceso. Si falta un predecesor requerido, el veredicto de salud es uncertain , no pegado, sano o completo. Esa regla es lo suficientemente pequeña como para probar. La fijación de abajo coloca dos tipos de trastorno del reloj y una cadena causal rota en once eventos. Una auditoría determinista recupera dos flujos de trabajo y se niega a inventar una orden para el tercero. Un tipo de reloj de pared puede revertir el trabajo El trabajo de agente distribuido cruza los relojes: el host de tiempo de ejecución, un servidor de herramientas, una cola, un verificador y el coleccionista pueden estampar la misma ejecución. La sincronización del reloj reduce su desacuerdo; no convierte a esos relojes en una autoridad causal. NTP en sí mismo modela el desplazamiento del reloj, el retraso de la red, la dispersión y la distancia de sincronización en lugar de prometer el mismo tiempo en todas partes (RFC 5905). El primer flujo de trabajo de la fijación hace que el problema sea visible. Su reloj de agente es rápido 45 segundos, mientras que su reloj de herramienta es lento 30 segundos. La cadena de dependencia real es: La clasificación de los mismos registros por event at coloca a g3 antes que a g1 . Un panel construido en ese orden puede calcular una duración negativa de la herramienta, mostrar un resultado terminal antes del inicio, o equivocarse con la evidencia que llega más tarde para una nueva transición de estado. Ninguna de estas conclusiones se deriva del trabajo. Se derivan de la comparación de relojes de pared que tienen diferentes compensaciones. El Modelo de Datos de Registros estable de OpenTelemetry conserva la distinción necesaria aquí. Timestamp es cuando el evento ocurrió de acuerdo con el reloj de origen; ObservedTimestamp es cuando el sistema de recogida lo observó (Modelo de datos de registros de OpenTelemetry). Mantener ambos es útil, pero ninguno de los campos es una clave de orden universal: El campo Uso seguro Insiguridad de la inferencia event at Display de tiempo fuente local; correlacionado con la evidencia del anfitrión Orden causal o latencia entre hosts observed at Frescura relativa al colector y retraso en la ingestión El tiempo en que el trabajo realmente ocurrió source seq Orden emitida por una encarnación fuente Orden entre fuentes no relacionadas depends on Frente causal transversal explícito Prueba de que se produjo un evento omitido transcurrido monótono Duración dentro de la vida útil de un proceso Estampilla de tiempo comparable entre las máquinas La encarnación de origen es importante. Un contador debe ser alcanzado por algo como (source id, boot id) , porque un proceso reiniciado puede comenzar de nuevo en la secuencia 1. Un número entero de aspecto global desnudo invita a una falsa alarma diferente: el colector lee un restablecimiento esperado como repetición o regresión. La distinción entre el tiempo de pared y el tiempo monótono también es operacional, no académica. El paquete time de Go explica que los relojes de pared están sujetos a cambios de sincronización mientras que los relojes monótonos son para medir el tiempo; los valores devueltos por time.Now pueden llevar ambas lecturas para que las operaciones de tiempo transcurrido permanezcan sólidas cuando el tiempo de pared cambia (¡Vamos a los relojes monótonos!). Otros tiempos de ejecución exponen diferentes API, pero la decisión sigue siendo la misma: calcular una duración local de la herramienta de un intervalo monótono local, luego exportar esa duración como evidencia. No restar los tiempos de pared de dos máquinas no relacionadas y llamar a la latencia del resultado. Reconstruir la causalidad antes de clasificar la salud El contrato del evento es deliberadamente compacto: dependsOn crea el borde transversal de la solicitud al resultado. Los valores consecutivos sourceSeq crean bordes locales dentro de una corriente (source, bootId) . La auditoría combina esos bordes, comprueba si faltan predecesores y huecos de secuencia, y luego realiza una clasificación topológica. Las inversiones del reloj de pared y del tiempo del colector se convierten en diagnósticos conectados a los bordes; no reescriben el gráfico. Ejecutar el artefacto de su directorio: Su resumen fijo es: El primer flujo de trabajo se reconstruye a pesar de la inversión del reloj de origen. El segundo tiene un fracaso diferente de ordenamiento ingenuo: d3 llega al colector antes que su predecesor d2 , por lo que la clasificación por observed at invierte su dependencia. El gráfico todavía recupera el orden previsto. El tercer flujo de trabajo contiene un resultado de herramienta que nombra b missing request , un evento ausente del conjunto de pruebas. También parece terminal antes de arrancar bajo una clasificación de reloj de pared, pero la auditoría no lo repara adivinando. Su estado es uncertain . Eso produce una orden de decisión útil para la salud de los agentes: 1. Validate identidad. Rechazar ID de evento duplicado y números de secuencia de alcance a una encarnación fuente. 2. Construir bordes locales. Los valores consecutivos de la secuencia de origen establecen el orden de emisión; una brecha es la pérdida de evidencia, no el permiso para cerrar la brecha. 3. Build cross source edges. Únete a las solicitudes, resultados de las herramientas, trabajo delegado, aprobaciones y verificaciones de resultados con IDs explícitos de predecesores. 4. Reject inventó la certeza. Un predecesor perdido, una brecha de secuencia o un ciclo hace que el veredicto afectado sea incierto. 5. Order el gráfico admisible. Topológicamente ordenar la parte completa; retener inversiones del reloj de la pared como evidencia de la calidad del reloj. 6. Clasificar estado sólo ahora. Aplicar las reglas de trabajo, espera, atasco y resultado al orden causal en lugar del orden de llegada. Esto mantiene la actividad separada del progreso útil. Un latido cardíaco tardío puede ser fresco en el colector pero causalmente más antiguo que un resultado ya verificado. No debería reabrir la carrera. Un resultado de la herramienta puede ser observado recientemente pero depende de una solicitud que el coleccionista nunca vio. No debería demostrar que se haya completado. Un evento de aprobación humana puede dejar legítimamente una carrera esperando incluso si no sigue ningún nuevo evento de ejecución; la dependencia nombra al bloqueador. Un detalle de implementación evita muchas regresiones accidentales: hacer monótono el reducidor de salud cuando el contrato de flujo de trabajo lo permite. Una vez que el resultado invoice 42 se verifique de forma independiente para ejecutar r7 , un evento tool requested más antiguo no puede rebajar ese resultado a working. Puede actualizar el libro mayor de pruebas, revelar un retraso en la entrega o plantear un problema de calidad de telemetría, pero no puede borrar un hecho verificado más fuerte. Trate el tiempo como evidencia con un límite La reconstrucción causal no es un reemplazo de la sincronización del reloj. Todavía necesitas hosts sincronizados para cronogramas de incidentes legibles, validación de certificados, comportamiento del programador y correlación operativa. La regla simplemente impide que el modelo de salud reclame más de lo que esos relojes demuestran. También tiene cuatro límites agudos. En primer lugar, observed at sólo es autorizado en relación con el colector que lo selló. Las colas, los retos, la contrapresión y el fallo del colector pueden aumentar el retraso observado. Usalo para preguntar ¿cuánto tiempo ha pasado desde que este colector vio pruebas admisibles? observed at event at como la latencia de la red. En segundo lugar, un gráfico de dependencias es tan completo como su instrumentación. Un predecesor faltante puede significar pérdida de paquetes, muestreo, un error del exportador o un productor que nunca emitió el evento. El resultado seguro es la incertidumbre más una brecha de evidencia nombrada. No es prueba de que el agente haya fallado. En tercer lugar, el orden causal no verifica el resultado previsto. tool succeeded dice que la herramienta regresó con éxito bajo su propio contrato. No demuestra que el archivo exista en el destino, que el correo electrónico haya llegado al destinatario previsto o que el despliegue sirva la versión esperada. Mantenga la verificación de resultados como un evento separado con sus propias pruebas. Cuarto, el orden topológico puede ser parcial. Las ramas independientes pueden no tener un orden significativo entre ellas. No se fabrique uno para una línea de tiempo más bonita. Presentar ramas simultáneas juntas, y requerir un quórum explícito de unión o de finalización antes de declarar el padre completo. La afirmación falsificable para este artículo es estrecha: para el dispositivo de once eventos suministrado, la auditoría debe reconstruir dos flujos de trabajo, marcar la cadena rota incierta, conservar una inversión de tiempo de origen y una inversión de tiempo de colector como diagnóstico, y exponer ambos casos naivos de terminales antes de arranque. Si alguno de esos recuentos cambia, el artefacto falla. Lo que esto significa para Sidewisp Sidewisp tiene como objetivo agregar una capa de salud alrededor de los tiempos de funcionamiento de los agentes existentes: distinguir los estados de trabajo, espera, atascado, incierto y verificado por resultados utilizando pruebas con frescura y confianza. La evidencia causal consciente del reloj encaja en esa dirección porque un rastro verde no es útil si su orden se dedujo de relojes incompatibles. Sidewisp se encuentra actualmente en versión preliminar privada. El sitio público y el sistema de artículos están en vivo, pero la colección de agentes de producción salud, adaptadores de tiempo de ejecución, administración de cron, análisis de costos de tokens y recuperación generalmente no se envían. Este artículo describe un patrón de funcionamiento y un artefacto de ensayo, no una afirmación de que Sidewisp actualmente reconstruye los plazos de producción o corrige el sesgo del reloj. El producto previsto no es un sistema de ejecución de reemplazo, una puerta de entrada obligatoria, un producto de rastreo en bruto, un avión de control de la empresa o un dispositivo de fijación autónomo. Debe sentarse junto a agentes existentes, mostrar incertidumbre cuando la cadena está incompleta y mantener la autoridad humana sobre cualquier acción de recuperación. Si el reloj y el desorden de entrega están ocultando el estado real de sus agentes, unirse a la vista previa privada es el próximo paso restringido; no es una promesa que el monitoreo de producción esté disponible hoy. Por lo tanto, el defecto operativo es simple: conservar el tiempo de origen para el contexto, el tiempo de recogida para la frescura, el tiempo transcurrido monótono para las duradas locales y los bordes explícitos para la causalidad. Cuando esos bordes no estén completos, dígale. Un uncertain honesto es más saludable que una historia falsa muy bien ordenada.