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

Save the source, ask focused questions, summarize the argument, and turn a viral article into reusable notes in one AI workspace.

Explore YouMind
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