Zwei Spuren, ein Signal¶
Ausbauplan, 28.08.2026. Wie Lenny so auskunftsfähig wird wie ein Sprachmodell - ohne aufzuhören, Lenny zu sein.
Der Plan teilt die Arbeit an der Naht, die die Architektur ohnehin vorsieht, damit zwei Leute gleichzeitig daran bauen können, ohne sich in die Quere zu kommen.
Als Seite: https://claude.ai/code/artifact/f2a99b38-5f1e-4540-8aa6-7112f1c649db Diese Datei ist die maßgebliche Fassung - die Seite ist dieselbe Sache, nur lesbarer für Menschen.
Das Ziel, ehrlich gefasst¶
„Genauso fähig wie eine KI" ist als Vorgabe zu ungenau, um danach zu bauen.
Ein Sprachmodell wirkt fähig, weil es immer antwortet. Lenny darf das nicht - seine Doktrin verbietet genau das. Das Ziel ist deshalb nicht Nachahmung, sondern:
Lenny beantwortet frei formulierte Fragen in gutem Deutsch aus verketteten, belegten Fakten - und sagt klar, wenn er etwas nicht weiß.
Wo er etwas weiß, soll er so flüssig und vielseitig antworten wie ein Sprachmodell. Wo er nichts weiß, bleibt er still statt zu erfinden. Das ist kein Rückschritt gegenüber einer KI, sondern der Unterschied, für den ein Kunde bezahlt: überprüfbar.
Vier Dinge fehlen dafür heute, alle gemessen und nicht vermutet:
- Er versteht nur Schablonen. „Wozu dient X?" brauchte am 27.08. einen eigenen Sonderfall, „Wie funktioniert X?" gleich noch einen. Frei formulierte Fragen fallen durch.
- Er formuliert steif. „Katze ist Fauna und scharf." Heute deckt das Sprachmodell diese Lücke - und erfindet dabei.
- Er weiß, was Dinge sind, kaum was sie tun. 96,7 % Taxonomie gegen 3,3 % Handlung. Kausales Wissen praktisch null.
- Er antwortet in einem Schritt. Ketten über zwei oder drei Fakten erzeugt der Denk-Pass, aber der Antwortpfad nutzt sie nicht.
Die Naht¶
Retrieval → Treffergüte → Schichten L·U·F → [ SIGNAL + GRUNDLAGE ] → Formulierung → Fußzeile
\_________________ Spur B: Wissen _______/ \___ Spur A: Sprache ___/
Links der Mitte entsteht, was gesagt wird. Rechts davon, wie. Diese Trennung ist keine Erfindung für diesen Plan - sie steht seit Juli im Zielbild („Signal → externes, austauschbares Brain") und existiert im Code als Datenstruktur, die bei jeder Antwort durchlaufen wird.
Deshalb kann Spur B alles links davon umbauen und Spur A alles rechts davon, ohne dass sich beide absprechen müssen - solange die Naht selbst festliegt.
Die Naht hat zwei Richtungen, nicht eine:
| Richtung | Wer gibt | Was |
|---|---|---|
ANFRAGE |
A → B | was gefragt wird (aus der Frage-Deutung) |
BEFUND |
B → A | was gefunden wurde (aus Retrieval + Schichten) |
S0 - der gemeinsame Auftakt · fertig¶
core/spur_vertrag.py + core/test_spur_vertrag.py
Die Zusage, gegen die beide Spuren testen. Drei Dinge erzwingt sie, alle aus der Doktrin:
- „Unklar" und „nichts gefunden" sind gültige Ergebnisse, keine Fehler.
Eine Naht, die nur Erfolg transportieren kann, zwingt beide Seiten zum
Raten.
nichts_gefundenohne Grund ist ein Vertragsfehler. - Jedes Faktum trägt Schicht, Belegart und Fundstelle. Kein anonymes Wissen. Die Belegart ist eine geschlossene Menge, damit die Sprachseite die Fußzeile ableiten statt raten kann.
- Fehlende Bedeutung wird nicht durch Vorgabewerte ersetzt. Geprüft wird, was fehlt, statt es aufzufüllen.
Vier Nachbesserungen aus dem Review von Chris' KI sind eingearbeitet:
strukturierte belegart, vollständige Signal-Prüfung, ABSICHT_UNKLAR darf
ein Subjekt tragen, und sicherheit hat eine vereinbarte Wirkung
(SICHERHEIT_RUECKFRAGE_UNTER).
Spur A · Sprache¶
Verstehen und formulieren. Alles rechts der Naht.
A1 - Frage-Deutung an einer Stelle¶
Ein Modul, das aus freiem Text die Absicht liest: was, wer, wie, warum, wozu,
welche, wann, wo, Vergleich, Zusammenfassung, Ja/Nein. Ausgabe ist die
ANFRAGE aus S0. „Nicht verstanden" ist ein gültiges Ergebnis.
Warum: Heute liegt die Zerlegung in drei Modulen mit je eigenen Mustern. Deshalb brauchte „Wozu dient X?" einen Sonderfall - und „Wie funktioniert X?" gleich noch einen.
Fertig, wenn ein fester Satz von 100 frei formulierten Fragen zerlegt wird und jede Ablehnung begründet ist.
A2 - Formulierung, die Deutsch kann¶
Deklination, Artikel, Satzverbindung, Pronomen, Aufzählung. Das geerntete
Lexikon ist der erste Baustein und liegt seit dem 28.08. im Antwortpfad
(LENNY_ENABLE_LEXIKON_GENUS=1); Plural fehlt noch und kommt aus derselben
Quelle.
Warum: „Katze ist Fauna und scharf" ist heute Lennys eigene Stimme. Solange sie so klingt, muss das Sprachmodell davor - und dann erfindet es.
Fertig, wenn Lennys eigene Fassung bei Definitionsantworten in einem blinden Vergleich nicht mehr als die schlechtere erkannt wird.
A3 - Das Sprachmodell klassenweise ablösen¶
Erst Definitionsantworten, dann Handlungsantworten, dann mehrgliedrige. Jede Klasse einzeln, und nur dann, wenn Lennys Fassung die des Modells auf einem festen Prüfsatz schlägt.
Warum: Hier fällt auch der Umbau an, den die Nacht zum 28.08. ergeben hat:
das Sprachrohr bekommt sein Rohmaterial aus einem anderen Zweig als dem, in dem
die Schichten sitzen (api_server.py:3682 gegen :3743). Ohne diesen Umbau
wäre ein Umschalten das schlechtere von beidem - weniger Auskunft und kein
Firmenwissen.
Fertig, wenn eine Antwortklasse ohne Sprachmodell ausgeliefert wird und die Erfindungsrate dieser Klasse bei null liegt.
A4 - Nachfragen statt raten¶
Ist die Deutung mehrdeutig (sicherheit < SICHERHEIT_RUECKFRAGE_UNTER), fragt
Lenny zurück, statt sich für eine Lesart zu entscheiden.
Warum: Das ist die Fähigkeit, die ein Sprachmodell am ehesten intelligent wirken lässt - und die einzige, die zur Doktrin passt, weil Nachfragen das Gegenteil von Raten ist.
Fertig, wenn mehrdeutige Fragen eine Rückfrage statt einer geratenen Antwort erzeugen.
Spur B · Wissen¶
Dichte und Verkettung. Alles links der Naht.
B1 - Handlungswissen dichter ernten¶
Verben mit ihrer Argumentstruktur statt nur Verb und Objekt. Das Numerus-Feld liegt seit dem 27.08. an der Kante; die Ernte kann darauf aufbauen.
Warum: 3,3 % der Wissenskanten sind aktional. Lenny weiß, dass eine Biene ein Insekt ist, aber selten, was sie tut. Genau daraus bestehen die meisten echten Fragen.
Fertig, wenn der aktionale Anteil im Zufluss über 15 % liegt (heute 6,4 %) und der Numerus-Split die echte Fehlerquote zeigt.
B2 - Kausales und bedingtes Wissen¶
„weil", „damit", „führt zu", „verhindert", „setzt voraus". Eine eigene Erntestrecke mit eigener Belegprüfung, weil ein Kausalsatz strenger belegt sein muss als eine Zuordnung.
Warum: Heute praktisch nicht vorhanden. „Warum ist X ein Y?" kann Lenny nur beantworten, indem er die Zuordnung wiederholt - das ist der Unterschied, den man einem Sprachmodell sofort anmerkt.
Fertig, wenn „Warum"-Fragen aus kausalen Kanten beantwortet werden statt aus der Taxonomie.
B3 - Ketten im Antwortpfad zulassen¶
Antworten aus zwei bis drei verknüpften Fakten, mit der Kette als Beleg
mitgeliefert. Das Feld kette steht in S0 bereits bereit.
Warum: Ein Sprachmodell wirkt vor allem deshalb schlau, weil es Zwischenschritte verbindet. Lenny kann das nachweisbar besser, weil er jeden Schritt zeigen kann - er tut es nur nicht.
Fertig, wenn eine Antwort aus einer belegten Zwei-Schritt-Kette entsteht und die Kette im Trace nachvollziehbar ist.
B4 - Lücken selbst erkennen¶
Konnte Lenny eine Frage nicht beantworten, notiert er, welches Wissen ihm dafür gefehlt hätte, und stellt es der Ernte in die Schlange.
Warum: Damit schließt sich der Kreis: heute erntet Lenny nach Themenlisten, nicht nach Bedarf. Vorstufe zu dem, was im Juli als Selbst-Fähigkeit skizziert wurde.
Fertig, wenn unbeantwortete Fragen messbar zu gezielten Ernteaufträgen führen.
Die eine Stelle, an der ihr euch treffen könnt¶
Beide Spuren müssen irgendwann api_server.py und ask_lenny.py anfassen -
dort läuft die Antwort zusammen. Das ist die einzige echte Kollisionsgefahr im
ganzen Plan.
Die Regel dagegen: jede Spur bekommt in diesen zwei Dateien eine benannte Einstiegsfunktion und ändert sonst nichts. Spur B ruft an ihrer Stelle das Signal zusammen, Spur A nimmt es an ihrer entgegen. Alles andere wächst in eigenen Modulen.
Wer die Regel bricht, merkt es beim Zusammenführen - und dann kostet es einen Tag statt fünf Minuten.
Wem was gehört¶
| Spur A · Sprache | Spur B · Wissen |
|---|---|
core/frage_deutung.py (neu) |
training_automation/ |
core/*_recognition.py |
core/thinking_pass.py |
core/fragment_bound_surface_generation.py |
core/signal_mixer.py |
core/open_predicate_answer.py |
core/schichten.py |
core/german_noun_gender.py |
core/schwelle.py |
core/fusszeilen.py |
tools/relation_diversity_report.py |
core/spur_vertrag.py gehört beiden - und wird nur gemeinsam geändert.
Reihenfolge¶
- Zuerst gemeinsam: S0, der Vertrag. Erledigt.
- Dann parallel: A1 und B1 können am selben Tag beginnen. Keine braucht die andere.
- A2 und B2 laufen ebenfalls unabhängig. A2 hat mit dem Lexikon bereits einen Baustein im Betrieb.
- A3 ist die erste Stelle mit Außenwirkung. Ab hier ändern sich Antworten für Nutzer - vorher nicht.
- B3 setzt A1 voraus, aber nur die Zusage aus dem Vertrag, nicht die fertige Umsetzung. Gegen die Beispiele in S0 kann B3 vorher gebaut werden.
- B4 zuletzt. Es braucht A1, um zu wissen, was gefehlt hat.
Jede Stufe hat eine Bedingung, an der man sieht, ob sie fertig ist - nicht „gebaut", sondern gemessen. Das ist Absicht: dieser Plan ist an einem Tag entstanden, an dem viermal eine Anzeige mehr behauptet hat, als tatsächlich geschehen war.