Trinity ist ab heute öffentlich auf GitHub, unter MIT-Lizenz. Aus dem Security-Experiment mit vier fest verdrahteten Agenten ist ein kleines Terminal-Tool geworden, in dem du selbst festlegst, wer diskutiert und worüber. Geblieben ist der Kern: Jeder Beitrag wird in eine BLAKE3-Hash-Kette gehängt, am Ende steht ein Protokoll, das sich nachprüfen lässt.
Repository: github.com/NeoBild/Trinity
Was Trinity jetzt ist
Du beschreibst beim Setup einen Zweck, legst beliebig viele Personas an (Name, Rolle, Systemprompt) und gibst die Themen vor. Trinity lässt die Personas dann reihum diskutieren: Jede bekommt den bisherigen Verlauf und soll aus ihrer Perspektive genau einen neuen Punkt beitragen. Das Ergebnis ist ein Markdown-Protokoll, in dem jeder Beitrag mit seinem Hash steht.
Als Modell dient jeder Server mit OpenAI-kompatibler Chat-Schnittstelle: llama-server aus llama.cpp, llama-swap, Ollama, vLLM oder ein gehosteter Dienst. Bei mir läuft es lokal gegen Llama 3.2 3B auf einem ThinkPad ohne GPU. Abhängigkeiten gibt es genau zwei: blake3 und requests.
Warum nicht mehr nur Security
Wer die früheren Artikel zu Trinity kennt: Dominus, Axiom, Cipher und Vector haben dort CVEs und Prompt-Injection-Techniken zerlegt. Über die Monate sind daraus drei parallele Implementierungen geworden, dazu zwei Web-Oberflächen, Termux-Startskripte und ein Wiki-Builder. Die vier Namen standen im Code, ihre Rollen wechselten je nach Datei. Nachbauen konnte das von außen praktisch niemand.
Die Idee dahinter war nie auf Security beschränkt. Mehrere Perspektiven, die sich nacheinander aufeinander beziehen, und ein Verlauf, den niemand stillschweigend umschreiben kann, das taugt genauso für eine Architekturentscheidung, eine Produktidee oder eine Vereinsdiskussion. Deshalb ist Trinity jetzt generisch. Die vier Security-Personas gibt es weiter, aber nur noch als mitgeliefertes Beispiel-Preset security-audit. Die Security-Anwendung selbst baue ich separat direkt im NeoBild-Dashboard neu auf.
Beim Umbau ist vieles weggefallen: die Web-UIs, die Android-Launcher, Online-Abrufe, veraltete Doku. Übrig sind rund 650 Zeilen Python, die man an einem Abend komplett lesen kann.
So funktioniert die Hash-Kette
Jeder Eintrag in chain.jsonl besteht aus dem Beitrag selbst, seinem Hash und dem Hash des Vorgängers. Der Hash wird über beides zusammen gebildet:
hash = BLAKE3(eintrag + vorheriger_hash)
Der erste Eintrag hängt an einem Startwert aus 64 Nullen. Ändert jemand nachträglich ein einziges Wort in einem alten Beitrag, stimmt dessen Hash nicht mehr, und damit auch keiner der folgenden. trinity verify findet die Stelle:
$ trinity verify runs/20260925-223200-plan-a-shared-vegetable-garden/
OK — 7 entries, chain intact
$ trinity verify manipuliert.jsonl
BROKEN at entry 4 (3 valid entries before it)
Neu ist, dass der erste Eintrag das komplette Setup festhält: Zweck, Themen, Personas mit ihren Prompts und das verwendete Modell. So lässt sich später nicht nur prüfen, ob das Protokoll unverändert ist, sondern auch, unter welchen Vorgaben es entstanden ist. Den Mechanismus selbst habe ich unverändert übernommen, die alten Ketten aus dem Security-Betrieb prüft das neue Tool weiterhin als intakt.
Eine Grenze gehört dazu: Die Kette beweist Unverändertheit, nicht Wahrheit. Was ein 3B-Modell behauptet, bleibt eine Behauptung, sie ist dann eben nachvollziehbar protokolliert.
Ausprobieren
git clone https://github.com/NeoBild/Trinity
cd Trinity
pip install .
trinity setup # fragt Zweck, Personas, Themen und Modell-Endpunkt ab
trinity run
Braucht dein Endpunkt einen API-Key, kommt der in die Umgebungsvariable TRINITY_API_KEY. In Config und Logs landet er nicht. Für den ersten Test habe ich übrigens bewusst nichts mit Security genommen: Eine Kleingärtnerin, ein Hausmeister mit Budgetverantwortung und ein neunjähriges Kind planen einen Gemüsegarten auf dem Dach eines Berliner Mietshauses. Die drei widersprechen sich tatsächlich, und alle sechs Beiträge stehen sauber verkettet im Protokoll.
Mitmachen
Trinity ist aus meinem älteren GitHub-Account hervorgegangen, auf den ich keinen Zugriff mehr habe. Mit dem Neustart unter der NeoBild-Organisation ist es jetzt ein offenes Projekt. Forke es, bau dir eigene Presets, probier andere Modelle aus. Ideen, die ich spannend fände: weitere Presets für andere Einsatzzwecke, ein Export des Protokolls mit eingebetteter Prüfung, oder ein Modus, in dem eine Persona am Ende zusammenfasst.
Issues und Pull Requests gern direkt im Repository . Und wenn du es mit einem eigenen Persona-Set laufen lässt: Schreib unten in die Kommentare, welche Runde dabei herausgekommen ist.

Kommentare