Deep Dive in die OpenClaw Agent System Prompt-Architektur: Eine umfassende 9-Schichten-Analyse

@servasyy_ai
CHINESISCHvor 4 Monaten · 05. März 2026
641K
1.7K
410
51
0

TL;DR

Ein detaillierter technischer Leitfaden zur 9-Schichten-System-Prompt-Architektur von OpenClaw Agents, der alles von grundlegenden Framework-Regeln bis hin zu benutzergesteuerten Arbeitsbereichsdateien und dynamischen Hooks abdeckt.

Dieses Dokument enthält eine detaillierte Aufschlüsselung der vollständigen System-Prompt-Struktur, die vom OpenClaw Agent an das LLM gesendet wird.



Version:



v2.1



Update Time:



2026-03-05

Gesamtarchitektur-Diagramm

huangserva - inline image

Schnellnavigation (TL;DR)

Pflichtlektüre für Einsteiger:

  1. Schicht 7 (Workspace-Dateien) – Konfigurationsdateien, die du direkt bearbeiten kannst.
  2. Schicht 8 (Bootstrap-Hook) – Hier kannst du Skripte schreiben, um dynamisch Inhalte einzufügen.
  3. Andere Schichten werden automatisch vom Framework generiert; es reicht, sie zu verstehen.

Häufige Anliegen:

  • Agent-Identität definieren? → Bearbeite IDENTITY.md in Schicht 7.
  • Projektdokumentation hinzufügen? → Nutze den bootstrap-extra-files-Hook in Schicht 8.
  • Echtzeit-Kontext einfügen? → Nutze den before_prompt_build-Hook in Schicht 8.
  • Dateigröße kontrollieren? → Passe die bootstrapMaxChars-Konfiguration an.

Schicht 1: OpenClaw Framework Core

Analogie

Wie der „Gebrauchshinweis“ in einer Bedienungsanleitung – sie sagt dem LLM, wer du bist, was du kannst und wie du antworten sollst.

Komponenten

huangserva - inline image

Praktisches Beispiel

Du läufst als „Creative Partner“, einem KI-Content-Erstellungs-Experten-Agent.

Aktuelle Uhrzeit: 2026-03-05 14:37:00 CST

=== Tool-Calling-Spezifikation ===

  • Verwende das XML-ähnliche Tool-Calling-Format.
  • Jeder Tool-Aufruf muss eine eindeutige tool_call_id enthalten.
  • Tool-Ergebnisse werden über <tool_result>-Tags zurückgegeben.
  • Berücksichtige AbortSignal bei der Ausführung von Tools für die Unterstützung von Abbrüchen.

=== Sicherheitsgrenzen ===

  • Streng verboten: destruktive Operationen (rm -rf, Formatierung usw.).
  • Sensible Benutzerdaten müssen bei der Verarbeitung verschlüsselt werden.
  • Verboten, Nachrichten an nicht autorisierte Kanäle zu senden.

Design-Entscheidungen

Warum so gestaltet?

  • Abwägung: Flexibilität vs. Konsistenz
  • Entscheidung: Einheitliche Generierung auf Framework-Ebene gewährleistet konsistentes Basisverhalten für alle Agents.
  • Vorteile: Benutzer müssen keine grundlegenden Regeln für jeden Agent wiederholen. Alle Agents erhalten automatisch neue Funktionen, wenn das Framework aktualisiert wird. Reduziert das Risiko von Konfigurationsfehlern.
  • Kosten: Benutzer können diese Kernregeln nicht ändern. Spezielle Verhaltensweisen müssen indirekt über Schicht 7/8 implementiert werden.

Schicht 2: Tool-Definitionen

Analogie

Wie die Werkzeugliste eines Schweizer Taschenmessers – sie sagt dem LLM, welche Werkzeuge du hast, was jedes tut und wie man sie verwendet.

Komponenten

huangserva - inline image

Tool-Definitionsbeispiel

{

"name": "read",

"description": "Liest Dateiinhalte. Unterstützt Textdateien und Bilder (jpg/png/gif/webp). Bilder werden als Anhänge gesendet. Die Textausgabe ist auf 2000 Zeilen oder 50 KB begrenzt.",

"parameters": {

"type": "object",

"properties": {

"path": {

"type": "string",

"description": "Dateipfad (relativ oder absolut)"

},

"offset": {

"type": "number",

"description": "Startzeilennummer (1-basiert)"

},

"limit": {

"type": "number",

"description": "Maximale Anzahl zu lesender Zeilen"

}

},

"required": ["path"]

}

}

Design-Entscheidungen

Warum JSON Schema?

  • Abwägung: Flexibilität vs. Typsicherheit
  • Entscheidung: Verwende striktes JSON Schema zur Definition von Tool-Parametern.
  • Vorteile: LLM versteht die Tool-Nutzung präziser. Das Framework kann Parameter vor dem Aufruf validieren. Generiert automatisch Dokumentation und Typdefinitionen.
  • Kosten: Neue Tools erfordern das Schreiben eines vollständigen Schemas. Kann keine völlig dynamischen Parameterstrukturen unterstützen.

Schicht 3: Skills-Registry

Analogie

Wie die „Speisekarte“ eines Restaurants – sie sagt dem LLM, welche professionellen „Rezepte“ verfügbar sind.

Design-Entscheidungen

Warum Verzeichnisscan anstelle manueller Registrierung?

  • Abwägung: Flexibilität vs. Wartungsaufwand
  • Entscheidung: Automatisches Scannen des Verzeichnisses ~/development/openclaw/skills/.
  • Vorteile: Ein neues Skill hinzuzufügen erfordert nur das Ablegen im Verzeichnis; keine Konfigurationsänderungen nötig. Alle Agents erhalten automatisch das neue Skill. Reduziert das Risiko von Konfigurationsfehlern.
  • Kosten: Kann nicht genau steuern, welche Skills für jeden Agent verfügbar sind. Alle Skills werden in den System Prompt eingefügt (erhöht Token-Verbrauch).

Komponenten

huangserva - inline image

Schicht 4: Modell-Aliase

Analogie

Wie „Verknüpfungen“ – gibt komplexen Modellpfaden kurze Aliase für einfachen Aufruf.

Design-Entscheidungen

Warum werden Modell-Aliase benötigt?

  • Abwägung: Flexibilität vs. Lesbarkeit
  • Entscheidung: Benutzern erlauben, kurze Aliase für häufig genutzte Modelle zu definieren.
  • Vorteile: Vereinfacht Modellaufrufe (glm-5 statt zhipu/glm-5). Unterstützt Wechsel zwischen mehreren Providern (gleicher Alias kann auf verschiedene Provider verweisen). Erleichtert A/B-Tests und Modellmigration.
  • Kosten: Erfordert Pflege einer Alias-Konfigurationsdatei. Kann zu Verwirrung führen (gleicher Alias könnte für verschiedene Agents auf unterschiedliche Modelle verweisen).

Komponenten

huangserva - inline image

Praktisches Beispiel

Im System Prompt werden Modell-Aliase wie folgt angezeigt:

Modell-Aliase

  • GLM-5: zhipu/glm-5
  • Opus 4.6: xiaowang886/claude-opus-4-6-thinking
  • Sonnet 4.5: xiaowang886/claude-sonnet-4-5

LLMs können Aliase verwenden, um Modelle zu wechseln: /model glm-5

Schicht 5: Protokollspezifikationen

Analogie

Wie „Verkehrsregeln“ – definieren standardisierte Protokolle für die Interaktion des Agent mit dem System.

Design-Entscheidungen

Warum werden Protokollspezifikationen benötigt?

  • Abwägung: Freiheit vs. Konsistenz
  • Entscheidung: Definiere standardisierte Interaktionsprotokolle (Stille Antworten, Herzschläge, Antwort-Tags usw.).
  • Vorteile: Stellt konsistentes Verhalten aller Agents sicher. Unterstützt automatisierte Überwachung und Health Checks. Vereinfacht Multi-Agent-Kollaboration.
  • Kosten: Schränkt die Ausdrucksfreiheit des Agent ein. Erfordert, dass das LLM Protokolle strikt befolgt (die möglicherweise ignoriert werden).

Komponenten

huangserva - inline image

Praktisches Beispiel

Beispiel für Stille Antworten:

Benutzer: Erhalten

Agent: NO_REPLY

Beispiel für Herzschläge:

System: [Heartbeat Poll]

Agent: HEARTBEAT_OK

Beispiel für Antwort-Tags:

Agent: [[reply_to_current]] Aufgabe erledigt ✓

Schicht 6: Laufzeitinformationen

Analogie

Wie ein „Dashboard“ – sagt dem LLM den Echtzeit-Status der aktuellen Ausführungsumgebung.

Design-Entscheidungen

Warum jedes Mal Laufzeitinformationen einfügen?

  • Abwägung: Token-Verbrauch vs. Kontextgenauigkeit
  • Entscheidung: Füge mit jeder Anfrage den neuesten Laufzeitstatus ein.
  • Vorteile: LLM kennt die aktuelle Uhrzeit (vermeidet Zeitverwirrung). LLM kennt das aktuelle Modell (vermeidet Fehleinschätzung von Fähigkeiten). LLM kennt die aktuelle Umgebung (vermeidet Pfadfehler).
  • Kosten: Verbraucht ~2 KB Token pro Anfrage. Informationen können Redundanzen enthalten.

Komponenten

huangserva - inline image

Praktisches Beispiel

Laufzeit

Schicht 7: Workspace-Dateien ★ Vom Benutzer steuerbar

Analogie

Wie „Deine Arbeitsnotizen“ – dies sind statische Konfigurationsdateien, die du direkt bearbeiten kannst.

Design-Entscheidungen

Warum ist nur diese Schicht statisch editierbar?

  • Abwägung: Framework-Stabilität vs. Benutzerfreiheit
  • Entscheidung: Trenne das „Veränderliche“ vom „Unveränderlichen“; die Framework-Schicht gewährleistet Konsistenz, während die Benutzerschicht Personalisierung erlaubt.
  • Vorteile: Benutzer können Agent-Identität, Arbeitsspezifikationen und Speicher definieren. Framework-Upgrades zerstören keine Benutzerkonfigurationen. Konfigurationsdateien können versioniert, gesichert und geteilt werden.
  • Kosten: Benutzer können das Kernverhalten des Frameworks nicht ändern. Erfordert das Erlernen des TELOS-Frameworks und der Dateistruktur.

Kern-Dateien

huangserva - inline image

Schicht 8: Bootstrap-Hook-System ★ Vom Benutzer steuerbar

Analogie

Wie eine „programmierbare Spritze“ – du kannst Skripte schreiben, die zur Laufzeit dynamisch Inhalte in den System Prompt einfügen.

Design-Entscheidungen

Warum wird ein Hook-System benötigt?

  • Abwägung: Einfachheit der statischen Konfiguration vs. Flexibilität der dynamischen Einfügung
  • Entscheidung: Stelle einen dynamischen Hook-Mechanismus neben den statischen Workspace-Dateien bereit.
  • Vorteile: Kann eingefügte Inhalte dynamisch an den Kontext anpassen (Kanal, Absender, Uhrzeit). Kann Shell-Befehle ausführen und Ausgaben einfügen (z. B. aktuelles Wetter, Git-Status). Kann externe Dateien lesen und einfügen (z. B. Projektdokumentation, API-Dokumentation). Unterstützt bedingte Logik (if/else).
  • Kosten: Erfordert das Erlernen der Hook-System-Syntax und der Auslösemechanismen. Fehler in Hook-Skripten können zu Anomalien im System Prompt führen. Erhöht die Systemkomplexität.

Vier Hook-Mechanismen

  1. agent:bootstrap-Hook (Internes Hook-System)

Auslöseort: applyBootstrapHookOverrides() in bootstrap-hooks.ts

Fähigkeiten:

  • Vollständige Kontrolle über das bootstrapFiles-Array.
  • Kann Dateien hinzufügen, löschen oder ändern.
  • Kann Dateien neu anordnen.
  • Kann Dateiinhalte ändern.

Wer kann registrieren:

  • OpenClaw-Plugins.
  • Workspace-Hooks (~/.openclaw/workspace-*/hooks/ Verzeichnis).
  • Interne Module.

Code-Beispiel:

registerInternalHook("agent:bootstrap", (event) => {

const context = event.context as AgentBootstrapHookContext;

// Vollständige Kontrolle über das bootstrapFiles-Array

context.bootstrapFiles = [

{ path: "CUSTOM.md", content: "Custom Content" }

];

});

  1. bootstrap-extra-files-Hook (Mitgelieferter Hook)

Auslöseort: handler.ts in hooks/bundled/bootstrap-extra-files/

Fähigkeiten:

  • Hängt nur Dateien an; ändert keine vorhandenen.
  • Gibt zusätzliche Dateien über Konfigurationsdatei an.

Konfigurationsbeispiel:

{

"hooks": {

"bootstrap-extra-files": {

"enabled": true,

"paths": ["extra/*.md", "docs/CONTEXT.md"]

}

}

}

Anwendungsszenarien:

  • Benötige Einfügen von projektspezifischen Kontextdateien.
  • Möchte die standardmäßigen 8 Bootstrap-Dateien nicht ändern.
  • Benötige dynamisches Laden zusätzlicher Dokumentation.
  1. before_prompt_build-Hook (Plugin-Hook)

Auslöseort: runBeforePromptBuild() in attempt.ts

Fähigkeiten:

  • Ändert den finalen Prompt (nach System-Prompt-Erstellung, vor Senden an LLM).
  • Kann Kontext voranstellen (Inhalt vor dem Prompt hinzufügen).
  • Kann systemPrompt überschreiben.

Ereignisdaten:

{

prompt: string; // Benutzereingabe

messages: unknown[]; // Sitzungsnachrichtenverlauf

}

Rückgabewert:

{

prependContext?: string; // Inhalt, der vor dem Prompt hinzugefügt wird

systemPrompt?: string; // Überschreibt den System-Prompt

}

Anwendungsszenarien:

  • Benötige dynamische Anpassung des Prompts basierend auf Sitzungsverlauf.
  • Benötige Einfügen von Echtzeit-Kontext (z. B. aktuelle Uhrzeit, Wetter).
  • Benötige vollständiges Ersetzen des System-Prompts.
  1. bootstrapMaxChars / bootstrapTotalMaxChars (Konfigurationselement)

Typ: Konfigurationselement (kein Hook)

Fähigkeiten:

  • Steuert das Zeichenbudget.
  • Einzeldatei-Standard: 20K.
  • Gesamt-Standard: 150K.
  • Überschuss wird abgeschnitten, indem die ersten 70 % + die letzten 20 % genommen werden.

Konfigurationsort:

{

"agents": {

"defaults": {

"bootstrapMaxChars": 20000,

"bootstrapTotalMaxChars": 150000

}

}

}

Praktische Ratschläge

Szenario 1: Ich möchte Projektdokumentation hinzufügen

Empfohlene Lösung: bootstrap-extra-files

{

"hooks": {

"bootstrap-extra-files": {

"enabled": true,

"paths": ["docs/API.md", "docs/ARCHITECTURE.md"]

}

}

}

Szenario 2: Ich möchte basierend auf dem Aufgabentyp dynamisch Dateien laden

Empfohlene Lösung: Benutzerdefinierter agent:bootstrap-Hook

registerInternalHook("agent:bootstrap", (event) => {

const context = event.context as AgentBootstrapHookContext;

const sessionKey = context.sessionKey;

// Unterschiedliche Dateien je nach Sitzungstyp laden

if (sessionKey.includes("coding")) {

context.bootstrapFiles.push({

path: "CODING_GUIDELINES.md",

content: fs.readFileSync("...").toString()

});

}

});

Szenario 3: Ich möchte Echtzeit-Kontext einfügen (z. B. aktuelle Uhrzeit)

Empfohlene Lösung: before_prompt_build-Hook

on("before_prompt_build", (event, ctx) => {

return {

prependContext: Current Time: ${new Date().toISOString()}

};

});

Schicht 9: Eingehender Kontext (Inbound Context)

Analogie

Wie „Echtzeit-Verkehrsinformationen“ – fügt mit jeder Anfrage dynamisch Kontextinformationen des aktuellen Gesprächs ein.

Design-Entscheidungen

Warum jedes Mal Kontext einfügen?

  • Abwägung: Token-Verbrauch vs. Gesprächskohärenz
  • Entscheidung: Füge mit jeder Anfrage die neuesten Nachrichtenmetadaten, Absenderinformationen und den Gesprächsverlauf ein.
  • Vorteile: LLM weiß, wer gerade spricht (vermeidet Verwechslung des Absenders). LLM kennt den Gesprächsverlauf (erhält Kontextkohärenz). LLM weiß, ob es erwähnt wurde (entscheidet, ob es antworten soll).
  • Kosten: Verbraucht ~3 KB Token pro Anfrage. Gesprächsverlauf kann Rauschen enthalten.

Komponenten

huangserva - inline image

Vollständiger System-Prompt-Assembly-Prozess

huangserva - inline image
huangserva - inline image
huangserva - inline image

Zusammenfassung der vom Benutzer steuerbaren Schichten

OpenClaw bietet 3 Arten von benutzersteuerbaren Mechanismen:

  1. Schicht 7 (Workspace-Dateien) - Statische Konfigurationsdateien. Szenario: Definieren von Agent-Identität, Arbeitsspezifikationen, Speicher. Vorteile: Einfach, intuitiv, gute Versionierbarkeit. Nachteile: Kann nicht dynamisch angepasst werden.
  2. Schicht 8 (Bootstrap-Hook-System) - Dynamische Einfügungsskripte. Szenario: Einfügen von Inhalten basierend auf Kontext, Ausführen von Befehlen, Lesen externer Dateien. Vorteile: Flexibel, leistungsstark, unterstützt Logik und Befehle. Nachteile: Erfordert Lernen des Hook-Systems; Skriptfehler verursachen Probleme.
  3. Indirekte Steuerung von Schicht 9 (Eingehender Kontext) - Beeinflussung des Kontexts durch Senden von Nachrichten. Szenario: Beeinflussung des LLM-Verhaltens über Chat-Verlauf oder zitierte Nachrichten. Vorteile: Keine Konfiguration nötig, natürliche Interaktion. Nachteile: Kann nicht präzise gesteuert werden.

Größenvergleichstabelle

⚠️



Hinweis: Die folgenden Daten sind Schätzungen; tatsächliche Größen variieren je nach Konfiguration und Laufzeitkontext. Framework-Schichten (Schicht 1-6 + 9) sollten theoretisch gleich sein, können aber aufgrund von Tool-Definitionen, geladenen Skills usw. geringfügig abweichen.

huangserva - inline image

Hinweise:

  • Schicht 7 und Schicht 8 sind vom Benutzer steuerbar; Größen variieren je nach Agent-Konfiguration.
  • Andere Schichten werden automatisch generiert und sind theoretisch identisch über alle Agents hinweg.
  • Tatsächliche Messungen können aufgrund von Tool-Verfügbarkeit, Skills-Laden und Laufzeitkontext abweichen.

Optimierungsvorschläge

  1. Optimierung des benutzersteuerbaren Teils (Schicht 7 + 8)

Da Schicht 7 und 8 benutzergesteuert sind, hier Optimierungsstrategien:

Optimierung von Schicht 7 (Statische Dateien):

✅ Empfohlene schlanke Strategien:

  • IDENTITY.md: Behalte das Kern-TELOS-Framework, entferne redundante Beschreibungen, verwende Tabellen anstelle von Absätzen.
  • AGENTS.md: Verwende Checklisten anstelle von langen Absätzen, zeige Befehle in Code-Blöcken, entferne doppelte Regelerklärungen.
  • MEMORY.md: Verlasse dich auf den MemOS-Auto-Export; füge keine Inhalte manuell hinzu – lass das System die Pflege übernehmen.

❌ Zu vermeidende Praktiken:

  • Wiederhole keine Beschreibungen, die das OpenClaw-Framework bereits kennt.
  • Kopiere keine detaillierten Skill-Beschreibungen in Workspace-Dateien.
  • Verwende keine übermäßige Rhetorik oder schmückende Sprache.

Optimierung von Schicht 8 (Hook-System):

✅ Empfohlene Nutzungsstrategien:

  • Bevorzuge bootstrap-extra-files (einfache Szenarien).
  • Verwende agent:bootstrap, wenn bedingte Logik benötigt wird (komplexe Szenarien).
  • Verwende before_prompt_build für Echtzeit-Kontext (dynamische Szenarien).

❌ Zu vermeidende Praktiken:

  • Führe keine zeitaufwändigen Operationen in Hooks aus (blockiert die System-Prompt-Generierung).
  • Füge keine zu vielen Inhalte in Hooks ein (überschreitet Token-Limits).
  • Verwende keine instabilen externen Abhängigkeiten in Hooks (führt zu Startfehlern).
  1. Prompt-Kürzungsstrategie

Falls der System-Prompt zu groß ist, erwäge:

huangserva - inline image

Fazit

Der System-Prompt von OpenClaw ist keine einzelne Datei, sondern eine sorgfältig orchestrierte 9-Schichten-Architektur:

  • Schicht 1-6: Automatisch vom Framework generiert, gewährleisten Konsistenz und Stabilität.
  • Schicht 7: Vom Benutzer editierbare statische Konfigurationsdateien (IDENTITY.md, AGENTS.md usw.).
  • Schicht 8: Vom Benutzer programmierbare dynamische Einfügungsskripte (Bootstrap-Hook-System).
  • Schicht 9: Vom Framework automatisch eingefügter Echtzeit-Kontext (Eingehender Kontext).

Es gibt 2 vom Benutzer steuerbare Schichten (Schicht 7 + 8), nicht nur Schicht 7, wie zuvor fälschlicherweise angegeben.

Das Verständnis der Unterschiede und Verbindungen zwischen diesen Schichten ist der Schlüssel zur Beherrschung der OpenClaw-Konfiguration.

Mit einem Klick speichern

Virale Artikel mit YouMind per KI tief lesen

Speichere die Quelle, stelle gezielte Fragen, fasse die Argumentation zusammen und verwandle einen viralen Artikel in wiederverwendbare Notizen in einem einzigen KI-Arbeitsbereich.

YouMind entdecken
Für Creator

Verwandle dein Markdown in einen sauberen 𝕏-Artikel

Wenn du eigene Langtexte veröffentlichst, wird die 𝕏-Formatierung von Bildern, Tabellen und Codeblöcken mühsam. YouMind macht aus einem ganzen Markdown-Entwurf einen sauberen, sofort postbaren 𝕏-Artikel.

Markdown zu 𝕏 testen

Mehr Muster zum Entschlüsseln

Aktuelle virale Artikel

Mehr virale Artikel entdecken