Files
chemenu/raw/notes/llm-improvements-production-agent-gaps.md
torben 18ae28f918
CI / verify (push) Failing after 32s
Release / release (push) Successful in 38s
Chemenu 2.1.0 - deterministischer Wissenskompiler
Chemenu kompiliert Rohnotizen zu einem verlinkten, quellengebundenen Wiki:
raw/ -> types/ + tools/ -> kb/ -> reports/. Was mechanisch ist, macht
tools/wikitool; was Urteil braucht, macht ein Agent unter Contracts, deren
Grenzen in Code durchgesetzt sind statt im Prompt.

Dieser Commit ist der Startpunkt der oeffentlichen Historie. Die vorherige
Entwicklung fand in einer privaten Instanz statt und ist nicht Teil dieses
Repositorys; ihre Erzaehlung steht vollstaendig in CHANGES.md, das mit 44
Eintraegen von 0.1.0 bis 2.1.0 erhalten geblieben ist.

Der mitgelieferte Korpus ist ein Testbett und eine Demo: 170 Seiten ueber den
Stack selbst - Gates, Lint, Versionierung, Suche, das Wiki-Muster. Er
dokumentiert das Werkzeug mit den eigenen Mitteln des Werkzeugs.

Lizenz: AGPL-3.0 fuer den Stack (tools/, types/), CC-BY-4.0 fuer die Inhalte.
Die Grenze zwischen beiden ist der Dateiplan, den dist export berechnet -
siehe NOTICE.
2026-09-01 16:26:14 +02:00

45 lines
3.1 KiB
Markdown

> Aspekt aus einer externen Analyse ("Production-Ready AI Agent in 2026"), vom Nutzer per Chat
> eingebracht am 2026-08-07 zur Korrektur/Umsetzung im AGENTS.md/wikitool-Setup dieses Repos.
> Referenz: [dzone.com - Building a Production-Ready AI Agent in 2026](https://dzone.com/articles/building-a-production-ready-ai-agent-in-2026)
**Keine Iterations-/Kostengrenzen.** Es gibt keine Regel wie "brich nach N Schritten ab" oder "bei
Unsicherheit nach 3 Versuchen an Menschen eskalieren". Für ein Ingest/Lint, das potenziell über
hunderte Seiten iteriert, ist das im 2026-Produktionsstandard ein Pflichtfeld.
## Lücke 3: Keine Iterations- oder Kostengrenzen
Der Hintergrund: Praktisch jeder dokumentierte Fall von "Agent hat über Nacht ein Budget verbrannt"
hat dieselbe Ursache: Es gab keine hart im Code (nicht im Prompt) erzwungene Obergrenze für
Tool-Calls, Tokens oder Kosten pro Lauf. Aktuelle Guidance nennt konkrete Richtwerte - 5 bis 15
Tool-Calls pro einfacher Aufgabe, 15 bis 25 bei komplexeren Multi-Tool-Workflows, alles über 30 als
Alarmsignal für schlechte Aufgabenzerlegung. Ein zusätzlicher, oft übersehener Schutz ist ein
"Loop-Breaker": Wenn die letzten N Tool-Calls zu >90% identische Argumente haben, wird abgebrochen,
auch wenn das Iterationslimit noch nicht erreicht ist - das fängt Fälle, in denen das Modell in
einer Sackgasse "höflich weiterprobiert".
Warum das bei dir konkret zählt: Der wiki-ingest-Skill iteriert potenziell über viele
Entity-/Concept-Seiten, Cross-Refs und Lint-Durchläufe pro einzelner Quelle. Ohne dokumentierte
Obergrenze besteht das Risiko, dass ein einzelner Ingest-Lauf bei einer komplexen Quelle (z. B. dem
2,4-MB-JSONL-Transkript, das im Repo liegt) unbegrenzt viele Seiten anlegt oder wiederholt an
derselben Cross-Referenz-Verknüpfung "hängen bleibt", weil kein Mechanismus sagt "nach X
erfolglosen Versuchen: abbrechen und Nutzer informieren". Das ist bei einem lokalen, kostenfreien
CLI-Tool zwar kein Geld-Risiko wie bei einer API-abhängigen Produktionsanwendung, aber sehr wohl
ein Qualitätsrisiko: unkontrolliertes Wachstum der wiki/-Struktur, das genau die
"Anti-Cramming"- und "Index-Scaling"-Probleme erzeugt, die im Wiki selbst schon als Konzeptseiten
dokumentiert, aber nicht durchgesetzt sind.
## Umsetzung (2026-08-07)
Implementiert als code-erzwungenes Gate in `tools/wikitool` (nicht nur als Prompt-Regel), analog
zum bereits bestehenden Mass-Update Gate in `publish`:
- **Iteration Budget Gate:** Jede `wikitool`-Invocation wird pro Session gezählt
(`tools/.wikitool_session/budget.json`, session-scoped via `WIKITOOL_SESSION_ID` oder PPID der
aufrufenden Shell). Ab 30 Aufrufen in einer Session verweigert jeder weitere Aufruf die
Ausführung (`ERROR`), bis der Nutzer explizit mit `--override-budget` zustimmt.
- **Loop-Breaker:** Unabhängig vom Gesamtzähler wird ein Aufruf sofort verweigert, wenn die letzten
3 Aufrufe in der Session Kommando + Argumente identisch waren.
- **Sichtbarkeit:** `tools/wikitool budget status` / `budget reset [--all]`.
- Dokumentiert in AGENTS.md unter "Iteration and Cost Limits", referenziert in den
`wiki-ingest`/`wiki-lint`-Skills und in `tools/README.md`/`README.md`.