Prompt systemowy
OpenClaw tworzy niestandardowy prompt systemowy dla każdego uruchomienia agenta. Prompt jest własnością OpenClaw i nie używa domyślnego promptupi-coding-agent.
Prompt jest składany przez OpenClaw i wstrzykiwany do każdego uruchomienia agenta.
Pluginy dostawców mogą wnosić wskazówki do promptu uwzględniające cache bez zastępowania
całego promptu należącego do OpenClaw. Runtime dostawcy może:
- zastąpić niewielki zestaw nazwanych sekcji rdzeniowych (
interaction_style,tool_call_style,execution_bias) - wstrzyknąć stabilny prefiks powyżej granicy cache promptu
- wstrzyknąć dynamiczny sufiks poniżej granicy cache promptu
before_prompt_build dla kompatybilności lub rzeczywiście globalnych zmian promptu,
a nie dla zwykłego zachowania dostawcy.
Struktura
Prompt jest celowo zwięzły i używa stałych sekcji:- Narzędzia: przypomnienie o źródle prawdy dla narzędzi strukturalnych oraz wskazówki dotyczące użycia narzędzi w runtime.
- Bezpieczeństwo: krótkie przypomnienie o zabezpieczeniach, aby unikać zachowań dążących do zdobycia władzy lub obchodzenia nadzoru.
- Skills (gdy dostępne): informuje model, jak ładować instrukcje Skills na żądanie.
- Samodzielna aktualizacja OpenClaw: jak bezpiecznie sprawdzać konfigurację za pomocą
config.schema.lookup, poprawiać konfigurację za pomocąconfig.patch, zastępować całą konfigurację za pomocąconfig.applyoraz uruchamiaćupdate.runwyłącznie na wyraźne żądanie użytkownika. Narzędziegateway, dostę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 dokumentacji OpenClaw (repozytorium lub pakiet npm) oraz kiedy ją czytać.
- Pliki obszaru roboczego (wstrzyknięte): wskazuje, że pliki bootstrapu są dołączone poniżej.
- Sandbox (gdy włączony): wskazuje runtime w piaskownicy, ścieżki sandboxa i to, czy dostępne jest podwyższone exec.
- Bieżąca data i godzina: lokalny czas użytkownika, strefa czasowa i format czasu.
- Tagi odpowiedzi: opcjonalna składnia tagów odpowiedzi dla obsługiwanych dostawców.
- Heartbeat: prompt Heartbeat i zachowanie potwierdzeń, gdy Heartbeat jest włączony dla domyślnego agenta.
- Runtime: host, system operacyjny, node, model, katalog główny repozytorium (jeśli wykryto), poziom myślenia (jedna linia).
- Rozumowanie: bieżący poziom widoczności + wskazówka przełączania
/reasoning.
- używaj Cron do przyszłych działań następczych (
check back later, przypomnienia, zadania cykliczne) zamiast pętlisleepwexec, sztuczek opóźniającychyieldMslub powtarzanego odpytywaniaprocess - używaj
exec/processtylko do poleceń, które uruchamiają się teraz i nadal działają w tle - gdy włączone jest automatyczne wybudzanie po zakończeniu, uruchom polecenie tylko raz i polegaj na ścieżce wybudzania opartej na push, gdy zwróci dane wyjściowe lub zakończy się błędem
- 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; zakończenie podagenta jest oparte na push i jest automatycznie anonsowane z powrotem do zlecającego - nie odpytywaj w pętli
subagents list/sessions_listtylko po to, aby czekać na zakończenie
update_plan jest włączone, sekcja Narzędzia mówi również
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.
Zabezpieczenia bezpieczeństwa w prompcie systemowym mają charakter doradczy. Kierują zachowaniem modelu, ale nie egzekwują zasad. Do twardego egzekwowania używaj polityki narzędzi, zatwierdzeń exec, sandboxingu i list dozwolonych kanałów; operatorzy mogą je celowo wyłączyć.
W kanałach z natywnymi kartami/przyciskami zatwierdzeń prompt runtime instruuje 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 zatwierdzenia na czacie są niedostępne
albo ręczne zatwierdzenie jest jedyną ścieżką.
Tryby promptu
OpenClaw może renderować mniejsze prompty systemowe dla podagentów. Runtime 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 Skills, Przywoływanie pamięci, Samodzielną aktualizację OpenClaw, Aliasy modeli, Tożsamość użytkownika, Tagi odpowiedzi, Wiadomości, Ciche odpowiedzi i Heartbeat. Narzędzia, Bezpieczeństwo, Obszar roboczy, Sandbox, Bieżąca data i godzina (gdy znane), Runtime oraz 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.
Wstrzykiwanie bootstrapu obszaru roboczego
Pliki bootstrapu są przycinane i dołączane w sekcji Kontekst projektu, 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 obszarach roboczych)MEMORY.mdjeśli istnieje, w przeciwnym raziememory.mdjako zapasowy wariant małymi literami
HEARTBEAT.md jest pomijany przy zwykłych uruchomieniach, gdy
Heartbeat jest wyłączony dla domyślnego agenta albo
agents.defaults.heartbeat.includeSystemPromptSection ma wartość false. Utrzymuj wstrzykiwane
pliki zwięzłe — szczególnie MEMORY.md, który może z czasem rosnąć i prowadzić do
nieoczekiwanie wysokiego użycia kontekstu oraz częstszej Compaction.
Uwaga: dzienne plikiDuże pliki są obcinane ze znacznikiem. Maksymalny rozmiar na plik jest kontrolowany przezmemory/*.mdnie są częścią zwykłego bootstrapowego Kontekstu projektu. W zwykłych turach są dostępne na żądanie przez narzędziamemory_searchimemory_get, więc nie zajmują miejsca w oknie kontekstowym, chyba że model jawnie je odczyta. Wyjątkiem są zwykłe tury/newi/reset: runtime może dodać na początku ostatnią dzienną pamięć jako jednorazowy blok kontekstu startowego dla tej pierwszej tury.
agents.defaults.bootstrapMaxChars (domyślnie: 20000). Całkowita wstrzyknięta zawartość bootstrapu
we wszystkich plikach jest ograniczona przez agents.defaults.bootstrapTotalMaxChars
(domyślnie: 150000). Brakujące pliki wstrzykują krótki znacznik brakującego pliku. Gdy dochodzi do obcięcia,
OpenClaw może wstrzyknąć blok ostrzeżenia w Kontekście projektu; kontroluje to
agents.defaults.bootstrapPromptTruncationWarning (off, once, always;
domyślnie: once).
Sesje podagentów wstrzykują tylko AGENTS.md i TOOLS.md (pozostałe pliki bootstrapu
są odfiltrowywane, aby zachować mały kontekst podagenta).
Wewnętrzne hooki mogą przechwycić ten krok przez agent:bootstrap, aby modyfikować lub zastępować
wstrzykiwane pliki bootstrapu (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ć, jaki wkład ma każdy wstrzyknięty plik (surowy vs wstrzyknięty, 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 znana jest strefa czasowa użytkownika. Aby zachować stabilność cache promptu, zawiera ona teraz tylko strefę czasową (bez dynamicznego zegara ani formatu czasu). Użyjsession_status, gdy agent potrzebuje bieżącego czasu; karta statusu
zawiera wiersz ze znacznikiem czasu. To samo narzędzie może opcjonalnie ustawić zastąpienie 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ę do pliku dla każdej Skills. Prompt
instruuje model, aby użył read do wczytania SKILL.md w podanej lokalizacji
(obszar roboczy, zarządzane lub dołączone). Jeśli nie ma kwalifikujących się Skills, sekcja
Skills jest pomijana.
Kwalifikacja obejmuje bramki metadanych Skills, kontrole środowiska/runtime i konfiguracji
oraz efektywną listę dozwolonych Skills agenta, gdy skonfigurowano agents.defaults.skills lub
agents.list[].skills.
Dokumentacja
Gdy jest dostępna, prompt systemowy zawiera sekcję Dokumentacja, która wskazuje lokalny katalog dokumentacji OpenClaw (albodocs/ w obszarze roboczym repozytorium, albo dokumentację dołączonego
pakietu npm) i wspomina również o publicznym mirrorze, źródłowym repozytorium, społecznościowym Discordzie oraz
ClawHub (https://clawhub.ai) do odkrywania Skills. Prompt instruuje model, aby najpierw sprawdzał lokalną dokumentację
w sprawach zachowania OpenClaw, poleceń, konfiguracji lub architektury oraz aby
sam uruchamiał openclaw status, gdy to możliwe (prosząc użytkownika tylko wtedy, gdy nie ma dostępu).