saltar al contenido principal

Benchmark de precisión de extracción

Syncanix convierte tu API en capacidades para agentes leyendo tu código fuente. Eso solo funciona si la extracción es precisa: por eso la medimos, publicamos los resultados y fijamos con tests cada número de esta página a la batería de evaluación versionada. Si un extractor empeora, la build falla antes de que esta página pueda exagerar nada.

Resultados principales

100.0%recall macro en los repos reales evaluados
100.0%precisión macro en los repos reales evaluados
12repos públicos reales evaluados contra una verdad de referencia derivada a mano
29frameworks escaneados de extremo a extremo en repos reales

Última verificación: 2026-06-11 · 9c09e59f2

Metodología

  • Verdad de referencia derivada a mano

    Para cada repo evaluado leemos a mano sus definiciones de rutas y listamos cada endpoint real como un par método + ruta. El extractor se puntúa contra esa lista: el recall es la proporción de endpoints reales encontrados; la precisión, la proporción de endpoints extraídos que son reales.

  • Coincidencia estructural

    Una coincidencia significa el método HTTP más la ruta completa compuesta, prefijos montados incluidos. Los parámetros de ruta se comparan por estructura, no por nombre: :id y {slug} en la misma posición son iguales.

  • Solo análisis estático

    El descubrimiento lee código fuente; nunca ejecuta tu aplicación, inspecciona tu tráfico ni llama a tus endpoints. Cada número aquí lo produjo la misma ruta de detección y extracción que ejecuta npx syncanix init.

  • Probado en CI, fijado con tests

    La batería determinista de fixtures bloquea la CI en cada cambio de extractor, y los números de esta página están fijados a la salida de la batería mediante tests: una regresión hace fallar la build antes de poder publicarse.

Repos públicos reales, evaluados

Doce implementaciones de referencia —en su mayoría apps RealWorld— con verdad de referencia derivada a mano. Los repos son públicos: puedes leer los mismos archivos de rutas que leímos nosotros.

Batería determinista de fixtures

Proyectos fixture versionados por framework, puntuados con F1 contra umbrales por framework. Esta es la batería que bloquea la CI en cada cambio de extractor.

Batería determinista de fixtures
FrameworkFixturesF1Umbral de corte
nestjs51.0000.92
express31.0000.85
fastapi81.0000.92
nextjs81.0000.92
graphql51.0001.00
grpc11.0000.92
trpc21.0000.92
websocket21.0000.85
springboot11.0000.85
phoenix11.0000.85
gin21.0000.85
actix11.0000.85
axum21.0000.85
laravel11.0000.85
aspnet11.0000.85
vapor11.0000.75
play11.0000.75
compojure11.0000.75
dream11.0000.75
servant11.0000.75
cowboy11.0000.75
plumber11.0000.75
lapis11.0000.75

Frameworks cubiertos por los repos reales evaluados en lugar de fixtures sintéticos: django, flask, rails

Fixtures reales incorporados

Repositorios reales completos incorporados en un commit fijado y puntuados contra un oráculo derivado de la especificación o etiquetado a mano. La métrica con umbral es el F1 estructural (método + ruta).

Fixtures reales incorporados
FrameworkFixtureF1 estructuralVerdad de referencia
FastAPIfastapi-realworld@029eb771.000openapi
Honohono-open-api-starter@0d5f3bf1.000hand-labelled
Symfonysymfony-realworld@5ad39de1.000openapi

Lo que estos números no afirman

  • El conjunto evaluado son apps de referencia seleccionadas, no una muestra aleatoria de todos los códigos. Tu repo puede diferir; por eso la CLI escribe un catálogo revisable en lugar de pedir confianza.
  • Este benchmark mide la extracción estructural (métodos y rutas). La calidad de las descripciones de capacidades escritas por el LLM se evalúa por separado y no forma parte de estas cifras.
  • El etiquetado de requisitos de autenticación es deliberadamente conservador en algunos extractores y puede discrepar de un oráculo derivado de la especificación en endpoints públicos; la métrica con umbral es la precisión estructural.

Verifícalo tú mismo

La comprobación más significativa es tu propio código: ejecuta la CLI de descubrimiento y revisa el catálogo que escribe — cada capacidad extraída cita su ubicación en el código, así que puedes comparar el catálogo con tus archivos de rutas en minutos. Por transparencia, estos son los comandos internos de la batería tras los números de arriba (los extractores son source-available; el corpus de evaluación no es público):

pnpm --filter syncanix test:f1
pnpm --filter syncanix scan:real

Compatibilidad de frameworks lista cada framework y lenguaje que lee la CLI, y qué hacer si el tuyo no está cubierto.