docs: lokales LLM bekommt kuratierte Tool-Auswahl (Tool-Calling in B1 statt B3)
Qwen3 kann natives OpenAI-Tool-Calling; llama.cpp (--jinja) unterstuetzt es. Lokales Tier bekommt einen kleinen, risikoarmen Start-Satz (Wetter, memory_search, trigger_timer, Spotify, Licht); volles Arsenal bleibt bei Claude, Escalation-Netz bleibt. Klein halten = Speed. Plan-Entscheidungen + Phasen entsprechend gezogen. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -73,27 +73,53 @@ hat keine Tools; das ist ein Gespraechs-Eval-Modus, kein Voll-ARIA. Fast-Path
|
||||
Das lokale Modell braucht ARIAs Identität, sonst bricht es aus der Rolle
|
||||
(gelernt aus dem `--system-prompt`-Debakel). Aber **schlanker**:
|
||||
- IDENTITY_SEED + Kern-Persona: ja.
|
||||
- Volles Memory / alle Skill-Schemas / Tool-Block: **nein** (Tier 1 macht keine
|
||||
Tools). Hält den lokalen Prompt klein → schnell.
|
||||
- Volles Memory / ALLE Skill-Schemas: **nein** — nur eine **kuratierte, kleine
|
||||
Tool-Auswahl** (siehe unten). Haelt den lokalen Prompt klein → schnell.
|
||||
- Persona kommt lokal auch als echter System-Prompt (llama.cpp `system`-Rolle).
|
||||
|
||||
## Tool-Calling lokal (kuratierte Auswahl)
|
||||
|
||||
Das lokale LLM DARF Werkzeuge nutzen (Qwen3 = natives OpenAI-Tool-Calling, von
|
||||
llama.cpp `--jinja` unterstuetzt). Ablauf wie bei Claude: Brain schickt
|
||||
messages + tools → Qwen antwortet mit `tool_calls` → Brain fuehrt via
|
||||
`_dispatch_tool` aus → Ergebnis zurueck → finale Antwort. Tool-Loop im Brain,
|
||||
Ziel = lokales LLM statt Claude-Proxy.
|
||||
|
||||
**Kritische Regel: klein halten.** Der Wert des lokalen Tiers ist Speed; das
|
||||
volle Arsenal (~49 K Zeichen Schemas) wuerde den Prompt sprengen und das kleine
|
||||
Modell ueberfordern. Daher nur ein **Start-Satz haeufiger, risikoarmer Tools**:
|
||||
- Lokal: Wetter, Uhrzeit, `memory_search` (lesen), `trigger_timer`,
|
||||
Spotify-Steuerung (Nicht-Fast-Path-Saetze), Licht/Smart-Home.
|
||||
- Bleibt bei Claude: `skill_create/update/delete`, `oauth_*`, `project_*`,
|
||||
`flux_generate`, `memory_save` (schreiben) — erst spaeter evtl. lokal.
|
||||
|
||||
Escalation-Netz bleibt: braucht ein Turn ein Tool, das lokal nicht dabei ist →
|
||||
`<<ESCALATE>>` → Claude mit vollem Arsenal.
|
||||
|
||||
Implementierung (B1): Adapter reicht `tools` an llama.cpp + gibt `tool_calls`
|
||||
zurueck; Bridge schleust beides durch (llm_request/llm_response); Brain-Tool-Loop
|
||||
mit Ziel lokal.
|
||||
|
||||
## Phasen
|
||||
|
||||
- **B0 — Infra:** llama.cpp-Container + RVS-Adapter auf der Gamebox,
|
||||
`ALLOWED_TYPES`, `local_llm_chat()` im Brain. Isoliert testen („sag hallo").
|
||||
- **B1 — Router:** Heuristik Tier-1/2 + Escalation, schlanke Persona lokal.
|
||||
Einfache Turns → lokal. Messen: Trefferquote & Latenz.
|
||||
- **B1 — Router + lokale Tools:** Heuristik Tier-1/2 + Escalation, schlanke
|
||||
Persona lokal, **kuratierte Tool-Auswahl lokal** (Adapter/Bridge/Brain-Tool-
|
||||
Loop, siehe oben) + „Nur lokales LLM"-Checkbox. Einfache Turns → lokal.
|
||||
Messen: Trefferquote, Tool-Zuverlaessigkeit & Latenz.
|
||||
- **B2 — Streaming/Voice:** `llm_partial` → TTS beginnt beim ersten Satz →
|
||||
der „live"-Sprung. **Hier den Gong-/Ohr-Re-Arm-Bug mit-fixen** (Barge-In,
|
||||
sauberes Re-Listen).
|
||||
- **B3 (optional):** dem lokalen Modell ein paar schnelle, sichere Tools geben.
|
||||
- **B3 (optional):** lokalen Tool-Satz erweitern, sobald Qwen sich als
|
||||
zuverlaessig erweist (z.B. `memory_save`).
|
||||
|
||||
## Offene Entscheidungen (für Stefan)
|
||||
|
||||
1. **Modell:** Qwen3 8B (Tool-Calling) — oder doch Mistral Small 3 7B (Speed)?
|
||||
2. **Routing v1:** rein heuristisch + Escalation (empfohlen) — oder gleich ein
|
||||
Mini-Classifier?
|
||||
3. **Tools lokal:** in v1 bewusst KEINE (alles Tool-artige → Claude) — ok?
|
||||
2. **Routing v1:** rein heuristisch + Escalation (entschieden).
|
||||
3. **Tools lokal:** kuratierte kleine Auswahl (entschieden — Start-Satz oben;
|
||||
Stefan bestaetigt/justiert die konkrete Liste vor dem B1-Bau).
|
||||
|
||||
## Folge-Baustein: Modell-Auswahl in ARIA Diagnostic (B0.5)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user