OpenClaw buduje niestandardowy prompt systemowy dla każdego uruchomienia agenta. Prompt jest własnością OpenClaw i nie używa domyślnego promptu pi-coding-agent. Prompt jest składany przez OpenClaw i wstrzykiwany do każdego uruchomienia agenta. Składanie promptu ma trzy warstwy:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
buildAgentSystemPromptrenderuje prompt z jawnych danych wejściowych. Powinien pozostać czystym rendererem i nie powinien bezpośrednio odczytywać konfiguracji globalnej.resolveAgentSystemPromptConfigrozwiązuje przełączniki promptu oparte na konfiguracji, takie jak wyświetlana nazwa właściciela, wskazówki TTS, aliasy modeli, tryb cytowania pamięci i tryb delegowania do podagentów dla konkretnego agenta.- Adaptery środowiska wykonawczego (osadzone, CLI, podglądy poleceń/eksportu, Compaction) zbierają aktualne fakty, takie jak narzędzia, stan piaskownicy, możliwości kanału, pliki kontekstu i wkłady promptów od dostawców, a następnie wywołują skonfigurowaną fasadę promptu.
- zastąpić niewielki zestaw nazwanych sekcji rdzenia (
interaction_style,tool_call_style,execution_bias) - wstrzyknąć stabilny prefiks nad granicą cache promptu
- wstrzyknąć dynamiczny sufiks pod granicą cache promptu
before_prompt_build na potrzeby kompatybilności lub rzeczywiście globalnych zmian promptu,
a nie zwykłego zachowania dostawcy.
Nakładka rodziny OpenAI GPT-5 utrzymuje podstawową regułę wykonania jako krótką i dodaje
wskazówki specyficzne dla modelu dotyczące utrwalania persony, zwięzłych wyników, dyscypliny narzędzi,
równoległego wyszukiwania, kompletności rezultatów, weryfikacji, brakującego kontekstu i
higieny narzędzi terminalowych.
Struktura
Prompt jest celowo zwarty i używa stałych sekcji:- Narzędzia: przypomnienie o źródle prawdy dla narzędzi strukturalnych oraz wskazówki użycia narzędzi w środowisku wykonawczym.
- Nastawienie wykonawcze: zwięzłe wskazówki dotyczące doprowadzania spraw do końca: działaj w ramach tury przy wykonalnych prośbach, kontynuuj aż do ukończenia lub zablokowania, odzyskuj się po słabych wynikach narzędzi, sprawdzaj zmienny stan na żywo i weryfikuj przed finalizacją.
- Bezpieczeństwo: krótkie przypomnienie o barierach ochronnych, aby unikać zachowań dążących do władzy lub obchodzenia nadzoru.
- Skills (gdy dostępne): mówi modelowi, jak ładować instrukcje Skills na żądanie.
- Sterowanie OpenClaw: mówi modelowi, aby preferował narzędzie
gatewaydo pracy z konfiguracją/restartem i unikał wymyślania poleceń CLI. - Samodzielna aktualizacja OpenClaw: jak bezpiecznie sprawdzać konfigurację za pomocą
config.schema.lookup, łatać konfigurację za pomocąconfig.patch, zastępować pełną konfigurację za pomocąconfig.applyi uruchamiaćupdate.runtylko na wyraźną prośbę użytkownika. Narzędziegatewaydostępne tylko dla właściciela również odmawia przepisywaniatools.exec.ask/tools.exec.security, w tym starszych aliasówtools.bash.*, które normalizują się do tych chronionych ścieżek exec. - Obszar roboczy: katalog roboczy (
agents.defaults.workspace). - Dokumentacja: lokalna ścieżka do docs/source OpenClaw i kiedy je czytać.
- Pliki obszaru roboczego (wstrzyknięte): wskazuje, że pliki bootstrap są dołączone poniżej.
- Piaskownica (gdy włączona): wskazuje środowisko wykonawcze w piaskownicy, ścieżki piaskownicy i to, czy dostępne jest podniesione exec.
- Bieżąca data i godzina: tylko strefa czasowa (stabilne dla cache; zegar na żywo pochodzi z
session_status). - Dyrektywy wyjścia asystenta: zwięzła składnia załączników, notatek głosowych i tagów odpowiedzi.
- Heartbeats: prompt Heartbeat i zachowanie potwierdzeń, gdy Heartbeats są włączone dla domyślnego agenta.
- Środowisko wykonawcze: host, OS, node, model, root repozytorium (gdy wykryty), poziom myślenia (jedna linia).
- Rozumowanie: bieżący poziom widoczności + wskazówka przełącznika /reasoning.
- używaj cron do przyszłych działań następczych (
check back later, przypomnienia, praca cykliczna) zamiast pętli usypianiaexec, sztuczek z opóźnieniemyieldMslub powtarzanego odpytywaniaprocess - używaj
exec/processtylko do poleceń, które startują teraz i kontynuują działanie w tle - gdy włączone jest automatyczne wybudzanie po ukończeniu, uruchom polecenie raz i polegaj na ścieżce wybudzania push, gdy emituje wyjście lub kończy się niepowodzeniem
- używaj
processdo logów, statusu, wejścia lub interwencji, gdy musisz sprawdzić działające polecenie - jeśli zadanie jest większe, preferuj
sessions_spawn; ukończenie podagenta jest oparte na push i automatycznie zgłasza się z powrotem do zgłaszającego - nie odpytuj
subagents list/sessions_listw pętli tylko po to, by czekać na ukończenie
agents.defaults.subagents.delegationMode może wzmocnić te wskazówki. Domyślny
tryb suggest zachowuje podstawowe naprowadzenie. prefer dodaje dedykowaną
sekcję Delegowanie do podagentów, która mówi głównemu agentowi, aby działał jako responsywny
koordynator i przekazywał wszystko bardziej złożone niż bezpośrednia odpowiedź przez
sessions_spawn. To dotyczy tylko promptu; polityka narzędzi nadal kontroluje, czy
sessions_spawn jest dostępne.
Gdy eksperymentalne narzędzie update_plan jest włączone, Narzędzia mówią też
modelowi, aby używał go tylko do nietrywialnej pracy wieloetapowej, utrzymywał dokładnie jeden
krok in_progress i unikał powtarzania całego planu po każdej aktualizacji.
Bariery bezpieczeństwa w prompcie systemowym mają charakter doradczy. Kierują zachowaniem modelu, ale nie egzekwują polityki. Do twardego egzekwowania używaj polityki narzędzi, zatwierdzeń exec, piaskownicy i allowlist kanałów; operatorzy mogą je celowo wyłączyć.
Na kanałach z natywnymi kartami/przyciskami zatwierdzania prompt środowiska wykonawczego mówi teraz
agentowi, aby w pierwszej kolejności polegał na tym natywnym interfejsie zatwierdzania. Powinien dołączać ręczne
polecenie /approve tylko wtedy, gdy wynik narzędzia mówi, że zatwierdzenia na czacie są niedostępne lub
ręczne zatwierdzenie jest jedyną ścieżką.
Tryby promptu
OpenClaw może renderować mniejsze prompty systemowe dla podagentów. Środowisko wykonawcze ustawiapromptMode dla każdego uruchomienia (nie jest to konfiguracja widoczna dla użytkownika):
full(domyślnie): zawiera wszystkie sekcje powyżej.minimal: używany dla podagentów; pomija Przywołanie pamięci, Samodzielna aktualizacja OpenClaw, Aliasy modeli, Tożsamość użytkownika, Dyrektywy wyjścia asystenta, Wiadomości, Ciche odpowiedzi i Heartbeats. Narzędzia, Bezpieczeństwo, Skills, gdy dostarczone, Obszar roboczy, Piaskownica, Bieżąca data i godzina (gdy znane), Środowisko wykonawcze i wstrzyknięty kontekst pozostają dostępne.none: zwraca tylko bazową linię tożsamości.
promptMode=minimal, dodatkowe wstrzyknięte prompty są oznaczane jako Kontekst podagenta
zamiast Kontekst czatu grupowego.
W przypadku uruchomień automatycznej odpowiedzi kanału OpenClaw może pominąć ogólną sekcję Ciche odpowiedzi,
gdy kontekst czatu bezpośredniego/grupowego już zawiera rozwiązane
zachowanie NO_REPLY specyficzne dla rozmowy. Pozwala to uniknąć powtarzania mechaniki tokenów
zarówno w globalnym prompcie systemowym, jak i w kontekście kanału.
Snapshoty promptów
OpenClaw przechowuje zatwierdzone snapshoty promptów dla szczęśliwej ścieżki środowiska wykonawczego Codex wtest/fixtures/agents/prompt-snapshots/codex-runtime-happy-path/. Renderują
wybrane parametry wątku/tury serwera aplikacji oraz zrekonstruowany stos warstw promptu powiązanych z modelem
dla tur bezpośrednich Telegram, grupowych Discord i Heartbeat. Ten stos
zawiera przypiętą fixture promptu modelu Codex gpt-5.5 wygenerowaną z kształtu
katalogu/cache modeli Codex, tekst deweloperski uprawnień szczęśliwej ścieżki Codex,
instrukcje deweloperskie OpenClaw, instrukcje trybu współpracy ograniczone do tury,
gdy OpenClaw je dostarcza, wejście tury użytkownika i odniesienia do dynamicznych specyfikacji narzędzi.
Odśwież przypiętą fixture promptu modelu Codex za pomocą
pnpm prompt:snapshots:sync-codex-model. Domyślnie skrypt szuka
cache środowiska wykonawczego Codex w $CODEX_HOME/models_cache.json, potem w
~/.codex/models_cache.json, a dopiero potem wraca do konwencji checkoutu Codex
maintainera pod ~/code/codex/codex-rs/models-manager/models.json. Jeśli
żadne z tych źródeł nie istnieje, polecenie kończy działanie bez zmiany zatwierdzonej
fixture. Przekaż --catalog <path>, aby odświeżyć z konkretnego pliku models_cache.json
lub models.json.
Te snapshoty nadal nie są surowym przechwytem żądania OpenAI bajt w bajt. Codex
może dodać kontekst obszaru roboczego należący do środowiska wykonawczego, taki jak AGENTS.md, kontekst
środowiska, pamięci, instrukcje aplikacji/pluginu oraz wbudowane instrukcje trybu współpracy Default
wewnątrz środowiska wykonawczego Codex po tym, jak OpenClaw wyśle parametry
wątku i tury.
Wygeneruj je ponownie za pomocą pnpm prompt:snapshots:gen i zweryfikuj dryf za pomocą
pnpm prompt:snapshots:check. CI uruchamia sprawdzanie dryfu w dodatkowym
shardzie granicznym, aby zmiany promptu i aktualizacje snapshotów pozostawały przypięte do tego samego
PR.
Wstrzykiwanie bootstrap obszaru roboczego
Pliki bootstrap są przycinane i dołączane pod Kontekstem projektu, aby model widział kontekst tożsamości i profilu bez potrzeby jawnych odczytów:AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(tylko w zupełnie nowych obszarach roboczych)MEMORY.md, gdy jest obecny
HEARTBEAT.md jest pomijany w zwykłych uruchomieniach, gdy
Heartbeats są wyłączone dla domyślnego agenta lub
agents.defaults.heartbeat.includeSystemPromptSection ma wartość false. Utrzymuj wstrzykiwane
pliki zwięzłe, zwłaszcza MEMORY.md. MEMORY.md ma pozostać
wyselekcjonowanym długoterminowym podsumowaniem; szczegółowe codzienne notatki należą do memory/*.md, gdzie
memory_search i memory_get mogą pobierać je na żądanie. Zbyt duże
pliki MEMORY.md zwiększają użycie promptu i mogą być częściowo wstrzykiwane z powodu
poniższych limitów plików bootstrap.
Gdy sesja działa na natywnym harnessie Codex, Codex ładuje AGENTS.md
przez własne wykrywanie dokumentów projektu. OpenClaw nadal rozwiązuje pozostałe
pliki bootstrap i przekazuje je jako instrukcje konfiguracji Codex, więc SOUL.md,
TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md i
MEMORY.md zachowują tę samą rolę kontekstu obszaru roboczego bez duplikowania
AGENTS.md.
Codzienne pliki
memory/*.md nie są częścią zwykłego bootstrapowego Kontekstu projektu. W zwykłych turach dostęp do nich odbywa się na żądanie przez narzędzia memory_search i memory_get, więc nie liczą się do okna kontekstu, chyba że model jawnie je odczyta. Wyjątkiem są gołe tury /new i /reset: środowisko wykonawcze może poprzedzić pierwszą turę najnowszą codzienną pamięcią jako jednorazowym blokiem kontekstu startowego.agents.defaults.bootstrapMaxChars (domyślnie: 12000). Łączna wstrzyknięta treść bootstrap
we wszystkich plikach jest ograniczona przez agents.defaults.bootstrapTotalMaxChars
(domyślnie: 60000). Brakujące pliki wstrzykują krótki znacznik brakującego pliku. Gdy dochodzi do obcięcia,
OpenClaw może wstrzyknąć zwięzłe ostrzeżenie w prompcie systemowym; kontroluj to za pomocą
agents.defaults.bootstrapPromptTruncationWarning (off, once, always;
domyślnie: once). Szczegółowe surowe/wstrzyknięte liczniki pozostają w diagnostyce, takiej jak
/context, /status, doctor i logi.
W przypadku plików pamięci obcięcie nie oznacza utraty danych: plik pozostaje nienaruszony na dysku,
ale model widzi tylko skróconą wstrzykniętą kopię, dopóki nie odczyta lub nie przeszuka
pamięci bezpośrednio. Jeśli MEMORY.md jest wielokrotnie obcinany, wydestyluj go do
krótszego trwałego podsumowania i przenieś szczegółową historię do memory/*.md albo
celowo zwiększ limity bootstrap.
Sesje podagentów wstrzykują tylko AGENTS.md i TOOLS.md (inne pliki bootstrap
są odfiltrowywane, aby utrzymać mały kontekst podagenta).
Wewnętrzne hooki mogą przechwycić ten krok przez agent:bootstrap, aby zmodyfikować lub zastąpić
wstrzyknięte pliki bootstrap (na przykład zamieniając SOUL.md na alternatywną personę).
Jeśli chcesz, aby agent brzmiał mniej generycznie, zacznij od
Przewodnika osobowości SOUL.md.
Aby sprawdzić, ile wnosi każdy wstrzyknięty plik (surowe vs wstrzyknięte, obcięcie oraz narzut schematu narzędzi), użyj /context list lub /context detail. Zobacz Kontekst.
Obsługa czasu
Prompt systemowy zawiera dedykowaną sekcję Bieżąca data i godzina, gdy strefa czasowa użytkownika jest znana. Aby prompt pozostał stabilny względem pamięci podręcznej, zawiera teraz tylko strefę czasową (bez dynamicznego zegara ani formatu czasu). Użyjsession_status, gdy agent potrzebuje bieżącej godziny; karta statusu
zawiera wiersz ze znacznikiem czasu. To samo narzędzie może opcjonalnie ustawić nadpisanie modelu dla sesji
(model=default je czyści).
Skonfiguruj za pomocą:
agents.defaults.userTimezoneagents.defaults.timeFormat(auto|12|24)
Skills
Gdy istnieją kwalifikujące się Skills, OpenClaw wstrzykuje zwartą listę dostępnych Skills (formatSkillsForPrompt), która zawiera ścieżkę pliku dla każdego Skills. Prompt
instruuje model, aby użył read do wczytania SKILL.md z podanej
lokalizacji (workspace, zarządzanej lub dołączonej). Jeśli żadne Skills nie kwalifikują się, sekcja
Skills jest pomijana.
Kwalifikowanie obejmuje bramki metadanych Skills, kontrole środowiska wykonawczego/konfiguracji
oraz efektywną listę dozwolonych Skills agenta, gdy skonfigurowano agents.defaults.skills lub
agents.list[].skills.
Skills dołączone przez Plugin kwalifikują się tylko wtedy, gdy ich właścicielski Plugin jest włączony.
Pozwala to Plugin narzędzi udostępniać głębsze przewodniki operacyjne bez osadzania całych
tych wskazówek bezpośrednio w każdym opisie narzędzia.
- Domyślna wartość globalna:
skills.limits.maxSkillsPromptChars - Nadpisanie dla agenta:
agents.list[].skillsLimits.maxSkillsPromptChars
agents.defaults.contextLimits.*agents.list[].contextLimits.*
memory_get, wyniki narzędzi na żywo i odświeżenia AGENTS.md po Compaction.
Dokumentacja
Prompt systemowy zawiera sekcję Dokumentacja. Gdy lokalna dokumentacja jest dostępna, wskazuje lokalny katalog dokumentacji OpenClaw (docs/ w checkout Git lub dokumentację dołączoną do pakietu npm).
Jeśli lokalna dokumentacja jest niedostępna, używa
https://docs.openclaw.ai.
Ta sama sekcja zawiera też lokalizację źródeł OpenClaw. Checkouty Git udostępniają lokalny
katalog główny źródeł, aby agent mógł bezpośrednio sprawdzać kod. Instalacje z pakietu zawierają URL
źródeł na GitHub i informują agenta, aby przeglądał tam źródła, gdy dokumentacja jest niekompletna lub
nieaktualna. Prompt wspomina też publiczne lustro dokumentacji, społeczność Discord oraz ClawHub
(https://clawhub.ai) do odkrywania Skills. Mówi modelowi, aby
najpierw korzystał z dokumentacji w sprawach zachowania OpenClaw, poleceń, konfiguracji lub architektury oraz aby
uruchamiał openclaw status samodzielnie, gdy to możliwe (pytając użytkownika tylko wtedy, gdy nie ma dostępu).
W przypadku samej konfiguracji kieruje agentów do akcji narzędzia gateway
config.schema.lookup po dokładną dokumentację i ograniczenia na poziomie pól, a następnie do
docs/gateway/configuration.md i docs/gateway/configuration-reference.md
po szersze wskazówki.