5.7 KB · updated 2026-07-31 · md

v0.27.0.de.md

docs/i18n/release-notes/v0.27.0.de.md

Tesserae v0.27.0 — Agenten können in den Graphen schreiben und ihn fragen, was er lizenziert

<!-- translations:start -->

English · 한국어 · 中文 · 日本語 · Русский · Español · Français

<!-- translations:end -->

Released 2026-07-26 · PyPI · GitHub release · pip install --upgrade tesserae==0.27.0

Bisher konnte ein Agent Tesserae nur Prosa übergeben und hoffen, dass der Extraktor die richtigen Typen zurück erriet. Diese Version öffnet den Schreibpfad und den Verifizierungspfad: Agenten zeichnen Erkenntnisse als typisierte Struktur auf und können den Graphen fragen, ob er einen Anspruch tatsächlich lizenziert.

Agenten schreiben typisierte Erkenntnisse

graph_write nimmt schemavalidierte typisierte Knoten und Kanten mit verbindlicher Provenienz entgegen. Es lehnt ab statt zu erzwingen — untypierte Kanten, Typen außerhalb des kontrollierten Vokabulars, hängende Endpunkte und fehlende Provenienz werden alle abgelehnt; doppelte Schreibvorgänge sind idempotent.

Von Agenten geschriebene Knoten überstehen eine vollständige Neukompilierung, ein gelöschtes graph.json, --limit und vollständige Corpus-Löschung. Unter adversariales Testen kamen 60 gleichzeitige Schreibvorgänge gegen eine Live-Kompilierung durch mit null zerrissenen Lesevorgängen über 1.483 Lesevorgänge.

Agenten verifizieren anhand des Graphen

verify_claim beantwortet die Frage, ob der Graph ein Tripel lizenziert. Das Verdikt ist eine reine Funktion von Graphen-Bytes: kein LLM, kein Embedding, kein Fuzzy Matching irgendwo im Entscheidungspfad. Ein Verifizierer, der halluziniert, ist schlimmer als kein Verifizierer.

Es nimmt (subject, predicate, object) und hat keinen natürlichsprachigen Parameter — absichtlich. Sieben Verdikt, einschließlich PRESENT_UNEVIDENCED (die Kante existiert, aber nichts Dokumentgestütztes steht dahinter) und ABSENT („dieser Graph behauptet das nicht" — niemals eine Widerlegung).

Zwei Garantien, die es sich lohnt, klar auszusprechen. supersedes produziert niemals ein Verdikt: es sagt, dass ein Knoten ersetzt wurde, nicht dass ein Tripel falsch ist. Und ein Agentenschreibvorgang kann nur jemals eine Provenianzklasse schwächen, niemals eine erhöhen — nichts, das ein Agent behauptet, kann als dokumentgestützt präsentiert werden.

Weitere Verbesserungen

  • Semantische Entitätsauflösung. Embedding-geclusterte Kandidaten speisen nun die vorhandene Überprüfungswarteschlange statt automatischer Zusammenführung. Genauigkeit über Rückruf: eine falsche Zusammenführung fusioniert stumm zwei echte Entitäten und jedes nachgelagerte Traversal erbt den Fehler.
  • Frage-Form-Routing für ask. Graphen gewinnen Multi-Hop-, zeitliche und Synthesefragen und verlieren einfachen Faktenlookup und Kosten, daher Graph-Preise für alles zu zahlen ist ein Verlust. Die Routingentscheidung ist in der Hülle, also eine billige Antwort ist nachvollziehbar; --route überschreibt.
  • Gültigkeitsintervalle auf zeitlichen Fakten, abgeleitet von Quellzeitstempeln — niemals Wanduhrenzeit.
  • --llm-limit hält unter paralleler Extraktion. Seit v0.26.0 Extraktion parallel machte, ließ die alte Check-dann-Increment jeden Worker den Zähler lesen, bevor einer von ihnen ihn schrieb, also --llm-limit 1 kaufte einen Anruf pro Worker. Es ist ein Ausgabenlimit, daher schlägt es jetzt geschlossen fehl.
  • Kompilierungsabdeckung ist eine Invariante, keine Behauptung. Vier stille Datenverlustpfade geschlossen, dann die Maschinerie dahinter vollständig entferntcompile(loader=…) hat keinen Produktionsaufrufer, und diese Bibliotheks-API zu verteidigen war die Quelle jeden schwerwiegenden Defekts über mehrere Überprüfungsrunden. Einer davon war eine Regression die v0.26.0 selbst einführte.
  • Neue Dokumentation für die Schreib-, Verifizierungs- und Routing- Oberflächen.

Was nicht ausgeliefert wurde und warum

Ein Contrast Pass zum Abbau von contradicts_claim / derived_from / criticizes Kanten wurde gebaut, gemessen und gekürzt. Es prägte 0 Kanten aus 80 beurteilten Paaren über zwei echte Corpora, und 60 von 60 Richterbegründungen gaben den gleichen Grund: die Paare waren Nahe-Duplikate ohne etwas zum Widersprechen.

Die Ursache war strukturell. Kandidatenerzeugung blockiert auf gemeinsamen seltenen Tokens, die für Ähnlichkeit optimiert — aber Widerspruch und Ableitung halten zwischen Behauptungen, die unterschiedlich sind. Ein Redesign bewertete fünf neue Generatoren offline, bei null LLM-Kosten: das Hochvolumen-Gerät erzielte 0/10 bei manueller Inspektion (seine „widersprechenden Zahlen" waren arXiv-IDs und Veröffentlichungsdaten), und das einzige präzise produzierte sechs Kandidatenpaare auf einem Corpus und keins auf dem anderen.

Eine Kontrollausführung klärte es — Bewertung von 15 Begründungskanten, die bereits existieren zurückgegebener Rückruf 7/15. Der Richter arbeitete immer; die Kandidaten waren immer falsch.

Die REASONING_EDGE_RATIO Lint-Regel bleibt und pinnt die ehrliche Basislinie: 7,5% von Kanten tragen Argumentation, mit contradicts_claim, derived_from, attributes_improvement_to und criticizes bei null Instanzen.

Upgrade von v0.26.0

Drop-in. Wenn Sie TESSERAE_CONTRAST_PASS setzen, tut es nichts mehr — der Pass ist weg.