Parallel Tool Calling: Das Modell instruieren, unabhängige Recherchen (z. B. 3 Charaktere gleichzeitig) in einem einzigen Schritt als paralleles Tool-Calling-Array anzufordern.
Stream-Modus / WebSockets: Dem Benutzer während der Denkpause Zwischenschritte ("Suche Vaelin im Kanon...") in Echtzeit anzeigen, um die gefühlte Wartezeit zu minimieren.
persist_scene ➔ Szene wird in Directus angelegt (Erfolg).
record_lore_state ➔ State-Patch soll gespeichert werden (Netzwerk-Timeout oder Directus-Fehler).
Ergebnis: Die Szene ist in der Datenbank vorhanden, aber die daraus resultierende Verwundung der Figur fehlt! Das System befindet sich in einem inkonsistenten Zustand.
Mit jeder Tool-Ausführung wächst die Konversationshistorie im ReAct-Loop rasant an:
Jedes Suchergebnis aus Directus (auch ungenutzte Datenfelder) wird als Tool-Message in den Kontext zurückgeschrieben. Bei 5 Iterationen können 15.000+ Tokens zusammenkommen.
Tool Result Minification: Directus-Ergebnisse vor der Rückgabe an das LLM bereinigen (unwichtige Systemfelder wie created_at, updated_at, user_created herausfiltern).
Token Pruning: Bei langen Multi-Turn Chats alte Tool-Meldungen nach erfolgreicher Antwort aus dem Cache entfernen.
Wie in realen Testläufen beobachtet, können externe Provider wie Google Gemini plötzlich mit 429 RESOURCE_EXHAUSTED oder spending cap exceeded abbrechen.
Fällt Gemini aus, schwenkt LiteLLM innerhalb von Millisekunden transparent auf OpenAI oder Anthropic um, ohne dass der Fastify-Server einen Fehler bemerkt.