Reproducibilidad

Esta medición archivada utiliza la rúbrica 8. El instrumento actual aplica otras reglas de medición. Estos archivos no validan las puntuaciones actuales y no deben compararse con una nueva auditoría en línea.

docs.stripe.com · auditado el 2026-09-30 · AgentFit v3.40.2-19-g3ff4d31 · rúbrica v8 · Claude Opus 5

Una puntuación que no se puede repetir no es una medición. Así que aquí está la prueba que le debemos: auditamos el mismo sitio seis veces en un día —tres pidiéndole a un modelo de lenguaje que aplicara una rúbrica de documentación y tres ejecutando AgentFit— y publicamos lo que registramos, incluido lo que nos resulta incómodo.

Preguntar a un modelo · 3 ejecuciones

78 · 80 · 65 15 puntos de dispersión

Tres agentes independientes, el mismo prompt público, el mismo modelo, el mismo día. Ninguno sabía de los otros ni de por qué se le preguntaba.

Ejecutar AgentFit · 3 ejecuciones

57 · 57 · 57 0 puntos de dispersión a2bc30e17d601ef21c9ec137a30302ecbff5ee4078e690be6bae670ddf583108 un sha256, tres archivos

Tres auditorías en vivo seguidas, tres archivos JSON, una sola suma de comprobación. No es caché: cada ejecución volvió a salir al sitio.

Lee las columnas de arriba abajo, no de lado a lado. La rúbrica de la izquierda tiene 26 criterios; AgentFit tiene 28, y las dos los ponderan de forma distinta: una especificación legible por máquina vale 25 puntos a la izquierda y 17 aquí. 57 no es «la respuesta correcta» y 78 no es «incorrecto». La afirmación de esta página es más estrecha, y es la única que los datos sostienen: uno de estos dos procedimientos devuelve el mismo número cada vez, y el otro no.


Dónde discreparon las ejecuciones

Las tres ejecuciones del modelo hicieron el trabajo con seriedad: consultaron URL en vivo, recorrieron los criterios uno por uno e informaron lo que encontraron. Según nuestro propio recuento en las transcripciones —que no publicamos—, cada ejecución hizo entre 36 y 47 llamadas a herramientas y ninguna inventó un hecho. Tome ambas afirmaciones como nuestra lectura de las ejecuciones, no como algo que los archivos de más abajo le permitan comprobar. Aun así terminaron separadas por 15 puntos, y once de ellos están en una sola categoría.

Totales por categoría de las tres ejecuciones del modelo. Mismo sitio, mismo prompt, mismo día.
Categoría Máx. A B C Dispersión
A — Descubrimiento181313121
B — Artefactos de página221213121
C — Especificación legible por máquina2520211011
D — Contenido201819181
E — Renderizado e higiene151514132
Total10078806515

Aquí se mezclan dos clases de desacuerdo. Los pequeños —A5, B3, B5, B6, D1, D3, D6, un punto por aquí y por allá, en ambas direcciones— son lo que cabría esperar de tres lectores atentos de la misma página: uno encontró las pestañas de SDK en el DOM y los otros dos concluyeron que solo existen dentro de una carga JavaScript. Si eso es ruido de medición ordinario, tres ejecuciones no pueden decirlo; ahí estamos suponiendo. En los resúmenes publicados solo se ve el desacuerdo de D1; el resto proviene de nuestra propia comparación de las tres transcripciones. El desacuerdo grande es de otra naturaleza, y es la razón de ser de esta página.

Los demás criterios de la categoría C puntuaron exactamente 10 puntos en cada una de las tres ejecuciones. Toda la brecha de once puntos son dos criterios.

C1a: los mismos hechos, tres puntuaciones distintas

El criterio C1a —de la rúbrica de 26 criterios del modelo; AgentFit fusiona descubrimiento y validez en un único C1— pregunta si la API tiene una especificación legible por máquina a la que un agente pueda llegar. Las tres ejecuciones establecieron exactamente los mismos dos hechos sobre docs.stripe.com:

Nadie se equivocó. Nadie alucinó. Puntuaron 0 de 8, 3 de 8 y 4 de 8.

Los tres criterios en los que más divergieron las ejecuciones, según los puntuó cada una.
CriterioABC
C1a · spec discoverable3/84/80/8
C1b · spec valid7/77/70/7
E5 · terms of use3/32/31/3

El desacuerdo no es sobre el sitio. Es sobre una pregunta que la rúbrica nunca hizo: ¿cuenta como publicada una especificación que vive en el dominio de otro y exige un salto más? Es una bifurcación real sin respuesta obvia, y cada ejecución llegó a ella sola, en mitad de una tarea larga, sin una regla que consultar. Tres ejecuciones, tres políticas.

A partir de ahí se propaga en cascada. C1b puntúa la calidad de la especificación encontrada. La ejecución que decidió que GitHub no cuenta no tenía nada que validar y puntuó 0 de 7. Las dos que la descargaron puntuaron 7 de 7 — y luego informaron de un número distinto de rutas, 414 y 136, porque el repositorio de Stripe contiene más de un archivo de especificación y eligieron archivos distintos (spec3.json y spec3.yaml). Dos ejecuciones coincidieron en la puntuación por razones opuestas.

E5 — «¿se indican las condiciones de uso?» — salió 3/3, 2/3 y 1/3. Una ejecución encontró en el pie de página un enlace a stripe.com/legal/ssa. Otra rechazó ese enlace y en su lugar dio por válida la directiva Content-Signal del robots.txt. La tercera buscó /terms, /legal y /privacy en el host de la documentación, obtuvo tres 404 y puntuó lo que vio. Tres lecturas defendibles de una misma línea de la rúbrica.

La autocomprobación también varió

El prompt incluye un ancla de calibración: una tabla de sitios medidos anteriormente en la que Stripe aparece con 56, medido el 13 de mayo de 2026. Está ahí precisamente para detectar la deriva. Esa misma tabla explica por qué el sitio aquí es docs.stripe.com: Stripe ya figuraba en el ancla de calibración de otra persona antes de que nosotros ejecutáramos nada, así que el sitio se eligió por nosotros y antes del experimento.

Las tres ejecuciones la usaron. Las tres advirtieron su propia desviación: +22, +24, +9. Las tres reexaminaron entonces sus criterios, razonaron sobre lo que podría haber cambiado desde mayo y concluyeron que el ancla estaba obsoleta y que su propio número era mejor. Tres veces, de forma independiente, en la misma dirección, con tres números distintos.

Esta es la parte que nos parece más instructiva. No es descuido: es el aspecto que tiene el trabajo concienzudo cuando al procedimiento todavía le queda un parámetro libre. Una autocomprobación cuyo veredicto cambia entre ejecuciones no es una autocomprobación.

Da la casualidad de que el ancla queda a un punto del 57 de AgentFit. No leas nada en ello: es una medición manual, con otra rúbrica, de otro mes, y no es prueba de que 57 sea la puntuación verdadera.


Por qué el código responde lo mismo

Nada ingenioso. Cada criterio es una petición más una regla, y ambas están escritas antes de que empiece la auditoría.

Cuatro filas del informe de AgentFit: idénticas byte a byte en las tres ejecuciones.
Criterio Resultado Petición Registrado
A1 · índice llms.txt presente 3/3 GET /llms.txt → 200 Stripe Documentation
C1 · descubrimiento de la especificación ausente 0/8 lista fija de URL, sin respuesta —
D2 · realismo de los ejemplos presente 5/5 página de endpoint muestreada → 200 placeholder_ratio = 0.00, 0/3 blocks
E6 · accesibilidad parcial 1/4 página de inicio → 200 a11y: 3 violations (e.g. button-name)

D2 es el del aprendizaje automático. Dentro de la auditoría corren dos clasificadores pequeños: uno puntúa cuán realista es un ejemplo de código, el otro juzga la completitud de una página de endpoint. Son grafos ONNX con pesos congelados compilados dentro del binario. La misma entrada da el mismo tensor y el mismo flotante, siempre. El determinismo no exige evitar los modelos; exige evitar los modelos cuya salida no puedes fijar.

C1 es justamente la bifurcación que las tres ejecuciones tomaron de forma distinta, y AgentFit puntúa aquí 0 sobre 8. Nuestra regla no es «GitHub no cuenta»: es una lista fija de lugares donde mirar —diecisiete rutas convencionales en el host auditado, un enlace api-catalog según RFC 9727 y cualquier enlace a una especificación hallado en la página de inicio que descargamos—. En docs.stripe.com ninguna de esas rutas devolvió una especificación y esa página no llevaba tal enlace, así que no se encontró nada. Una regla que siguiera un salto más hasta el repositorio de un proveedor no sería menos correcta. La nuestra simplemente está fijada antes de que empiece la auditoría, se aplica igual a todos los sitios del corpus y su baremo está publicado en la página de la rúbrica. Toda la diferencia está ahí: no una respuesta mejor, sino una respuesta fija. Cómo se puntúa C1.

Medición archivada

Esta medición archivada utiliza la rúbrica 8. El instrumento actual aplica otras reglas de medición. Estos archivos no validan las puntuaciones actuales y no deben compararse con una nueva auditoría en línea.

Todavía se pueden verificar los archivos originales y su suma SHA-256 publicada. Los archivos y las cifras de este archivo histórico no se han modificado.

curl -fsS https://agentfit.dev/static/reproducibility/agentfit-run1.json -o agentfit-run1.json
shasum -a 256 agentfit-run1.json

Lo que no estamos afirmando

En qué es realmente bueno un modelo aquí

Nada de esto vuelve inútiles las ejecuciones del modelo: las convierte en otro instrumento. El diagnóstico de cada una de las tres es bueno por sí mismo: por qué una especificación ausente perjudica a un agente, qué publicar en su lugar, cuáles de las páginas de Stripe sobrevivirían a una lectura sin navegador. Eso es explicación, y un modelo explica de maravilla.

Un modelo de lenguaje es excelente explicando qué arreglar. Es un mal instrumento para medir si lo arreglaste. Nosotros vamos de lo segundo. AgentFit es el instrumento; lleva su número a un modelo y pregúntale qué hacer con él. Esa es la división del trabajo correcta, y es la que usamos.

Los datos

Las seis ejecuciones se sirven desde este sitio. Los tres informes de AgentFit son los archivos que escribió la herramienta, byte a byte: sobre ellos se calcula la suma de verificación. Los tres archivos del modelo son nuestros:

Las transcripciones en bruto no se publican. Para la columna del modelo obtiene resúmenes estructurados que escribimos después a partir de esas transcripciones: la puntuación final, los totales por categoría y las notas por criterio citadas arriba. Las puntuaciones y los totales son el resultado propio de cada ejecución; la redacción de las notas es nuestra.

No se filtró nada: ni una ejecución ni un sitio. Tres auditorías del modelo y tres de la herramienta, sobre el único sitio que la tabla de calibración del prompt ya nombraba; no ejecutamos ningún otro ni descartamos nada. Si una cuarta ejecución hubiera dado 57, también la habríamos publicado y esta página sería más corta.


Audita tu documentación →

Gratis, sin registro, unos 30 segundos. 28 criterios, evidencia HTTP bajo cada uno, un enlace de informe compartible — y el mismo número mañana si nada ha cambiado.