Código abierto, Apache-2.0v0.15.0, previa a 1.0Traducido del inglés con un modelo de IA. Original en inglés del 2026-09-17
Cambiaste un prompt.¿Qué más empeoró?
Un prompt nuevo, una versión de modelo, la actualización de una biblioteca. La aplicación sigue funcionando y una respuesta de la que dependía tu cliente ahora es incorrecta. digline te dice qué caso, en cuánto y si la caída es mayor que el propio ruido del juez.
pip install digline
Requiere Python 3.12 o posterior
Empieza aquí Por qué una referencia en el repositorio
- El inicio rápido no necesita clave de API
- Sin servidor, sin telemetría
- Código de salida para CI
how-do-i-returnempeoró
- llm_rubric
- 1.00 → 0.40
- contains
- 1.00 → 0.00
- También peor
- is-it-waterproof, where-is-my-order
-Sign every reply as "— Northwind Support".+Sign every reply as "— the Northwind team".
6 checks empeoraron. CI se detiene aquí.exit 1
El problema
Una aplicación LLM puede empeorar sin que nada se rompa.
Las pruebas pasan, la aplicación responde, la demostración funciona. Luego un cambio en un prompt, una versión de modelo o la actualización de una biblioteca modifica una respuesta de la que dependía tu cliente, y nada en el pipeline lo indica.
Cómo suele ocurrir
- Volver a ejecutar las evaluaciones y mirar la media
- No hay forma de distinguir una caída real de un mal día del juez
- Lo que se aprobó, y cuándo, vive en el cuaderno de alguien
- El cliente descubre la regresión primero
Con una referencia aprobada en el repositorio
- Cada cambio se compara caso por caso
- Se mide el ruido del juez antes de declarar una caída
- La referencia es un archivo en un PR, con un commit y un nombre
- CI se detiene antes que el lanzamiento
Cómo encaja
Vive en tu repositorio, no en un servidor.
No hay que registrarse en nada ni alojar nada. La referencia es un archivo y la herramienta, un paquete.
La referencia es un archivo de tu repositorio
Puntuaciones, prompt y configuración del modelo, versionados junto al código. Cambia mediante un PR, así que cada aprobación lleva un commit y un nombre.
Uno dependencia, sin SDK de proveedor
digline instala jsonschema y nada más propio. Sin servidor, sin telemetría, nada alojado. En CI el código de salida es toda la interfaz.
Proveedores
Un plugin para cada uno, que se instala solo si lo usas.
- Anthropicdigline-anthropic
- OpenAIdigline-openai y cualquier endpoint compatible con OpenAI
- Amazon Bedrockdigline-bedrock
Ejemplos resueltos
Una aplicación real en cada framework, con su suite.
Otras formas de ejecutarlo
En un contenedor, o para un agente.
Comandos
Doce comandos, una tarea cada uno.
Cada comando tiene su propia página o un lugar en la guía.
- Registrar y aprobar
- Comparar
- Historial
- Mantenimiento
-
digline runexecute the suite and write a run -
digline promotemake a run the baseline -
digline comparecompare a run with the baseline -
digline diffreport what differs between two runs; judges neither -
digline explainread a run back at length; compares if there is a baseline -
digline reportrender the report -
digline listlist stored runs, newest first -
digline logwhich model answered, read down the stored runs; never a gate -
digline registerrecord a person's disposition about a comparison; commit the line -
digline viewbrowse stored runs, compare any two, promote -
digline rejudgejudge a stored run's recorded answers again, declaring the source -
digline migratebring stored runs and the baseline up to the current schema
Checks
Primero lo determinista, el juez al final.
22 checks hoy, en cinco tipos. La lista crece; los tipos se mantienen.
-
Deterministas12
No interviene ningún modelo. La misma salida, el mismo veredicto.
-
Con juez2
Un segundo modelo puntúa la respuesta y se mide su ruido.
-
Presupuestos2
Un techo de coste o de latencia, puntuado de forma graduada en lugar de pasa/no pasa.
-
Agregados4
Un único veredicto sobre todo el run.
-
Envoltorios2
Adopta la naturaleza del check que envuelve.
Sin referencia y con ella
El mismo run de evaluación, leído de dos maneras.
Una línea del prompt cambió entre dos runs. A la izquierda, las puntuaciones que obtienes sin referencia. A la derecha, lo que imprime digline frente a la referencia aprobada.
El run nuevo por sí solo sin referencia
case llm_rubric containshow-do-i-return 0.40 0.00is-it-waterproof 0.40 0.00where-is-my-order 0.40 0.00¿Eran 1.00 ayer? ¿Cambió algo?Nada aquí lo dice.
digline compare frente a la referencia
6 checks got worse compared with the reference. Every case could be judged. No case is suspended. The suite is unchanged from the reference. 1 file under test changed since the reference. prompt.md · +1 −1 lineshow-do-i-return · llm_rubric · Went from passing to failing (1.000000 → 0.400000).how-do-i-return · contains · Went from passing to failing (1.000000 → 0.000000).… 4 líneas másexit 1
Las dos columnas provienen del mismo run capturado, digline 0.15.0. La de la izquierda muestra solo las puntuaciones nuevas; la de la derecha es la salida de la comparación, abreviada donde se indica.
Pruébalo
El inicio rápido funciona sin clave de API.
Necesitas Python 3.12 o posterior. La llamada al modelo de la guía es predefinida, así que puedes ver todo el ciclo antes de conectar un proveedor real.
digline runEjecuta la suite y escribe un archivo de run.
digline promoteUna persona aprueba ese run como referencia.
digline compareCada run posterior se comprueba contra ella.
$ pip install digline==0.15.0
$ digline run --suite support.py
2026-09-17T13-40-13-029556-00-00-282b0c02d6511fb4
$ digline promote --suite support.py --run latest
support baseline set to 2026-09-17T13-40-13-029556-00-00-282b0c02d6511fb4
$ digline compare --suite support.py --run latest
Nothing got worse compared with the reference. Every case could be judged. No case is suspended. The suite is unchanged from the reference.
Salida capturada de digline 0.15.0, run 2026-09-17T13-40-13-029556…. Guía completa
En un flujo con agentes
Dónde se sitúa el check cuando un agente hace los cambios.
El agente edita; digline decide si la edición puede seguir adelante.
Hoja de ruta
Hacia dónde va
Entregado — credibilidad del veredicto: una caída es una regresión solo cuando sale del intervalo que el baseline midió entre sus propias muestras, y el trabajo pendiente ahora es la adopción.
Dos cosas nunca estarán en la hoja de ruta. Un servicio alojado que reciba tus payloads — prompts, salidas y el juez se quedan en tu perímetro. Y la recopilación de datos de uso, nunca.
Pilotos
¿Desarrollas funciones con LLM para clientes?
Busco unos pocos equipos piloto que usen digline en proyectos reales — sobre todo equipos que construyen y mantienen soluciones de IA para terceros. A cambio obtienes soporte directo y voz en lo que se construya después.
Escríbeme: hello@digline.dev o abre una issue en GitHub
Empieza con una suite y un run aprobado.
La guía no requiere ninguna clave.
pip install digline
por qué un hash no era suficiente → míralo en tu propia suite → qué puede y qué no puede hacer un agente → en qué se diferencia de las herramientas que conoces →