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.
3.1 KiB
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
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 viaWIKITOOL_SESSION_IDoder PPID der aufrufenden Shell). Ab 30 Aufrufen in einer Session verweigert jeder weitere Aufruf die Ausführung (ERROR), bis der Nutzer explizit mit--override-budgetzustimmt. - 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 intools/README.md/README.md.