OpenClaw einrichten — Lokale AI mit Gedächtnis

Was bauen wir?

Einen vollständigen AI-Assistenten, der:

  • ✅ Lokal läuft (keine Cloud-Abhängigkeit fürs eigentliche Modell)
  • ✅ Ein Gedächtnis hat (Memory-File, das persistiert)
  • ✅ Per Telegram oder anderen Messengern erreichbar ist
  • ✅ Selbst hostbar ist — alles offen, alles kontrollierbar

Stack

KomponenteWasWarum
OpenClawAgent-FrameworkOrchestriert Tools, Channels, Cron-Jobs
LM StudioLocal LLM ServerHostet Modelle lokal, stellt OpenAI-kompatible API bereit
Qwen 3.5 Coder 4BLokales LLMKlein, schnell, läuft auf einer Mittelklasse-GPU
Memory-SkillEigenbauGibt der lokalen LLM ein persistentes Gedächtnis

Schritt 1: OpenClaw installieren

# Node.js vorher installieren! (v20+)
npm install -g openclaw

Danach initialisieren:

openclaw init

Das erstellt ein Workspace-Verzeichnis mit Konfiguration, Skills und Agent-Definitionen.

Gateway starten:

openclaw gateway start

Der Gateway läuft dann als Hintergrunddienst und ist bereit, Channels anzubinden.


Schritt 2: LM Studio einrichten

LM Studio herunterladen und installieren.

  1. LM Studio öffnen
  2. Ein Modell herunterladen, z.B. Qwen 3.5 Coder 4B (GGUF, Q4_K_M)
  3. Im Reiter “Local Inference Server” den Server auf Port 1234 starten
  4. Haken setzen bei: “Cross-Origin-Requests” und “OpenAI API kompatibel”

API testen:

curl http://localhost:1234/v1/models

→ Zeigt alle geladenen Modelle an.


Schritt 3: OpenClaw mit LM Studio verbinden

In der OpenClaw-Config (openclaw.json) einen lokalen Provider eintragen:

{
  "models": {
    "providers": {
      "lmstudio": {
        "type": "openai",
        "baseUrl": "http://localhost:1234/v1",
        "models": [
          {
            "name": "lmstudio-community/Qwen3.5-4B-GGUF-no-thinking",
            "contextLength": 32768,
            "supports": ["chat", "tools"]
          }
        ]
      }
    }
  }
}

Dann kann OpenClaw das lokale Modell nutzen:

openclaw session --model lmstudio/lmstudio-community/Qwen3.5-4B-GGUF-no-thinking

Schritt 4: Der Memory-Skill (Das Gehirn)

Eine lokale LLM hat von Haus aus kein Gedächtnis. Jeder Prompt startet bei Null. Die Lösung: ein Memory-File, das vor jeder Anfrage in den System-Prompt injiziert wird.

Das Prinzip

User sagt: "Wie heiße ich?"

Script liest memory.md  →  "Du heißt Steve, wohnst in Wien, ..."

Prompt an Qwen:  [Memory] + [User-Frage]

Qwen antwortet

Script checkt: Enthält die Antwort "MERKEN:"?

Wenn ja: Neue Info in memory.md schreiben

Implementierung

// qwen-brain.js (vereinfacht)
import { readFileSync, writeFileSync } from 'fs';

const MEMORY_FILE = 'memory.md';
const LM_URL = 'http://localhost:1234/v1/chat/completions';

async function ask(input) {
  const memory = readFileSync(MEMORY_FILE, 'utf-8');
  
  const messages = [
    { role: 'system', content: memory },
    { role: 'user', content: input },
  ];

  const res = await fetch(LM_URL, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      model: 'lmstudio-community/Qwen3.5-4B-GGUF-no-thinking',
      messages,
      temperature: 0.3,
      max_tokens: 4096,
    }),
  });

  const data = await res.json();
  const response = data.choices[0].message.content;
  
  // Automatisches Speichern wenn "MERKEN:" in der Antwort
  for (const line of response.split('\n')) {
    if (line.trim().startsWith('MERKEN:')) {
      const note = line.replace('MERKEN:', '').trim();
      writeFileSync(MEMORY_FILE, `\n- ${note}`, { flag: 'a' });
    }
  }
  
  return response;
}

Die memory.md

# Qwen Memory

## Persönlichkeit
- Du bist ein lokaler AI-Assistent
- Sprich Deutsch, sei direkt, kein Bullshit
- Host: LM Studio, Port 1234

## Wichtige Notizen
- (werden automatisch befüllt)

## User-Info
- (wird vom Admin eingetragen)

Das System-Prompt-File wird vor jedem Request mitgeladen. So kann die LLM immer auf vorheriges Wissen zugreifen.


Schritt 5: Channels anbinden (Telegram, Discord, etc.)

OpenClaw unterstützt diverse Channels. Am Beispiel Telegram:

{
  "channels": {
    "telegram": {
      "type": "telegram",
      "botToken": "DEIN_BOT_TOKEN",
      "allowFrom": ["DEINE_USER_ID"]
    }
  }
}
  1. Bei @BotFather auf Telegram einen Bot erstellen
  2. Token in die Config eintragen
  3. Gateway neustarten → Bot ist online

Schritt 6: Alles testen

# Lokale LLM starten (LM Studio Server an)
# Gateway starten
openclaw gateway start

# Direkt per Telegram: "Hallo, wer bin ich?"
# Qwen checkt memory.md → hat dich schonmal gesehen → antwortet

Ergebnis

Du hast jetzt einen AI-Assistenten der:

  • Lokal läuft — kein Cloud-Zwang, keine Daten nach extern
  • Ein Gedächtnis hat — merkt sich Dinge über mehrere Sessions hinweg
  • Per Messenger erreichbar ist — Telegram, Discord, oder was immer du willst
  • Erweiterbar ist — über OpenClaw-Skills kommen Cron-Jobs, Tools, Automatisierungen dazu

Warum das wichtig ist

Die meisten AI-Assistenten (ChatGPT, Claude, Gemini) sind Cloud-Dienste. Deine Daten verlassen deinen Rechner. Mit diesem Setup:

  • Datenschutz: Nichts verlässt dein Netzwerk (wenn du das willst)
  • Kosten: Keine API-Kosten fürs eigentliche Modell
  • Kontrolle: Du bestimmst, was das Modell kann und weißt
  • Offline-Fähigkeit: Solange LM Studio läuft, funktioniert alles ohne Internet

Ausblick

Der Memory-Skill ist erst der Anfang. Mögliche Erweiterungen:

  • RAG mit Vektordatenbank (ChromaDB + Embedding-Modell): Suchen in tausenden Dokumenten
  • Rolling Summary: Automatische Zusammenfassung langer Gespräche
  • Tool-Integration: Qwen kann selbst Dateien lesen, Webseiten fetchen, Scripts ausführen
  • Multi-Agent: Mehrere spezialisierte LLMs, die zusammenarbeiten

Morvel-Status

Komplexität: Mittel Lernfaktor: Hoch — du verstehst wie moderne AI-Infrastruktur wirklich funktioniert Setup-Zeit: ~30 Minuten Nützlichkeit: Extrem — dein eigener, privater AI-Assistent mit Gedächtnis