Codex harness
Dokumentacja referencyjna uprzęży Codex
To odniesienie omawia szczegółową konfigurację dołączonego Pluginu codex.
W kwestii konfiguracji i decyzji dotyczących routingu zacznij od
harnessu Codex.
Powierzchnia konfiguracji Pluginu
Wszystkie ustawienia harnessu Codex znajdują się pod plugins.entries.codex.config.
{ plugins: { entries: { codex: { enabled: true, config: { discovery: { enabled: true, timeoutMs: 2500, }, appServer: { mode: "guardian", }, }, }, }, },}Obsługiwane pola najwyższego poziomu:
| Pole | Domyślnie | Znaczenie |
|---|---|---|
discovery |
włączone | Ustawienia wykrywania modeli dla model/list serwera aplikacji Codex. |
appServer |
zarządzany serwer aplikacji stdio | Ustawienia transportu, polecenia, uwierzytelniania, zatwierdzania, piaskownicy i limitów czasu. |
codexDynamicToolsLoading |
"searchable" |
Użyj "direct", aby umieścić dynamiczne narzędzia OpenClaw bezpośrednio w początkowym kontekście narzędzi Codex. |
codexDynamicToolsExclude |
[] |
Dodatkowe nazwy dynamicznych narzędzi OpenClaw, które mają zostać pominięte w turach serwera aplikacji Codex. |
codexPlugins |
wyłączone | Natywna obsługa pluginów/aplikacji Codex dla zmigrowanych, instalowanych ze źródeł, kuratorowanych pluginów. Zobacz Natywne pluginy Codex. |
computerUse |
wyłączone | Konfiguracja Codex Computer Use. Zobacz Codex Computer Use. |
Transport serwera aplikacji
Domyślnie OpenClaw uruchamia zarządzany plik binarny Codex dostarczany z dołączonym Pluginem:
codex app-server --listen stdio://Dzięki temu wersja serwera aplikacji jest powiązana z dołączonym Pluginem codex, a nie z
dowolnym oddzielnym Codex CLI, który akurat jest zainstalowany lokalnie. Ustaw
appServer.command tylko wtedy, gdy celowo chcesz uruchomić inny
plik wykonywalny.
Dla już działającego serwera aplikacji użyj transportu WebSocket:
{ plugins: { entries: { codex: { enabled: true, config: { appServer: { transport: "websocket", url: "ws://gateway-host:39175", authToken: "${CODEX_APP_SERVER_TOKEN}", requestTimeoutMs: 60000, }, }, }, }, },}Obsługiwane pola appServer:
| Pole | Domyślne | Znaczenie |
|---|---|---|
transport |
"stdio" |
"stdio" uruchamia Codex; "websocket" łączy się z url. |
homeScope |
"agent" |
"agent" izoluje stan Codex dla każdego agenta OpenClaw. "user" współdzieli natywny $CODEX_HOME lub ~/.codex, używa natywnego uwierzytelniania i włącza zarządzanie wątkami tylko przez właściciela. Zakres użytkownika wymaga stdio. |
command |
zarządzany plik binarny Codex | Plik wykonywalny dla transportu stdio. Pozostaw nieustawione, aby użyć zarządzanego pliku binarnego. |
args |
["app-server", "--listen", "stdio://"] |
Argumenty dla transportu stdio. |
url |
nieustawione | Adres URL app-server WebSocket. |
authToken |
nieustawione | Token Bearer dla transportu WebSocket. Akceptuje dosłowny ciąg znaków lub SecretInput, taki jak ${CODEX_APP_SERVER_TOKEN}. |
headers |
{} |
Dodatkowe nagłówki WebSocket. Wartości nagłówków akceptują dosłowne ciągi znaków lub wartości SecretInput, na przykład x-codex-client-session-token: "${CODEX_CLIENT_SESSION_TOKEN}". |
clearEnv |
[] |
Dodatkowe nazwy zmiennych środowiskowych usuwane z uruchomionego procesu app-server stdio po zbudowaniu przez OpenClaw odziedziczonego środowiska. |
remoteWorkspaceRoot |
nieustawione | Zdalny katalog główny obszaru roboczego app-server Codex. Gdy jest ustawiony, OpenClaw wywnioskuje lokalny katalog główny obszaru roboczego z rozwiązanego obszaru roboczego OpenClaw, zachowa bieżący sufiks cwd pod tym zdalnym katalogiem głównym i wyśle do Codex tylko końcowe cwd app-server. Jeśli cwd znajduje się poza rozwiązanym katalogiem głównym obszaru roboczego OpenClaw, OpenClaw zakończy działanie w trybie fail-closed zamiast wysyłać lokalną dla Gateway ścieżkę do zdalnego app-server. |
requestTimeoutMs |
60000 |
Limit czasu dla wywołań płaszczyzny sterowania app-server. |
turnCompletionIdleTimeoutMs |
60000 |
Ciche okno po zaakceptowaniu tury przez Codex albo po żądaniu app-server w zakresie tury, gdy OpenClaw czeka na turn/completed. |
postToolRawAssistantCompletionIdleTimeoutMs |
300000 |
Strażnik bezczynności ukończenia i postępu używany po przekazaniu do narzędzia, natywnym ukończeniu narzędzia, postępie surowego asystenta po narzędziu, ukończeniu surowego rozumowania lub postępie rozumowania, gdy OpenClaw czeka na turn/completed. Używaj tego dla zaufanych lub ciężkich obciążeń, w których synteza po narzędziu może zasadnie pozostawać cicha dłużej niż końcowy budżet wydania asystenta. |
mode |
"yolo", chyba że lokalne wymagania Codex nie zezwalają na YOLO |
Ustawienie wstępne dla wykonywania YOLO lub wykonywania sprawdzanego przez strażnika. |
approvalPolicy |
"never" lub dozwolona polityka zatwierdzania strażnika |
Natywna polityka zatwierdzania Codex wysyłana przy rozpoczęciu wątku, wznowieniu i turze. |
sandbox |
"danger-full-access" lub dozwolony sandbox strażnika |
Natywny tryb sandbox Codex wysyłany przy rozpoczęciu i wznowieniu wątku. Aktywne sandboxy OpenClaw zawężają tury danger-full-access do Codex workspace-write; flaga sieci tury podąża za wyjściem z sandboxa OpenClaw. |
approvalsReviewer |
"user" lub dozwolony recenzent strażnika |
Użyj "auto_review", aby pozwolić Codex przeglądać natywne monity zatwierdzeń, gdy jest to dozwolone. |
defaultWorkspaceDir |
katalog bieżącego procesu | Obszar roboczy używany przez /codex bind, gdy --cwd jest pominięte. |
serviceTier |
nieustawione | Opcjonalna warstwa usługi app-server Codex. "priority" włącza trasowanie w trybie szybkim, "flex" żąda przetwarzania flex, a null czyści nadpisanie. Starsze "fast" jest akceptowane jako "priority". |
networkProxy |
wyłączone | Włącza sieć profilu uprawnień Codex dla poleceń app-server. OpenClaw definiuje wybraną konfigurację permissions.<profile>.network i wybiera ją za pomocą default_permissions zamiast wysyłania sandbox. |
experimental.sandboxExecServer |
false |
Eksperymentalne włączenie podglądu, które rejestruje środowisko Codex oparte na sandboxie OpenClaw w Codex app-server 0.132.0 lub nowszym, aby natywne wykonywanie Codex mogło działać wewnątrz aktywnego sandboxa OpenClaw. |
appServer.networkProxy jest jawne, ponieważ zmienia kontrakt sandboxa Codex.
Po włączeniu OpenClaw ustawia także features.network_proxy.enabled i
default_permissions w konfiguracji wątku Codex, aby wygenerowany profil
uprawnień mógł uruchomić sieć zarządzaną przez Codex. Domyślnie OpenClaw generuje
odporną na kolizje nazwę profilu openclaw-network-<fingerprint> z treści
profilu; używaj profileName tylko wtedy, gdy wymagana jest stabilna nazwa lokalna.
export default { plugins: { entries: { codex: { config: { appServer: { sandbox: "workspace-write", networkProxy: { enabled: true, domains: { "api.openai.com": "allow", "blocked.example.com": "deny", }, allowUpstreamProxy: true, proxyUrl: "http://127.0.0.1:3128", }, }, }, }, }, },};Jeśli normalne środowisko uruchomieniowe app-servera miałoby danger-full-access, włączenie
networkProxy używa dostępu do systemu plików w stylu obszaru roboczego dla wygenerowanego
profilu uprawnień. Zarządzane przez Codex egzekwowanie sieci to sieć w piaskownicy,
więc profil pełnego dostępu nie chroniłby ruchu wychodzącego.
Plugin blokuje starsze lub niewersjonowane uzgodnienia app-servera. Codex app-server
musi zgłaszać stabilną wersję 0.125.0 lub nowszą.
OpenClaw traktuje adresy URL WebSocket app-servera spoza loopback jako zdalne i wymaga
uwierzytelniania WebSocket niosącego tożsamość przez appServer.authToken albo nagłówek
Authorization. appServer.authToken oraz każda wartość appServer.headers.*
może być SecretInput; środowisko sekretów rozwiązuje SecretRefs i skrót env,
zanim OpenClaw zbuduje opcje startowe app-servera, a nierozwiązane
ustrukturyzowane SecretRefs kończą się niepowodzeniem, zanim jakikolwiek token lub nagłówek zostanie wysłany. Gdy skonfigurowane są natywne Pluginy Codex,
OpenClaw używa płaszczyzny sterowania Pluginami podłączonego app-servera, aby zainstalować lub odświeżyć te Pluginy, a następnie odświeża inwentarz aplikacji, aby
aplikacje należące do Pluginów były widoczne dla wątku Codex. app/list pozostaje
autorytatywnym źródłem inwentarza i metadanych, ale polityka OpenClaw decyduje, czy
thread/start wysyła config.apps[appId].enabled = true dla wymienionej dostępnej
aplikacji, nawet jeśli Codex obecnie oznacza ją jako wyłączoną. Nieznane lub brakujące identyfikatory aplikacji nadal kończą się bezpiecznym niepowodzeniem; ta ścieżka aktywuje tylko Pluginy z marketplace przez plugin/install
i odświeża inwentarz. Łącz OpenClaw wyłącznie ze zdalnymi app-serverami, którym ufasz, że zaakceptują instalacje Pluginów zarządzane przez OpenClaw oraz odświeżenia inwentarza aplikacji.
Tryby zatwierdzania i piaskownicy
Lokalne sesje app-servera stdio domyślnie używają trybu YOLO:
approvalPolicy: "never", approvalsReviewer: "user" oraz
sandbox: "danger-full-access". Ta postawa zaufanego lokalnego operatora pozwala
nienadzorowanym turom OpenClaw i Heartbeat robić postępy bez natywnych monitów o zatwierdzenie,
na które nikt nie jest obecny, aby odpowiedzieć.
Jeśli lokalny plik wymagań systemowych Codex zabrania niejawnych wartości zatwierdzania YOLO,
recenzenta lub piaskownicy, OpenClaw traktuje niejawne ustawienie domyślne jako guardian
i wybiera dozwolone uprawnienia guardian. tools.exec.mode: "auto"
również wymusza zatwierdzenia Codex recenzowane przez guardian i nie zachowuje niebezpiecznych
starszych nadpisań approvalPolicy: "never" ani sandbox: "danger-full-access";
ustaw tools.exec.mode: "full" dla celowej postawy bez zatwierdzeń.
Dopasowywane po nazwie hosta wpisy
[[remote_sandbox_config]] w tym samym pliku wymagań są respektowane
przy decyzji o domyślnej piaskownicy.
Ustaw appServer.mode: "guardian" dla zatwierdzeń Codex recenzowanych przez guardian:
{ plugins: { entries: { codex: { enabled: true, config: { appServer: { mode: "guardian", serviceTier: "priority", }, }, }, }, },}Preset guardian rozwija się do approvalPolicy: "on-request",
approvalsReviewer: "auto_review" oraz sandbox: "workspace-write", gdy te
wartości są dozwolone. Poszczególne pola polityki nadpisują mode. Starsza
wartość recenzenta guardian_subagent jest nadal akceptowana jako alias zgodności,
ale nowe konfiguracje powinny używać auto_review.
Gdy piaskownica OpenClaw jest aktywna, lokalny proces Codex app-server nadal
działa na hoście Gateway. Dlatego OpenClaw wyłącza natywny Code Mode Codex,
serwery MCP użytkownika oraz wykonywanie Pluginów wspieranych przez aplikacje dla tej tury, zamiast
traktować piaskownicę po stronie hosta Codex jako równoważną z backendem piaskownicy
OpenClaw. Dostęp do powłoki jest udostępniany przez dynamiczne narzędzia wspierane piaskownicą OpenClaw,
takie jak sandbox_exec i sandbox_process, gdy normalne narzędzia exec/process
są dostępne.
Na hostach Ubuntu/AppArmor Codex bwrap może zawieść w workspace-write, zanim
polecenie powłoki się rozpocznie, gdy celowo uruchamiasz natywne Codex
workspace-write bez aktywnej piaskownicy OpenClaw. Jeśli zobaczysz
bwrap: setting up uid map: Permission denied albo
bwrap: loopback: Failed RTM_NEWADDR: Operation not permitted, uruchom
openclaw doctor i napraw zgłoszoną politykę przestrzeni nazw hosta dla użytkownika usługi OpenClaw,
zamiast przyznawać szersze uprawnienia kontenera Docker. Preferuj
zakresowy profil AppArmor dla procesu usługi; awaryjne
kernel.apparmor_restrict_unprivileged_userns=0 działa dla całego hosta i ma
kompromisy bezpieczeństwa.
Natywne wykonywanie w piaskownicy
Stabilne ustawienie domyślne to bezpieczne niepowodzenie: aktywna piaskownica OpenClaw wyłącza natywne
powierzchnie wykonywania Codex, które w przeciwnym razie działałyby z hosta Codex app-server.
Używaj appServer.experimental.sandboxExecServer: true tylko wtedy, gdy chcesz
wypróbować obsługę zdalnego środowiska Codex z backendem piaskownicy OpenClaw. Ta
ścieżka podglądowa wymaga Codex app-server 0.132.0 lub nowszego.
{ plugins: { entries: { codex: { enabled: true, config: { appServer: { experimental: { sandboxExecServer: true, }, }, }, }, }, },}Gdy flaga jest włączona, a bieżąca sesja OpenClaw działa w piaskownicy, OpenClaw uruchamia local loopback exec-server wspierany aktywną piaskownicą, rejestruje go w Codex app-server i uruchamia wątek oraz turę Codex z tym środowiskiem należącym do OpenClaw. Jeśli app-server nie może zarejestrować środowiska, uruchomienie kończy się bezpiecznym niepowodzeniem, zamiast po cichu wracać do wykonywania na hoście.
Ta ścieżka podglądowa jest tylko lokalna. Zdalny WebSocket app-server nie może dotrzeć do loopback exec-servera, chyba że działa na tym samym hoście, więc OpenClaw odrzuca taką kombinację.
Uwierzytelnianie i izolacja środowiska
W domyślnym katalogu domowym per agent uwierzytelnianie jest wybierane w tej kolejności:
- Jawny profil uwierzytelniania OpenClaw Codex dla agenta.
- Istniejące konto app-servera w katalogu domowym Codex tego agenta.
- Tylko dla lokalnych uruchomień app-servera stdio:
CODEX_API_KEY, a następnieOPENAI_API_KEY, gdy nie ma konta app-servera, a uwierzytelnianie OpenAI jest nadal wymagane.
Gdy OpenClaw zobaczy profil uwierzytelniania Codex w stylu subskrypcji ChatGPT, usuwa
CODEX_API_KEY i OPENAI_API_KEY z uruchomionego procesu podrzędnego Codex. Dzięki temu
klucze API na poziomie Gateway pozostają dostępne dla embeddingów lub bezpośrednich modeli OpenAI,
bez przypadkowego rozliczania natywnych tur Codex app-servera przez API.
Jawne profile klucza API Codex i lokalny fallback klucza env stdio używają logowania app-servera zamiast dziedziczonego env procesu podrzędnego. Połączenia WebSocket app-servera nie otrzymują fallbacku klucza API env Gateway; użyj jawnego profilu uwierzytelniania albo własnego konta zdalnego app-servera.
Uruchomienia app-servera stdio domyślnie dziedziczą środowisko procesu OpenClaw.
OpenClaw jest właścicielem mostu kont Codex app-servera i ustawia CODEX_HOME na
katalog per agent w stanie OpenClaw tego agenta. To utrzymuje konfigurację Codex,
konta, cache/dane Pluginów i stan wątków w zakresie agenta OpenClaw,
zamiast przeciekania z osobistego katalogu domowego operatora ~/.codex.
Ustaw appServer.homeScope: "user", aby współdzielić natywny stan Codex z Codex
Desktop i CLI. Ten tryb tylko dla lokalnego stdio używa $CODEX_HOME, gdy jest ustawione,
a w przeciwnym razie ~/.codex, włącznie z natywnym uwierzytelnianiem, konfiguracją, Pluginami i wątkami.
OpenClaw pomija swój most profilu uwierzytelniania dla app-servera. Zweryfikowane tury właściciela
mogą używać codex_threads do wyświetlania, wyszukiwania, odczytu, forkowania, zmiany nazwy, archiwizacji i przywracania
tych wątków. Sforkuj wątek przed kontynuowaniem go w OpenClaw; niezależne
procesy Codex nie koordynują współbieżnych zapisujących dla tego samego wątku.
OpenClaw nie przepisuje HOME dla normalnych lokalnych uruchomień app-servera. Podprocesy uruchamiane przez Codex,
takie jak openclaw, gh, git, CLI chmurowe i polecenia powłoki, widzą
normalny katalog domowy procesu i mogą znaleźć konfigurację oraz tokeny w katalogu domowym użytkownika. Codex może też
wykrywać $HOME/.agents/skills i $HOME/.agents/plugins/marketplace.json;
to wykrywanie .agents jest celowo współdzielone z katalogiem domowym operatora i jest
oddzielne od izolowanego stanu ~/.codex.
W domyślnym zakresie agenta Pluginy OpenClaw i snapshoty Skills OpenClaw nadal
przepływają przez własny rejestr Pluginów oraz loader Skills OpenClaw; osobiste zasoby Codex
~/.codex nie przepływają. Jeśli masz przydatne umiejętności lub Pluginy Codex CLI z
katalogu domowego Codex, które powinny stać się częścią izolowanego agenta OpenClaw, zinwentaryzuj
je jawnie:
openclaw migrate codex --dry-runopenclaw migrate apply codex --yesJeśli wdrożenie wymaga dodatkowej izolacji środowiska, dodaj te zmienne do
appServer.clearEnv:
{ plugins: { entries: { codex: { enabled: true, config: { appServer: { clearEnv: ["CODEX_API_KEY", "OPENAI_API_KEY"], }, }, }, }, },}appServer.clearEnv wpływa tylko na uruchomiony proces podrzędny Codex app-server.
OpenClaw usuwa CODEX_HOME i HOME z tej listy podczas normalizacji lokalnego uruchomienia:
CODEX_HOME pozostaje wskazane na wybrany zakres agenta lub użytkownika,
a HOME pozostaje dziedziczone, aby podprocesy mogły używać normalnego stanu katalogu domowego użytkownika.
Narzędzia dynamiczne
Dynamiczne narzędzia Codex domyślnie używają ładowania searchable. OpenClaw nie udostępnia
dynamicznych narzędzi, które duplikują natywne operacje obszaru roboczego Codex:
readwriteeditapply_patchexecprocessupdate_plan
Większość pozostałych narzędzi integracyjnych OpenClaw, takich jak wiadomości, media, Cron,
przeglądarka, węzły, Gateway, heartbeat_respond i web_search, jest dostępna
przez wyszukiwanie narzędzi Codex w przestrzeni nazw openclaw. Dzięki temu początkowy
kontekst modelu jest mniejszy. sessions_yield oraz odpowiedzi źródłowe tylko dla narzędzi wiadomości
pozostają bezpośrednie, ponieważ są kontraktami sterowania turą. sessions_spawn pozostaje
wyszukiwalne, aby natywne spawn_agent Codex pozostało podstawową powierzchnią subagenta Codex,
podczas gdy jawna delegacja OpenClaw lub ACP jest nadal dostępna przez
przestrzeń nazw dynamicznych narzędzi openclaw.
Ustaw codexDynamicToolsLoading: "direct" tylko podczas łączenia z niestandardowym Codex
app-serverem, który nie może wyszukiwać odroczonych narzędzi dynamicznych, albo podczas debugowania pełnego
ładunku narzędzi.
Limity czasu
Wywołania dynamicznych narzędzi należące do OpenClaw są ograniczane niezależnie od
appServer.requestTimeoutMs. Każde żądanie Codex item/tool/call używa pierwszego
dostępnego limitu czasu w tej kolejności:
- Dodatni argument per wywołanie
timeoutMs. - Dla
image_generate,agents.defaults.imageGenerationModel.timeoutMs. - Dla
image_generatebez skonfigurowanego limitu czasu, domyślne 120 sekund generowania obrazów. - Dla narzędzia rozumienia mediów
image,tools.media.image.timeoutSecondsprzekonwertowane na milisekundy albo domyślne 60 sekund dla mediów. Dla rozumienia obrazów dotyczy to samego żądania i nie jest zmniejszane przez wcześniejsze prace przygotowawcze. - Domyślne 90 sekund narzędzia dynamicznego.
Ten watchdog jest zewnętrznym budżetem dynamicznego item/tool/call. Limity czasu żądań
specyficzne dla dostawcy działają wewnątrz tego wywołania i zachowują własną semantykę limitu czasu.
Budżety narzędzi dynamicznych są ograniczone do 600000 ms. Po przekroczeniu limitu czasu OpenClaw przerywa
sygnał narzędzia tam, gdzie jest to obsługiwane, i zwraca nieudaną odpowiedź dynamicznego narzędzia do Codex,
aby tura mogła być kontynuowana, zamiast zostawiać sesję w stanie processing.
Po tym, jak Codex zaakceptuje turę, oraz po tym, jak OpenClaw odpowie na żądanie app-servera
w zakresie tury, harness oczekuje, że Codex poczyni postęp w bieżącej turze i
ostatecznie zakończy natywną turę przez turn/completed. Jeśli app-server milczy
przez appServer.turnCompletionIdleTimeoutMs, OpenClaw w trybie best-effort
przerywa turę Codex, zapisuje diagnostyczny limit czasu i zwalnia
pas sesji OpenClaw, aby kolejne wiadomości czatu nie były kolejkowane za przestarzałą
natywną turą.
Większość nieterminalnych powiadomień dla tej samej tury rozbraja ten krótki mechanizm nadzorczy,
ponieważ Codex udowodnił, że tura nadal żyje. Przekazania do narzędzi używają dłuższego
budżetu bezczynności po narzędziu: po tym, jak OpenClaw zwróci odpowiedź item/tool/call, po
zakończeniu natywnych elementów narzędzi, takich jak commandExecution, po zakończeniach surowych
custom_tool_call_output, oraz po surowym postępie asystenta po narzędziu,
zakończeniach surowego rozumowania lub postępie rozumowania. Strażnik używa
appServer.postToolRawAssistantCompletionIdleTimeoutMs, gdy jest skonfigurowane, a w przeciwnym
razie domyślnie pięciu minut. Ten sam budżet po narzędziu wydłuża także
mechanizm nadzorczy postępu dla cichego okna syntezy, zanim Codex wyemituje następne
zdarzenie bieżącej tury. Zakończenia rozumowania, zakończenia
agentMessage w kanale komentarza oraz surowy postęp rozumowania lub asystenta przed narzędziem mogą
zostać uzupełnione automatyczną końcową odpowiedzią, więc używają strażnika odpowiedzi
po postępie zamiast natychmiast zwalniać pasmo sesji. Tylko
końcowe/niekomentarzowe ukończone elementy agentMessage oraz surowe zakończenia asystenta
przed narzędziem uzbrajają zwolnienie wyjścia asystenta: jeśli Codex potem zamilknie bez
turn/completed, OpenClaw w trybie best-effort przerywa natywną turę i zwalnia
pasmo sesji. Bezpieczne do odtworzenia awarie app-servera stdio, w tym
limity czasu bezczynności ukończenia tury bez dowodów asystenta, narzędzia, aktywnego elementu lub
skutku ubocznego, są ponawiane raz przy świeżej próbie app-servera. Niebezpieczne
limity czasu nadal wycofują zablokowanego klienta app-servera i zwalniają pasmo sesji
OpenClaw. Czyszczą też nieaktualne powiązanie natywnego wątku zamiast
odtwarzać je automatycznie. Limity czasu obserwacji ukończeń pokazują tekst limitu czasu
specyficzny dla Codex: przypadki bezpieczne do odtworzenia mówią, że odpowiedź może być niekompletna,
a przypadki niebezpieczne każą użytkownikowi zweryfikować bieżący stan przed ponowieniem. Publiczna
diagnostyka limitów czasu zawiera pola strukturalne, takie jak ostatnia metoda powiadomienia
app-servera, identyfikator/typ/rola surowego elementu odpowiedzi asystenta, liczby aktywnych
żądań/elementów oraz uzbrojony stan obserwacji. Gdy ostatnie powiadomienie jest surowym
elementem odpowiedzi asystenta, zawiera także ograniczony podgląd tekstu asystenta. Nie zawiera
surowej treści promptu ani narzędzia.
Wykrywanie modeli
Domyślnie Plugin Codex pyta app-server o dostępne modele. Dostępność modeli
należy do Codex app-server, więc lista może się zmienić, gdy OpenClaw
zaktualizuje dołączoną wersję @openai/codex albo gdy wdrożenie skieruje
appServer.command na inny plik binarny Codex. Dostępność może też zależeć od
konta. Użyj /codex models na działającym Gateway, aby zobaczyć bieżący katalog
dla tego harnessa i konta.
Jeśli wykrywanie się nie powiedzie albo przekroczy limit czasu, OpenClaw używa dołączonego katalogu awaryjnego dla:
- GPT-5.5
- GPT-5.4 mini
Obecny dołączony harness to @openai/codex 0.142.5. Sonda model/list
wobec tego dołączonego app-servera zwróciła następujące publiczne wiersze selektora:
| Identyfikator modelu | Modalności wejścia | Poziomy wysiłku rozumowania |
|---|---|---|
gpt-5.5 |
tekst, obraz | low, medium, high, xhigh |
gpt-5.4 |
tekst, obraz | low, medium, high, xhigh |
gpt-5.4-mini |
tekst, obraz | low, medium, high, xhigh |
gpt-5.3-codex-spark |
tekst | low, medium, high, xhigh |
Ukryte modele mogą być zwracane przez katalog app-servera dla wewnętrznych lub wyspecjalizowanych przepływów, ale nie są zwykłymi wyborami w selektorze modeli.
Dostrój wykrywanie w plugins.entries.codex.config.discovery:
{ plugins: { entries: { codex: { enabled: true, config: { discovery: { enabled: true, timeoutMs: 2500, }, }, }, }, },}Wyłącz wykrywanie, gdy chcesz, aby uruchamianie unikało sondowania Codex i używało tylko katalogu awaryjnego:
{ plugins: { entries: { codex: { enabled: true, config: { discovery: { enabled: false, }, }, }, }, },}Pliki startowe obszaru roboczego
Codex sam obsługuje AGENTS.md przez natywne wykrywanie dokumentacji projektu. OpenClaw
nie zapisuje syntetycznych plików dokumentacji projektu Codex ani nie zależy od awaryjnych
nazw plików Codex dla plików persony, ponieważ rozwiązania awaryjne Codex mają zastosowanie tylko wtedy, gdy
brakuje AGENTS.md.
Dla parytetu obszaru roboczego OpenClaw harness Codex rozwiązuje pozostałe pliki
startowe. SOUL.md, IDENTITY.md, TOOLS.md i USER.md są przekazywane jako
instrukcje deweloperskie OpenClaw Codex, ponieważ definiują aktywnego agenta,
dostępne wskazówki obszaru roboczego oraz profil użytkownika. Zwięzła lista OpenClaw Skills
jest przekazywana jako deweloperskie instrukcje współpracy ograniczone do tury.
Treść HEARTBEAT.md nie jest wstrzykiwana; tury Heartbeat otrzymują wskaźnik trybu współpracy,
aby odczytać plik, gdy istnieje i nie jest pusty. Treść MEMORY.md
ze skonfigurowanego obszaru roboczego agenta nie jest wklejana do natywnego wejścia tury Codex,
gdy narzędzia pamięci są dostępne dla tego obszaru roboczego; gdy istnieje, harness
dodaje mały wskaźnik pamięci obszaru roboczego do deweloperskich instrukcji współpracy
ograniczonych do tury, a Codex powinien użyć memory_search lub memory_get, gdy trwała
pamięć jest istotna. Jeśli narzędzia są wyłączone, wyszukiwanie pamięci jest niedostępne albo
aktywny obszar roboczy różni się od obszaru roboczego pamięci agenta, MEMORY.md używa
normalnej ograniczonej ścieżki kontekstu tury.
BOOTSTRAP.md, gdy jest obecny, jest przekazywany jako kontekst referencyjny wejścia tury OpenClaw.
Nadpisania środowiska
Nadpisania środowiska pozostają dostępne do lokalnego testowania:
OPENCLAW_CODEX_APP_SERVER_BINOPENCLAW_CODEX_APP_SERVER_ARGSOPENCLAW_CODEX_APP_SERVER_MODE=yolo|guardianOPENCLAW_CODEX_APP_SERVER_APPROVAL_POLICYOPENCLAW_CODEX_APP_SERVER_SANDBOX
OPENCLAW_CODEX_APP_SERVER_BIN omija zarządzany plik binarny, gdy
appServer.command nie jest ustawione.
OPENCLAW_CODEX_APP_SERVER_GUARDIAN=1 zostało usunięte. Zamiast tego użyj
plugins.entries.codex.config.appServer.mode: "guardian" albo
OPENCLAW_CODEX_APP_SERVER_MODE=guardian do jednorazowego lokalnego testowania. Konfiguracja jest
preferowana dla powtarzalnych wdrożeń, ponieważ utrzymuje zachowanie Pluginu w tym samym
przeglądanym pliku co reszta konfiguracji harnessa Codex.