Lokal-first · Rust · lokale LLMs

Ein Morning Briefing,
das sich jeden Tag selbst verbessert.

ibrief erstellt über Nacht ein kuratiertes Briefing, das auf eine konkrete Person zugeschnitten ist — und misst dann, was wirklich nützlich war, um sich anzupassen. 5 Minuten Signal statt Stunden Rauschen. Vollständig lokal auf einem Apple-Silicon-Rechner.

  • weiterentwickeln
  • am Ball bleiben
  • gute Entscheidungen
  • interessante Gespräche

Designphilosophie

Das Gedächtnis ist das Produkt — nicht das Modell.

ibrief folgt einer „LLM-OS"-Haltung: das LLM ist ein austauschbarer Rechenkern, der Wert liegt im persistenten, versionierten Zustand. Selbstverbesserung läuft auf der Leine — vorschlagen, gegen reales Feedback verifizieren, absichern, übernehmen, zurückrollen.

// austauschbar

Modell ≠ Lock-in

Gelernt werden nur Daten-Artefakte — Gewichte, Prompts, Quellen. Nie der Anwendungscode. Die Config überlebt jeden Modellwechsel.

// autonomy slider

Auf der Leine

Jede vorgeschlagene Änderung durchläuft ein Safety Gate, bevor sie Default wird. Verifikation ist billiger als Generierung — viel vorschlagen, wenig (Geprüftes) übernehmen.

// anti-blase

Engagement ist nicht das Ziel

Ein naiver Engagement-Optimierer macht dich bequemer, aber dümmer. ibrief opfert bewusst kurzfristigen Score, um Diversität und Anti-Blase-Invarianten zu halten.

// gated autoresearch

Tiefe, kontrolliert

Mehrstufige Recherche (Karpathy-Style) ist mächtig, aber teuer und halluzinationsanfällig — daher ein budgetiertes, belegpflichtiges Modul, kein freilaufender Agent.

Der Selbstverbesserungs-Kreis

Ausliefern → Feedback → Bewerten → Lernen → Absichern.

Jede Nacht läuft die gleiche Schleife. Was nützlich war, verstärkt sich; was nicht, verblasst — innerhalb harter Sicherheitsgrenzen.

01

Deliver

Briefing erzeugen & pushen

02

Feedback

👍/👎 via Telegram-Buttons

03

Eval

Verhalten + Judge + Struktur

04

Learn

Gewichte · Prompts · Quellen

05

Gate

prüfen · übernehmen · rollback

↺ Der Verhaltens-Score ist die Ground Truth; der LLM-Judge dient v.a. im Cold-Start und wird gegen reales Feedback kalibriert.

Drei Achsen, jede abgesichert

Selbstverbesserung ist kein Feature — es sind drei.

AchseHebelAbsicherung
Gewichte
Quellen & Themen
Multi-Armed-Bandit (Thompson / Beta-Sampling) mit Exploration-Floor [0.2, 2.0]
Safety Gate: Grenzen + Quellen-Diversität (max 50 %), versioniert, Rollback
Prompts
z. B. TL;DR-Synthese
Optimizer-LLM erzeugt Varianten; Schatten-Test bewertet beide am selben Input
Adoption nur bei klarer Judge-Marge; Prompt-Versionierung + Experiment-Log
Quellen
Feed-Registry
Qualitäts-Scoring aus Feedback + Selektionshäufigkeit; schwache aussortieren
Drift-Wächter (HHI): bei Verengung wird Pruning ausgesetzt — Breite vor Score

Die nächtliche Pipeline

Vom Rohfeed zum kuratierten Briefing.

IngestDedupEnrichScore (Gewichte)CurateTL;DR (gelernter Prompt)RenderPersistPush

Das Massen-Tier (Zusammenfassen, Tagging) läuft auf einem schnellen kleinen Modell, das Synthese-Tier (Kuratierung, Judge) auf einem 70B-Klasse-Modell — beide lokal. Der gesamte Lernzyklus läuft über Nacht praktisch kostenlos; ein Frontier-Modell wird nur optional zur Judge-Kalibrierung über ein bestehendes Abo (claude -p) hinzugezogen.

Anatomie eines Briefings

Drei Abschnitte mit klarer Absicht.

Die letzten beiden sind durch Personalisierung nicht wegoptimierbar. Der Lern-Loop kann dich nicht in eine bequeme Blase optimieren.

Highlights

Die wichtigsten Meldungen des Tages — personalisiert über die gelernten Gewichte. Plus „Die 3 Dinge heute" als Executive Summary.

Gegenperspektive fix

Ein ernsthaft dargestelltes, fair argumentiertes Gegenargument (Steelman) zu deiner eigenen Position — damit du in Gesprächen die andere Seite kennst, statt in der Blase zu argumentieren.

Wildcard fix

Ein bewusst überraschender, echter Artikel außerhalb deiner üblichen Interessen — bevorzugt aus einer Quelle, die es nicht in die Hauptauswahl geschafft hat.

Roadmap — vollständig implementiert

Sechs Meilensteine, jeder eigenständig nützlich.

M1

Statisches Briefing

Ingest → Enrich → Curate → Render gegen lokales Ollama.

M2

Persistenz & Feedback

SQLite (sqlx), Dedup, Briefing-Records; Telegram-Push mit 👍/👎-Buttons.

M3

Eval Engine

Verhaltens-Score + LLM-Judge gegen versionierte Rubrik + deterministische Strukturchecks.

M4

Lernen: Gewichte

Thompson-Bandit über Quellen/Themen, Safety Gate, Config-Versionierung & Rollback.

M5

Lernen: Prompts

Optimizer-LLM + Schatten-Test; temporales A/B-Entscheidungs-Primitiv.

M6

Quellen-Evolution + AutoResearch

Scoring, Pruning, Drift-Wächter; gated Deep-Research-Loop mit Beleg-Verifikation.

Schnellstart

Lokal in zwei Minuten.

Voraussetzung: Ollama mit einem Massen- und einem Synthese-Modell. Auf kleinerer Hardware einfach kleinere Modelle in config/profile.toml eintragen.

# Modelle holen
ollama pull qwen2.5:14b      # Massen-Tier (Enrich)
ollama pull llama3.3:70b     # Synthese-Tier (TL;DR, Judge)

# Briefing erzeugen
cargo run -p ibrief-app                 # = brief

# Lernen & Optimieren
cargo run -p ibrief-app -- eval       # heutiges Briefing bewerten
cargo run -p ibrief-app -- learn      # Gewichte lernen (Thompson + Gate)
cargo run -p ibrief-app -- optimize   # TL;DR-Prompt im Schatten-Test verbessern
cargo run -p ibrief-app -- sources evolve   # Quellen bewerten + Drift-Wächter
cargo run -p ibrief-app -- research "Was ist neu bei lokalen LLMs?"

Tech-Stack

Rust 1.95 · Edition 2024Tokio asyncOllama lokale LLMssqlx + SQLitefeed-rs Ingestreqwest Telegram-APIrand_distr Thompson12 Crates · CI grün

FAQ

Häufige Fragen.

Was ist ibrief?

Ein selbstverbesserndes, personalisiertes Morning Briefing. Es erstellt über Nacht ein kuratiertes Briefing und passt sich täglich an gemessenes Feedback an — vollständig lokal in Rust, mit lokalen LLMs via Ollama.

Wie verbessert sich ibrief selbst?

Auf drei abgesicherten Achsen: Gewichte (Thompson-Bandit), Prompts (Schatten-Test) und Quellen (Scoring plus Drift-Wächter). Jede Änderung durchläuft ein Safety Gate und ist versioniert und reversibel.

Wie vermeidet ibrief eine Filterblase?

Engagement ist nicht das Optimierungsziel. Zwei Sektionen — Gegenperspektive und Wildcard — sind nicht abschaltbar, und ein Drift-Wächter erzwingt Quellen-Diversität, auch auf Kosten des kurzfristigen Scores.

Brauche ich eine Cloud-API?

Nein. ibrief läuft vollständig lokal mit Ollama. Ein Cloud-Frontier-Modell ist optional und nur zur periodischen Judge-Kalibrierung über ein bestehendes Abo (claude -p) vorgesehen.