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
| Komponente | Was | Warum |
|---|---|---|
| OpenClaw | Agent-Framework | Orchestriert Tools, Channels, Cron-Jobs |
| LM Studio | Local LLM Server | Hostet Modelle lokal, stellt OpenAI-kompatible API bereit |
| Qwen 3.5 Coder 4B | Lokales LLM | Klein, schnell, läuft auf einer Mittelklasse-GPU |
| Memory-Skill | Eigenbau | Gibt 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.
- LM Studio öffnen
- Ein Modell herunterladen, z.B. Qwen 3.5 Coder 4B (GGUF, Q4_K_M)
- Im Reiter “Local Inference Server” den Server auf Port
1234starten - 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"]
}
}
}
- Bei @BotFather auf Telegram einen Bot erstellen
- Token in die Config eintragen
- 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