feat: harden Qwen agentic tool orchestration

This commit is contained in:
Mikei386
2026-08-24 10:47:13 +02:00
parent 4ac0c479c4
commit 5cb6079918
11 changed files with 371 additions and 62 deletions
+16 -3
View File
@@ -27,10 +27,15 @@ benötigte deshalb kleinere, klarere Werkzeuge und harte Abbruchgrenzen.
damit führen deutsche Bankexporte nicht mehr unnötig zuerst zu einem
ParserError wegen einer falschen Spaltenzahl. Tabellenanalysen sollen im
Regelfall mit einer Erkennungs- und einer Auswertungsrunde auskommen.
4. Pro Antwort sind höchstens acht Werkzeugrunden und sechs tatsächlich
ausgeführte Einzelaufrufe erlaubt. Das abgeleitete,
4. Pro Antwort sind höchstens 16 interne Werkzeugrunden und zwölf tatsächlich
ausgeführte Einzelaufrufe erlaubt. Pro konkretem Werkzeug sind höchstens
vier unterschiedliche Aufrufe zulässig; identische Argumente werden kein
zweites Mal ausgeführt. Die zusätzlichen vier internen Runden sind nur
Synthesepuffer und erhöhen nicht das Ausführungsbudget. Das abgeleitete,
reproduzierbar gebaute OpenWebUI-Image verwendet die letzte Runde zwingend
als werkzeugfreie Synthese. Statt `Tool-call limit reached` ohne Ergebnis
als werkzeugfreie Synthese. Erzeugt das Modell trotz entfernter Schemata
noch einmal werkzeugförmige Ausgabe, folgt genau ein zweiter, ebenfalls
werkzeugloser Syntheseversuch. Statt `Tool-call limit reached` ohne Ergebnis
erhält der Benutzer deshalb eine sichtbare Antwort aus den vorhandenen
Befunden samt ehrlicher Angabe fehlender Belege. Inlet-Filter allein können
dies nicht erzwingen, weil sie zwischen OpenWebUIs internen Werkzeugrunden
@@ -50,6 +55,14 @@ benötigte deshalb kleinere, klarere Werkzeuge und harte Abbruchgrenzen.
er auch vom Außenstandort über WireGuard.
7. Task-Management ist keine Faktenquelle und wird nicht für einzelne Fragen,
Nachschlageaufgaben oder Dateianalysen verwendet.
8. Mehrdomänen-Aufgaben erhalten automatisch höchstens drei passende
Fachkataloge und ein begrenztes Qwen-Reasoning-Budget. Einfache Ein-Domänen-
Aufgaben bleiben im schnellen Non-Thinking-Modus. Alle llama.cpp-Profile
bewahren Reasoning-Zustand zwischen Werkzeugrunden (`--reasoning-preserve`).
9. Wiederkehrende Fachsuchen werden serverseitig gebündelt: Home Assistant
inventarisiert auskommentierte YAML-Blöcke in einem Aufruf; MUA durchsucht
Community Applications mit mehreren Namensvarianten in einem Feed-Durchlauf
und filtert Containerlogs mit mehreren `focus_terms` in einem Aufruf.
## Abnahme