legacy i używa go domyślnie. Silnik Pluginu należy zainstalować i wybrać tylko wtedy, gdy potrzebny jest inny sposób składania, Compaction lub przywoływania informacji między sesjami.
Szybki start
1
Sprawdzanie aktywnego silnika
2
Instalowanie silnika Pluginu
Pluginy silnika kontekstu instaluje się tak samo jak każdy inny Plugin OpenClaw.
- Z npm
- Ze ścieżki lokalnej
3
Włączanie i wybieranie silnika
4
Powrót do starszego silnika (opcjonalnie)
Ustaw
contextEngine na "legacy" (lub całkowicie usuń klucz — wartością domyślną jest "legacy").Sposób działania
Za każdym razem, gdy OpenClaw uruchamia prompt modelu, silnik kontekstu uczestniczy w czterech punktach cyklu życia:1. Pobieranie
1. Pobieranie
Wywoływane po dodaniu nowej wiadomości do sesji. Silnik może zapisać lub zindeksować wiadomość we własnym magazynie danych.
2. Składanie
2. Składanie
Wywoływane przed każdym uruchomieniem modelu. Silnik zwraca uporządkowany zestaw wiadomości (oraz opcjonalny element
systemPromptAddition), które mieszczą się w budżecie tokenów.3. Compaction
3. Compaction
Wywoływane po zapełnieniu okna kontekstu lub uruchomieniu przez użytkownika polecenia
/compact. Silnik podsumowuje starszą historię, aby zwolnić miejsce.4. Po turze
4. Po turze
Wywoływane po zakończeniu uruchomienia. Silnik może utrwalić stan, uruchomić Compaction w tle lub zaktualizować indeksy.
maintain() do obsługi transkrypcji (bezpiecznych zmian za pomocą runtimeContext.rewriteTranscriptEntries()) po inicjalizacji, pomyślnej turze lub Compaction. Ustaw info.turnMaintenanceMode: "background", aby uruchamiać ją jako zadanie odroczone zamiast blokować odpowiedź.
W przypadku dołączonego zestawu narzędzi Codex bez ACP OpenClaw stosuje ten sam cykl życia, odwzorowując złożony kontekst na instrukcje deweloperskie Codex i prompt bieżącej tury. Codex nadal zarządza własną historią wątku i natywnym mechanizmem Compaction.
Cykl życia podagenta (opcjonalnie)
OpenClaw wywołuje dwa opcjonalne punkty zaczepienia cyklu życia podagenta:method
Przygotowuje współdzielony stan kontekstu przed rozpoczęciem uruchomienia podrzędnego. Punkt zaczepienia otrzymuje klucze sesji nadrzędnej i podrzędnej,
contextMode (isolated lub fork), dostępne identyfikatory/pliki transkrypcji oraz opcjonalny czas TTL. Jeśli zwróci uchwyt wycofania, OpenClaw wywoła go, gdy utworzenie podagenta zakończy się niepowodzeniem po pomyślnym przygotowaniu. Natywne utworzenia podagentów, które żądają lightContext i są rozwiązywane jako contextMode="isolated", celowo pomijają ten punkt zaczepienia, aby proces podrzędny rozpoczynał od lekkiego kontekstu inicjalizacyjnego bez stanu sprzed utworzenia zarządzanego przez silnik kontekstu.method
Wykonuje czyszczenie po zakończeniu lub usunięciu sesji podagenta.
Dodatek do promptu systemowego
Metodaassemble może zwrócić ciąg systemPromptAddition. OpenClaw dodaje go na początku promptu systemowego dla danego uruchomienia. Umożliwia to silnikom wstrzykiwanie dynamicznych wskazówek dotyczących przywoływania informacji, instrukcji ich wyszukiwania lub podpowiedzi zależnych od kontekstu bez wymagania statycznych plików obszaru roboczego.
Starszy silnik
Wbudowany silniklegacy zachowuje pierwotne działanie OpenClaw:
- Pobieranie: brak operacji (menedżer sesji bezpośrednio obsługuje utrwalanie wiadomości).
- Składanie: przekazywanie bez zmian (istniejący potok oczyszczania → walidacji → ograniczania w środowisku uruchomieniowym obsługuje składanie kontekstu).
- Compaction: deleguje do wbudowanego mechanizmu podsumowującego Compaction, który tworzy pojedyncze podsumowanie starszych wiadomości i zachowuje ostatnie wiadomości bez zmian.
- Po turze: brak operacji.
systemPromptAddition.
Gdy nie ustawiono plugins.slots.contextEngine (lub ustawiono go na "legacy"), ten silnik jest używany automatycznie.
Silniki Pluginów
Plugin może zarejestrować silnik kontekstu za pomocą interfejsu API Pluginu:ctx zawiera opcjonalne wartości config, agentDir i workspaceDir, aby Pluginy mogły zainicjować stan dla poszczególnych agentów lub obszarów roboczych przed uruchomieniem pierwszego punktu zaczepienia cyklu życia.
Następnie należy włączyć go w konfiguracji:
Interfejs ContextEngine
Wymagane elementy:assemble zwraca AssembleResult z następującymi elementami:
Message[]
wymagane
Uporządkowane wiadomości wysyłane do modelu.
number
wymagane
Oszacowanie łącznej liczby tokenów w złożonym kontekście dokonane przez silnik. OpenClaw używa go do podejmowania decyzji na podstawie progu Compaction oraz do raportowania diagnostycznego.
string
Dodawany na początku promptu systemowego.
"assembled" | "preassembly_may_overflow"
Określa, którego oszacowania liczby tokenów środowisko uruchamiające używa do wyprzedzających kontroli przepełnienia. Wartość domyślna to
"assembled", co oznacza, że w przypadku silników, które nie zarządzają Compaction, sprawdzane jest tylko oszacowanie złożonego promptu. Silniki ustawiające ownsCompaction: true samodzielnie zarządzają dopuszczaniem promptów, dlatego OpenClaw domyślnie pomija ogólną kontrolę przed utworzeniem promptu. Ustaw "preassembly_may_overflow" tylko wtedy, gdy złożony widok może ukrywać ryzyko przepełnienia w bazowej transkrypcji; środowisko uruchamiające zachowuje wtedy aktywną ogólną kontrolę i przy podejmowaniu decyzji o wyprzedzającym Compaction używa większej wartości spośród oszacowania złożonego kontekstu i oszacowania historii sesji sprzed składania (bez zastosowania okna). Niezależnie od wybranego sposobu model nadal widzi zwrócone wiadomości — promptAuthority wpływa wyłącznie na kontrolę wstępną.ContextEngineProjection
Opcjonalny cykl życia odwzorowania dla hostów z trwałymi wątkami zaplecza (na przykład serwera aplikacji Codex).
mode: "thread_bootstrap" ze stabilnym epoch nakazuje hostowi jednokrotnie wstrzyknąć złożony kontekst w każdej epoce i ponownie używać wątku zaplecza do momentu zmiany epoki zamiast ponownie odwzorowywać kontekst w każdej turze. W przypadku zwykłego odwzorowania dla każdej tury należy pominąć to pole.compact zwraca CompactResult. Gdy Compaction zmienia tożsamość aktywnej sesji, result.sessionTarget (typowany ContextEngineSessionTarget zawierający tożsamość sesji i zakres magazynu) identyfikuje sesję następczą, której musi użyć następna ponowiona próba lub tura; result.sessionId odzwierciedla identyfikator następcy.
Elementy opcjonalne:
Ustawienia środowiska uruchomieniowego
Punkty zaczepienia cyklu życia uruchamiane wewnątrz OpenClaw otrzymują opcjonalny obiektruntimeSettings. Jest to wersjonowana, wewnętrzna i przeznaczona tylko do odczytu powierzchnia interfejsu API producenta/konsumenta: OpenClaw tworzy ją dla wybranego silnika kontekstu, a silnik kontekstu używa jej wewnątrz punktów zaczepienia cyklu życia. Nie jest ona bezpośrednio prezentowana użytkownikom ani nie tworzy osobnej powierzchni raportowania.
schemaVersion: obecnie1runtime: host OpenClaw, tryb środowiska uruchomieniowego (normal,fallbacklubdegraded) oraz opcjonalne identyfikatory uprzęży testowej/środowiska uruchomieniowegocontextEngineSelection: identyfikator wybranego silnika kontekstu i źródło wyboruexecutionHost: identyfikator i etykieta hosta dla powierzchni wywołującej hookmodel: żądany model, rozwiązany model, dostawca i opcjonalna rodzina modelulimits: budżet tokenów promptu i maksymalna liczba tokenów wyjściowych, jeśli są znanediagnostics: zamknięty mechanizm awaryjny i kody przyczyn obniżonego poziomu działania, jeśli są znane
null; pola rozróżniające,
takie jak tryb środowiska uruchomieniowego i źródło wyboru, nie dopuszczają wartości null. Starsze silniki pozostają
zgodne: jeśli rygorystyczny starszy silnik odrzuci runtimeSettings jako nieznaną
właściwość, OpenClaw ponawia wywołanie cyklu życia bez niej, zamiast poddawać
silnik kwarantannie.
Wymagania hosta
Silniki kontekstu mogą deklarować wymagania dotyczące możliwości hosta winfo.hostRequirements.
OpenClaw sprawdza te wymagania przed rozpoczęciem operacji i bezpiecznie przerywa działanie
z opisowym błędem, gdy wybrane środowisko uruchomieniowe nie może ich spełnić.
W przypadku uruchomień agenta należy zadeklarować assemble-before-prompt, gdy silnik musi kontrolować
rzeczywisty prompt modelu za pośrednictwem assemble():
assemble-before-prompt.
Ogólne backendy CLI go nie spełniają, dlatego silniki, które go wymagają, są odrzucane przed
uruchomieniem procesu CLI.
Izolowanie awarii
OpenClaw izoluje wybrany silnik Pluginu od głównej ścieżki odpowiedzi. Jeśli silnik inny niż starszy jest niedostępny, nie przejdzie walidacji kontraktu, zgłosi wyjątek podczas tworzenia fabryki lub zgłosi wyjątek w metodzie cyklu życia, OpenClaw poddaje ten silnik kwarantannie na czas bieżącego procesu Gateway i przełącza obsługę silnika kontekstu na wbudowany silniklegacy. Błąd jest rejestrowany wraz z operacją zakończoną niepowodzeniem, aby
operator mógł naprawić, zaktualizować lub wyłączyć Plugin bez utraty
odpowiedzi agenta.
Błędy wymagań hosta są traktowane inaczej: gdy silnik deklaruje, że środowisko uruchomieniowe
nie ma wymaganej możliwości, OpenClaw bezpiecznie przerywa działanie przed rozpoczęciem uruchomienia. Chroni to
silniki, które uszkodziłyby stan, gdyby działały na nieobsługiwanym hoście.
ownsCompaction
ownsCompaction określa, czy wbudowana automatyczna kompaktacja środowiska uruchomieniowego OpenClaw w ramach próby pozostaje włączona dla danego uruchomienia:
ownsCompaction: true
ownsCompaction: true
Silnik odpowiada za działanie kompaktacji. OpenClaw wyłącza dla tego uruchomienia wbudowaną automatyczną kompaktację środowiska uruchomieniowego OpenClaw i ogólne wstępne sprawdzanie przepełnienia przed promptem, a implementacja
compact() silnika odpowiada za /compact, kompaktację odzyskiwania po przepełnieniu dostawcy oraz wszelką proaktywną kompaktację wykonywaną w afterTurn(). OpenClaw nadal uruchamia zabezpieczenie przed przepełnieniem przed promptem, gdy silnik zwróci promptAuthority: "preassembly_may_overflow" z assemble().ownsCompaction: false lub nie ustawiono
ownsCompaction: false lub nie ustawiono
Wbudowana automatyczna kompaktacja środowiska uruchomieniowego OpenClaw może nadal działać podczas wykonywania promptu, ale metoda
compact() aktywnego silnika jest nadal wywoływana na potrzeby /compact i odzyskiwania po przepełnieniu.- Tryb właściciela
- Tryb delegowania
Zaimplementuj własny algorytm kompaktacji i ustaw
ownsCompaction: true.compact() jest niebezpieczny dla aktywnego silnika niebędącego właścicielem, ponieważ wyłącza normalną ścieżkę kompaktacji /compact i odzyskiwania po przepełnieniu dla tego gniazda silnika.
Dokumentacja konfiguracji
Gniazdo jest wyłączne w czasie działania — dla danego uruchomienia lub operacji kompaktacji rozwiązywany jest tylko jeden zarejestrowany silnik kontekstu. Inne włączone Pluginy
kind: "context-engine" mogą nadal się ładować i wykonywać swój kod rejestracyjny; plugins.slots.contextEngine wybiera tylko identyfikator zarejestrowanego silnika, który OpenClaw rozwiązuje, gdy potrzebuje silnika kontekstu.Odinstalowanie Pluginu: po odinstalowaniu Pluginu aktualnie wybranego jako
plugins.slots.contextEngine OpenClaw przywraca gniazdo do wartości domyślnej (legacy). To samo zachowanie przywracania dotyczy plugins.slots.memory. Ręczna edycja konfiguracji nie jest wymagana.Związek z kompaktacją i pamięcią
Compaction
Compaction
Compaction jest jednym z obowiązków silnika kontekstu. Starszy silnik deleguje zadanie do wbudowanego mechanizmu podsumowywania OpenClaw. Silniki Pluginów mogą implementować dowolną strategię kompaktacji (podsumowania DAG, wyszukiwanie wektorowe itp.).
Pluginy pamięci
Pluginy pamięci
Pluginy pamięci (
plugins.slots.memory) są niezależne od silników kontekstu. Pluginy pamięci zapewniają wyszukiwanie/pobieranie; silniki kontekstu kontrolują to, co widzi model. Mogą współpracować — silnik kontekstu może używać danych Pluginu pamięci podczas składania. Silniki Pluginów, które chcą używać aktywnej ścieżki promptu pamięci, powinny preferować buildMemorySystemPromptAddition(...) z openclaw/plugin-sdk/core, który przekształca aktywne sekcje promptu pamięci w gotowy do dołączenia na początku systemPromptAddition. Jeśli silnik potrzebuje kontroli niższego poziomu, nadal może pobierać nieprzetworzone wiersze z openclaw/plugin-sdk/memory-host-core za pośrednictwem buildActiveMemoryPromptSection(...).Przycinanie sesji
Przycinanie sesji
Przycinanie starych wyników narzędzi w pamięci nadal działa niezależnie od tego, który silnik kontekstu jest aktywny.
Wskazówki
- Użyj
openclaw doctor, aby sprawdzić, czy silnik ładuje się prawidłowo. - Po przełączeniu silników istniejące sesje zachowują swoją bieżącą historię. Nowy silnik przejmuje obsługę przyszłych uruchomień.
- Błędy silnika są rejestrowane, a wybrany silnik Pluginu zostaje poddany kwarantannie na czas bieżącego procesu Gateway. OpenClaw przełącza się na
legacypodczas tur użytkownika, aby odpowiedzi mogły być kontynuowane, ale nadal należy naprawić, zaktualizować, wyłączyć lub odinstalować wadliwy Plugin. - Do programowania użyj
openclaw plugins install -l ./my-engine, aby połączyć lokalny katalog Pluginu bez kopiowania.
Powiązane
- Compaction — podsumowywanie długich rozmów
- Kontekst — sposób budowania kontekstu dla tur agenta
- Architektura Pluginów — rejestrowanie Pluginów silnika kontekstu
- Manifest Pluginu — pola manifestu Pluginu
- Pluginy — przegląd Pluginów