Der agent-Slot zog bisher aus der duennen Name-Keyword-Kategorie und blieb
oft leer. Jetzt poolt build_dynamic_recipes fuer role==agent ueber ALLE
discover-Kategorien und filtert via model_caps.capabilities (HF-Tags) auf
tool-faehige Modelle.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Entschlackt die überladene Seite: statt 3 gestapelter Sektionen zwei Tabs.
"Fertige Setups" = (jetzt auto-aktuelle) Bundles; "Modelle finden" bündelt
Discover + Profi-Suche (Facetten) unter einem Tab. Nur eine Ansicht zur Zeit.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Setups sind nicht mehr hartkodiert: RECIPE_TEMPLATES definieren das KONZEPT
als Rollen-Slots, build_dynamic_recipes füllt sie live aus discover (Hardware-
Fit, MoE bevorzugt, dedupe, leere Slots ausgelassen). all_recipes liefert
Auto-Setups + eigene; statische RECIPES nur als Fallback.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Profi-Suche: HF-Suche mit &full=true (liefert Tags); Multi-Capability-Chips
(Code/Bild/Logik/MoE·aktiv/Tools(yes|likely)/Chat) aus Name + HF-Tags.
- Facetten-Filter (Mehrfachauswahl: Tools/MoE/Logik/Bild/Code) statt
Einzel-Kategorie — clientseitig auf den Treffern (Index für Fit/Best bleibt).
- Discover: dieselben Chips; Backend liefert HF-Tags je Modell mit.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- routers/memory.py: POST /api/memory/dedupe — findet Dubletten (exakt/
enthalten/ähnlich via SequenceMatcher) je Kategorie, behält den
vollständigsten Eintrag. Dry-Run (apply:false) + Anwenden. Kein LLM.
- MemoryPanel: "🧹 Aufräumen"-Button (Vorschau → Bestätigung → löschen).
Grund: LLM-Cron-Kurator hat Edits nur halluziniert/als Text ausgegeben
statt auszuführen (Hermes 4 + Qwen). Deterministisch = verlässlich.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
`hermes cron list` nutzt bei vorhandenen Jobs kein │-Tabellenformat, sondern
"id [status]" + eingerueckte Label:value-Zeilen. Eigener _parse_cron statt
_parse_rich_table → Memory-Kurator-Job erscheint jetzt im Cockpit.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Schlanke Kopfleiste (nur Cockpit/Setup), iframe fuellt das Fenster
(calc(100dvh - 116px)) und oeffnet die Chat-Route des Dashboards direkt.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Das Framework bringt eine fertige Web-UI mit (Chat mit Live-Tool-Aktivitaet,
Approval-Prompts, Settings, Sessions). Statt sie nachzubauen, betten wir sie ein:
- routers/hermes_ui.py: HTTP+WS-Reverse-Proxy auf das lokale Dashboard (:9119)
unter /hermes-ui/ mit X-Forwarded-Prefix -> Dashboard rewritet Assets/Base-Path
selbst, injiziert seinen Session-Token (kein zweiter Login). WS-Bruecke fuer
pty/ws/pub/events.
- HermesPanel: Chat -> iframe auf /hermes-ui/; Eigenbau-Chat/Voice/WS entfernt.
Cockpit + Setup bleiben. Loest damit Kontext-/Lern-/Tool-Sichtbarkeits-Themen,
da die UI direkt mit dem Agent-Loop spricht (kein Proxy-Bug mehr).
- routers/hermes.py: Chat-WS + _proxy_chat entfernt (Cutover).
- config.py: HERMES_DASHBOARD_URL. requirements: websockets.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- HermesPanel: version-Chip zeigt PINNED_VERSION ohne doppeltes "v".
- ROADMAP/CLAUDE.md: Phase 4 als live markiert, HERMES_HOME/BIN ergänzt.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Hermes konsultiert das MCP-Gedaechtnis jetzt proaktiv (SOUL.md-Regel auf
dem Bosgame). Verifiziert: weicher Prompt nennt "Tobi" ohne Tool-Aufforderung.
SOUL.md liegt in ~/.hermes/ (nicht im Repo).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Der Hermes-API-Server fuehrt im Streaming-Modus Tool-Calls nicht aus und
streamt rohe <function=…></tool_call>-Tokens als Text. Non-streaming
durchlaeuft den vollen Agent-Loop (Tools, Gedaechtnis). Proxy holt die
fertige Antwort und streamt sie wortweise selbst ans Frontend.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
mcp_memory.py als MCP-Server in Hermes Agent registriert
(mission-control-memory, 5/5 Tools). Bidirektional verifiziert:
Hermes liest bestehende Memories und schreibt neue in dieselbe
SQLite via /api/memory. v7/v8.3-Gedaechtnis ohne Migration im Agenten.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- MemoryPanel: "Import"-Button öffnet Formular
- Jede Zeile wird ein eigener Gedächtnis-Eintrag (Batch-POST)
- Kategorie + Quelle (claude/gemini/chatgpt/import) wählbar
- Zeilen-Vorschau zeigt erkannte Einträge vor dem Speichern
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Gilt fuer alle Tools (Hermes, Cline, OpenCode) via MCP-Server.
- user: wer der User ist, Praeferenzen, Arbeitsweise
- instruction: Verhaltensregeln fuer alle KI-Tools
Hermes-Agent speichert aktiv in diese Kategorien wenn er Neues lernt.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Hinweis ergänzt: CLI und Desktop-App nutzen dieselbe config.json,
alle Slash-Commands funktionieren in beiden Versionen gleich.
Unterschied nur beim Start: Terminal (cd + opencode) vs. GUI (Ordner wählen).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Verbinden-Tab neu strukturiert:
- Tool-Picker in 2 Sektionen unterteilt: Chat + Coding-Assistenten
- Jan AI: einfachstes Chat-Interface (Desktop-App, kein Docker)
Config: Basis-URL + Modell-ID Copy-Fields wie Cline
- Continue: VS Code/JetBrains Coding-Hilfe ohne Agent-Overhead
Config: fertiger config.json-Block mit allen konfigurierten Modellen
- Antigravity: Googles agentic IDE (VS Code-Fork, kostenlos)
Config: Basis-URL + Modell-ID Copy-Fields
- continueBlock() Funktion für dynamisches config.json-Snippet
Guide neu strukturiert (17 Tutorials, war 14):
- "Welches Tool" Entscheidungsmatrix komplett neu: Chat vs. Coding,
Jan AI als Einstieg statt OpenWebUI, Antigravity und Continue ergänzt
- Neu: "Jan AI — einfachstes Chat-Interface" (Schritt-für-Schritt)
- Neu: "Continue — Coding-Hilfe ohne Agent-Overhead" (Chat/Autocomplete/Inline-Edit)
- Neu: "Antigravity — Googles agentic IDE" (Multi-Agent, Manager-View)
- OpenWebUI repositioniert: "für Teams und Power-User" mit klarer Begründung
wann OpenWebUI mehr Sinn macht als Jan AI
Recherche-Grundlage: jan.ai/docs, continue.dev, antigravityide.net,
Google Dev Blog (Antigravity), promptquorum.com (Frontend-Vergleich 2026)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Quellen/Links:
- OpenCode → opencode.ai/docs
- Cline → cline.bot
- OpenWebUI → openwebui.com
- MCP → mcp.run, smithery.ai, modelcontextprotocol.io/servers
- Skills & Rules → skills.sh (neu), cursor.directory
- Persona → skills.sh, cursor.directory
- AGENTS.MD → skills.sh, opencode.ai/docs
Neue .tut-sources CSS-Klasse: dezente Trennlinie, Teal-Links.
Persona-Tutorial grundlegend erweitert:
- Zwei Dimensionen erklärt (WAS der Agent tut vs. WIE er mit dir umgeht)
- Template um Beziehungs-/Interaktionszeile erweitert
- Beispiele zeigen jetzt auch Feedback-Stil, Proaktivität, Fehlerkultur
- Neues Onboarding-Interview-Template: Agent befragt den Nutzer selbst
(6-8 Fragen, eine nach der anderen) und schreibt daraus eine
maßgeschneiderte AGENTS.md — der schnellste Weg zu einer echten Persona.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Zwei neue Tutorials in der Gruppe „Agenten meistern":
1. Die Persona — deinem Agenten eine Rolle geben
Erklärt was eine Persona ist, warum sie den Unterschied macht,
+ Copy-paste-ready Template + 2 konkrete Beispiele (Coding-Assistent,
Lernbegleiter) + Tabelle wo man sie einträgt (pro Projekt vs. global).
2. AGENTS.MD & SAVEPOINT.MD — Gedächtnis für den Agenten
Erklärt den Unterschied (was das Projekt ist vs. wo wir stehen),
+ vollständige Vorlagen für beide Dateien die direkt nutzbar sind,
+ 2-Schritt-Workflow (Session starten / beenden).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Behebung der drei kritischsten UX-Schwachstellen aus dem Produkt-Audit:
1. ConnectPanel: Steps 2-4 (Modellauswahl, Tool-Picker, Config-Snippet,
Vision) werden blockiert wenn noch kein Modell installiert ist.
Stattdessen klarer Hinweis "Erst im Cookbook ein Modell holen" mit
direktem CTA. Verhindert dass Anfänger ein Snippet mit Fake-"coder"
kopieren, bevor ein echtes Modell existiert.
2. OverviewPanel: preload() schluckte Fehler still (catch {}). Zeigt
jetzt einen verständlichen Toast wenn die Engine nicht erreichbar ist.
Schnellstart ist kontextsensitiv: ohne Modelle zeigt er Onboarding-
Schritte (Modell holen → Verbinden → Guide lesen) statt sinnloser
Aktionen wie "Speicher freigeben".
3. CookbookPanel Profi-Suche: doDownload() nutzte zwei sequenzielle
API-Calls (download + register) — wenn der zweite scheiterte, blieb
das System in einem inkonsistenten Halbzustand. Jetzt ein einziger
atomarer Aufruf an /api/cookbook/install-model (wie Recipe/Discover).
Backend-Erweiterung: InstallModelReq akzeptiert jetzt 'file' und
'ctx' um Nutzer-Auswahl direkt zu übergeben.
4. Cookbook Section 1 als "Hier starten" markiert ("1 · Anwendungsfall
wählen & installieren" mit erklärendem Sub-Text).
5. Post-Download-Toasts: Alle drei Install-Pfade sagen nun einheitlich
"Modell erscheint danach automatisch im Modelle-Tab" statt nur
"siehe Aktivität".
6. too_tight-Alternative: Bei Modellen/Setups die den Speicher übersteigen
wird jetzt eine konkrete Alternative (kleinere Datei / passendes Rezept)
verlinkt statt nur "Trotzdem installieren".
7. Duplikat extract_params_b aus cookbook.py entfernt — importiert jetzt
aus hw_math (Single Source of Truth).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Bugs behoben:
- Topbar + Server-Panel: 'Kein Modell im VRAM' obwohl geladen → alle
States (running/ready/loading/starting) werden jetzt erkannt
- Topbar zeigt bei geladenem Modell: Name + ctx-Größe + State mit Farbe
Dashboard-Redesign (OverviewPanel):
- KPI-Kacheln mit Farbe: .kpi.green/.red/.blue/.muted statt .tile
(farbige Randlinien + farbige Werte wie im Referenz-Design)
- Icons pro Kachel (server, cpu, thermo, database)
- Stack-Liste: zeigt ctx/quant/GB, 'Laden'-Button wenn Modell bereit
aber nicht geladen, ∞-Chip für immer-aktive Modelle
- 4. Schnellstart-Button: 'Tools verbinden'
Feature: Modell Vorwärmen (Pre-load):
- POST /api/preload?model=<name> — sendet Mini-Request an llama-swap
damit es das Modell vorab lädt (max_tokens=1, kein Output)
- 'Laden'-Button je Modell in der Stack-Liste
Topbar CSS:
- Aktives Modell: teal-hinterlegter Pill wenn Modell geladen
- Kontext-Größe direkt neben Modellname angezeigt
Cookbook:
- Discover: genaue Zeitanzeige wann Quellen zuletzt befragt wurden
('vor X min / h / Tg.') statt nur 'aktuell'
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
openCodeBlock() baut jetzt Modell-Objekte statt nur ID-Strings, damit
m.meta.ctx ausgelesen werden kann. contextWindowSize wird korrekt auf
den konfigurierten Kontext gesetzt (Standard: 131072 = 128k).
Vorher: { "name": "coder" } (kein Kontexthinweis → AI-SDK-Default)
Nachher: { "name": "coder", "contextWindowSize": 131072 }
Identisches Problem wie bei Zed max_tokens (war 32768 hardcoded).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Bisher: install-recipe + install-model luden nur die Haupt-GGUF, aber
nicht den mmproj-Projektor → Vision-Modelle starteten ohne --mmproj und
konnten keine Bilder verarbeiten (obwohl der Hinweis sagte 'wird automatisch ergänzt').
Fix:
- _pick_mmproj(repo): findet die mmproj-F16/BF16-Datei im HF-Repo
- install-recipe: lädt mmproj mit hf download (multi-file) + ergänzt --mmproj/--jinja im cmd
- install-model: gleicher Fix
- Requirement-Text präzisiert (explizit 'mmproj-F16 wird mitgeladen')
hf-cli unterstützt mehrere Dateien pro Download-Aufruf → ein einziger Job
für Haupt-GGUF + Projektor.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- CLAUDE.md: npm run build als Schritt vor git push dokumentiert, Vite-Dev-Hinweis
- maintenance.py self-update: frontend/node_modules vom rsync ausgenommen
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>