buildAgentSystemPromptrendert den Prompt aus expliziten Eingaben. Es sollte ein reiner Renderer bleiben und die globale Konfiguration nicht direkt lesen.resolveAgentSystemPromptConfiglöst konfigurationsgestützte Prompt-Regler wie Owner-Anzeige, TTS-Hinweise, Modell-Aliasse, Speicher-Zitationsmodus und Delegationsmodus für Sub-Agenten für einen bestimmten Agenten auf.- Laufzeitadapter (Embedded, CLI, Befehls-/Exportvorschauen, Compaction) erfassen Live-Fakten wie Tools, Sandbox-Status, Channel-Fähigkeiten, Kontextdateien und Provider-Prompt-Beiträge und rufen dann die konfigurierte Prompt-Fassade auf.
- eine kleine Menge benannter Kernabschnitte ersetzen (
interaction_style,tool_call_style,execution_bias) - ein stabiles Präfix oberhalb der Prompt-Cache-Grenze injizieren
- ein dynamisches Suffix unterhalb der Prompt-Cache-Grenze injizieren
before_prompt_build
für Kompatibilität oder wirklich globale Prompt-Änderungen bei, nicht für
normales Provider-Verhalten.
Das Overlay der OpenAI GPT-5-Familie hält die Kern-Ausführungsregel klein und
ergänzt modellspezifische Anleitung für Persona-Latching, knappe Ausgabe,
Tool-Disziplin, parallele Suche, Lieferumfang, Verifizierung, fehlenden Kontext
und Hygiene bei Terminal-Tools.
Struktur
Der Prompt ist absichtlich kompakt und verwendet feste Abschnitte:- Tooling: Erinnerung an strukturierte Tools als Quelle der Wahrheit plus Laufzeit-Anleitung zur Tool-Nutzung.
- Execution Bias: kompakte Anleitung zum konsequenten Abschließen: bei umsetzbaren Anfragen innerhalb der Runde handeln, fortfahren bis erledigt oder blockiert, sich von schwachen Tool-Ergebnissen erholen, veränderlichen Zustand live prüfen und vor dem Finalisieren verifizieren.
- Safety: kurze Guardrail-Erinnerung, machtsuchendes Verhalten oder das Umgehen von Aufsicht zu vermeiden.
- Skills (wenn verfügbar): erklärt dem Modell, wie Skill-Anweisungen bei Bedarf geladen werden.
- OpenClaw Control: weist das Modell an, für
Konfigurations-/Neustartarbeiten das
gateway-Tool zu bevorzugen und keine CLI-Befehle zu erfinden. - OpenClaw Self-Update: wie Konfiguration sicher mit
config.schema.lookupinspiziert, mitconfig.patchgepatcht, die vollständige Konfiguration mitconfig.applyersetzt undupdate.runnur auf ausdrückliche Benutzeranfrage ausgeführt wird. Das agentenseitigegateway-Tool verweigert außerdem das Umschreiben vontools.exec.ask/tools.exec.security, einschließlich veraltetertools.bash.*-Aliasse, die auf diese geschützten Exec-Pfade normalisieren. - Workspace: Arbeitsverzeichnis (
agents.defaults.workspace). - Documentation: lokaler Pfad zu OpenClaw-Dokumentation/-Quelle und wann sie zu lesen ist.
- Workspace Files (injected): zeigt an, dass Bootstrap-Dateien unten enthalten sind.
- Sandbox (wenn aktiviert): zeigt Sandbox-Laufzeit, Sandbox-Pfade und ob erhöhte Exec-Rechte verfügbar sind.
- Current Date & Time: nur Zeitzone (cache-stabil; die Live-Uhr kommt aus
session_status). - Assistant Output Directives: kompakte Syntax für Anhänge, Sprachnotizen und Reply-Tags.
- Heartbeats: Heartbeat-Prompt und Ack-Verhalten, wenn Heartbeats für den Standardagenten aktiviert sind.
- Runtime: Host, Betriebssystem, Node, Modell, Repo-Root (wenn erkannt), Denkstufe (eine Zeile).
- Reasoning: aktuelle Sichtbarkeitsstufe + Hinweis zum
/reasoning-Schalter.
- Cron für zukünftige Nachfassaktionen (
check back later, Erinnerungen, wiederkehrende Arbeit) verwenden stattexec-Sleep-Schleifen,yieldMs-Delay-Tricks oder wiederholtemprocess-Polling exec/processnur für Befehle verwenden, die jetzt starten und im Hintergrund weiterlaufen- wenn automatisches Aufwachen bei Abschluss aktiviert ist, den Befehl einmal starten und sich auf den Push-basierten Aufwachpfad verlassen, wenn er Ausgabe erzeugt oder fehlschlägt
processfür Logs, Status, Eingabe oder Eingriffe verwenden, wenn Sie einen laufenden Befehl prüfen müssen- wenn die Aufgabe größer ist,
sessions_spawnbevorzugen; der Abschluss von Sub-Agenten ist Push-basiert und kündigt sich automatisch beim Anfragenden an subagents list/sessions_listnicht in einer Schleife pollen, nur um auf den Abschluss zu warten
agents.defaults.subagents.delegationMode kann diese Anleitung verstärken. Der
Standardmodus suggest behält den grundlegenden Hinweis bei. prefer fügt einen
dedizierten Abschnitt Sub-Agent Delegation hinzu, der den Hauptagenten anweist,
als reaktionsschneller Koordinator zu handeln und alles, was über eine direkte
Antwort hinausgeht, über sessions_spawn weiterzugeben. Dies betrifft nur den
Prompt; die Tool-Policy steuert weiterhin, ob sessions_spawn verfügbar ist.
Wenn das experimentelle Tool update_plan aktiviert ist, weist Tooling das
Modell außerdem an, es nur für nicht triviale mehrstufige Arbeit zu verwenden,
genau einen in_progress-Schritt beizubehalten und nach jedem Update nicht den
gesamten Plan zu wiederholen.
Safety-Guardrails im System-Prompt sind beratend. Sie leiten das Modellverhalten, erzwingen aber keine Policy. Verwenden Sie Tool-Policy, Exec-Genehmigungen, Sandboxing und Channel-Allowlists für harte Durchsetzung; Betreiber können diese absichtlich deaktivieren.
Auf Channels mit nativen Genehmigungskarten/-Buttons weist der Laufzeit-Prompt
den Agenten nun an, zuerst diese native Genehmigungs-UI zu verwenden. Er sollte
nur dann einen manuellen /approve-Befehl einfügen, wenn das Tool-Ergebnis sagt,
dass Chat-Genehmigungen nicht verfügbar sind oder manuelle Genehmigung der
einzige Weg ist.
Prompt-Modi
OpenClaw kann kleinere System-Prompts für Sub-Agenten rendern. Die Laufzeit setzt für jeden Lauf einenpromptMode (keine benutzerseitige Konfiguration):
full(Standard): enthält alle oben genannten Abschnitte.minimal: wird für Sub-Agenten verwendet; lässt Memory Recall, OpenClaw Self-Update, Model Aliases, User Identity, Assistant Output Directives, Messaging, Silent Replies und Heartbeats aus. Tooling, Safety, Skills sofern bereitgestellt, Workspace, Sandbox, Current Date & Time (wenn bekannt), Runtime und injizierter Kontext bleiben verfügbar.none: gibt nur die Basis-Identitätszeile zurück.
promptMode=minimal ist, werden zusätzlich injizierte Prompts als Subagent
Context statt Group Chat Context beschriftet.
Für automatische Channel-Antwortläufe lässt OpenClaw den generischen Abschnitt
Silent Replies weg, wenn direkter, Gruppen- oder nur Message-Tool-Kontext den
Vertrag für sichtbare Antworten besitzt. Nur der alte automatische Gruppen-/
Channel-Modus sollte NO_REPLY anzeigen; direkte Chats und reine Message-Tool-
Antworten erhalten keine Anleitung zu Silent-Tokens.
Prompt-Snapshots
OpenClaw hält committete Prompt-Snapshots für den erfolgreichen Pfad der Codex-Laufzeit untertest/fixtures/agents/prompt-snapshots/codex-runtime-happy-path/. Sie rendern
ausgewählte App-Server-Thread-/Turn-Parameter plus einen rekonstruierten
modellgebundenen Prompt-Layer-Stack für direkte Telegram-, Discord-Gruppen- und
Heartbeat-Runden. Dieser Stack enthält eine gepinnte Codex-gpt-5.5-Modell-
Prompt-Fixture, die aus Codex’ Modellkatalog-/Cache-Form generiert wurde, den
Codex-Happy-Path-Developer-Text für Berechtigungen, OpenClaw-Developer-
Anweisungen, rundenbezogene Collaboration-Mode-Anweisungen, wenn OpenClaw sie
bereitstellt, Benutzereingabe der Runde und Referenzen auf die dynamischen Tool-
Spezifikationen.
Aktualisieren Sie die gepinnte Codex-Modell-Prompt-Fixture mit
pnpm prompt:snapshots:sync-codex-model. Standardmäßig sucht das Skript nach
Codex’ Laufzeit-Cache unter $CODEX_HOME/models_cache.json, dann unter
~/.codex/models_cache.json, und fällt erst dann auf die Maintainer-Codex-
Checkout-Konvention unter ~/code/codex/codex-rs/models-manager/models.json
zurück. Wenn keine dieser Quellen existiert, beendet sich der Befehl ohne
Änderung der committeten Fixture. Übergeben Sie --catalog <path>, um aus einer
bestimmten Datei models_cache.json oder models.json zu aktualisieren.
Diese Snapshots sind weiterhin keine Byte-für-Byte-Rohaufzeichnung einer OpenAI-Anfrage. Codex
kann laufzeiteigenen Workspace-Kontext wie AGENTS.md, Umgebungskontext,
Speicher, App-/Plugin-Anweisungen und eingebaute Default-Collaboration-Mode-
Anweisungen innerhalb der Codex-Laufzeit hinzufügen, nachdem OpenClaw Thread-
und Turn-Parameter sendet.
Regenerieren Sie sie mit pnpm prompt:snapshots:gen und verifizieren Sie Drift mit
pnpm prompt:snapshots:check. CI führt die Drift-Prüfung im zusätzlichen
Boundary-Shard aus, damit Prompt-Änderungen und Snapshot-Updates im selben PR
zusammenbleiben.
Workspace-Bootstrap-Injektion
Bootstrap-Dateien werden aus dem aktiven Workspace aufgelöst und dann an die Prompt-Oberfläche geleitet, die ihrer Lebensdauer entspricht:AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(nur in brandneuen Workspaces)MEMORY.md, wenn vorhanden
AGENTS.md über seine eigene Project-
Doc-Erkennung. SOUL.md, IDENTITY.md, TOOLS.md und USER.md werden als
Codex-Developer-Anweisungen weitergeleitet. Die kompakte OpenClaw-Skills-Liste
wird ebenfalls als rundenbezogene Collaboration-Developer-Anweisungen
weitergeleitet. Inhalte aus HEARTBEAT.md werden nicht injiziert; Heartbeat-
Runden erhalten eine Collaboration-Mode-Notiz, die auf die Datei verweist, wenn
sie existiert und nicht leer ist. Inhalte aus MEMORY.md aus dem konfigurierten
Agenten-Workspace werden nicht in jede native Codex-Runde eingefügt; wenn
Speicher-Tools für diesen Workspace verfügbar sind, erhalten Codex-Runden eine
kleine Workspace-Memory-Notiz in rundenbezogenen Collaboration-Developer-
Anweisungen und sollten memory_search oder memory_get verwenden, wenn
dauerhafter Speicher relevant ist. Wenn Tools deaktiviert sind, die Speichersuche
nicht verfügbar ist oder der aktive Workspace vom Agenten-Speicher-Workspace
abweicht, fällt MEMORY.md auf den normalen begrenzten Turn-Context-Pfad zurück.
Aktiver BOOTSTRAP.md-Inhalt behält vorerst die normale Turn-Context-Rolle.
Auf Nicht-Codex-Harnesses werden Bootstrap-Dateien weiterhin gemäß ihren
bestehenden Gates in den OpenClaw-Prompt komponiert. HEARTBEAT.md wird bei
normalen Läufen ausgelassen, wenn Heartbeats für den Standardagenten deaktiviert
sind oder agents.defaults.heartbeat.includeSystemPromptSection false ist. Halten
Sie injizierte Dateien knapp, besonders MEMORY.md außerhalb von Codex.
MEMORY.md soll eine kuratierte Langzeitzusammenfassung bleiben; detaillierte
Tagesnotizen gehören in memory/*.md, wo memory_search und memory_get sie
bei Bedarf abrufen können. Überdimensionierte MEMORY.md-Dateien außerhalb von
Codex erhöhen die Prompt-Nutzung und können wegen der unten genannten Grenzen für
Bootstrap-Dateien teilweise injiziert werden.
Tägliche Dateien unter
memory/*.md sind nicht Teil des normalen Bootstrap-Project-Context. In gewöhnlichen Runden wird bei Bedarf über die Tools memory_search und memory_get auf sie zugegriffen, sodass sie nicht gegen das Kontextfenster zählen, außer das Modell liest sie explizit. Reine /new- und /reset-Runden sind die Ausnahme: Die Laufzeit kann aktuellen täglichen Speicher als einmaligen Startup-Context-Block für diese erste Runde voranstellen.agents.defaults.bootstrapMaxChars gesteuert (Standard: 20000). Der gesamte injizierte Bootstrap-
Inhalt über alle Dateien hinweg ist durch agents.defaults.bootstrapTotalMaxChars
begrenzt (Standard: 60000). Fehlende Dateien injizieren eine kurze Fehlende-Datei-Markierung. Wenn eine Kürzung
erfolgt, kann OpenClaw einen knappen Warnhinweis in den System-Prompt injizieren; steuern Sie dies mit
agents.defaults.bootstrapPromptTruncationWarning (off, once, always;
Standard: always). Detaillierte Roh-/Injektionszählungen bleiben in Diagnosen wie
/context, /status, doctor und Logs.
Bei Speicherdateien ist Kürzung kein Datenverlust: Die Datei bleibt auf der Festplatte intakt.
Bei nativem Codex wird MEMORY.md bei Bedarf über Speicher-Tools gelesen, wenn
verfügbar, mit begrenztem Prompt-Fallback, wenn Tools nicht ausgeführt werden können. Bei anderen
Harnesses sieht das Modell nur die gekürzte injizierte Kopie, bis es den Speicher direkt liest oder
durchsucht. Wenn MEMORY.md dort wiederholt gekürzt wird, destillieren
Sie sie in eine kürzere dauerhafte Zusammenfassung und verschieben detaillierte Historie nach memory/*.md,
oder erhöhen Sie die Bootstrap-Grenzen bewusst.
Sub-Agent-Sitzungen injizieren nur AGENTS.md und TOOLS.md (andere Bootstrap-Dateien
werden herausgefiltert, um den Sub-Agent-Kontext klein zu halten).
Interne Hooks können diesen Schritt über agent:bootstrap abfangen, um die
injizierten Bootstrap-Dateien zu verändern oder zu ersetzen (zum Beispiel SOUL.md durch eine alternative Persona zu ersetzen).
Wenn Sie möchten, dass der Agent weniger generisch klingt, beginnen Sie mit dem
SOUL.md Personality Guide.
Um zu prüfen, wie viel jede injizierte Datei beiträgt (roh vs. injiziert, Kürzung sowie Tool-Schema-Overhead), verwenden Sie /context list oder /context detail. Siehe Kontext.
Zeitbehandlung
Der System-Prompt enthält einen eigenen Abschnitt Aktuelles Datum & aktuelle Uhrzeit, wenn die Zeitzone des Benutzers bekannt ist. Um den Prompt cache-stabil zu halten, enthält er jetzt nur noch die Zeitzone (keine dynamische Uhr oder Zeitformat). Verwenden Siesession_status, wenn der Agent die aktuelle Uhrzeit benötigt; die Statuskarte
enthält eine Zeitstempelzeile. Dasselbe Tool kann optional einen modellspezifischen Override pro Sitzung
setzen (model=default löscht ihn).
Konfigurieren Sie mit:
agents.defaults.userTimezoneagents.defaults.timeFormat(auto|12|24)
Skills
Wenn geeignete Skills vorhanden sind, injiziert OpenClaw eine kompakte Liste verfügbarer Skills (formatSkillsForPrompt), die den Dateipfad und die aus dem Inhalt abgeleitete
<version>-Markierung für jeden Skill enthält. Der Prompt weist das Modell an, read
zu verwenden, um die SKILL.md am aufgeführten Ort zu laden (Workspace, verwaltet oder gebündelt),
und einen Skill erneut zu lesen, wenn seine <version> von einem vorherigen Turn abweicht. Wenn keine
Skills geeignet sind, wird der Abschnitt Skills ausgelassen.
Native Codex-Turns erhalten diese Liste als turn-bezogene Entwickleranweisungen zur Zusammenarbeit
statt als Benutzereingabe pro Turn, außer leichtgewichtige Cron-Turns, die
den exakt geplanten Prompt beibehalten. Andere Harnesses behalten den normalen Prompt-
Abschnitt bei.
Der Ort kann auf einen verschachtelten Skill verweisen, zum Beispiel
skills/personal/foo/SKILL.md. Verschachtelung dient nur der Organisation; der Prompt verwendet weiterhin
den flachen Skill-Namen aus dem Frontmatter von SKILL.md.
Eignung umfasst Metadaten-Gates für Skills, Laufzeitumgebungs-/Konfigurationsprüfungen
und die effektive Skill-Allowlist des Agents, wenn agents.defaults.skills oder
agents.list[].skills konfiguriert ist.
Plugin-gebündelte Skills sind nur geeignet, wenn ihr besitzendes Plugin aktiviert ist.
So können Tool-Plugins tiefere Betriebsanleitungen bereitstellen, ohne all diese
Anleitungen direkt in jede Tool-Beschreibung einzubetten.
- Globaler Standard:
skills.limits.maxSkillsPromptChars - Override pro Agent:
agents.list[].skillsLimits.maxSkillsPromptChars
agents.defaults.contextLimits.*agents.list[].contextLimits.*
memory_get, Live-Tool-Ergebnisse und AGENTS.md-Aktualisierungen nach Compaction.
Dokumentation
Der System-Prompt enthält einen Abschnitt Dokumentation. Wenn lokale Dokumentation verfügbar ist, verweist er auf das lokale OpenClaw-Dokumentationsverzeichnis (docs/ in einem Git-Checkout oder die gebündelten npm-
Paketdokumente). Wenn lokale Dokumentation nicht verfügbar ist, fällt er auf
https://docs.openclaw.ai zurück.
Derselbe Abschnitt enthält außerdem den Quellort von OpenClaw. Git-Checkouts geben den lokalen
Quell-Root frei, damit der Agent Code direkt prüfen kann. Paketinstallationen enthalten die GitHub-
Quell-URL und weisen den Agent an, dort den Quellcode zu prüfen, wenn die Dokumentation unvollständig oder
veraltet ist. Der Prompt erwähnt außerdem den öffentlichen Dokumentationsspiegel, den Community-Discord und ClawHub
(https://clawhub.ai) für die Entdeckung von Skills. Er rahmt die Dokumentation als
Autorität für OpenClaw-Selbstwissen ein, bevor das Modell versteht, wie OpenClaw funktioniert,
einschließlich Speicher/täglicher Notizen, Sitzungen, Tools, Gateway, Konfiguration, Befehle oder Projekt-
kontext. Der Prompt weist das Modell an, zuerst lokale Dokumentation (oder den Dokumentationsspiegel, wenn lokale Dokumentation
nicht verfügbar ist) zu verwenden und AGENTS.md, Projektkontext, Workspace-/Profil-/Speicher-
notizen und memory_search als Anweisungskontext oder Benutzerspeicher statt als OpenClaw-
Design- oder Implementierungswissen zu behandeln. Wenn die Dokumentation schweigt oder veraltet ist, sollte das Modell dies sagen
und den Quellcode prüfen. Der Prompt weist das Modell außerdem an, openclaw status selbst auszuführen, wenn
möglich, und den Benutzer nur zu fragen, wenn ihm der Zugriff fehlt.
Speziell für Konfiguration verweist er Agents auf die gateway-Tool-Aktion
config.schema.lookup für exakte feldspezifische Dokumentation und Einschränkungen, danach auf
docs/gateway/configuration.md und docs/gateway/configuration-reference.md
für breitere Anleitung.