Prompt systemowy
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. Provider plugins mogą dodawać świadome pamięci podręcznej wskazówki do promptu bez zastępowania pełnego promptu należącego do OpenClaw. Runtime dostawcy może:- zastąpić mały zestaw nazwanych sekcji rdzeniowych (
interaction_style,tool_call_style,execution_bias) - wstrzyknąć stabilny prefiks powyżej granicy pamięci podręcznej promptu
- wstrzyknąć dynamiczny sufiks poniżej granicy pamięci podręcznej promptu
before_prompt_build dla zgodności albo dla naprawdę globalnych zmian promptu, a nie dla zwykłego zachowania dostawcy.
Struktura
Prompt jest celowo zwięzły i używa stałych sekcji:- Tooling: przypomnienie o źródle prawdy dla narzędzi strukturalnych oraz wskazówki runtime dotyczące użycia narzędzi.
- Safety: krótkie przypomnienie o zasadach bezpieczeństwa, aby unikać zachowań nastawionych na zdobywanie władzy lub omijanie nadzoru.
- Skills (gdy dostępne): mówi modelowi, jak w razie potrzeby ładować instrukcje umiejętności.
- OpenClaw Self-Update: jak bezpiecznie sprawdzać konfigurację za pomocą
config.schema.lookup, poprawiać konfigurację przezconfig.patch, zastępować pełną konfigurację przezconfig.applyoraz uruchamiaćupdate.runtylko na wyraźne żądanie użytkownika. Narzędziegateway, dostępne wyłącznie 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. - Workspace: katalog roboczy (
agents.defaults.workspace). - Documentation: lokalna ścieżka do dokumentacji OpenClaw (repozytorium lub pakiet npm) oraz kiedy ją czytać.
- Workspace Files (injected): wskazuje, że pliki bootstrap są dołączone poniżej.
- Sandbox (gdy włączony): wskazuje środowisko sandbox, ścieżki sandboxu i to, czy dostępny jest exec z podwyższonymi uprawnieniami.
- Current Date & Time: lokalny czas użytkownika, strefa czasowa i format czasu.
- Reply Tags: opcjonalna składnia tagów odpowiedzi dla obsługiwanych dostawców.
- Heartbeats: prompt heartbeat i zachowanie potwierdzeń.
- Runtime: host, system operacyjny, node, model, katalog główny repozytorium (gdy wykryty), poziom myślenia (jedna linia).
- Reasoning: bieżący poziom widoczności + wskazówka dotycząca przełączania /reasoning.
- używaj cron do przyszłych działań następczych (
check back later, przypomnienia, praca cykliczna) zamiast pętliexeczesleep, sztuczek opóźnieniayieldMslub wielokrotnego odpytywaniaprocess - używaj
exec/processtylko dla poleceń, które uruchamiają się teraz i dalej działają w tle - gdy włączone jest automatyczne budzenie po zakończeniu, uruchom polecenie raz i polegaj na ścieżce budzenia opartej na push, gdy wygeneruje dane wyjściowe lub zakończy się błędem
- używaj
processdo logów, stanu, danych wejściowych lub interwencji, gdy musisz sprawdzić działające polecenie - jeśli zadanie jest większe, preferuj
sessions_spawn; zakończenie sub-agenta działa w trybie push i automatycznie ogłasza się z powrotem do zlecającego - nie odpytuj w pętli
subagents list/sessions_listtylko po to, by czekać na zakończenie
update_plan jest włączone, Tooling mówi też modelowi,
aby używał go tylko do nietrywialnej wieloetapowej pracy, utrzymywał dokładnie jeden krok
in_progress i unikał powtarzania całego planu po każdej aktualizacji.
Zasady bezpieczeństwa w promptcie systemowym mają charakter doradczy. Kierują zachowaniem modelu, ale nie wymuszają polityki. Do twardego egzekwowania używaj polityki narzędzi, zatwierdzeń exec, sandboxingu i list dozwolonych kanałów; operatorzy mogą je celowo wyłączyć.
Na kanałach z natywnymi kartami/przyciskami zatwierdzania prompt runtime informuje teraz
agenta, aby najpierw polegał na tym natywnym interfejsie zatwierdzania. Powinien dołączać ręczne
polecenie /approve tylko wtedy, gdy wynik narzędzia mówi, że zatwierdzanie na czacie jest niedostępne lub
jedyną ścieżką jest ręczne zatwierdzenie.
Tryby promptu
OpenClaw może renderować mniejsze prompty systemowe dla sub-agentów. Runtime ustawiapromptMode dla każdego uruchomienia (nie jest to konfiguracja widoczna dla użytkownika):
full(domyślnie): zawiera wszystkie powyższe sekcje.minimal: używany dla sub-agentów; pomija Skills, Memory Recall, OpenClaw Self-Update, Model Aliases, User Identity, Reply Tags, Messaging, Silent Replies i Heartbeats. Tooling, Safety, Workspace, Sandbox, Current Date & Time (gdy znane), Runtime oraz wstrzyknięty kontekst pozostają dostępne.none: zwraca tylko podstawową linię tożsamości.
promptMode=minimal, dodatkowe wstrzyknięte prompty są oznaczane jako Subagent
Context zamiast Group Chat Context.
Wstrzykiwanie bootstrapu workspace
Pliki bootstrap są przycinane i dołączane w sekcji Project Context, aby model widział kontekst tożsamości i profilu bez potrzeby jawnego odczytu:AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(tylko w zupełnie nowych workspace)MEMORY.md, gdy istnieje, w przeciwnym raziememory.mdjako zapasowa wersja małymi literami
MEMORY.md, który może
rosnąć z czasem i prowadzić do nieoczekiwanie wysokiego użycia kontekstu oraz częstszego
kompaktowania.
Uwaga: dzienne plikiDuże pliki są obcinane z markerem. Maksymalny rozmiar pojedynczego pliku jest kontrolowany przezmemory/*.mdnie są wstrzykiwane automatycznie. Są dostępne na żądanie przez narzędziamemory_searchimemory_get, więc nie wliczają się do okna kontekstu, dopóki model ich jawnie nie odczyta.
agents.defaults.bootstrapMaxChars (domyślnie: 20000). Łączna zawartość wstrzykniętego bootstrapu
we wszystkich plikach jest ograniczona przez agents.defaults.bootstrapTotalMaxChars
(domyślnie: 150000). Brakujące pliki wstrzykują krótki marker brakującego pliku. Gdy nastąpi obcięcie,
OpenClaw może wstrzyknąć blok ostrzegawczy w Project Context; kontroluje to
agents.defaults.bootstrapPromptTruncationWarning (off, once, always;
domyślnie: once).
Sesje sub-agentów wstrzykują tylko AGENTS.md i TOOLS.md (inne pliki bootstrap
są odfiltrowywane, aby kontekst sub-agenta był mały).
Wewnętrzne hooki mogą przechwycić ten krok przez agent:bootstrap, aby mutować lub zastępować
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 po osobowości SOUL.md.
Aby sprawdzić, jaki wkład wnosi każdy wstrzyknięty plik (surowy vs wstrzyknięty, obcięcie, a także narzut schematu narzędzi), użyj /context list lub /context detail. Zobacz Context.
Obsługa czasu
Prompt systemowy zawiera dedykowaną sekcję Current Date & Time, gdy znana jest strefa czasowa użytkownika. Aby zachować stabilność pamięci podręcznej promptu, zawiera teraz tylko strefę czasową (bez dynamicznego zegara ani formatu czasu). Używajsession_status, gdy agent potrzebuje aktualnego czasu; karta stanu
zawiera wiersz ze znacznikiem czasu. To samo narzędzie może opcjonalnie ustawić nadpisanie modelu
dla danej sesji (model=default je usuwa).
Konfiguracja:
agents.defaults.userTimezoneagents.defaults.timeFormat(auto|12|24)
Skills
Gdy istnieją kwalifikujące się Skills, OpenClaw wstrzykuje zwartą listę dostępnych umiejętności (formatSkillsForPrompt), która zawiera ścieżkę do pliku dla każdej umiejętności. Prompt instruuje model, aby używał read do ładowania pliku SKILL.md w podanej lokalizacji
(workspace, zarządzanej lub bundlowanej). Jeśli nie ma kwalifikujących się Skills, sekcja
Skills jest pomijana.
Kwalifikacja obejmuje bramki metadanych umiejętności, sprawdzenia środowiska runtime/konfiguracji
oraz efektywną listę dozwolonych umiejętności agenta, gdy skonfigurowano agents.defaults.skills lub
agents.list[].skills.
Documentation
Gdy jest dostępna, prompt systemowy zawiera sekcję Documentation, która wskazuje lokalny katalog dokumentacji OpenClaw (docs/ w workspace repozytorium albo dokumentację
z bundlowanego pakietu npm) i zawiera też informację o publicznym lustrze, repozytorium źródłowym, społecznościowym Discordzie oraz ClawHub (https://clawhub.ai) do odkrywania Skills. Prompt instruuje model, aby w pierwszej kolejności korzystał z lokalnej dokumentacji
w sprawach dotyczących zachowania OpenClaw, poleceń, konfiguracji lub architektury, oraz aby
w miarę możliwości sam uruchamiał openclaw status (pytając użytkownika tylko wtedy, gdy nie ma dostępu).