Open Source, Apache-2.0v1.0.3Mit einem KI-Modell aus dem Englischen übersetzt. Englisches Original vom 2026-10-30
Du hast einen Prompt geändert.Was ist sonst noch schlechter geworden?
Ein neuer Prompt, eine Modellversion, ein Bibliotheks-Upgrade. Die Anwendung läuft weiter, die Tests sind weiter grün, und eine Antwort, auf die sich dein Kunde verlassen hat, ist jetzt schlechter.
Schlechter oder nur anders? Lass dieselbe Suite zweimal laufen, und die Scores bewegen sich von selbst.
digline friert einen run, den du freigegeben hast, als Referenz ein und sagt dir, was sich dagegen verschoben hat.
pip install digline
Benötigt Python 3.12 oder neuer
Hier starten Warum eine Referenz im Repo
- Der Schnelleinstieg braucht keinen API-Schlüssel
- Kein Server, keine Telemetrie
- Exit-Code für CI
how-do-i-returnschlechter geworden
- llm_rubric
- 1.00 → 0.40
- contains
- 1.00 → 0.00
- Ebenfalls schlechter
- is-it-waterproof, where-is-my-order
-Sign every reply as "— Northwind Support".+Sign every reply as "— the Northwind team".
6 checks sind schlechter geworden. CI stoppt hier.exit 1
Das Problem
Eine LLM-Anwendung kann schlechter werden, ohne dass etwas kaputtgeht.
Die Tests laufen durch, die Anwendung antwortet, die Demo funktioniert. Dann ändert eine Prompt-Änderung, eine Modellversion oder ein Bibliotheks-Upgrade eine Antwort, auf die sich dein Kunde verlassen hat, und nichts in der Pipeline sagt es dir.
Wie es meistens läuft
- Die Evals erneut laufen lassen und auf den Durchschnitt schauen
- Keine Möglichkeit, einen echten Abfall von einem schlechten Tag des Judge zu unterscheiden
- Was freigegeben wurde und wann, steht in irgendjemandes Notizbuch
- Der Kunde findet die Regression zuerst
Mit einer freigegebenen Referenz im Repo
- Jede Änderung wird Fall für Fall verglichen
- Das Rauschen des Judge wird gemessen, und ein check kann verlangen, dass ein Abfall daran geprüft wird
- Die Referenz ist eine Datei in einem PR, mit einem Commit und einem Namen dazu
- CI stoppt früher als das Release
Wie es sich einfügt
Es liegt in deinem Repo, nicht auf einem Server.
Nichts, wofür man sich anmelden muss, und nichts zu hosten. Die Referenz ist eine Datei, und das Werkzeug ist ein Paket.
Die Referenz ist eine Datei in deinem Repo
Scores, Prompt- und Modellkonfiguration, neben dem Code eingecheckt. Sie ändert sich über einen PR, also gibt es zu jeder Freigabe einen Commit und einen Namen.
Eins Abhängigkeit, kein Provider-SDK
digline installiert jsonschema und sonst nichts Eigenes. Kein Server, keine Telemetrie, nichts Gehostetes. In CI ist der Exit-Code die gesamte Schnittstelle.
Provider
Je ein Plugin, das nur installiert wird, wenn du es nutzt.
- Anthropicdigline-anthropic
- OpenAIdigline-openai und jeden OpenAI-kompatiblen Endpunkt
- Amazon Bedrockdigline-bedrock
Ausgearbeitete Beispiele
Eine echte Anwendung je Framework, mit der zugehörigen Suite.
Weitere Wege, es auszuführen
Im Container oder für einen Agenten.
Befehle
Dreizehn Befehle, je eine Aufgabe.
Jeder Befehl hat seine eigene Seite oder einen Platz in der Anleitung.
- Aufzeichnen und freigeben
- Vergleichen
- Verlauf
- Wartung
-
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 and compare any two; promotes nothing -
digline rejudgejudge a stored run's recorded answers again, declaring the source -
digline migratebring stored runs and the baseline up to the current schema -
digline deleteremove a run, its journal legs and its replays across the tenant
Checks
Deterministisch zuerst, Judge zuletzt.
Heute 22 checks, in fünf Arten. Die Liste wächst; die Arten bleiben.
-
Deterministisch12
Kein Modell beteiligt. Gleiche Ausgabe, gleiches Urteil.
-
Vom Judge bewertet2
Ein zweites Modell bewertet die Antwort, und sein Rauschen wird gemessen.
-
Budgets2
Eine Obergrenze für Kosten oder Latenz, abgestuft bewertet statt bestanden/durchgefallen.
-
Aggregate4
Ein Urteil über den gesamten run.
-
Wrapper2
Übernimmt die Art des umschlossenen check.
Ohne Referenz und mit Referenz
Derselbe Eval-run, auf zwei Arten gelesen.
Zwischen zwei runs hat sich eine Zeile des Prompts geändert. Links die Scores, die du ohne Referenz bekommst. Rechts das, was digline gegen die freigegebene Referenz ausgibt.
Der neue run für sich allein keine Referenz
case llm_rubric containshow-do-i-return 0.40 0.00is-it-waterproof 0.40 0.00where-is-my-order 0.40 0.00Lagen die gestern bei 1.00? Hat sich etwas geändert?Hier steht nichts dazu.
digline compare gegen die Referenz
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.tenant 'northwind', against baseline 2026-10-31T13-26-05-235870-00-00-282b0c02d6511fb4 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 weitere Zeilenexit 1
Beide Spalten stammen aus demselben aufgezeichneten run, digline 1.0.3. Links stehen nur die neuen Scores; rechts die Ausgabe des Vergleichs, an den markierten Stellen gekürzt.
Ausprobieren
Der Schnelleinstieg läuft ohne API-Schlüssel.
Du brauchst Python 3.12 oder neuer. Die Anleitung läuft mit vorgefertigtem Modell und Judge, du siehst also den ganzen Ablauf, bevor du einen echten Provider anbindest.
digline runFührt die Suite aus und schreibt eine run-Datei.
digline promoteEin Mensch gibt diesen run als Referenz frei.
digline compareJeder spätere run wird dagegen geprüft.
$ pip install digline==1.0.3
$ digline run --suite support.py
2026-10-31T13-26-03-899807-00-00-282b0c02d6511fb4
$ digline promote --suite support.py --run latest --replacing none
tenant 'northwind' · support baseline set to 2026-10-31T13-26-03-899807-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.tenant 'northwind', against baseline 2026-10-31T13-26-03-899807-00-00-282b0c02d6511fb4
Ausgabe aufgezeichnet mit digline 1.0.3, run 2026-10-31T13-26-03-899807…. Vollständige Anleitung
In einem agentischen Ablauf
Wo der check sitzt, wenn ein Agent die Änderungen vornimmt.
Der Agent ändert, digline entscheidet, ob die Änderung weiterlaufen darf.
Roadmap
Wohin es geht
Ausgeliefert — Glaubwürdigkeit des Urteils: Ein check, der einen noise floor verlangt, bekommt ihn, gemessen an den eigenen Stichproben seiner Referenz, und ein check, der keinen verlangt, wird nach der Toleranz entschieden, die sein Autor geschrieben hat; offen ist jetzt die Verbreitung.
Zwei Dinge werden nie auf der Roadmap stehen. Ein gehosteter Dienst, der deine Nutzdaten entgegennimmt — Prompts, Ausgaben und der Judge bleiben in deinem Perimeter. Und niemals das Sammeln von Nutzungsdaten.
Pilotprojekte
Baust du LLM-Funktionen für Kunden?
Ich suche einige Pilotteams, die digline in echten Projekten einsetzen — besonders Teams, die KI-Lösungen für Dritte bauen und pflegen. Im Gegenzug bekommst du direkte Unterstützung und ein Mitspracherecht darüber, was als Nächstes entsteht.
Schreib mir: hello@digline.dev oder eröffne ein GitHub-Issue
Beginne mit einer Suite und einem freigegebenen run.
Für die Anleitung brauchst du keinen Schlüssel.
pip install digline
warum ein Hash nicht gereicht hat → sieh es an deiner eigenen Suite → was ein Agent kann und was nicht → wie es sich von den Werkzeugen unterscheidet, die du kennst →