Fundamentos
Fundamento / Metrología: qué significa que esto funciona

Metrología: qué significa que esto funciona

Fundamento·08/04/2026·Tiempo de lectura: 28 minutos·allan-registry

Un sistema agéntico se defiende con números. El de ALLAN dice que un candidato puntuó 0,86 sobre un umbral de 0,8 y que por tanto puede publicarse; que la misión de referencia consume unos 141 WU —el ejemplo trabajado del que cuelgan todos los presupuestos de capacidad (Economics/economics/domain/capacity.py:85)—; y que un agente es supervised, y que por eso sus automatizaciones necesitan aprobación humana. Los tres enunciados tienen la misma gramática y no el mismo estatuto. Uno es una convención con una identidad aritmética que la fija; otro es una cadena de texto en un YAML que nadie ha comparado nunca con el comportamiento del agente; el tercero, la puntuación, es el único que se presenta como medición y el único que no lo es.

La pregunta no es si ALLAN funciona, sino qué tendría que ser verdad para que la frase «esto funciona» significase algo comprobable, y cuánto de eso está hoy escrito en código.

Qué mide una puntuación de eval

La pregunta parece de ingeniería y es de psicometría. Cuando el motor emite score: 0.86, ¿de qué magnitud es esa cifra la medida? No de la corrección de una respuesta: no hay respuesta correcta con la que compararla. No de una tasa de éxito: no hay una población de tareas de la que los escenarios sean muestra definida. La magnitud pretendida es algo parecido a «este paquete está listo para usuarios reales», y no está definida operacionalmente en ningún fichero.

La disciplina que nombró este problema lo hizo hace setenta años. Cronbach y Meehl escribieron que la validación de constructo interviene siempre que un test se interpreta como medida de un atributo que no está definido operacionalmente, y fijaron la condición que la obliga: hay que investigarla siempre que ningún criterio ni universo de contenido se acepte como enteramente adecuado para definir la cualidad que se quiere medir. Ése es el caso de un eval de agente. La consecuencia es la incómoda: para que un constructo sea científicamente admisible tiene que aparecer en una red nomológica de la que al menos algunas leyes involucren observables. Un número que no se relaciona con nada más observable no es la medida de nada.

La puntuación de eval de ALLAN no está hoy en ninguna red. No se compara con la tasa de fallos posteriores, ni con las intervenciones humanas que el agente provoca, ni con el coste de sus misiones, ni con nada que ocurra después de la publicación. El paquete declarativo tiene un campo pensado para cerrar ese círculo: success_metrics, cuyo comentario de esquema promete que se compararán «against real UsageEvent data post-deployment» (Platform Server/internal/agents/agent_schema.yaml:74-76). Se generan, se serializan en el agent.yaml y se editan desde la API del Registry (Agent Registry/agent_registry/services/agents.py:219-223); ahí termina su vida, porque no hay en los nueve repositorios un solo consumidor que las calcule contra uso real. La red nomológica está declarada y vacía.

Que esto no sea un escrúpulo académico lo confirma la literatura reciente sobre modelos fundacionales, que ha importado el vocabulario entero: König y colaboradores evalúan las estrategias de investigación mediante los cuatro tipos de validez de las ciencias sociales empíricas —estadística, interna, externa y de constructo— y advierten que el ahorro de cómputo se paga en supuestos ocultos, a veces no comprobables, que al violarse invalidan la afirmación. Los atajos de medición no se pagan en precisión: se pagan en que la afirmación deja de estar sostenida.

El examen lo escribe quien va a ser examinado

La segunda dificultad es estructural y peor que la primera. En ALLAN, el agente candidato, la rúbrica con la que se le juzga, los escenarios que se le plantean, el juez que puntúa cada uno, el revisor adversarial y el guardián final son todos salidas del mismo proveedor de modelos, y todos reciben en su prompt el mismo texto: el contexto de ejecución del propio agente.

Esto no es una inferencia sobre el diseño; es la firma de cinco funciones. designEval recibe agentContext y produce la rúbrica y su umbral (internal/agents/eval_engine.go:486-501); generateScenarios recibe agentContext y la rúbrica (:504-519); judgeScenario, además, el escenario y la salida del agente (:521-544); redTeamEval recibe agentContext (:546-561); y gatekeeper, agentContext más el informe completo serializado (:563-580). Los evals de los que todo parte los escribió antes el propio pipeline de creación, por inferencia desde la misma solicitud en lenguaje natural que produjo el agente.

Hay una salvaguarda real y conviene reconocerla: el agente bajo prueba no recibe sus propios evals en el contexto. LoadExecutionContext carga agent.yaml, AGENT.md, habilidades, prompts, hooks y memoria, y evals/ sólo entra con IncludeEvals (internal/agents/package_context.go:21-25,76), opción que ningún llamador de producción activa. El examinado no ve el examen. Pero los examinadores sí ven al examinado, y ésa es la mitad que sigue abierta.

La literatura sobre jueces-modelo describe con precisión esa configuración. Zheng y colaboradores, al proponer el método, enumeraron sus sesgos: de posición, de verbosidad y de auto-preferencia. Panickssery, Bowman y Feng midieron el mecanismo del tercero: una correlación lineal entre capacidad de auto-reconocimiento y fuerza del sesgo de auto-preferencia. Un juez que reconoce su propia escritura la puntúa mejor, y aquí lo que juzga es literalmente suyo. Shankar y colaboradores añaden el problema de la rúbrica generada —los evaluadores generados por un modelo heredan todos los problemas de los modelos que evalúan— y la circularidad que ALLAN reproduce entera: hacen falta criterios para calificar salidas, pero calificar salidas es lo que ayuda a definirlos.

Y hay un detalle del código que agrava el diagnóstico más allá de cualquier sesgo conocido: el umbral no lo fija la plataforma. El informe se inicializa con Threshold: 0.8 (eval_engine.go:248), pero el guardián devuelve en el mismo objeto JSON su puntuación y su umbral, y si el umbral devuelto es mayor que cero se instala en el informe (:357-360). El veredicto es una conjunción de cuatro términos —gate.Pass && report.Score >= report.Threshold && evalArtifactsPassed(report.EvalArtifacts) && !artifacts.HasErrors(issues) (:361)—, y sólo el último de los cuatro es del motor: los dos primeros los emitió una sola llamada al guardián y el tercero se resuelve un nivel más abajo contra Design.PassThreshold, que escribió el diseñador de rúbricas (:730-733). El 0,8 de reserva sólo sobrevive si el modelo declina responder. Descontando los defectos estructurales del paquete, en toda la cadena numérica no queda un valor fijado fuera del modelo.

Dos puertas con el mismo nombre y dos reglas de decisión distintas

El mismo informe alimenta dos compuertas que no deciden igual, y la diferencia determina qué se publica.

Forge (creación) Registry (gate de publicación)
Escenarios 5 si supervised, 3 si no; +1 si el bundle declara herramientas (validation_llm.go:113-134, :140-150) 2 por defecto, o ALLAN_AGENT_EVAL_SCENARIOS (registry_validate.go:184-191)
Catálogo de herramientas vista de solo lectura del registro vivo del tenant (eval_engine.go:238) ninguno: Tools no se pasa, luego mcp.NewRegistry() vacío (registry_validate.go:138-142, eval_engine.go:388-391)
Presupuesto de ejecución escalado por autonomía (validation_llm.go:119-132) valores por defecto: 4 pasos raíz, 8 llamadas a herramienta (eval_engine.go:48-71)
Aviso a los jueces los jueces saben que fue un sandbox (eval_engine.go:460-470) Sandboxed=false; los jueces no reciben ese aviso
Qué decide presencia de hallazgos blocker (validation_report.go:310-316) el booleano passed del informe (services/lifecycle.py:673)

La última fila es la más importante y la menos evidente. En Forge la puntuación no decide nada: se transporta (validation_report.go:505-509) y el veredicto se calcula contando hallazgos bloqueantes. Cada required_fix que el guardián escribe se convierte en un blocker con independencia de si dijo pass (:514-523), mientras que las correcciones de los jueces de rúbrica y del equipo rojo se degradan a risk y no bloquean nunca (:557, :571). La variable de decisión efectiva de Forge es si el guardián se molestó en redactar prosa en un campo de lista. En el Registry, en cambio, el booleano sí depende de la desigualdad entre dos números que emitió la misma llamada.

La puerta que gobierna la publicación es, además, más débil que la que gobierna la creación, y lo es en la dimensión que el propio diseño identificó como crítica: lo que el documento de Forge llama un agente amputado es la configuración en la que corre el gate del Registry hoy.

Y hay un escalón más abajo: los gates de publicación son opcionales y el predeterminado no exige evals en ningún ámbito. PublicationGates inicializa require_evals = False (Agent Registry/agent_registry/domain/policy.py:17-20) y default_policy activa require_validation y require_approval para tenant y global, pero nunca require_evals (:48-63); el gate sólo corre si un administrador lo activa (services/lifecycle.py:707-708), cosa que el README desaconseja mientras el aislamiento sea de sistema de ficheros y no de tenant. En un despliegue por defecto, ninguna puntuación de eval bloquea nada.

Lo que ALLAN descartó, y por qué

El corpus de diseño contiene descartes que, leídos juntos, son una teoría implícita de la medición honesta, y merecen citarse con su motivo textual.

El primero es el registro de herramientas vacío, rechazado por invalidez de constructo aunque el documento no use esas palabras: «Antes recibía un registro de herramientas vacío (mcp.NewRegistry()), de modo que juzgaba a un agente amputado y todo defecto de selección de herramientas quedaba invisible hasta producción» (docs/agentes/agent-forge-design.md:227). El mismo párrafo rechaza fabricar resultados para las llamadas retenidas, con la razón correcta: «un juez puntuando datos falsos puntúa ruido».

El segundo es la ceguera del reparador. Cuando la validación falla y el autor pide refine, el cirujano recibe hallazgos y correcciones, nunca la nota: «El cirujano recibe hallazgos y correcciones; ni puntuación, ni umbral, ni rúbrica, ni transcripción del juez. Es estructural: BundleEditInstructions no tiene dónde poner una puntuación. Un reparador que puede leer el examen optimiza contra el examinador» (:270). La restricción vive en el tipo, no en el prompt (internal/forge/repair.go:34-39), y un test comprueba que ninguna instrucción contenga score, threshold, rubric ni los valores numéricos del informe (repair_test.go:80-107). Es la aplicación más limpia de Goodhart del repositorio.

El tercero es la guarda anti-Goodhart del Mejorador: «Un run del Mejorador o edita artefactos del agente contra evals congelados, o propone cambios de evals — nunca ambos» (docs/agentes/agent-improvement-design.md:193). El documento afirma que se aplica en código. No hay código: internal/improver no existe en el árbol.

El cuarto está fuera del ciclo de vida del agente y es el más importante porque sí se implementó: el plan de superficies económicas rechaza tratar la ausencia de medición como una medición buena (docs/economics-surfaces-implementation-plan.md:26-29). Se sustituye el booleano launchable por un estado —not_measured, insufficient, out_of_model, not_launchable, launchable— y «jamás se pinta en verde lo no medido».

La única disciplina metrológica que existe hoy

Ese descarte produjo el módulo más riguroso de los nueve repositorios, y está en Economics. economics/domain/evidence.py define un Calibrated[T] que transporta el valor junto con su procedencia —measured, modelled, insufficient, not_measured—, las muestras, los sujetos distintos detrás de ellas y los que la afirmación requeriría; la distinción entre muestras y sujetos está justificada en el código: «Thirty months of one customer is one customer's opinion thirty times, not thirty observations of the population» (evidence.py:60-61). Sólo measured y modelled habilitan una decisión (:68-70), y un valor modelado se reporta como modelado aunque el ledger coincida, porque «the two answer different questions and only one of them survives a customer disputing it» (:131).

El tamaño de muestra tampoco se elige: se deriva. required_sample_for resuelve por búsqueda entera el menor n tal que q^n ≤ 1 − c (:84-113), que es la familia de intervalos de tolerancia por estadísticos de orden —el manual del NIST la introduce con la propiedad que aquí importa: valen para una distribución de cualquier forma—. Con los ajustes por defecto salen 59 sujetos distintos, y el comentario dice de quién es la decisión: «lowering either number lowers the bar for calling a plan launchable, so both are deliberate commercial decisions rather than tuning» (config.py:112-118).

La misma capa trata sus propias constantes como objetos falsables. K, la denominación del Work Credit, vale 10 y está congelada: UNIT-001 rechaza como BLOCKING cualquier escritura que la mueva (domain/lint.py:394-411). n_anchor no es un parámetro libre sino la solución de una ecuación —la llamada ancla debe ratear exactamente 1000 milliWU— y ANCHOR-001 lo comprueba ejecutando el rater auténtico (lint.py:443-467). Y kappa, el multiplicador por clase de ejecución que se aplica sólo a la entrada, puede cambiarse, pero si el cambio mueve el conjunto de llamadas de referencia más de 5 por mil salta ANCHOR-002 y obliga a reexpresar la capacidad mensual de todos los planes en el mismo cambio (lint.py:477-500, config.py:103-105): un umbral de deriva declarado, con unidades, y una consecuencia explícita al cruzarlo. El validador vive dentro del escritor y no admite interruptor: «There is deliberately no switch to disable it: a validator that can be turned off is a validator that will be turned off on the day it would have mattered» (config.py:92-95).

Falta lo esencial, y el propio código lo dice: los valores concretos de kappa no están calibrados contra nada. El fichero de perfiles admite que «the STRUCTURE is stable; the NUMBERS are calibrated against real traffic in shadow-rating before launch — treat them as a starting point to be measured, not as settled truth» (domain/capacity.py:80-82), y el comentario de la clase embeddings explica que su kappa es 1000 no porque se haya medido, sino porque era el valor que el camino de reserva le daba de hecho: «Naming the class and repricing it are two different acts» (domain/rating.py:134-142). Mientras el shadow-rating no corra sobre tráfico real, esos multiplicadores son una hipótesis sobre el coste relativo del razonamiento, no una medida de él. Es la deuda más honesta del repositorio: Economics no sabe si sus constantes son correctas y ha construido la maquinaria para enterarse; el resto de la plataforma ni siquiera la tiene.

Fiabilidad, potencia y tamaño de efecto: lo que falta entero

Cada escenario se ejecuta una vez y se juzga una vez. Con entre tres y seis escenarios por artefacto y sin repeticiones, la diferencia entre 0,79 y 0,81 no es interpretable, y decirlo no requiere experimento alguno: sin repeticiones no hay varianza estimable; sin varianza, ni error estándar, ni tamaño de efecto, ni cálculo de potencia. ALLAN no declara ninguna diferencia mínima detectable porque no podría calcularla.

Miller parte de que las evaluaciones son experimentos y de que su literatura ha ignorado la de otras ciencias sobre análisis y planificación experimental, y propone cinco medidas: errores estándar de la media por el teorema central del límite; errores estándar agrupados cuando las preguntas vienen en grupos relacionados; reducción de varianza remuestreando respuestas y analizando probabilidades del siguiente token; inferencia sobre diferencias pareadas a nivel de pregunta al comparar dos modelos; y análisis de potencia para decidir si un eval es siquiera capaz de contrastar la hipótesis de interés. Ninguna está implementada. La segunda es especialmente pertinente: los escenarios de un mismo artefacto los generó una sola llamada a partir de una sola rúbrica, luego están correlacionados por construcción, y tratarlos como observaciones independientes infla la confianza de forma sistemática.

Cuánto importa la repetición está medido. Alvarado Gonzalez y colaboradores reevaluaron ocho modelos con tres corridas independientes: 10 de 12 cortes invierten al menos un orden por pares respecto a la mayoría de tres corridas, y recomiendan tratar la evaluación como un experimento, reportar incertidumbre y usar al menos dos repeticiones bajo decodificación estocástica. Mustahsan y colaboradores traen de la ciencia de la medición el coeficiente de correlación intraclase, que descompone la varianza observada entre dificultad de la tarea e inconsistencia del agente, y encuentran que converge hacia las 8-16 repeticiones en tareas estructuradas y necesita 32 o más en razonamiento complejo. Frente a esas cifras, una corrida única por escenario no es una aproximación barata: es otra cantidad.

Repetir tampoco bastaría sin controlar el entorno. Yuan y colaboradores muestran que la reproducibilidad del rendimiento de un LLM es frágil, y que cambiar la configuración del sistema —tamaño de lote, número y versión de GPU— puede introducir diferencias significativas en las respuestas, con la causa trazada a la no asociatividad de la aritmética en coma flotante bajo precisión limitada. Para ALLAN la implicación es directa: el informe no registra proveedor, modelo ni versión de configuración. La respuesta que el motor devuelve al Registry tiene seis campos —agent_id, version, passed, issues, summary, score (registry_validate.go:33-40)— y ninguno identifica al aparato de medida. Dos informes del mismo paquete no son comparables ni siquiera en principio.

Queda el juez mismo. Lee y colaboradores muestran que su sensibilidad y especificidad imperfectas sesgan las puntuaciones ingenuas, y corrigen el sesgo con intervalos que incorporan la incertidumbre del conjunto de prueba y la de un conjunto de calibración etiquetado por humanos. ALLAN no tiene ese conjunto: no hay muestra de paquetes con veredicto humano contra la que medir el acuerdo del guardián, luego no hay forma de saber si es estricto, laxo o ruidoso.

Contaminación, o el problema contrario

La contaminación clásica —el solapamiento no intencionado entre los datos de entrenamiento y los de prueba, que según Cheng, Chang y Wu puede inflar artificialmente el rendimiento— apenas se deja aplicar aquí, porque los escenarios se generan frescos en cada corrida. Eso elimina un problema y crea otro peor: sin conjunto fijo no hay comparación entre versiones, entre agentes ni entre fechas. Cada agente se examina de un examen distinto, escrito para él, por un modelo que acaba de leer su descripción. Es lo contrario de la sobreadaptación que Kapoor y colaboradores diagnostican —muchos benchmarks de agentes tienen conjuntos de retención inadecuados, y a veces ninguno, lo que ha producido agentes frágiles que toman atajos—, y comparte con ella la consecuencia final: el número no informa sobre el mundo.

La crítica metodológica reciente añade una razón para no envidiar la alternativa. Zhu y colaboradores muestran que los defectos de diseño de tarea o de recompensa pueden llevar a sub- o sobreestimar el rendimiento hasta en un 100 % en términos relativos: SWE-bench Verified usa casos de prueba insuficientes y TAU-bench cuenta respuestas vacías como exitosas. Wang, Bianchi y colaboradores, auditando 168 benchmarks, encuentran problemas críticos en más del 25,7 % de las tareas. Y Wang, Li, Mang, Cheung, Sen y Song sintetizan exploits que puntúan casi perfecto sin resolver una sola tarea.

Ese último hallazgo tiene una lectura específica para ALLAN. El reward hacking que describen requiere un objetivo estable contra el que optimizar, y el examen regenerado lo dificulta: en eso el diseño está por encima de la media. Pero aquí quien podría explotarlo no es un atacante externo sino el propio proveedor de modelos, que escribe a la vez la respuesta y el criterio, y contra eso la regeneración no protege.

Invariantes que el sistema sí garantiza

Enunciados de forma que puedan refutarse leyendo el código.

Ningún reparador automático puede leer una puntuación, un umbral o una rúbrica: la estructura que se le pasa no tiene campos para ellos (internal/forge/repair.go:34-39), y un test falla si aparecen en el texto de una instrucción (repair_test.go:80-107).

Ninguna herramienta que no declare readOnlyHint en sus anotaciones MCP se ejecuta durante una validación de Forge, y ninguna llamada retenida recibe un resultado inventado: se responde con un aviso explícito y se registra como evidencia (internal/agents/eval_sandbox.go:30-45).

Forge nunca produce un agente autonomous —la petición es un techo y la misma normalización se reaplica en los checkpoints (internal/forge/brief.go:120-140)— y un nivel desconocido nunca cumple un umbral: cualquier fallo al resolverlo deja la automatización pendiente de aprobación humana (internal/forge/types.go:76-82, internal/app/events_tools.go:484-486).

Ninguna escritura económica puede mover la denominación del Work Credit ni dejar la llamada ancla rateando algo distinto de 1 WU, y no hay interruptor para desactivar esas comprobaciones (Economics/economics/config.py:92-95, domain/lint.py:394-467); ninguna cifra marcada not_measured o insufficient puede conducir una decisión (domain/evidence.py:68-70).

Lo que está roto, sin terminar o sin evidencia

La medida de convergencia entre intentos no es estable. La huella de un hallazgo se calcula sobre (check, path, field, source, título, corrección) (internal/forge/validation_report.go:148-152), y para los hallazgos del guardián título y corrección son el texto libre que el modelo generó en esa pasada (:514-523). Entre dos intentos el juez redacta de nuevo; un mismo defecto descrito con otras palabras produce otra huella y cuenta como resuelto. El flag converging es len(resolved) > 0 (internal/forge/repair.go:298), luego será verdadero casi siempre, incluso cuando el segundo intento no haya arreglado nada: mide la variabilidad de la prosa del juez y se presenta al autor como progreso.

Los pesos de la rúbrica se piden y se ignoran. El prompt del diseñador exige que los pesos de los criterios sumen aproximadamente 1,0 (eval_engine.go:500) y la estructura los transporta (:148), pero la agregación es una media aritmética sin pesos de las puntuaciones de los jueces más la del equipo rojo (:711-744). El campo Weight no lo lee nadie.

La normalización de la escala infiere la unidad de la magnitud. normalizeScore divide entre 100 cualquier valor en el intervalo (1, 100] (eval_engine.go:762-764). Un juez que devuelva 85 queriendo decir 85 % obtiene 0,85, que es lo correcto; uno que devuelva 1,2 por error obtiene 0,012, y esa puntuación entra en la media sin señal de anomalía. Inferir la unidad del tamaño del número es lo que una unidad bien definida evita.

Las correcciones de los jueces que fallan se pierden. scoreArtifactReport recibe el informe por valor y le añade RequiredFixes a Findings (eval_engine.go:711-718); el llamador sólo usa los dos valores devueltos (:348). Forge los recupera desde Judgements (validation_report.go:549-565), pero el informe del gate del Registry sale con ese campo vacío.

El umbral de autonomía no está anclado a ninguna evidencia. El diseño dice que la promoción a autonomous es «una decisión posterior, respaldada por evidencia acumulada de evals en producción» (agent-forge-design.md:250), y ese camino no existe: el nivel se resuelve por una tabla determinista en la creación (internal/forge/blueprint.go:56-73), el editor del Registry deja la clave level deliberadamente intacta (services/agents.py:400-403) y en tiempo de disparo el motor la relee del agent.yaml (internal/app/events_tools.go:77-100). La cadena es consistente y en ningún punto consulta una medición.

Qué exigiría admitir un número al corpus

De lo anterior se deduce un criterio, y su mérito es que hoy casi ninguna cifra de ALLAN lo cumple. Una cifra puede entrar en la documentación, en una pantalla o en una compuerta si, y sólo si, se sabe qué la produjo —proveedor, modelo, versión de configuración, número de escenarios—, cuántas observaciones y cuántos sujetos distintos hay detrás, con qué dispersión entre repeticiones, contra qué referencia fija se compara, y qué otra cosa observable predice. Si falta lo último, la cifra puede publicarse como diagnóstico para una persona, nunca como umbral para una máquina. Si faltan los dos primeros, no se publica.

El tipo que implementa ese criterio ya existe en la casa: Calibrated[T] transporta procedencia, muestras, sujetos y requisito, y su is_actionable es una línea que niega la acción a lo no medido. No hay razón técnica para que un AgentEvalReport no lo lleve; la razón por la que no lo lleva es que las dos disciplinas se desarrollaron en repositorios distintos y nunca se hablaron.

Mientras tanto, la lectura defendible del informe de validación es la que el propio diseño defiende para el informe del autor: una lista de hallazgos con su evidencia, útil porque nombra defectos concretos y auditable porque cada hallazgo apunta a un artefacto. Esa parte sostiene lo que afirma. La puntuación que la acompaña, no; y que en Forge ya no decida nada es más una casualidad afortunada que una decisión.

Queda la advertencia de fondo. Manheim y Garrabrant definen la sobreoptimización como lo que ocurre cuando una métrica que sirve para mejorar un sistema se usa hasta el punto en que seguir optimizando es inútil o dañino; la formulación breve que circula —cuando una medida se convierte en objetivo, deja de ser una buena medida— se atribuye a Marilyn Strathern. ALLAN se protegió del caso obvio, el reparador que no ve el marcador, y dejó abierto el difícil: el examinador escribe el examen leyendo al examinado y fija el aprobado en la misma llamada en la que pone la nota. La ceguera del reparador es una buena idea aplicada al único sitio donde no era suficiente.

Referencias

  • Cronbach, L. J. y Meehl, P. E. (1955). Construct Validity in Psychological Tests. Psychological Bulletin 52, 281–302. Texto recuperado en Classics in the History of Psychology, York University. https://psychclassics.yorku.ca/Cronbach/construct.htm — «Construct validation is involved whenever a test is to be interpreted as a measure of some attribute or quality which is not "operationally defined."»; «Construct validity must be investigated whenever no criterion or universe of content is accepted as entirely adequate to define the quality to be measured.»; «A necessary condition for a construct to be scientifically admissible is that it occur in a nomological net, at least some of whose laws involve observables.»; «A construct is some postulated attribute of people, assumed to be reflected in test performance.»

  • Zheng, L., Chiang, W.-L., Sheng, Y. et al. (2023). Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena. arXiv:2306.05685. https://arxiv.org/abs/2306.05685 — «We examine the usage and limitations of LLM-as-a-judge, including position, verbosity, and self-enhancement biases, as well as limited reasoning ability, and propose solutions to mitigate some of them.»

  • Panickssery, A., Bowman, S. R. y Feng, S. (2024). LLM Evaluators Recognize and Favor Their Own Generations. arXiv:2404.13076. https://arxiv.org/abs/2404.13076 — «By fine-tuning LLMs, we discover a linear correlation between self-recognition capability and the strength of self-preference bias; using controlled experiments, we show that the causal explanation resists straightforward confounders.»

  • Shankar, S., Zamfirescu-Pereira, J. D., Hartmann, B., Parameswaran, A. G. y Arawjo, I. (2024). Who Validates the Validators? Aligning LLM-Assisted Evaluation of LLM Outputs with Human Preferences. arXiv:2404.12272. https://arxiv.org/abs/2404.12272 — «Yet LLM-generated evaluators simply inherit all the problems of the LLMs they evaluate, requiring further human validation.»; «users need criteria to grade outputs, but grading outputs helps users define criteria».

  • Kapoor, S., Stroebl, B., Siegel, Z. S., Nadgir, N. y Narayanan, A. (2024). AI Agents That Matter. arXiv:2407.01502. https://arxiv.org/abs/2407.01502 — «Third, many agent benchmarks have inadequate holdout sets, and sometimes none at all. This has led to agents that are fragile because they take shortcuts and overfit to the benchmark in various ways.»; «First, there is a narrow focus on accuracy without attention to other metrics. As a result, SOTA agents are needlessly complex and costly, and the community has reached mistaken conclusions about the sources of accuracy gains.»

  • Miller, E. (2024). Adding Error Bars to Evals: A Statistical Approach to Language Model Evaluations. arXiv:2411.00640. https://arxiv.org/abs/2411.00640 — «Fundamentally, evaluations are experiments; but the literature on evaluations has largely ignored the literature from other sciences on experiment analysis and planning.» Las cinco recomendaciones se recuperaron de https://arxiv.org/html/2411.00640v1 : «Computing standard errors of the mean using the Central Limit Theorem»; «When questions are drawn in related groups, computing clustered standard errors»; «Reducing variance by resampling answers and by analyzing next-token probabilities»; «When two models are being compared, conducting statistical inference on the question-level paired differences, rather than the population-level summary statistics»; «Using power analysis to determine whether an eval (or a random subsample) is capable of testing a hypothesis of interest». Sobre potencia: «Power refers to the ability of an experiment to make a measurement of interest in the presence of statistical noise.»

  • Cheng, Y., Chang, Y. y Wu, Y. (2025). A Survey on Data Contamination for Large Language Models. arXiv:2502.14425. https://arxiv.org/abs/2502.14425 — «the reliability of performance evaluation has come under scrutiny due to data contamination—the unintended overlap between training and test datasets. This overlap has the potential to artificially inflate model performance».

  • Yuan, J., Li, H., Ding, X. et al. (2025). Understanding and Mitigating Numerical Sources of Nondeterminism in LLM Inference. arXiv:2506.09501. https://arxiv.org/abs/2506.09501 — «We demonstrate that the reproducibility of LLM performance is fragile: changing system configuration, such as evaluation batch size, GPU count, and GPU version, can introduce significant differences in the generated responses.»; «We trace the root cause of this variability to the non-associative nature of floating-point arithmetic under limited numerical precision.» La cifra concreta que da el artículo —«For instance, under bfloat16 precision with greedy decoding, a reasoning model like DeepSeek-R1-Distill- Qwen-7B can exhibit up to 9% variation in accuracy and 9,000 tokens difference in response length due to differences in GPU count, type, and evaluation batch size.»— está acotada en la propia fuente a un modelo, una precisión y un modo de decodificación, y por eso no se usa en el cuerpo como propiedad general.

  • Zhu, Y., Jin, T., Pruksachatkun, Y. et al. (2025). Establishing Best Practices for Building Rigorous Agentic Benchmarks. arXiv:2507.02825. https://arxiv.org/abs/2507.02825 — «For example, SWE-bench Verified uses insufficient test cases, while TAU-bench counts empty responses as successful. Such issues can lead to under- or overestimation of agents' performance by up to 100% in relative terms.»

  • Alvarado Gonzalez, M. A., Bruno Hernandez, M., Peñaloza Perez, M. A., Lopez Orozco, B., Cruz Soto, J. T. y Malagon, S. (2025). Do Repetitions Matter? Strengthening Reliability in LLM Evaluations. arXiv:2509.24086. https://arxiv.org/abs/2509.24086 — «Our findings shows that Single-run leaderboards are brittle: 10/12 slices (83%) invert at least one pairwise rank relative to the three-run majority»; «treat evaluation as an experiment, report uncertainty, and use ≥2 repetitions under stochastic decoding».

  • Mustahsan, Z., Lim, A., Anand, M., Jain, S. y McCann, B. (2025). Stochasticity in Agentic Evaluations: Quantifying Inconsistency with Intraclass Correlation. arXiv:2512.06710. https://arxiv.org/abs/2512.06710 — «Yet current evaluation practice, reporting a single accuracy number from a single run, obscures the variance underlying these results, making it impossible to distinguish genuine capability improvements from lucky sampling.»; «We demonstrate that ICC converges by n=8-16 trials for structured tasks and n>=32 for complex reasoning, enabling practitioners to set evidence-based resampling budgets.»

  • Lee, C., Zeng, T., Jeong, J., Sohn, J. y Lee, K. (2025). How to Correctly Report LLM-as-a-Judge Evaluations. arXiv:2511.21140. https://arxiv.org/abs/2511.21140 — «However, imperfect sensitivity and specificity of the LLM judges induce bias in naive evaluation scores.»; «Our framework constructs confidence intervals that account for uncertainty from both the test dataset and a human-labeled calibration dataset.»

  • Wang, H., Li, H., Mang, Q., Cheung, A., Sen, K. y Song, D. (2026). Do Androids Dream of Breaking the Game? Systematically Auditing AI Agent Benchmarks with BenchJack. arXiv:2605.12673. https://arxiv.org/abs/2605.12673 — «BenchJack synthesizes reward-hacking exploits that achieve near-perfect scores on most of the benchmarks without solving a single task, surfacing 219 distinct flaws across the eight classes.»; «Our results show that evaluation pipelines have not internalized an adversarial mindset, and that proactive auditing could help close the security gap for the fast-paced benchmarking space.»

  • Wang, J., Bianchi, F., Zhu, S., Nie, F., Kwon, Y., Dhingra, B. y Zou, J. (2026). Automated Benchmark Auditing for AI Agents and Large Language Models. arXiv:2605.26079. https://arxiv.org/abs/2605.26079 — «Across this corpus, ABA identifies critical issues including ambiguous task design, execution environment conflicts, and incorrect ground truths in over 25.7% of the evaluated tasks.»; «filtering out these tasks with issues shifts model rankings and increases average performance on SWE-bench Verified and Terminal-Bench 2 by 9.9% and 9.6%, respectively».

  • König, G., Pawelczyk, M., von Luxburg, U. y Bordt, S. (2026). Validity Threats for Foundation Model Research. arXiv:2606.05029. https://arxiv.org/abs/2606.05029 — «savings in compute come at the cost of validity threats -- hidden and sometimes untestable assumptions that, when violated, can invalidate research claims»; «we evaluate different research strategies through four types of validity adapted from the empirical social sciences -- statistical, internal, external, and construct validity».

  • Manheim, D. y Garrabrant, S. (2018). Categorizing Variants of Goodhart's Law. arXiv:1803.04585. https://arxiv.org/abs/1803.04585 — «This occurs when a metric which can be used to improve a system is used to an extent that further optimization is ineffective or harmful, and is sometimes termed Goodhart's Law.»

  • Strathern, M. (1997). 'Improving ratings': audit in the British University system. European Review 5, 305–321. Original NO VERIFICADO: el PDF accesible (archive.org, gwern.net) es un escaneado en compresión de fax del que no se pudo extraer texto en esta sesión, de modo que la frase no se ha leído en la fuente primaria. Se cita a través de una fuente secundaria sí recuperada: M. E. McIntyre, Goodhart's Law, DAMTP, University of Cambridge, https://www.damtp.cam.ac.uk/user/mem2//papers/LHCE/goodhart.html — «Professor Marilyn Strathern FBA, following Hoskin (1996, see below), has re-stated Goodhart's Law more succinctly and more generally: `When a measure becomes a target, it ceases to be a good measure.'» Nótese que la atribución de la página es a Strathern «siguiendo a Hoskin (1996)», y que remite a su artículo de 1997 sin dar número de página.

  • NIST/SEMATECH. e-Handbook of Statistical Methods, §7.2.6.4, «Tolerance intervals based on the largest and smallest observations». https://www.itl.nist.gov/div898/handbook/prc/section2/prc264.htm — «Tolerance intervals can be constructed for a distribution of any form»; «One obvious choice for a two-sided tolerance interval for an unknown distribution is the interval between the smallest and largest observations from a sample». Se cita como referencia de la familia de métodos por estadísticos de orden; la variante unilateral que implementa required_sample_for (q^n ≤ 1 − c) no aparece en esa página, que trata el caso bilateral.

¿Le ha resultado útil esta página?

Enviar comentarios

Este artículo se publica desde allan-docs. El mismo texto se sirve a los agentes a través del servidor MCP.