import { useState, type ReactNode } from "react" import { BookOpen, Boxes, Cpu, Layers, Plug, Bot, Wrench, Shield, Compass, Code, Network, Database, Sparkles, Gauge, Lock, Lightbulb, Server, Zap, ArrowUpRight, LifeBuoy, Puzzle, type LucideIcon, } from "lucide-react" import { cn } from "@/lib/utils" /* ------------------------------------------------------------------ * * Anleitung = Allgemeine AI-Bibel (Stand Juni 2026). * Allgemeines Nachschlagewerk für lokale & agentische AI. * Stack-Spezifika nur als "Bei dir konkret"-Callouts, wo eine echte * Einschränkung sie relevant macht — sonst bewusst allgemein gehalten. * ------------------------------------------------------------------ */ const SECTIONS: { id: string; label: string }[] = [ { id: "grundlagen", label: "Grundlagen" }, { id: "moe", label: "MoE & Quant" }, { id: "lokal", label: "Lokal betreiben" }, { id: "modelle", label: "Modell-Landschaft" }, { id: "gateway", label: "Gateway-Trick" }, { id: "mcp", label: "MCP" }, { id: "skills", label: "Skills" }, { id: "memory", label: "Gedächtnis & RAG" }, { id: "agents", label: "Agenten" }, { id: "ide", label: "IDE anbinden" }, { id: "tricks", label: "Tricks & Kniffe" }, { id: "wartung", label: "Sicherheit & Wartung" }, { id: "ressourcen", label: "Ressourcen" }, { id: "troubleshooting", label: "Troubleshooting" }, ] function scrollToId(id: string) { document.getElementById(id)?.scrollIntoView({ behavior: "smooth", block: "start" }) } /* ---- kleine Bausteine ---- */ function Card({ id, icon: Icon, color, title, kicker, children, wide }: { id?: string icon: LucideIcon color: string title: string kicker?: string children: ReactNode wide?: boolean }) { return (

{title}

{kicker && {kicker}}
{children}
) } /* "Bei dir konkret" — Stack-Einschub, nur wo eine Einschränkung es rechtfertigt */ function Stack({ children }: { children: ReactNode }) { return (
Bei dir konkret
{children}
) } function Pill({ children }: { children: ReactNode }) { return ( {children} ) } function LinkItem({ href, name, note }: { href: string; name: string; note: string }) { return (
  • {name} — {note}
  • ) } export function GuideView() { const [showAllNav, setShowAllNav] = useState(false) return (
    {/* Hero */}

    Die AI-Bibel

    Allgemeines Nachschlagewerk für lokale & agentische AI — Konzepte, Tricks, Kniffe und kuratierte Quellen. Stand Juni 2026.{" "} Das meiste gilt überall; „Bei dir konkret"-Kästen zeigen, was dein Stack daraus macht.

    {/* Sprung-Navigation (sticky) */}
    {(showAllNav ? SECTIONS : SECTIONS.slice(0, 9)).map((s) => ( ))}
    {/* 1 — Grundlagen */}

    Ein LLM ist im Kern ein Wahrscheinlichkeits-Rechner für das nächste Token (Wortteil). Es „weiß" nichts — es setzt fort, was statistisch am plausibelsten ist. Daraus folgt fast alles andere.

    • Tokens sind die Einheit — ~¾ Wort. Ein- und Ausgabe werden in Tokens gezählt.
    • Kontextfenster = wie viele Tokens das Modell gleichzeitig „sehen" kann (Prompt + Antwort). Voll = Anfang fällt raus.
    • Parameter = die trainierten Gewichte. Training ist einmalig, Inferenz ist jede Antwort.
    • Temperatur / Sampling steuert Zufall: niedrig = deterministisch/präzise (Code), hoch = kreativ.
    • Halluzination ist kein Bug, sondern die Kehrseite des Ratens. Gegenmittel: Grounding via Tools/RAG, Verifikation.
    • Reasoning-/Thinking-Modelle „denken" in unsichtbaren Tokens vor der Antwort — besser bei Logik, langsamer/teurer.
    {/* 2 — MoE & Quant */}

    Mixture of Experts (MoE): Statt für jedes Token das ganze Netz zu aktivieren, wählt ein Router nur ein paar spezialisierte Experts aus. So läuft ein 100B-Modell mit der aktiven Rechenlast eines viel kleineren (z.B. „122B total / 10B aktiv").

    Quantisierung: Gewichte von FP16 auf weniger Bits eindampfen — kleiner & schneller bei minimalem Qualitätsverlust. Faustregel:

    • Q8 nahezu verlustfrei, größter Footprint
    • Q6_K sehr gut, guter Mittelweg
    • Q4_K_M der Sweet-Spot für lokal — viel Modell pro GB
    VRAM/RAM ist die harte Grenze — darum ist beides hier zentral: MoE lässt 100B+ überhaupt laufen, Quant entscheidet, was reinpasst. Dein Line-up fährt durchweg Q4_K_M/Q6_K.
    {/* 3 — Lokal betreiben */}

    Inference-Engines — was die Modelle ausführt:

    • llama.cpp / GGUF — der De-facto-Standard für lokal, CPU+GPU, läuft überall.
    • Ollama / LM Studio — bequeme Wrapper mit One-Click-Downloads (LM Studio mit GUI).
    • vLLM / TGI — Server-Engines für maximalen Durchsatz auf dicken GPUs.
    • llama-swap — Proxy, der mehrere Modelle hinter einem Port hält und je nach Anfrage automatisch ein-/aussattelt.

    GPU-Backends — wie gerechnet wird:

    • CUDA NVIDIA · ROCm AMD · Vulkan herstellerübergreifend · Metal Apple

    Begriffe, die immer wiederkommen: Kontext (-c), Slots/Parallel, KV-Cache, Modell-TTL/Swap, Speculative Decoding (kleines Draft-Modell rät voraus → schneller).

    Deine Box hat eine AMD-APU (gfx1151). Einschränkung & Trick: dort schlägt Vulkan/RADV das offizielle ROCm bei Token-Generierung um ~12–22 % — darum läuft die Engine auf Vulkan. llama-swap hält die Alltags-Hirne dauerwarm; coder nutzt Spec-Decoding.
    {/* 4 — Modell-Landschaft */}

    Open-Weight (lokal nutzbar):

    • Qwen (Alibaba) — starke Allrounder + Coder + Vision, viele Größen/MoE.
    • Llama (Meta), Gemma (Google), Phi (Microsoft) — solide Open-Familien.
    • DeepSeek, Mistral/Mixtral — kräftige MoE-/Reasoning-Modelle.

    Frontier (Cloud-API):

    • Claude (Anthropic), GPT (OpenAI), Gemini (Google) — die stärksten Allrounder, aber nicht lokal.

    Modellwahl nach Aufgabe: schnelles Alltags-Hirn · großes Logik-Hirn für harte Tasks · dediziertes Code-Modell · multimodal für Bilder · Embedding-Modell fürs Gedächtnis.

    Leaderboards (HF, LMArena) sind grobe Orientierung — der einzige Benchmark, der zählt, ist deine eigene Aufgabe. Vorsicht vor „Benchmaxxing".

    Dein Line-up via llama-swap: fast (Alltag/Vision/MoE) · heavy (schwere Logik) · coder · scout · vision · embed (fürs Gedächtnis) · hermes (Agent-Hirn). Verwalten/tauschen im Modell-Manager-Tab.
    {/* 5 — Gateway-Trick */}

    Fast jedes AI-Tool spricht heute das OpenAI-Format (/v1/chat/completions). Ein Gateway davor gibt dir einen Endpunkt für alles: zentrales Key-Management, Logging und transparentes Routing — der Client merkt nicht, welches Modell tatsächlich antwortet.

    Die model:auto-Idee: du sagst „auto", das Gateway wählt das passende Modell je nach Anfrage und lädt es bei Bedarf.

    Dein Gateway: http://192.168.178.151:9001/v1, Model auto, API-Key beliebig. Fertige Configs erzeugt dir der Verbinden-Tab live — eine Wahrheit, kein Abtippen.
    {/* 6 — MCP */}

    Das Model Context Protocol (offen, von Anthropic initiiert) standardisiert, wie ein AI-Client mit externen Tools & Datenquellen spricht. Ein MCP-Server bringt Fähigkeiten: Dateien, Web-Fetch, Git, Datenbanken, eigene APIs.

    Statt für jeden Editor eigene Tools zu schreiben, bindet jeder MCP-fähige Agent denselben Server an.

    Sicherheit: ein MCP-Server hat echten Zugriff (Dateien, Shell). Nur vertrauenswürdige Server laufen lassen, Rechte minimal halten, Quelle prüfen.
    {/* 7 — Skills */}

    Ein Skill ist ein Ordner mit einer SKILL.md (YAML-Kopf + Anleitung, optional Skripte/Beispiele), den der Agent für eine bestimmte Aufgabe lädt — z.B. TDD, Code-Vereinfachung, API-Design.

    {`---
    name: tdd-pro
    description: Treibt Entwicklung mit strikter TDD-Praxis
    ---
    # Instructions
    ...`}
              

    Suchen & installieren über die skills.sh-Registry: npx skills find / npx skills add owner/repo. Skills liegen projektweit (vom Agent beim Start gelesen) oder global.

    {/* 8 — Gedächtnis & RAG */}

    LLMs sind zustandslos: ohne Hilfe weiß das Modell beim nächsten Turn nichts mehr. Gedächtnis lebt extern.

    • Embeddings wandeln Text in Vektoren; ein Vektor-Store (Chroma, …) findet semantisch Ähnliches.
    • RAG = relevante Fakten vor dem Turn heraussuchen und einblenden statt alles im Prompt zu halten.
    • Long-Context vs. RAG: riesige Fenster sind bequem, aber teuer & „lost in the middle" — gezieltes Abrufen skaliert besser.

    Auto-lernendes Gedächtnis ist die nächste Stufe:

    • extrahiert Fakten selbst aus Gesprächen, statt nur abzuspeichern
    • dedupliziert semantisch (kein 10× derselbe Fakt)
    • Graph-Sicht = Fakten plus ihre Beziehungen, nicht nur eine flache Liste
    Dein Gedächtnis (Tab Gedächtnis) ist Mem0-basiert: auto-lernend & semantisch, graph-first dargestellt, mit 4-Typen-Taxonomie (Identität · Wissen · Regeln · Ereignisse). Einstieg über ein kurzes Hermes-Onboarding-Gespräch im Terminal — der Agent lernt im Hintergrund nach jedem Turn.
    Gotcha: ein gelöschter Fakt kann wieder auftauchen, solange die Original-Nachricht noch im Verlauf steht (additive Extraktion).
    {/* 9 — Agenten */}

    Ein Agent ist ein LLM in einer Schleife mit Tools: denken → Tool aufrufen → Ergebnis beobachten → weiter, bis das Ziel erreicht ist.

    • Guardrails (Hard-Stop, Tool-Limits) verhindern Endlos-Loops, wenn ein Tool fehlt oder hängt.
    • Kontext-Hygiene ist die wichtigste Disziplin: frische Sessions starten — vollgemüllte Historien werden langsam, driften und halluzinieren.
    • Kanäle: CLI/Terminal, Chat-UI, Messaging (z.B. Telegram), reine API.

    Least Privilege: gib einem Agenten nur die Tools, die er wirklich braucht. Kritische Aktionen (Shell auf dem Host, Löschen, Geld/Deploys) hinter menschliche Freigabe.

    Was sich vollautomatisch lohnt: Modell-Routing, Hintergrund-Gedächtnis, Recherche. Was Freigabe braucht: Systembefehle, Updates/Reboots, permanentes Löschen.

    Hermes ist dein Box-Agent (Hirn = fast). Reden tust du mit ihm im Terminal-Tab (Web-Terminal via ttyd) oder per Telegram. Er hat MCP-Server für Gedächtnis, Stack-Steuerung, Web-Fetch und PC-Steuerung (Executor auf deinem Windows-PC). Status & Verdrahtung im Hermes-Tab.
    {/* 10 — IDE anbinden */}

    Jede OpenAI-kompatible IDE oder Extension lässt sich auf einen lokalen Server umbiegen — Base-URL + Model eintragen, fertig:

    • Cline & Roo Code (VS-Code-Extensions, voller Agent + MCP)
    • Cursor (VS-Code-Fork mit Top-Autocomplete)
    • Continue, aider (CLI), OpenCode (Desktop)
    Tipp den Kram nicht ab: der Verbinden-Tab generiert die fertige Config (inkl. MCP-Gedächtnis) pro Tool zum Kopieren. Essenz: Base …:9001/v1, Model auto, Key beliebig.
    {/* 11 — Tricks & Kniffe */}
    {[ ["Kontext sauber halten", "Neue Session statt Mega-Historie. Drift, Tempo und Halluzination hängen direkt am Kontext-Müll."], ["Plan-then-Act", "Erst Plan/Vorgehen bestätigen lassen, dann ausführen. Spart teure Holzwege."], ["Gezielte Edits", "Nie ganze Dateien überschreiben für eine Zeile — Such-/Ersetz-Tools nutzen. Weniger Tokens, weniger Fehler."], ["Non-interaktive Befehle", "Keine interaktiven Prompts im Agent-Terminal; lange Tasks als Background-Job. Sonst hängt der Loop."], ["DevTools koppeln", "Browser-/Konsolen-Zugriff geben — der Agent liest echte Fehler statt blind zu raten."], ["Richtige Modellwahl", "Schnelles Hirn für Alltag, großes für harte Logik, Coder fürs Coden. Nicht alles mit der Kanone."], ["Akzeptanzkriterien", "Sag konkret, woran „fertig“ erkennbar ist. Vage Prompts → vage Ergebnisse."], ["Verifizieren statt vertrauen", "Tests/Live-Check fordern. „Sollte funktionieren“ ist kein Beweis."], ["Regeln ins Gedächtnis", "Wiederkehrende Vorlieben/Konventionen einmal ablegen — der Agent zieht sie selbst."], ].map(([t, d]) => (
    {t}

    {d}

    ))}
    {/* 12 — Sicherheit & Wartung */}

    Goldene Regeln

    • Ein ungetesteter Restore ist kein Backup. Wiederherstellung mindestens einmal echt durchspielen.
    • Updates können Dinge still zerschießen — gerade bei AI-Stacks (Embeddings, Provider-Interna). Versionen pinnen, Smoke-Test, Post-Check.
    • Least Privilege für Agenten, MCP-Server und PC-Zugriff. Kritisches hinter Freigabe.

    Bei dir im SystemDrawer

    • Backup: tägliches Voll-Zustands-Backup, getesteter restore.sh (Doku in docs/BACKUP.md).
    • Updates: git-basierter Update-Check; Hermes-Update-Button mit anschließendem Gehirn-Check (rot, falls das Update das Gedächtnis zerschießt) + Engine-Update.
    • Dienste & Gefahrenzone: Restart/Logs pro Dienst, kritische Eingriffe getrennt.

    Erreichbar über das System-Icon → Tab „Wartung".

    {/* 13 — Ressourcen */}

    13. Kuratierte Ressourcen & Links

    Sauber geordnet — die guten Quellen
    Modelle & Engines
    MCP & Skills
    Agenten & Frameworks
    Lernen & Community
    {/* 14 — Troubleshooting */}
    • Keine Verbindung? Selbes LAN wie die Box? IP/Port stimmen (:9001)? Backend-Status in der Zentrale prüfen.
    • Modell antwortet nicht / langsam? In der Zentrale → Dienste schauen, ob llama-swap grün ist; sonst Restart. Erstes Token nach Swap dauert (Modell lädt).
    • Agent dreht durch / halluziniert? Frische Session im Terminal starten — meist ist es vollgemüllter Kontext.
    • Gedächtnis findet nichts? Embedding-Dienst online? Semantisch suchen (Sinn statt exaktem Wort). Leeres Gedächtnis → Hermes-Onboarding starten.
    • Update hat etwas zerschossen? Genau dafür gibt es Backup & restore.sh — den getesteten Restore fahren, dann Ursache suchen.

    Mission Control 2 · AI-Bibel · Stand Juni 2026 — lebendes Dokument, wächst mit dem Stack.

    ) }