Fundamentals
Środowiska uruchomieniowe agentów
Środowisko wykonawcze agenta jest właścicielem jednej przygotowanej pętli modelu: odbiera prompt, steruje danymi wyjściowymi modelu, obsługuje natywne wywołania narzędzi i zwraca ukończoną turę do OpenClaw.
Środowiska wykonawcze łatwo pomylić z dostawcami, ponieważ oba pojawiają się w pobliżu konfiguracji modelu. Są to różne warstwy:
| Warstwa | Przykłady | Znaczenie |
|---|---|---|
| Dostawca | anthropic, github-copilot, openai |
Sposób, w jaki OpenClaw uwierzytelnia, wykrywa modele i nazywa odwołania do modeli. |
| Model | claude-opus-4-6, gpt-5.6-sol |
Model wybrany dla tury agenta. |
| Środowisko wykonawcze agenta | claude-cli, codex, copilot, openclaw |
Niskopoziomowa pętla lub backend, który wykonuje przygotowaną turę. |
| Kanał | Discord, Slack, Telegram, WhatsApp | Miejsce, przez które wiadomości trafiają do OpenClaw i z niego wychodzą. |
Harness to implementacja udostępniająca środowisko wykonawcze agenta (termin
używany w kodzie). Na przykład dołączony harness Codex implementuje środowisko wykonawcze codex.
Konfiguracja publiczna używa agentRuntime.id we wpisach dostawcy lub modelu; klucze środowiska
wykonawczego dotyczące całego agenta są przestarzałe i ignorowane. openclaw doctor --fix usuwa stare
przypięcia środowiska wykonawczego dla całego agenta i przepisuje przestarzałe odwołania modeli środowiska wykonawczego na kanoniczne
odwołania dostawca/model oraz, w razie potrzeby, zasady środowiska wykonawczego o zakresie modelu.
Dwie rodziny środowisk wykonawczych:
- Osadzone harnessy działają wewnątrz przygotowanej pętli agenta OpenClaw: wbudowane
środowisko wykonawcze
openclaworaz zarejestrowane harnessy Pluginów, takie jakcodexicopilot. - Backendy CLI uruchamiają lokalny proces CLI, zachowując kanoniczne odwołanie do modelu.
Na przykład
anthropic/claude-opus-4-8z ustawieniemagentRuntime.id: "claude-cli"o zakresie modelu oznacza „wybierz model Anthropic i wykonaj go przez Claude CLI”.claude-clinie jest identyfikatorem osadzonego harnessu i nie wolno przekazywać go do wyboru AgentHarness.
Harness copilot jest oddzielnym, opcjonalnym zewnętrznym harnesssem Pluginu dla
GitHub Copilot CLI; zobacz środowisko wykonawcze agenta GitHub Copilot, aby poznać
przeznaczony dla użytkownika wybór między PI, Codex a środowiskiem wykonawczym agenta GitHub Copilot.
Powierzchnie Codex
Kilka powierzchni współdzieli nazwę Codex:
| Powierzchnia | Nazwa/konfiguracja OpenClaw | Działanie |
|---|---|---|
| Natywne środowisko wykonawcze serwera aplikacji Codex | odwołania modeli openai/* |
Uruchamia osadzone tury agenta OpenAI przez serwer aplikacji Codex. Jest to typowa konfiguracja subskrypcji ChatGPT/Codex. |
| Profile uwierzytelniania Codex OAuth | profile OAuth openai |
Przechowuje dane uwierzytelniające subskrypcji ChatGPT/Codex używane przez harness serwera aplikacji Codex. |
| Adapter Codex ACP | runtime: "acp", agentId: "codex" |
Uruchamia Codex przez zewnętrzną płaszczyznę sterowania ACP/acpx. Używaj tylko wtedy, gdy wyraźnie zażądano ACP/acpx. |
| Natywny zestaw poleceń sterowania czatem Codex | /codex ... |
Wiąże, wznawia, steruje, zatrzymuje i sprawdza wątki serwera aplikacji Codex z poziomu czatu. |
| Trasa API OpenAI Platform dla powierzchni nieagentowych | openai/* oraz uwierzytelnianie kluczem API |
Bezpośrednie interfejsy API OpenAI, takie jak obrazy, osadzenia, mowa i komunikacja w czasie rzeczywistym. |
Te powierzchnie są celowo niezależne. Włączenie Pluginu codex
udostępnia natywne funkcje serwera aplikacji; openclaw doctor --fix odpowiada za
naprawę przestarzałych tras Codex i czyszczenie nieaktualnych przypięć sesji. Wybranie openai/*
dla modelu agenta oznacza teraz „uruchom to przez Codex”, chyba że używana jest nieagentowa
powierzchnia API OpenAI.
Typowa konfiguracja subskrypcji ChatGPT/Codex używa Codex OAuth do uwierzytelniania, ale
zachowuje odwołanie do modelu jako openai/* i wybiera środowisko wykonawcze codex:
{ agents: { defaults: { model: "openai/gpt-5.6-sol", }, },}Oznacza to, że OpenClaw wybiera odwołanie do modelu OpenAI, a następnie prosi środowisko wykonawcze serwera aplikacji Codex o uruchomienie osadzonej tury agenta. Nie oznacza to „użyj rozliczeń API” ani nie oznacza, że kanał, katalog dostawców modeli lub magazyn sesji OpenClaw staje się częścią Codex.
Gdy dołączony Plugin codex jest włączony, używaj natywnej powierzchni poleceń /codex
(/codex bind, /codex threads, /codex resume, /codex steer,
/codex stop) do sterowania Codex językiem naturalnym zamiast ACP. Używaj ACP dla
Codex tylko wtedy, gdy użytkownik wyraźnie prosi o ACP/acpx lub testuje ścieżkę adaptera ACP.
Claude Code, Gemini CLI, OpenCode, Cursor i podobne zewnętrzne
harnessy nadal używają ACP.
Drzewo decyzyjne:
- Wiązanie/sterowanie/wątek/wznawianie/kierowanie/zatrzymywanie Codex -> natywna powierzchnia poleceń
/codex, gdy dołączony Plugincodexjest włączony. - Codex jako osadzone środowisko wykonawcze lub zwykłe środowisko agenta Codex oparte na subskrypcji ->
openai/<model>. - OpenClaw wybrany jawnie dla modelu OpenAI -> zachowaj odwołanie do modelu jako
openai/<model>i ustaw zasady środowiska wykonawczego dostawcy/modelu naagentRuntime.id: "openclaw". Wybrany profil OAuthopenaijest wewnętrznie kierowany przez transport uwierzytelniania Codex należący do OpenClaw. - Przestarzałe odwołania modeli Codex w konfiguracji -> napraw je za pomocą
openclaw doctor --fixdo postaciopenai/<model>; doctor zachowuje trasę uwierzytelniania Codex, dodającagentRuntime.id: "codex"o zakresie dostawcy/modelu tam, gdzie wskazywało na to stare odwołanie do modelu. Przestarzałe odwołania modelicodex-cli/*są naprawiane do tej samej trasy serwera aplikacji Codexopenai/<model>; OpenClaw nie zachowuje już dołączonego backendu Codex CLI. - Wyraźnie zażądano ACP, acpx lub adaptera Codex ACP ->
runtime: "acp"iagentId: "codex". - Claude Code, Gemini CLI, OpenCode, Cursor, Droid lub inny zewnętrzny harness -> ACP/acpx, a nie natywne środowisko wykonawcze podagentów.
| Masz na myśli... | Użyj... |
|---|---|
| Sterowanie czatem/wątkami serwera aplikacji Codex | /codex ... z dołączonego Pluginu codex |
| Osadzone środowisko wykonawcze agenta serwera aplikacji Codex | odwołania modeli agenta openai/* |
| OpenAI Codex OAuth | profile OAuth openai |
| Claude Code lub inny zewnętrzny harness | ACP/acpx |
Podział prefiksów rodziny OpenAI opisano w OpenAI oraz Dostawcach modeli. Kontrakt obsługi środowiska wykonawczego Codex opisano w Środowisku wykonawczym harnessu Codex.
Własność środowiska wykonawczego
Różne środowiska wykonawcze odpowiadają za różne części pętli:
| Powierzchnia | Osadzone OpenClaw | Serwer aplikacji Codex |
|---|---|---|
| Właściciel pętli modelu | OpenClaw, za pośrednictwem osadzonego runnera OpenClaw | Serwer aplikacji Codex |
| Kanoniczny stan wątku | Transkrypcja OpenClaw | Wątek Codex wraz z kopią lustrzaną transkrypcji OpenClaw |
| Dynamiczne narzędzia OpenClaw | Natywna pętla narzędzi OpenClaw | Mostkowane przez adapter Codex |
| Natywne narzędzia powłoki i plików | Ścieżka OpenClaw | Natywne narzędzia Codex, mostkowane przez natywne hooki tam, gdzie są obsługiwane |
| Silnik kontekstu | Natywne składanie kontekstu OpenClaw | OpenClaw rzutuje złożony kontekst na turę Codex |
| Compaction | OpenClaw lub wybrany silnik kontekstu | Natywna kompaktacja Codex z powiadomieniami OpenClaw i utrzymaniem kopii lustrzanej |
| Dostarczanie do kanału | OpenClaw | OpenClaw |
Zasada projektowa: jeśli OpenClaw jest właścicielem powierzchni, może zapewniać standardowe działanie hooków Pluginów. Jeśli właścicielem powierzchni jest natywne środowisko wykonawcze, OpenClaw potrzebuje zdarzeń środowiska wykonawczego lub natywnych hooków. Jeśli natywne środowisko wykonawcze jest właścicielem kanonicznego stanu wątku, OpenClaw tworzy kopię lustrzaną i rzutuje kontekst, zamiast przepisywać nieobsługiwane elementy wewnętrzne.
Wybór środowiska wykonawczego
OpenClaw rozpoznaje osadzone środowisko wykonawcze po rozpoznaniu dostawcy i modelu, w następującej kolejności:
- Zasady środowiska wykonawczego o zakresie modelu mają pierwszeństwo. Znajdują się w skonfigurowanym wpisie
modelu dostawcy albo w
agents.defaults.models["provider/model"].agentRuntime/agents.list[].models["provider/model"].agentRuntime. Symbol wieloznaczny dostawcy, taki jakagents.defaults.models["vllm/*"].agentRuntime, jest stosowany po dokładnych zasadach modelu, dzięki czemu dynamicznie wykrywane modele dostawcy mogą współdzielić jedno środowisko wykonawcze bez zastępowania dokładnych wyjątków poszczególnych modeli. - Zasady środowiska wykonawczego o zakresie dostawcy:
models.providers.<provider>.agentRuntime. - Tryb
auto: zarejestrowane środowiska wykonawcze Pluginów mogą zgłaszać obsługę par dostawca/model. - Jeśli w trybie
autożadne środowisko nie zgłosi obsługi tury, OpenClaw używaopenclawjako zgodnościowego środowiska wykonawczego. Użyj jawnego identyfikatora środowiska wykonawczego, gdy wykonanie musi być ścisłe.
Przypięcia środowiska wykonawczego dla całej sesji i całego agenta są ignorowane: OPENCLAW_AGENT_RUNTIME,
stan sesji agentHarnessId/agentRuntimeOverride, agents.defaults.agentRuntime
oraz agents.list[].agentRuntime. Uruchom openclaw doctor --fix, aby usunąć nieaktualną
konfigurację środowiska wykonawczego dla całego agenta i przekonwertować przestarzałe odwołania modeli środowiska wykonawczego tam, gdzie
można zachować zamiar.
Jawne środowiska wykonawcze Pluginów dostawcy/modelu kończą działanie przy błędzie: agentRuntime.id: "codex"
dla dostawcy lub modelu oznacza Codex albo jednoznaczny błąd wyboru/środowiska wykonawczego — nigdy nie jest
po cichu kierowane z powrotem do OpenClaw. Tylko auto może skierować niedopasowaną
turę do OpenClaw.
Aliasy backendów CLI różnią się od identyfikatorów osadzonych harnessów. Preferowana postać Claude CLI:
{ agents: { defaults: { model: "anthropic/claude-opus-4-8", models: { "anthropic/claude-opus-4-8": { agentRuntime: { id: "claude-cli" }, }, }, }, },}Przestarzałe odwołania, takie jak claude-cli/claude-opus-4-7, pozostają obsługiwane ze względu na
zgodność, ale nowa konfiguracja powinna zachowywać kanoniczną postać dostawca/model i
umieszczać backend wykonawczy w zasadach środowiska wykonawczego dostawcy/modelu.
Przestarzałe odwołania codex-cli/* są inne: doctor migruje je do openai/*, aby
działały przez harness serwera aplikacji Codex, zamiast zachowywać backend Codex
CLI.
Tryb auto jest celowo zachowawczy dla większości dostawców. Modele agentów OpenAI
są wyjątkiem: zarówno nieustawione środowisko wykonawcze, jak i auto prowadzą do harnessu Codex.
Jawna konfiguracja środowiska wykonawczego OpenClaw pozostaje opcjonalną trasą zgodności
dla tur agenta openai/*; w połączeniu z wybranym profilem OAuth
openai OpenClaw wewnętrznie kieruje tę ścieżkę przez transport uwierzytelniania
Codex, zachowując publiczne odwołanie do modelu jako openai/*. Nieaktualne przypięcia sesji środowiska wykonawczego
OpenAI są ignorowane podczas wyboru środowiska wykonawczego i można je usunąć za pomocą
openclaw doctor --fix.
Jeśli openclaw doctor ostrzega, że Plugin codex jest włączony, a w konfiguracji
pozostają przestarzałe odwołania modeli Codex, potraktuj je jako przestarzały stan trasy i uruchom
openclaw doctor --fix, aby przepisać je na openai/* ze środowiskiem wykonawczym Codex.
Środowisko wykonawcze agenta GitHub Copilot
Zewnętrzny plugin @openclaw/copilot rejestruje opcjonalne środowisko wykonawcze copilot
oparte na CLI GitHub Copilot (@github/copilot-sdk). Przejmuje ono
kanonicznego dostawcę subskrypcji github-copilot i nigdy nie jest wybierane przez
auto. Włącz je osobno dla modelu lub dostawcy za pomocą agentRuntime.id:
{ agents: { defaults: { model: "github-copilot/gpt-5.5", models: { "github-copilot/gpt-5.5": { agentRuntime: { id: "copilot" }, }, }, }, },}Mechanizm testowy deklaruje swojego dostawcę, środowisko wykonawcze, klucz sesji CLI oraz prefiks
profilu uwierzytelniania w extensions/copilot/doctor-contract-api.ts, który polecenie openclaw doctor
wczytuje automatycznie. Informacje o konfiguracji, uwierzytelnianiu, replikowaniu transkrypcji, Compaction,
deklaratywnym kontrakcie narzędzia doctor oraz szerszym wyborze między SDK Pi, Codex i Copilot
zawiera strona Środowisko wykonawcze agenta GitHub Copilot.
Kontrakt zgodności
Gdy środowisko wykonawcze nie należy do OpenClaw, jego dokumentacja powinna określać, które obszary OpenClaw obsługuje:
| Pytanie | Dlaczego jest to ważne |
|---|---|
| Kto zarządza pętlą modelu? | Określa, gdzie podejmowane są decyzje o ponowieniach, kontynuacji narzędzi i ostatecznej odpowiedzi. |
| Kto zarządza kanoniczną historią wątku? | Określa, czy OpenClaw może edytować historię, czy tylko ją replikować. |
| Czy dynamiczne narzędzia OpenClaw działają? | Zależą od tego wiadomości, sesje, cron oraz narzędzia należące do OpenClaw. |
| Czy działają haki narzędzi dynamicznych? | Pluginy oczekują before_tool_call, after_tool_call oraz warstwy pośredniczącej wokół narzędzi należących do OpenClaw. |
| Czy działają haki narzędzi natywnych? | Powłoka, poprawki i narzędzia należące do środowiska wykonawczego wymagają obsługi natywnych haków do egzekwowania zasad i obserwacji. |
| Czy działa cykl życia mechanizmu kontekstu? | Pluginy pamięci i kontekstu zależą od etapów składania, przyswajania, przetwarzania po turze i cyklu życia Compaction. |
| Jakie dane Compaction są udostępniane? | Niektóre pluginy potrzebują tylko powiadomień, a inne metadanych o zachowanych i odrzuconych elementach. |
| Co celowo nie jest obsługiwane? | Użytkownicy nie powinni zakładać równoważności z OpenClaw, gdy natywne środowisko wykonawcze zarządza większą częścią stanu. |
Kontrakt obsługi środowiska wykonawczego Codex opisano na stronie Środowisko wykonawcze mechanizmu testowego Codex.
Etykiety stanu
Dane wyjściowe stanu mogą zawierać zarówno etykietę Execution, jak i Runtime. Należy je odczytywać jako
informacje diagnostyczne, a nie nazwy dostawców:
- Odwołanie do modelu, takie jak
openai/gpt-5.6-sol, oznacza wybranego dostawcę i model. - Identyfikator środowiska wykonawczego, taki jak
codex, oznacza pętlę wykonującą turę. - Etykieta kanału, taka jak Telegram lub Discord, wskazuje miejsce prowadzenia rozmowy.
Jeśli uruchomienie wskazuje nieoczekiwane środowisko wykonawcze, najpierw sprawdź zasady środowiska wykonawczego dla wybranego dostawcy i modelu. Starsze przypisania środowiska wykonawczego zapisane w sesji nie decydują już o trasowaniu.