Pluginy Agent Harness
Agent harness to niskopoziomowy executor dla jednej przygotowanej tury agenta OpenClaw. Nie jest providerem modeli, nie jest kanałem i nie jest rejestrem narzędzi. Używaj tej powierzchni tylko dla wbudowanych lub zaufanych natywnych pluginów. Kontrakt jest nadal eksperymentalny, ponieważ typy parametrów celowo odzwierciedlają bieżący osadzony runner.Kiedy używać harness
Zarejestruj agent harness, gdy rodzina modeli ma własne natywne środowisko uruchomieniowe sesji, a zwykły transport providera OpenClaw jest niewłaściwą abstrakcją. Przykłady:- natywny serwer coding-agent, który zarządza wątkami i kompaktacją
- lokalny CLI lub demon, który musi strumieniować natywne zdarzenia planu/rozumowania/narzędzi
- środowisko uruchomieniowe modelu, które oprócz transkryptu sesji OpenClaw potrzebuje własnego resume id
Czym nadal zarządza core
Zanim harness zostanie wybrany, OpenClaw już ustalił:- providera i model
- stan auth runtime
- poziom rozumowania i budżet kontekstu
- plik transkryptu/sesji OpenClaw
- workspace, sandbox i politykę narzędzi
- callbacki odpowiedzi kanału i callbacki streamingu
- politykę fallbacku modelu i przełączania modeli na żywo
Rejestracja harness
Import:openclaw/plugin-sdk/agent-harness
Zasady wyboru
OpenClaw wybiera harness po rozstrzygnięciu providera/modelu:OPENCLAW_AGENT_RUNTIME=<id>wymusza zarejestrowany harness o tym id.OPENCLAW_AGENT_RUNTIME=piwymusza wbudowany harness PI.OPENCLAW_AGENT_RUNTIME=autopyta zarejestrowane harnessy, czy obsługują rozstrzygnięty provider/model.- Jeśli żaden zarejestrowany harness nie pasuje, OpenClaw używa PI, chyba że fallback PI jest wyłączony.
auto OpenClaw może wrócić do PI, gdy wybrany plugin harness zakończy się błędem, zanim tura wywoła skutki uboczne. Ustaw OPENCLAW_AGENT_HARNESS_FALLBACK=none lub embeddedHarness.fallback: "none", aby taki fallback był twardym błędem.
Dołączony plugin Codex rejestruje codex jako id swojego harness. Core traktuje to jak zwykłe id plugin harness; aliasy specyficzne dla Codex powinny należeć do pluginu albo konfiguracji operatora, a nie do wspólnego selektora runtime.
Parowanie provider plus harness
Większość harnessów powinna także rejestrować providera. Provider udostępnia odwołania do modeli, stan auth, metadane modeli i wybór/model pozostałej części OpenClaw. Harness następnie zgłasza tego providera w supports(...).
Dołączony plugin Codex stosuje ten wzorzec:
- id providera:
codex - odwołania do modeli użytkownika:
codex/gpt-5.4,codex/gpt-5.2albo inny model zwrócony przez serwer aplikacji Codex - id harness:
codex - auth: syntetyczna dostępność providera, ponieważ harness Codex zarządza natywnym logowaniem/sesją Codex
- żądanie app-servera: OpenClaw wysyła do Codex samo id modelu i pozwala harnessowi rozmawiać z natywnym protokołem app-servera
openai/gpt-* pozostają odwołaniami providera OpenAI i nadal używają normalnej ścieżki providera OpenClaw. Wybierz codex/gpt-*, gdy chcesz auth zarządzanego przez Codex, wykrywania modeli Codex, natywnych wątków i wykonywania przez app-server Codex. /model może przełączać się między modelami Codex zwróconymi przez serwer aplikacji Codex bez konieczności posiadania poświadczeń providera OpenAI.
Informacje o konfiguracji operatora, przykłady prefiksów modeli i konfiguracje tylko dla Codex znajdziesz w Codex Harness.
OpenClaw wymaga app-servera Codex 0.118.0 lub nowszego. Plugin Codex sprawdza handshake inicjalizacji app-servera i blokuje starsze lub niezwersjonowane serwery, aby OpenClaw działał tylko z powierzchnią protokołu, na której został przetestowany.
Wyłącz fallback PI
Domyślnie OpenClaw uruchamia osadzonych agentów zagents.defaults.embeddedHarness ustawionym na { runtime: "auto", fallback: "pi" }. W trybie auto zarejestrowane plugin harnessy mogą przejąć parę provider/model. Jeśli żaden nie pasuje albo jeśli automatycznie wybrany plugin harness zakończy się błędem przed wygenerowaniem danych wyjściowych, OpenClaw wraca do PI.
Ustaw fallback: "none", gdy musisz udowodnić, że plugin harness jest jedynym używanym runtime. To wyłącza automatyczny fallback PI; nie blokuje jawnego runtime: "pi" ani OPENCLAW_AGENT_RUNTIME=pi.
Dla osadzonych uruchomień tylko z Codex:
runtime: "auto" i wyłącz fallback:
OPENCLAW_AGENT_RUNTIME nadal nadpisuje skonfigurowany runtime. Użyj OPENCLAW_AGENT_HARNESS_FALLBACK=none, aby wyłączyć fallback PI z poziomu środowiska.
Natywne sesje i lustro transkryptu
Harness może przechowywać natywne id sesji, id wątku albo token wznowienia po stronie demona. Powiąż to jawnie z sesją OpenClaw i nadal odzwierciedlaj widoczne dla użytkownika dane wyjściowe asystenta/narzędzi w transkrypcie OpenClaw. Transkrypt OpenClaw pozostaje warstwą zgodności dla:- historii sesji widocznej w kanałach
- wyszukiwania i indeksowania transkryptów
- późniejszego przełączenia z powrotem na wbudowany harness PI
- ogólnego zachowania
/new,/reseti usuwania sesji
reset(...), aby OpenClaw mógł je wyczyścić przy resetowaniu powiązanej sesji OpenClaw.
Wyniki narzędzi i mediów
Core tworzy listę narzędzi OpenClaw i przekazuje ją do przygotowanej próby. Gdy harness wykonuje dynamiczne wywołanie narzędzia, zwróć wynik narzędzia przez kształt wyniku harness zamiast samodzielnie wysyłać media kanałowe. Dzięki temu wyjścia tekstowe, obrazów, wideo, muzyki, TTS, zatwierdzeń i narzędzi wiadomości pozostają na tej samej ścieżce dostarczania co uruchomienia oparte na PI.Bieżące ograniczenia
- Publiczna ścieżka importu jest ogólna, ale niektóre aliasy typów prób/wyników nadal zawierają nazwy
Pize względu na zgodność. - Instalacja harnessów firm trzecich jest eksperymentalna. Preferuj provider pluginy, dopóki nie potrzebujesz natywnego środowiska uruchomieniowego sesji.
- Przełączanie harnessów między turami jest obsługiwane. Nie przełączaj harnessów w środku tury po rozpoczęciu natywnych narzędzi, zatwierdzeń, tekstu asystenta lub wysyłania wiadomości.