chore(i18n): refresh pl translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-11 15:25:11 +00:00
parent aa426faafd
commit 8f309ba6a0
6 changed files with 2003 additions and 1453 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,174 @@
---
x-i18n:
generated_at: "2026-04-11T15:15:56Z"
model: gpt-5.4
provider: openai
source_hash: 910bcf7668becf182ef48185b43728bf2fa69629d6d50189d47d47b06f807a9e
source_path: help/gpt54-codex-agentic-parity-maintainers.md
workflow: 15
---
# Notatki konserwatora dotyczące parytetu GPT-5.4 / Codex
Ta notatka wyjaśnia, jak przeglądać program parytetu GPT-5.4 / Codex jako cztery jednostki scalania bez utraty oryginalnej architektury sześciu kontraktów.
## Jednostki scalania
### PR A: ścisłe wykonanie agentowe
Obejmuje:
- `executionContract`
- GPT-5-first same-turn follow-through
- `update_plan` jako nieterminalne śledzenie postępu
- jawne stany zablokowania zamiast cichych zatrzymań opartych wyłącznie na planie
Nie obejmuje:
- klasyfikacji błędów uwierzytelniania/środowiska uruchomieniowego
- prawdomówności uprawnień
- przeprojektowania odtwarzania/kontynuacji
- benchmarkingu parytetu
### PR B: prawdomówność środowiska uruchomieniowego
Obejmuje:
- poprawność zakresów OAuth Codex
- typowaną klasyfikację błędów dostawcy/środowiska uruchomieniowego
- rzetelną dostępność `/elevated full` i powody zablokowania
Nie obejmuje:
- normalizacji schematu narzędzi
- stanu odtwarzania/żywotności
- bramkowania benchmarków
### PR C: poprawność wykonania
Obejmuje:
- zgodność narzędzi OpenAI/Codex należącą do dostawcy
- ścisłą obsługę schematów bez parametrów
- ujawnianie nieprawidłowego odtwarzania
- widoczność stanów wstrzymania, zablokowania i porzucenia dla zadań długotrwałych
Nie obejmuje:
- samodzielnie wybranej kontynuacji
- ogólnego zachowania dialektu Codex poza hookami dostawcy
- bramkowania benchmarków
### PR D: harness parytetu
Obejmuje:
- pakiet scenariuszy pierwszej fali GPT-5.4 vs Opus 4.6
- dokumentację parytetu
- raport parytetu i mechanikę bramki wydania
Nie obejmuje:
- zmian zachowania środowiska uruchomieniowego poza QA-lab
- symulacji auth/proxy/DNS wewnątrz harnessu
## Mapowanie z powrotem na oryginalne sześć kontraktów
| Oryginalny kontrakt | Jednostka scalania |
| ---------------------------------------- | ------------------ |
| Poprawność transportu/uwierzytelniania dostawcy | PR B |
| Zgodność kontraktu/schematu narzędzi | PR C |
| Wykonanie w tej samej turze | PR A |
| Prawdomówność uprawnień | PR B |
| Poprawność odtwarzania/kontynuacji/żywotności | PR C |
| Bramka benchmarku/wydania | PR D |
## Kolejność przeglądu
1. PR A
2. PR B
3. PR C
4. PR D
PR D jest warstwą dowodową. Nie powinien być powodem opóźniania PR-ów dotyczących poprawności środowiska uruchomieniowego.
## Na co zwracać uwagę
### PR A
- uruchomienia GPT-5 działają albo kończą się w sposób zamknięty, zamiast zatrzymywać się na komentarzu
- `update_plan` nie wygląda już sam w sobie jak postęp
- zachowanie pozostaje GPT-5-first i ograniczone do embedded-Pi
### PR B
- błędy auth/proxy/środowiska uruchomieniowego przestają zapadać się do ogólnej obsługi „model failed”
- `/elevated full` jest opisywane jako dostępne tylko wtedy, gdy rzeczywiście jest dostępne
- powody zablokowania są widoczne zarówno dla modelu, jak i dla środowiska uruchomieniowego skierowanego do użytkownika
### PR C
- ścisła rejestracja narzędzi OpenAI/Codex zachowuje się przewidywalnie
- narzędzia bez parametrów nie kończą się niepowodzeniem przy ścisłych kontrolach schematu
- wyniki odtwarzania i kompaktowania zachowują prawdziwy stan żywotności
### PR D
- pakiet scenariuszy jest zrozumiały i odtwarzalny
- pakiet zawiera ścieżkę bezpieczeństwa odtwarzania z mutacjami, a nie tylko przepływy tylko do odczytu
- raporty są czytelne dla ludzi i automatyzacji
- twierdzenia o parytecie są poparte dowodami, a nie anegdotami
Oczekiwane artefakty z PR D:
- `qa-suite-report.md` / `qa-suite-summary.json` dla każdego uruchomienia modelu
- `qa-agentic-parity-report.md` z porównaniem zbiorczym i na poziomie scenariuszy
- `qa-agentic-parity-summary.json` z werdyktem możliwym do odczytu maszynowego
## Bramka wydania
Nie twierdź, że GPT-5.4 osiąga parytet lub przewagę nad Opus 4.6, dopóki:
- PR A, PR B i PR C nie zostaną scalone
- PR D nie uruchomi czysto pakietu parytetu pierwszej fali
- zestawy regresji prawdomówności środowiska uruchomieniowego pozostają zielone
- raport parytetu nie wykazuje przypadków fałszywego sukcesu ani regresji w zachowaniu zatrzymania
```mermaid
flowchart LR
A["PR A-C merged"] --> B["Run GPT-5.4 parity pack"]
A --> C["Run Opus 4.6 parity pack"]
B --> D["qa-suite-summary.json"]
C --> E["qa-suite-summary.json"]
D --> F["qa parity-report"]
E --> F
F --> G["Markdown report + JSON verdict"]
G --> H{"Pass?"}
H -- "yes" --> I["Parity claim allowed"]
H -- "no" --> J["Keep runtime fixes / review loop open"]
```
Harness parytetu nie jest jedynym źródłem dowodów. Zachowaj ten podział jako jawny podczas przeglądu:
- PR D obejmuje porównanie GPT-5.4 vs Opus 4.6 oparte na scenariuszach
- deterministyczne zestawy PR B nadal obejmują dowody dotyczące auth/proxy/DNS i prawdomówności pełnego dostępu
## Mapa celu do dowodów
| Element bramki ukończenia | Główny właściciel | Artefakt przeglądu |
| ---------------------------------------- | ----------------- | ------------------------------------------------------------------- |
| Brak zacięć opartych wyłącznie na planie | PR A | testy środowiska ścisłego wykonania agentowego i `approval-turn-tool-followthrough` |
| Brak fałszywego postępu lub fałszywego zakończenia narzędzia | PR A + PR D | liczba fałszywych sukcesów w parytecie plus szczegóły raportu na poziomie scenariuszy |
| Brak fałszywych wskazówek `/elevated full` | PR B | deterministyczne zestawy prawdomówności środowiska uruchomieniowego |
| Błędy odtwarzania/żywotności pozostają jawne | PR C + PR D | zestawy lifecycle/replay plus `compaction-retry-mutating-tool` |
| GPT-5.4 dorównuje Opus 4.6 lub go przewyższa | PR D | `qa-agentic-parity-report.md` i `qa-agentic-parity-summary.json` |
## Skrót dla recenzenta: przed vs po
| Problem widoczny dla użytkownika przed | Sygnał przeglądu po |
| --------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| GPT-5.4 zatrzymywał się po planowaniu | PR A pokazuje zachowanie wykonaj-lub-zablokuj zamiast zakończenia opartego wyłącznie na komentarzu |
| Użycie narzędzi wydawało się kruche przy ścisłych schematach OpenAI/Codex | PR C utrzymuje przewidywalność rejestracji narzędzi i wywołań bez parametrów |
| Wskazówki `/elevated full` bywały czasem mylące | PR B wiąże wskazówki z rzeczywistą zdolnością środowiska uruchomieniowego i powodami zablokowania |
| Długie zadania mogły zniknąć w niejednoznaczności odtwarzania/kompaktowania | PR C emituje jawny stan: wstrzymane, zablokowane, porzucone i replay-invalid |
| Twierdzenia o parytecie były anegdotyczne | PR D tworzy raport oraz werdykt JSON z tym samym pokryciem scenariuszy dla obu modeli |

View File

@ -0,0 +1,229 @@
---
x-i18n:
generated_at: "2026-04-11T15:15:56Z"
model: gpt-5.4
provider: openai
source_hash: 7ee6b925b8a0f8843693cea9d50b40544657b5fb8a9e0860e2ff5badb273acb6
source_path: help/gpt54-codex-agentic-parity.md
workflow: 15
---
# GPT-5.4 / Codex Agentic Parity w OpenClaw
OpenClaw już dobrze działał z modelami granicznymi korzystającymi z narzędzi, ale modele w stylu GPT-5.4 i Codex nadal wypadały słabiej w kilku praktycznych aspektach:
- mogły zatrzymać się po etapie planowania zamiast wykonać pracę
- mogły niepoprawnie używać ścisłych schematów narzędzi OpenAI/Codex
- mogły prosić o `/elevated full`, nawet gdy pełny dostęp był niemożliwy
- mogły tracić stan długotrwałego zadania podczas odtwarzania lub kompaktowania
- twierdzenia o parytecie względem Claude Opus 4.6 opierały się na anegdotach zamiast na powtarzalnych scenariuszach
Ten program parytetu usuwa te luki w czterech fragmentach możliwych do przeglądu.
## Co się zmieniło
### PR A: ścisłe wykonanie agentyczne
Ten fragment dodaje opcjonalny kontrakt wykonania `strict-agentic` dla osadzonych uruchomień Pi GPT-5.
Gdy jest włączony, OpenClaw przestaje akceptować tury zawierające wyłącznie plan jako „wystarczająco dobre” zakończenie. Jeśli model tylko mówi, co zamierza zrobić, i faktycznie nie używa narzędzi ani nie robi postępu, OpenClaw ponawia próbę z nakierowaniem na natychmiastowe działanie, a następnie kończy się w trybie fail-closed z jawnym stanem blokady zamiast po cichu kończyć zadanie.
Najbardziej poprawia to działanie GPT-5.4 w następujących przypadkach:
- krótkie dopowiedzenia typu „ok, zrób to”
- zadania programistyczne, w których pierwszy krok jest oczywisty
- przepływy, w których `update_plan` powinno służyć do śledzenia postępu, a nie jako tekst wypełniający
### PR B: zgodność z rzeczywistym stanem środowiska wykonawczego
Ten fragment sprawia, że OpenClaw mówi prawdę o dwóch rzeczach:
- dlaczego wywołanie dostawcy/środowiska wykonawczego nie powiodło się
- czy `/elevated full` jest faktycznie dostępne
Oznacza to, że GPT-5.4 otrzymuje lepsze sygnały środowiska wykonawczego dla brakującego zakresu uprawnień, błędów odświeżenia uwierzytelnienia, błędów uwierzytelnienia HTML 403, problemów z proxy, błędów DNS lub przekroczenia czasu oraz zablokowanych trybów pełnego dostępu. Model z mniejszym prawdopodobieństwem będzie halucynował błędne działania naprawcze albo nadal prosił o tryb uprawnień, którego środowisko wykonawcze nie może zapewnić.
### PR C: poprawność wykonania
Ten fragment poprawia dwa rodzaje poprawności:
- zgodność schematów narzędzi należących do dostawcy z OpenAI/Codex
- widoczność odtwarzania i żywotności długich zadań
Prace nad zgodnością narzędzi zmniejszają tarcia związane ze ścisłą rejestracją narzędzi OpenAI/Codex, szczególnie w przypadku narzędzi bez parametrów i oczekiwań dotyczących ścisłego obiektu jako korzenia. Prace nad odtwarzaniem i żywotnością sprawiają, że zadania długotrwałe są lepiej obserwowalne, dzięki czemu stany wstrzymania, blokady i porzucenia są widoczne zamiast znikać w ogólnym komunikacie o błędzie.
### PR D: wiązka testów parytetu
Ten fragment dodaje pierwszą falę zestawu parytetu QA-lab, aby GPT-5.4 i Opus 4.6 można było uruchamiać w tych samych scenariuszach i porównywać na podstawie wspólnych dowodów.
Zestaw parytetu jest warstwą dowodową. Sam z siebie nie zmienia zachowania środowiska wykonawczego.
Gdy masz już dwa artefakty `qa-suite-summary.json`, wygeneruj porównanie bramki wydania za pomocą:
```bash
pnpm openclaw qa parity-report \
--repo-root . \
--candidate-summary .artifacts/qa-e2e/gpt54/qa-suite-summary.json \
--baseline-summary .artifacts/qa-e2e/opus46/qa-suite-summary.json \
--output-dir .artifacts/qa-e2e/parity
```
To polecenie zapisuje:
- czytelny dla człowieka raport Markdown
- czytelny maszynowo werdykt JSON
- jawny wynik bramki `pass` / `fail`
## Dlaczego to w praktyce poprawia GPT-5.4
Przed tymi zmianami GPT-5.4 w OpenClaw mógł sprawiać wrażenie mniej agentycznego niż Opus w rzeczywistych sesjach programistycznych, ponieważ środowisko wykonawcze tolerowało zachowania szczególnie szkodliwe dla modeli w stylu GPT-5:
- tury zawierające wyłącznie komentarz
- tarcia schematów wokół narzędzi
- niejasne informacje zwrotne o uprawnieniach
- ciche uszkodzenia odtwarzania lub kompaktowania
Celem nie jest sprawienie, by GPT-5.4 naśladował Opus. Celem jest zapewnienie GPT-5.4 kontraktu środowiska wykonawczego, który nagradza rzeczywisty postęp, dostarcza czytelniejszej semantyki narzędzi i uprawnień oraz zamienia tryby awarii w jawne stany czytelne zarówno dla maszyn, jak i ludzi.
To zmienia doświadczenie użytkownika z:
- „model miał dobry plan, ale się zatrzymał”
na:
- „model albo zadziałał, albo OpenClaw wskazał dokładny powód, dlaczego nie mógł”
## Przed i po dla użytkowników GPT-5.4
| Przed tym programem | Po PR A-D |
| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| GPT-5.4 mógł zatrzymać się po rozsądnym planie bez wykonania kolejnego kroku narzędziowego | PR A zamienia „sam plan” na „działaj teraz albo pokaż stan blokady” |
| Ścisłe schematy narzędzi mogły w mylący sposób odrzucać narzędzia bez parametrów lub w kształcie OpenAI/Codex | PR C sprawia, że rejestracja i wywoływanie narzędzi należących do dostawcy są bardziej przewidywalne |
| Wskazówki dotyczące `/elevated full` mogły być niejasne lub błędne w zablokowanych środowiskach wykonawczych | PR B daje GPT-5.4 i użytkownikowi prawdziwe wskazówki środowiska wykonawczego i uprawnień |
| Błędy odtwarzania lub kompaktowania mogły sprawiać wrażenie, że zadanie po cichu zniknęło | PR C jawnie pokazuje wyniki paused, blocked, abandoned i replay-invalid |
| „GPT-5.4 wypada gorzej niż Opus” było głównie anegdotyczne | PR D zamienia to w ten sam zestaw scenariuszy, te same metryki i twardą bramkę pass/fail |
## Architektura
```mermaid
flowchart TD
A["Żądanie użytkownika"] --> B["Osadzone środowisko wykonawcze Pi"]
B --> C["Kontrakt ścisłego wykonania agentycznego"]
B --> D["Zgodność narzędzi należących do dostawcy"]
B --> E["Zgodność z rzeczywistym stanem środowiska wykonawczego"]
B --> F["Stan odtwarzania i żywotności"]
C --> G["Wywołanie narzędzia lub jawny stan blokady"]
D --> G
E --> G
F --> G
G --> H["Zestaw parytetu QA-lab"]
H --> I["Raport scenariuszy i bramka parytetu"]
```
## Przepływ wydania
```mermaid
flowchart LR
A["Scalone fragmenty środowiska wykonawczego (PR A-C)"] --> B["Uruchom zestaw parytetu GPT-5.4"]
A --> C["Uruchom zestaw parytetu Opus 4.6"]
B --> D["qa-suite-summary.json"]
C --> E["qa-suite-summary.json"]
D --> F["openclaw qa parity-report"]
E --> F
F --> G["qa-agentic-parity-report.md"]
F --> H["qa-agentic-parity-summary.json"]
H --> I{"Bramka zaliczona?"}
I -- "tak" --> J["Twierdzenie o parytecie poparte dowodami"]
I -- "nie" --> K["Pozostaw pętlę środowiska wykonawczego/przeglądu otwartą"]
```
## Zestaw scenariuszy
Pierwsza fala zestawu parytetu obejmuje obecnie pięć scenariuszy:
### `approval-turn-tool-followthrough`
Sprawdza, czy model nie zatrzymuje się na „zrobię to” po krótkiej zgodzie. Powinien wykonać pierwsze konkretne działanie w tej samej turze.
### `model-switch-tool-continuity`
Sprawdza, czy praca z użyciem narzędzi pozostaje spójna po przełączeniu modelu/środowiska wykonawczego zamiast resetować się do komentarza lub tracić kontekst wykonania.
### `source-docs-discovery-report`
Sprawdza, czy model potrafi czytać kod źródłowy i dokumentację, syntetyzować ustalenia oraz kontynuować zadanie w sposób agentyczny zamiast tworzyć cienkie podsumowanie i zatrzymywać się zbyt wcześnie.
### `image-understanding-attachment`
Sprawdza, czy zadania mieszane obejmujące załączniki pozostają wykonalne i nie sprowadzają się do ogólnej narracji.
### `compaction-retry-mutating-tool`
Sprawdza, czy zadanie z rzeczywistym modyfikującym zapisem zachowuje jawną informację o niebezpieczeństwie odtwarzania zamiast sprawiać ciche wrażenie bezpiecznego odtworzenia, gdy uruchomienie ulega kompaktowaniu, ponownej próbie lub traci stan odpowiedzi pod presją.
## Macierz scenariuszy
| Scenariusz | Co testuje | Dobre zachowanie GPT-5.4 | Sygnał niepowodzenia |
| ---------------------------------- | --------------------------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| `approval-turn-tool-followthrough` | Krótkie zgody po planie | Natychmiast rozpoczyna pierwsze konkretne działanie narzędziowe zamiast powtarzać zamiar | dopowiedzenie ograniczające się do planu, brak aktywności narzędziowej lub tura zablokowana bez rzeczywistej przeszkody |
| `model-switch-tool-continuity` | Przełączanie środowiska wykonawczego/modelu podczas użycia narzędzi | Zachowuje kontekst zadania i spójnie kontynuuje działanie | reset do komentarza, utrata kontekstu narzędzi lub zatrzymanie po przełączeniu |
| `source-docs-discovery-report` | Czytanie kodu źródłowego + synteza + działanie | Znajduje źródła, używa narzędzi i tworzy użyteczny raport bez zastoju | cienkie podsumowanie, brak pracy z narzędziami lub zatrzymanie w niepełnej turze |
| `image-understanding-attachment` | Agentyczna praca oparta na załączniku | Interpretuje załącznik, łączy go z narzędziami i kontynuuje zadanie | ogólna narracja, zignorowany załącznik lub brak konkretnego następnego działania |
| `compaction-retry-mutating-tool` | Praca modyfikująca pod presją kompaktowania | Wykonuje rzeczywisty zapis i po skutku ubocznym zachowuje jawną informację o niebezpieczeństwie odtwarzania | następuje modyfikujący zapis, ale bezpieczeństwo odtwarzania jest sugerowane, nieobecne lub sprzeczne |
## Bramka wydania
Można uznać, że GPT-5.4 osiągnął parytet lub lepszy wynik tylko wtedy, gdy scalone środowisko wykonawcze jednocześnie przechodzi zestaw parytetu oraz regresje zgodności z rzeczywistym stanem środowiska wykonawczego.
Wymagane wyniki:
- brak zastoju na samym planie, gdy następne działanie narzędziowe jest oczywiste
- brak fałszywego zakończenia bez rzeczywistego wykonania
- brak niepoprawnych wskazówek `/elevated full`
- brak cichego porzucenia podczas odtwarzania lub kompaktowania
- metryki zestawu parytetu co najmniej tak dobre jak uzgodniona baza odniesienia Opus 4.6
W pierwszej fali wiązki bramka porównuje:
- wskaźnik ukończenia
- wskaźnik niezamierzonych zatrzymań
- wskaźnik prawidłowych wywołań narzędzi
- liczbę fałszywych sukcesów
Dowody parytetu są celowo podzielone na dwie warstwy:
- PR D dowodzi zachowania GPT-5.4 vs Opus 4.6 w tych samych scenariuszach przy użyciu QA-lab
- deterministyczne zestawy PR B dowodzą zgodności uwierzytelniania, proxy, DNS i `/elevated full` z rzeczywistym stanem poza tą wiązką
## Macierz celu i dowodów
| Element bramki ukończenia | Odpowiedzialny PR | Źródło dowodów | Sygnał zaliczenia |
| ------------------------------------------------------- | ----------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| GPT-5.4 nie zatrzymuje się już po planowaniu | PR A | `approval-turn-tool-followthrough` oraz zestawy środowiska wykonawczego PR A | tury zatwierdzenia wywołują rzeczywistą pracę albo jawny stan blokady |
| GPT-5.4 nie udaje już postępu ani fałszywego ukończenia narzędzia | PR A + PR D | wyniki scenariuszy w raporcie parytetu i liczba fałszywych sukcesów | brak podejrzanych wyników zaliczających i brak zakończeń opartych wyłącznie na komentarzu |
| GPT-5.4 nie podaje już fałszywych wskazówek `/elevated full` | PR B | deterministyczne zestawy zgodności z rzeczywistym stanem | powody blokady i wskazówki pełnego dostępu pozostają zgodne z rzeczywistym stanem środowiska wykonawczego |
| Błędy odtwarzania/żywotności pozostają jawne | PR C + PR D | zestawy lifecycle/replay PR C oraz `compaction-retry-mutating-tool` | praca modyfikująca zachowuje jawną informację o niebezpieczeństwie odtwarzania zamiast po cichu znikać |
| GPT-5.4 dorównuje lub przewyższa Opus 4.6 w uzgodnionych metrykach | PR D | `qa-agentic-parity-report.md` i `qa-agentic-parity-summary.json` | ten sam zakres scenariuszy i brak regresji w ukończeniu, zachowaniu zatrzymania lub prawidłowym użyciu narzędzi |
## Jak odczytać werdykt parytetu
Użyj werdyktu w `qa-agentic-parity-summary.json` jako ostatecznej, czytelnej maszynowo decyzji dla zestawu parytetu pierwszej fali.
- `pass` oznacza, że GPT-5.4 objął te same scenariusze co Opus 4.6 i nie odnotował regresji w uzgodnionych metrykach zbiorczych.
- `fail` oznacza, że została uruchomiona co najmniej jedna twarda bramka: słabsze ukończenie, gorsze niezamierzone zatrzymania, słabsze prawidłowe użycie narzędzi, jakikolwiek przypadek fałszywego sukcesu lub niedopasowany zakres scenariuszy.
- „shared/base CI issue” samo w sobie nie jest wynikiem parytetu. Jeśli szum CI poza PR D blokuje uruchomienie, werdykt powinien poczekać na czyste wykonanie na scalonym środowisku wykonawczym, zamiast być wywnioskowany z logów z okresu gałęzi.
- Zgodność uwierzytelniania, proxy, DNS i `/elevated full` z rzeczywistym stanem nadal pochodzi z deterministycznych zestawów PR B, więc ostateczne twierdzenie wydaniowe wymaga obu elementów: pozytywnego werdyktu parytetu PR D i zielonego pokrycia zgodności z rzeczywistym stanem z PR B.
## Kto powinien włączyć `strict-agentic`
Użyj `strict-agentic`, gdy:
- oczekuje się, że agent zacznie działać natychmiast, gdy kolejny krok jest oczywisty
- modele z rodziny GPT-5.4 lub Codex są podstawowym środowiskiem wykonawczym
- wolisz jawne stany blokady zamiast „pomocnych” odpowiedzi zawierających wyłącznie podsumowanie
Pozostaw domyślny kontrakt, gdy:
- chcesz zachować dotychczasowe, luźniejsze zachowanie
- nie używasz modeli z rodziny GPT-5
- testujesz prompty, a nie wymuszanie na poziomie środowiska wykonawczego

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +1,14 @@
---
read_when:
- Budujesz plugin OpenClaw
- Musisz dostarczyć schemat konfiguracji pluginu albo debugować błędy walidacji pluginu
- Musisz dostarczyć schemat konfiguracji pluginu lub debugować błędy walidacji pluginu
summary: Manifest pluginu + wymagania schematu JSON (ścisła walidacja konfiguracji)
title: Manifest pluginu
x-i18n:
generated_at: "2026-04-11T02:46:17Z"
generated_at: "2026-04-11T15:16:04Z"
model: gpt-5.4
provider: openai
source_hash: 6b254c121d1eb5ea19adbd4148243cf47339c960442ab1ca0e0bfd52e0154c88
source_hash: 42d454b560a8f6bf714c5d782f34216be1216d83d0a319d08d7349332c91a9e4
source_path: plugins/manifest.md
workflow: 15
---
@ -22,42 +22,49 @@ Informacje o zgodnych układach bundli znajdziesz w [Bundlach pluginów](/pl/plu
Zgodne formaty bundli używają innych plików manifestu:
- Bundel Codex: `.codex-plugin/plugin.json`
- Bundel Claude: `.claude-plugin/plugin.json` albo domyślny układ komponentów Claude
- Bundel Claude: `.claude-plugin/plugin.json` lub domyślny układ komponentu Claude
bez manifestu
- Bundel Cursor: `.cursor-plugin/plugin.json`
OpenClaw automatycznie wykrywa także te układy bundli, ale nie są one walidowane
względem schematu `openclaw.plugin.json` opisanego tutaj.
Dla zgodnych bundli OpenClaw obecnie odczytuje metadane bundla oraz zadeklarowane
katalogi główne Skills, katalogi główne poleceń Claude, domyślne ustawienia `settings.json` bundla Claude,
domyślne ustawienia LSP bundla Claude oraz obsługiwane zestawy hooków, gdy układ odpowiada oczekiwaniom runtime OpenClaw.
W przypadku zgodnych bundli OpenClaw obecnie odczytuje metadane bundla oraz zadeklarowane
korzenie Skills, korzenie poleceń Claude, domyślne wartości `settings.json` bundla Claude,
domyślne ustawienia LSP bundla Claude oraz obsługiwane zestawy hooków, gdy układ odpowiada
oczekiwaniom środowiska uruchomieniowego OpenClaw.
Każdy natywny plugin OpenClaw **musi** dostarczać plik `openclaw.plugin.json` w
Każdy natywny plugin OpenClaw **musi** zawierać plik `openclaw.plugin.json` w
**katalogu głównym pluginu**. OpenClaw używa tego manifestu do walidacji konfiguracji
**bez wykonywania kodu pluginu**. Brakujące lub nieprawidłowe manifesty są traktowane jako
błędy pluginu i blokują walidację konfiguracji.
Pełny przewodnik po systemie pluginów: [Pluginy](/pl/tools/plugin).
Informacje o natywnym modelu możliwości i aktualnych wskazówkach dotyczących zgodności zewnętrznej:
Zobacz pełny przewodnik po systemie pluginów: [Pluginy](/pl/tools/plugin).
Informacje o natywnym modelu możliwości i aktualnych wskazówkach dotyczących kompatybilności zewnętrznej:
[Model możliwości](/pl/plugins/architecture#public-capability-model).
## Do czego służy ten plik
`openclaw.plugin.json` to metadane, które OpenClaw odczytuje przed załadowaniem
kodu pluginu.
`openclaw.plugin.json` to metadane, które OpenClaw odczytuje przed załadowaniem kodu
Twojego pluginu.
Używaj go do:
- tożsamości pluginu
- walidacji konfiguracji
- metadanych uwierzytelniania i onboardingu, które powinny być dostępne bez uruchamiania runtime pluginu
- metadanych uwierzytelniania i onboardingu, które powinny być dostępne bez uruchamiania
środowiska wykonawczego pluginu
- tanich wskazówek aktywacji, które powierzchnie płaszczyzny sterowania mogą sprawdzać przed załadowaniem runtime
- tanich deskryptorów konfiguracji, które powierzchnie konfiguracji/onboardingu mogą sprawdzać przed
załadowaniem runtime
- metadanych aliasów i automatycznego włączania, które powinny być rozstrzygane przed załadowaniem runtime pluginu
- metadanych własności skrótowych rodzin modeli, które powinny automatycznie aktywować
- skróconych metadanych własności rodzin modeli, które powinny automatycznie aktywować
plugin przed załadowaniem runtime
- statycznych migawek własności możliwości używanych do bundlowanego okablowania zgodności i pokrycia kontraktów
- metadanych konfiguracji specyficznych dla kanału, które powinny scalać się z powierzchniami katalogu i walidacji bez ładowania runtime
- podpowiedzi UI dla konfiguracji
- statycznych migawek własności możliwości używanych do zgodnego okablowania bundli i
pokrycia kontraktów
- metadanych konfiguracji specyficznych dla kanału, które powinny być scalane z powierzchniami katalogu i walidacji
bez ładowania runtime
- wskazówek UI konfiguracji
Nie używaj go do:
@ -65,7 +72,7 @@ Nie używaj go do:
- deklarowania punktów wejścia kodu
- metadanych instalacji npm
To należy do kodu pluginu i `package.json`.
Te elementy należą do kodu Twojego pluginu i `package.json`.
## Minimalny przykład
@ -142,55 +149,57 @@ To należy do kodu pluginu i `package.json`.
| ----------------------------------- | -------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `id` | Tak | `string` | Kanoniczny identyfikator pluginu. To identyfikator używany w `plugins.entries.<id>`. |
| `configSchema` | Tak | `object` | Wbudowany schemat JSON dla konfiguracji tego pluginu. |
| `enabledByDefault` | Nie | `true` | Oznacza bundlowany plugin jako domyślnie włączony. Pomiń to pole albo ustaw dowolną wartość inną niż `true`, aby pozostawić plugin domyślnie wyłączony. |
| `legacyPluginIds` | Nie | `string[]` | Starsze identyfikatory, które są normalizowane do tego kanonicznego identyfikatora pluginu. |
| `autoEnableWhenConfiguredProviders` | Nie | `string[]` | Identyfikatory dostawców, które powinny automatycznie włączać ten plugin, gdy uwierzytelnianie, konfiguracja lub odwołania do modeli o nich wspominają. |
| `enabledByDefault` | Nie | `true` | Oznacza plugin bundlowany jako domyślnie włączony. Pomiń to pole lub ustaw dowolną wartość inną niż `true`, aby pozostawić plugin domyślnie wyłączony. |
| `legacyPluginIds` | Nie | `string[]` | Starsze identyfikatory normalizowane do tego kanonicznego identyfikatora pluginu. |
| `autoEnableWhenConfiguredProviders` | Nie | `string[]` | Identyfikatory dostawców, które powinny automatycznie włączać ten plugin, gdy uwierzytelnianie, konfiguracja lub odwołania do modeli je wskazują. |
| `kind` | Nie | `"memory"` \| `"context-engine"` | Deklaruje wyłączny rodzaj pluginu używany przez `plugins.slots.*`. |
| `channels` | Nie | `string[]` | Identyfikatory kanałów należących do tego pluginu. Używane do wykrywania i walidacji konfiguracji. |
| `providers` | Nie | `string[]` | Identyfikatory dostawców należących do tego pluginu. |
| `modelSupport` | Nie | `object` | Należące do manifestu skrótowe metadane rodzin modeli używane do automatycznego załadowania pluginu przed runtime. |
| `cliBackends` | Nie | `string[]` | Identyfikatory backendów inferencji CLI należących do tego pluginu. Używane do automatycznej aktywacji przy uruchamianiu na podstawie jawnych odwołań w konfiguracji. |
| `commandAliases` | Nie | `object[]` | Nazwy poleceń należące do tego pluginu, które powinny generować diagnostykę konfiguracji i CLI uwzględniającą plugin przed załadowaniem runtime. |
| `providerAuthEnvVars` | Nie | `Record<string, string[]>` | Lekkie metadane env uwierzytelniania dostawcy, które OpenClaw może sprawdzać bez ładowania kodu pluginu. |
| `providerAuthAliases` | Nie | `Record<string, string>` | Identyfikatory dostawców, które powinny używać ponownie innego identyfikatora dostawcy do wyszukiwania uwierzytelniania, na przykład dostawca do kodowania, który współdzieli klucz API i profile uwierzytelniania dostawcy bazowego. |
| `channelEnvVars` | Nie | `Record<string, string[]>` | Lekkie metadane env kanału, które OpenClaw może sprawdzać bez ładowania kodu pluginu. Używaj tego dla konfiguracji kanału sterowanej env lub powierzchni uwierzytelniania, które powinny być widoczne dla ogólnych pomocników uruchamiania/konfiguracji. |
| `providerAuthChoices` | Nie | `object[]` | Lekkie metadane wyboru uwierzytelniania dla selektorów onboardingu, rozstrzygania preferowanego dostawcy i prostego mapowania flag CLI. |
| `contracts` | Nie | `object` | Statyczna migawka bundlowanych możliwości dla speech, realtime transcription, realtime voice, media-understanding, image-generation, music-generation, video-generation, web-fetch, web search i własności narzędzi. |
| `channelConfigs` | Nie | `Record<string, object>` | Należące do manifestu metadane konfiguracji kanału scalane z powierzchniami wykrywania i walidacji przed załadowaniem runtime. |
| `providers` | Nie | `string[]` | Identyfikatory dostawców należących do tego pluginu. |
| `modelSupport` | Nie | `object` | Skrócone metadane rodzin modeli należące do manifestu, używane do automatycznego załadowania pluginu przed runtime. |
| `cliBackends` | Nie | `string[]` | Identyfikatory backendów inferencji CLI należących do tego pluginu. Używane do automatycznej aktywacji przy uruchomieniu na podstawie jawnych odwołań w konfiguracji. |
| `commandAliases` | Nie | `object[]` | Nazwy poleceń należące do tego pluginu, które powinny generować diagnostykę konfiguracji i CLI świadomą pluginu przed załadowaniem runtime. |
| `providerAuthEnvVars` | Nie | `Record<string, string[]>` | Lekkie metadane zmiennych środowiskowych uwierzytelniania dostawcy, które OpenClaw może sprawdzać bez ładowania kodu pluginu. |
| `providerAuthAliases` | Nie | `Record<string, string>` | Identyfikatory dostawców, które powinny ponownie używać innego identyfikatora dostawcy do wyszukiwania uwierzytelniania, na przykład dostawca do kodowania współdzielący bazowy klucz API i profile auth. |
| `channelEnvVars` | Nie | `Record<string, string[]>` | Lekkie metadane zmiennych środowiskowych kanału, które OpenClaw może sprawdzać bez ładowania kodu pluginu. Używaj tego do konfiguracji kanału sterowanej env lub powierzchni auth, które powinny widzieć ogólne pomocniki uruchamiania/konfiguracji. |
| `providerAuthChoices` | Nie | `object[]` | Lekkie metadane wyboru uwierzytelniania dla selektorów onboardingu, rozpoznawania preferowanego dostawcy i prostego mapowania flag CLI. |
| `activation` | Nie | `object` | Lekkie wskazówki aktywacji dla ładowania wyzwalanego przez dostawcę, polecenie, kanał, trasę i możliwości. To tylko metadane; rzeczywiste zachowanie nadal należy do runtime pluginu. |
| `setup` | Nie | `object` | Lekkie deskryptory konfiguracji/onboardingu, które powierzchnie wykrywania i konfiguracji mogą sprawdzać bez ładowania runtime pluginu. |
| `contracts` | Nie | `object` | Statyczna migawka możliwości bundlowanych dla własności mowy, transkrypcji w czasie rzeczywistym, głosu w czasie rzeczywistym, rozumienia multimediów, generowania obrazów, generowania muzyki, generowania wideo, pobierania z sieci, wyszukiwania w sieci i własności narzędzi. |
| `channelConfigs` | Nie | `Record<string, object>` | Metadane konfiguracji kanału należące do manifestu, scalane z powierzchniami wykrywania i walidacji przed załadowaniem runtime. |
| `skills` | Nie | `string[]` | Katalogi Skills do załadowania, względne względem katalogu głównego pluginu. |
| `name` | Nie | `string` | Czytelna dla człowieka nazwa pluginu. |
| `description` | Nie | `string` | Krótkie podsumowanie wyświetlane na powierzchniach pluginu. |
| `version` | Nie | `string` | Informacyjna wersja pluginu. |
| `uiHints` | Nie | `Record<string, object>` | Etykiety UI, placeholdery i wskazówki dotyczące wrażliwości dla pól konfiguracji. |
| `uiHints` | Nie | `Record<string, object>` | Etykiety UI, placeholdery i wskazówki dotyczące wrażliwości dla pól konfiguracji. |
## Odniesienie do `providerAuthChoices`
Każdy wpis `providerAuthChoices` opisuje jeden wybór onboardingu lub uwierzytelniania.
OpenClaw odczytuje to przed załadowaniem runtime dostawcy.
| Pole | Wymagane | Typ | Co oznacza |
| --------------------- | -------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| `provider` | Tak | `string` | Identyfikator dostawcy, do którego należy ten wybór. |
| `method` | Tak | `string` | Identyfikator metody uwierzytelniania, do której należy przekierować. |
| `choiceId` | Tak | `string` | Stabilny identyfikator wyboru uwierzytelniania używany przez onboarding i przepływy CLI. |
| `choiceLabel` | Nie | `string` | Etykieta widoczna dla użytkownika. Jeśli zostanie pominięta, OpenClaw użyje `choiceId`. |
| `choiceHint` | Nie | `string` | Krótki tekst pomocniczy dla selektora. |
| `assistantPriority` | Nie | `number` | Niższe wartości są sortowane wcześniej w interaktywnych selektorach sterowanych przez asystenta. |
| `assistantVisibility` | Nie | `"visible"` \| `"manual-only"` | Ukrywa wybór przed selektorami asystenta, nadal pozwalając na ręczny wybór w CLI. |
| `deprecatedChoiceIds` | Nie | `string[]` | Starsze identyfikatory wyboru, które powinny przekierowywać użytkowników do tego zamiennego wyboru. |
| Pole | Wymagane | Typ | Co oznacza |
| --------------------- | -------- | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| `provider` | Tak | `string` | Identyfikator dostawcy, do którego należy ten wybór. |
| `method` | Tak | `string` | Identyfikator metody uwierzytelniania, do której należy przekierować. |
| `choiceId` | Tak | `string` | Stabilny identyfikator wyboru uwierzytelniania używany przez onboarding i przepływy CLI. |
| `choiceLabel` | Nie | `string` | Etykieta widoczna dla użytkownika. Jeśli zostanie pominięta, OpenClaw użyje `choiceId`. |
| `choiceHint` | Nie | `string` | Krótki tekst pomocniczy dla selektora. |
| `assistantPriority` | Nie | `number` | Niższe wartości są sortowane wcześniej w interaktywnych selektorach sterowanych przez asystenta. |
| `assistantVisibility` | Nie | `"visible"` \| `"manual-only"` | Ukrywa wybór w selektorach asystenta, nadal pozwalając na ręczny wybór w CLI. |
| `deprecatedChoiceIds` | Nie | `string[]` | Starsze identyfikatory wyboru, które powinny przekierowywać użytkowników do tego zastępczego wyboru. |
| `groupId` | Nie | `string` | Opcjonalny identyfikator grupy do grupowania powiązanych wyborów. |
| `groupLabel` | Nie | `string` | Etykieta tej grupy widoczna dla użytkownika. |
| `groupHint` | Nie | `string` | Krótki tekst pomocniczy dla grupy. |
| `optionKey` | Nie | `string` | Wewnętrzny klucz opcji dla prostych przepływów uwierzytelniania jedną flagą. |
| `cliFlag` | Nie | `string` | Nazwa flagi CLI, na przykład `--openrouter-api-key`. |
| `cliOption` | Nie | `string` | Pełna postać opcji CLI, na przykład `--openrouter-api-key <key>`. |
| `cliDescription` | Nie | `string` | Opis używany w pomocy CLI. |
| `groupLabel` | Nie | `string` | Etykieta tej grupy widoczna dla użytkownika. |
| `groupHint` | Nie | `string` | Krótki tekst pomocniczy dla grupy. |
| `optionKey` | Nie | `string` | Wewnętrzny klucz opcji dla prostych przepływów auth z jedną flagą. |
| `cliFlag` | Nie | `string` | Nazwa flagi CLI, na przykład `--openrouter-api-key`. |
| `cliOption` | Nie | `string` | Pełna postać opcji CLI, na przykład `--openrouter-api-key <key>`. |
| `cliDescription` | Nie | `string` | Opis używany w pomocy CLI. |
| `onboardingScopes` | Nie | `Array<"text-inference" \| "image-generation">` | Na których powierzchniach onboardingu ten wybór powinien się pojawiać. Jeśli zostanie pominięte, domyślnie używane jest `["text-inference"]`. |
## Odniesienie do `commandAliases`
Używaj `commandAliases`, gdy plugin posiada nazwę polecenia runtime, którą użytkownicy mogą
omyłkowo umieścić w `plugins.allow` albo próbować uruchomić jako główne polecenie CLI. OpenClaw
Używaj `commandAliases`, gdy plugin jest właścicielem nazwy polecenia runtime, którą użytkownicy mogą
omyłkowo umieścić w `plugins.allow` lub próbować uruchomić jako główne polecenie CLI. OpenClaw
używa tych metadanych do diagnostyki bez importowania kodu runtime pluginu.
```json
@ -205,22 +214,93 @@ używa tych metadanych do diagnostyki bez importowania kodu runtime pluginu.
}
```
| Pole | Wymagane | Typ | Co oznacza |
| ------------ | -------- | ----------------- | ---------------------------------------------------------------------------- |
| `name` | Tak | `string` | Nazwa polecenia należąca do tego pluginu. |
| `kind` | Nie | `"runtime-slash"` | Oznacza alias jako polecenie ukośnikowe czatu, a nie główne polecenie CLI. |
| `cliCommand` | Nie | `string` | Powiązane główne polecenie CLI do zasugerowania przy operacjach CLI, jeśli istnieje. |
| Pole | Wymagane | Typ | Co oznacza |
| ------------ | -------- | ----------------- | -------------------------------------------------------------------------- |
| `name` | Tak | `string` | Nazwa polecenia należącego do tego pluginu. |
| `kind` | Nie | `"runtime-slash"` | Oznacza alias jako polecenie slash czatu, a nie główne polecenie CLI. |
| `cliCommand` | Nie | `string` | Powiązane główne polecenie CLI, które można zasugerować dla operacji CLI, jeśli istnieje. |
## Odniesienie do `activation`
Używaj `activation`, gdy plugin może w prosty sposób zadeklarować, które zdarzenia płaszczyzny sterowania
powinny później go aktywować.
Ten blok zawiera wyłącznie metadane. Nie rejestruje zachowania runtime i nie
zastępuje `register(...)`, `setupEntry` ani innych punktów wejścia runtime/pluginu.
```json
{
"activation": {
"onProviders": ["openai"],
"onCommands": ["models"],
"onChannels": ["web"],
"onRoutes": ["gateway-webhook"],
"onCapabilities": ["provider", "tool"]
}
}
```
| Pole | Wymagane | Typ | Co oznacza |
| ---------------- | -------- | ---------------------------------------------------- | ------------------------------------------------------------------- |
| `onProviders` | Nie | `string[]` | Identyfikatory dostawców, które powinny aktywować ten plugin po żądaniu. |
| `onCommands` | Nie | `string[]` | Identyfikatory poleceń, które powinny aktywować ten plugin. |
| `onChannels` | Nie | `string[]` | Identyfikatory kanałów, które powinny aktywować ten plugin. |
| `onRoutes` | Nie | `string[]` | Rodzaje tras, które powinny aktywować ten plugin. |
| `onCapabilities` | Nie | `Array<"provider" \| "channel" \| "tool" \| "hook">` | Ogólne wskazówki dotyczące możliwości używane przez planowanie aktywacji płaszczyzny sterowania. |
## Odniesienie do `setup`
Używaj `setup`, gdy powierzchnie konfiguracji i onboardingu potrzebują lekkich metadanych należących do pluginu
przed załadowaniem runtime.
```json
{
"setup": {
"providers": [
{
"id": "openai",
"authMethods": ["api-key"],
"envVars": ["OPENAI_API_KEY"]
}
],
"cliBackends": ["openai-cli"],
"configMigrations": ["legacy-openai-auth"],
"requiresRuntime": false
}
}
```
Pole najwyższego poziomu `cliBackends` pozostaje prawidłowe i nadal opisuje backendy inferencji CLI.
`setup.cliBackends` to powierzchnia deskryptorów specyficzna dla konfiguracji dla
przepływów płaszczyzny sterowania/konfiguracji, która powinna pozostać wyłącznie metadanymi.
### Odniesienie do `setup.providers`
| Pole | Wymagane | Typ | Co oznacza |
| ------------- | -------- | ---------- | ----------------------------------------------------------------------------------------- |
| `id` | Tak | `string` | Identyfikator dostawcy udostępniany podczas konfiguracji lub onboardingu. |
| `authMethods` | Nie | `string[]` | Identyfikatory metod konfiguracji/auth, które ten dostawca obsługuje bez ładowania pełnego runtime. |
| `envVars` | Nie | `string[]` | Zmienne środowiskowe, które ogólne powierzchnie konfiguracji/statusu mogą sprawdzać przed załadowaniem runtime pluginu. |
### Pola `setup`
| Pole | Wymagane | Typ | Co oznacza |
| ------------------ | -------- | ---------- | ----------------------------------------------------------------------------- |
| `providers` | Nie | `object[]` | Deskryptory konfiguracji dostawców udostępniane podczas konfiguracji i onboardingu. |
| `cliBackends` | Nie | `string[]` | Identyfikatory backendów dostępnych podczas konfiguracji bez pełnej aktywacji runtime. |
| `configMigrations` | Nie | `string[]` | Identyfikatory migracji konfiguracji należące do powierzchni konfiguracji tego pluginu. |
| `requiresRuntime` | Nie | `boolean` | Czy konfiguracja nadal wymaga wykonania runtime pluginu po wyszukaniu deskryptora. |
## Odniesienie do `uiHints`
`uiHints` to mapa od nazw pól konfiguracji do małych wskazówek renderowania.
`uiHints` to mapa od nazw pól konfiguracji do niewielkich wskazówek renderowania.
```json
{
"uiHints": {
"apiKey": {
"label": "Klucz API",
"help": "Używany do żądań OpenRouter",
"label": "API key",
"help": "Used for OpenRouter requests",
"placeholder": "sk-or-v1-...",
"sensitive": true
}
@ -237,11 +317,11 @@ Każda wskazówka pola może zawierać:
| `tags` | `string[]` | Opcjonalne tagi UI. |
| `advanced` | `boolean` | Oznacza pole jako zaawansowane. |
| `sensitive` | `boolean` | Oznacza pole jako sekretne lub wrażliwe. |
| `placeholder` | `string` | Tekst zastępczy dla pól formularza. |
| `placeholder` | `string` | Tekst placeholdera dla pól formularza. |
## Odniesienie do `contracts`
Używaj `contracts` tylko dla statycznych metadanych własności możliwości, które OpenClaw może
Używaj `contracts` wyłącznie do statycznych metadanych własności możliwości, które OpenClaw może
odczytać bez importowania runtime pluginu.
```json
@ -262,17 +342,17 @@ odczytać bez importowania runtime pluginu.
Każda lista jest opcjonalna:
| Pole | Typ | Co oznacza |
| -------------------------------- | ---------- | ----------------------------------------------------------- |
| `speechProviders` | `string[]` | Identyfikatory dostawców speech należące do tego pluginu. |
| `realtimeTranscriptionProviders` | `string[]` | Identyfikatory dostawców realtime-transcription należące do tego pluginu. |
| `realtimeVoiceProviders` | `string[]` | Identyfikatory dostawców realtime voice należące do tego pluginu. |
| `mediaUnderstandingProviders` | `string[]` | Identyfikatory dostawców media-understanding należące do tego pluginu. |
| `imageGenerationProviders` | `string[]` | Identyfikatory dostawców image-generation należące do tego pluginu. |
| `videoGenerationProviders` | `string[]` | Identyfikatory dostawców video-generation należące do tego pluginu. |
| `webFetchProviders` | `string[]` | Identyfikatory dostawców web-fetch należące do tego pluginu. |
| `webSearchProviders` | `string[]` | Identyfikatory dostawców web search należące do tego pluginu. |
| `tools` | `string[]` | Nazwy narzędzi agenta należące do tego pluginu dla bundlowanych kontroli kontraktów. |
| Pole | Typ | Co oznacza |
| -------------------------------- | ---------- | --------------------------------------------------------------- |
| `speechProviders` | `string[]` | Identyfikatory dostawców mowy należące do tego pluginu. |
| `realtimeTranscriptionProviders` | `string[]` | Identyfikatory dostawców transkrypcji w czasie rzeczywistym należące do tego pluginu. |
| `realtimeVoiceProviders` | `string[]` | Identyfikatory dostawców głosu w czasie rzeczywistym należące do tego pluginu. |
| `mediaUnderstandingProviders` | `string[]` | Identyfikatory dostawców rozumienia multimediów należące do tego pluginu. |
| `imageGenerationProviders` | `string[]` | Identyfikatory dostawców generowania obrazów należące do tego pluginu. |
| `videoGenerationProviders` | `string[]` | Identyfikatory dostawców generowania wideo należące do tego pluginu. |
| `webFetchProviders` | `string[]` | Identyfikatory dostawców pobierania z sieci należące do tego pluginu. |
| `webSearchProviders` | `string[]` | Identyfikatory dostawców wyszukiwania w sieci należące do tego pluginu. |
| `tools` | `string[]` | Nazwy narzędzi agenta należące do tego pluginu na potrzeby sprawdzania kontraktów bundlowanych. |
## Odniesienie do `channelConfigs`
@ -292,7 +372,7 @@ załadowaniem runtime.
},
"uiHints": {
"homeserverUrl": {
"label": "URL homeservera",
"label": "Homeserver URL",
"placeholder": "https://matrix.example.com"
}
},
@ -306,18 +386,19 @@ załadowaniem runtime.
Każdy wpis kanału może zawierać:
| Pole | Typ | Co oznacza |
| ------------- | ------------------------ | ------------------------------------------------------------------------------------------ |
| Pole | Typ | Co oznacza |
| ------------- | ------------------------ | --------------------------------------------------------------------------------------------- |
| `schema` | `object` | Schemat JSON dla `channels.<id>`. Wymagany dla każdego zadeklarowanego wpisu konfiguracji kanału. |
| `uiHints` | `Record<string, object>` | Opcjonalne etykiety UI/placeholdery/wskazówki wrażliwości dla tej sekcji konfiguracji kanału. |
| `label` | `string` | Etykieta kanału scalana z powierzchniami selektora i inspekcji, gdy metadane runtime nie są gotowe. |
| `description` | `string` | Krótki opis kanału dla powierzchni inspekcji i katalogu. |
| `uiHints` | `Record<string, object>` | Opcjonalne etykiety UI/placeholdery/wskazówki dotyczące wrażliwości dla tej sekcji konfiguracji kanału. |
| `label` | `string` | Etykieta kanału scalana z powierzchniami wyboru i inspekcji, gdy metadane runtime nie są jeszcze gotowe. |
| `description` | `string` | Krótki opis kanału dla powierzchni inspekcji i katalogu. |
| `preferOver` | `string[]` | Starsze lub mniej priorytetowe identyfikatory pluginów, które ten kanał powinien wyprzedzać na powierzchniach wyboru. |
## Odniesienie do `modelSupport`
Używaj `modelSupport`, gdy OpenClaw powinien wnioskować o Twoim pluginie dostawcy na podstawie
skrótowych identyfikatorów modeli takich jak `gpt-5.4` lub `claude-sonnet-4.6` przed załadowaniem runtime pluginu.
Używaj `modelSupport`, gdy OpenClaw ma wywnioskować plugin Twojego dostawcy na podstawie
skróconych identyfikatorów modeli, takich jak `gpt-5.4` lub `claude-sonnet-4.6`, zanim runtime pluginu
zostanie załadowane.
```json
{
@ -332,73 +413,70 @@ OpenClaw stosuje następujący priorytet:
- jawne odwołania `provider/model` używają należących do właściciela metadanych manifestu `providers`
- `modelPatterns` mają pierwszeństwo przed `modelPrefixes`
- jeśli pasuje jednocześnie jeden plugin niebundlowany i jeden bundlowany,
wygrywa plugin niebundlowany
- pozostała niejednoznaczność jest ignorowana, dopóki użytkownik lub konfiguracja nie określi dostawcy
- jeśli pasują jednocześnie jeden plugin niebundlowany i jeden plugin bundlowany, wygrywa plugin niebundlowany
- pozostała niejednoznaczność jest ignorowana, dopóki użytkownik lub konfiguracja nie określą dostawcy
Pola:
| Pole | Typ | Co oznacza |
| --------------- | ---------- | ----------------------------------------------------------------------------- |
| `modelPrefixes` | `string[]` | Prefiksy dopasowywane przez `startsWith` do skrótowych identyfikatorów modeli. |
| `modelPatterns` | `string[]` | Źródła regex dopasowywane do skrótowych identyfikatorów modeli po usunięciu sufiksu profilu. |
| Pole | Typ | Co oznacza |
| --------------- | ---------- | --------------------------------------------------------------------------------- |
| `modelPrefixes` | `string[]` | Prefiksy dopasowywane przez `startsWith` do skróconych identyfikatorów modeli. |
| `modelPatterns` | `string[]` | Źródła regex dopasowywane do skróconych identyfikatorów modeli po usunięciu sufiksu profilu. |
Starsze klucze możliwości na najwyższym poziomie są przestarzałe. Użyj `openclaw doctor --fix`, aby
przenieść `speechProviders`, `realtimeTranscriptionProviders`,
`realtimeVoiceProviders`, `mediaUnderstandingProviders`,
`imageGenerationProviders`, `videoGenerationProviders`,
`webFetchProviders` i `webSearchProviders` do `contracts`; zwykłe
`webFetchProviders` i `webSearchProviders` pod `contracts`; zwykłe
ładowanie manifestu nie traktuje już tych pól najwyższego poziomu jako
własności możliwości.
## Manifest a package.json
Te dwa pliki pełnią różne role:
Te dwa pliki służą do różnych zadań:
| Plik | Używaj go do |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `openclaw.plugin.json` | Wykrywania, walidacji konfiguracji, metadanych wyboru uwierzytelniania i wskazówek UI, które muszą istnieć przed uruchomieniem kodu pluginu |
| `package.json` | Metadanych npm, instalacji zależności oraz bloku `openclaw` używanego dla punktów wejścia, blokowania instalacji, konfiguracji lub metadanych katalogu |
| Plik | Używaj go do |
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `openclaw.plugin.json` | Wykrywania, walidacji konfiguracji, metadanych wyboru auth i wskazówek UI, które muszą istnieć przed uruchomieniem kodu pluginu |
| `package.json` | Metadanych npm, instalacji zależności i bloku `openclaw` używanego do punktów wejścia, ograniczeń instalacji, konfiguracji lub metadanych katalogu |
Jeśli nie masz pewności, gdzie powinien trafić dany element metadanych, użyj tej zasady:
Jeśli nie masz pewności, gdzie powinien znaleźć się dany fragment metadanych, użyj tej zasady:
- jeśli OpenClaw musi znać go przed załadowaniem kodu pluginu, umieść go w `openclaw.plugin.json`
- jeśli dotyczy pakowania, plików wejściowych lub zachowania instalacji npm, umieść go w `package.json`
### Pola `package.json`, które wpływają na wykrywanie
Niektóre metadane pluginu sprzed uruchomienia celowo znajdują się w `package.json` w bloku
`openclaw`, a nie w `openclaw.plugin.json`.
Niektóre metadane pluginu sprzed uruchomienia runtime celowo znajdują się w `package.json` pod
blokiem `openclaw`, a nie w `openclaw.plugin.json`.
Ważne przykłady:
| Pole | Co oznacza |
| ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `openclaw.extensions` | Deklaruje natywne punkty wejścia pluginu. |
| `openclaw.setupEntry` | Lekki punkt wejścia tylko do konfiguracji używany podczas onboardingu i odroczonego uruchamiania kanału. |
| `openclaw.channel` | Lekkie metadane katalogu kanałów, takie jak etykiety, ścieżki dokumentacji, aliasy i teksty wyboru. |
| `openclaw.channel.configuredState` | Lekkie metadane sprawdzania stanu konfiguracji, które mogą odpowiedzieć na pytanie „czy konfiguracja tylko przez env już istnieje?” bez ładowania pełnego runtime kanału. |
| `openclaw.channel.persistedAuthState` | Lekkie metadane sprawdzania trwałego stanu uwierzytelnienia, które mogą odpowiedzieć na pytanie „czy coś jest już zalogowane?” bez ładowania pełnego runtime kanału. |
| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Wskazówki instalacji/aktualizacji dla pluginów bundlowanych i publikowanych zewnętrznie. |
| `openclaw.install.defaultChoice` | Preferowana ścieżka instalacji, gdy dostępnych jest wiele źródeł instalacji. |
| `openclaw.install.minHostVersion` | Minimalna obsługiwana wersja hosta OpenClaw, używająca dolnej granicy semver, takiej jak `>=2026.3.22`. |
| `openclaw.install.allowInvalidConfigRecovery` | Pozwala na wąską ścieżkę odzyskiwania przez ponowną instalację bundlowanego pluginu, gdy konfiguracja jest nieprawidłowa. |
| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Pozwala ładować powierzchnie kanału tylko do konfiguracji przed pełnym pluginem kanału podczas uruchamiania. |
| `openclaw.setupEntry` | Lekki punkt wejścia wyłącznie do konfiguracji używany podczas onboardingu i odroczonego uruchamiania kanału. |
| `openclaw.channel` | Lekkie metadane katalogu kanałów, takie jak etykiety, ścieżki dokumentacji, aliasy i tekst wyboru. |
| `openclaw.channel.configuredState` | Lekkie metadane sprawdzania stanu skonfigurowania, które mogą odpowiedzieć na pytanie „czy konfiguracja wyłącznie przez env już istnieje?” bez ładowania pełnego runtime kanału. |
| `openclaw.channel.persistedAuthState` | Lekkie metadane sprawdzania utrwalonego auth, które mogą odpowiedzieć na pytanie „czy cokolwiek jest już zalogowane?” bez ładowania pełnego runtime kanału. |
| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Wskazówki instalacji/aktualizacji dla pluginów bundlowanych i publikowanych zewnętrznie. |
| `openclaw.install.defaultChoice` | Preferowana ścieżka instalacji, gdy dostępnych jest wiele źródeł instalacji. |
| `openclaw.install.minHostVersion` | Minimalna obsługiwana wersja hosta OpenClaw, z użyciem dolnej granicy semver, takiej jak `>=2026.3.22`. |
| `openclaw.install.allowInvalidConfigRecovery` | Umożliwia wąską ścieżkę odzyskiwania przez ponowną instalację pluginu bundlowanego, gdy konfiguracja jest nieprawidłowa. |
| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Pozwala powierzchniom kanału tylko do konfiguracji ładować się przed pełnym pluginem kanału podczas uruchamiania. |
`openclaw.install.minHostVersion` jest egzekwowane podczas instalacji i
ładowania rejestru manifestów. Nieprawidłowe wartości są odrzucane; nowsze, ale
prawidłowe wartości powodują pominięcie pluginu na starszych hostach.
`openclaw.install.minHostVersion` jest egzekwowane podczas instalacji i ładowania rejestru
manifestu. Nieprawidłowe wartości są odrzucane; nowsze, ale prawidłowe wartości powodują pominięcie
pluginu na starszych hostach.
`openclaw.install.allowInvalidConfigRecovery` jest celowo wąskie. Nie sprawia,
że dowolne uszkodzone konfiguracje stają się możliwe do zainstalowania. Obecnie
pozwala tylko przepływom instalacji odzyskać stan po konkretnych nieaktualnych
błędach aktualizacji bundlowanych pluginów, takich jak brakująca ścieżka
bundlowanego pluginu albo nieaktualny wpis `channels.<id>` dla tego samego
bundlowanego pluginu. Niezwiązane błędy konfiguracji nadal blokują instalację i
kierują operatorów do `openclaw doctor --fix`.
`openclaw.install.allowInvalidConfigRecovery` jest celowo bardzo wąskie. Nie
sprawia, że dowolnie uszkodzone konfiguracje stają się możliwe do zainstalowania. Obecnie pozwala jedynie przepływom instalacji
odzyskać sprawność po określonych nieaktualnych błędach aktualizacji pluginu bundlowanego, takich jak
brak ścieżki do pluginu bundlowanego lub nieaktualny wpis `channels.<id>` dla tego samego
pluginu bundlowanego. Niepowiązane błędy konfiguracji nadal blokują instalację i kierują operatorów
do `openclaw doctor --fix`.
`openclaw.channel.persistedAuthState` to metadane pakietu dla małego modułu
sprawdzającego:
`openclaw.channel.persistedAuthState` to metadane pakietu dla małego modułu sprawdzającego:
```json
{
@ -414,13 +492,13 @@ sprawdzającego:
}
```
Używaj tego, gdy konfiguracja, doctor albo przepływy stanu konfiguracji
potrzebują taniego sprawdzenia uwierzytelnienia typu tak/nie przed załadowaniem
pełnego pluginu kanału. Docelowy eksport powinien być małą funkcją, która tylko
odczytuje stan trwały; nie prowadź do niego przez pełny barrel runtime kanału.
Używaj tego, gdy przepływy konfiguracji, doctor lub stanu skonfigurowania potrzebują taniego sondowania auth
typu tak/nie przed załadowaniem pełnego pluginu kanału. Docelowy eksport powinien być małą
funkcją odczytującą wyłącznie stan utrwalony; nie prowadź go przez pełny barrel runtime
kanału.
`openclaw.channel.configuredState` ma taki sam kształt dla tanich kontroli
skonfigurowania tylko przez env:
`openclaw.channel.configuredState` ma taki sam kształt dla tanich sprawdzeń
skonfigurowania tylko na podstawie env:
```json
{
@ -436,51 +514,51 @@ skonfigurowania tylko przez env:
}
```
Używaj tego, gdy kanał może odpowiedzieć na pytanie o stan skonfigurowania na podstawie env lub innych małych
wejść niezwiązanych z runtime. Jeśli sprawdzenie wymaga pełnego rozstrzygania konfiguracji lub
rzeczywistego runtime kanału, zachowaj tę logikę w hooku pluginu `config.hasConfiguredState`.
Używaj tego, gdy kanał może określić stan skonfigurowania na podstawie env lub innych małych
wejść niezwiązanych z runtime. Jeśli sprawdzenie wymaga pełnego rozpoznania konfiguracji lub rzeczywistego
runtime kanału, pozostaw tę logikę w hooku `config.hasConfiguredState` pluginu.
## Wymagania schematu JSON
- **Każdy plugin musi dostarczać schemat JSON**, nawet jeśli nie przyjmuje żadnej konfiguracji.
- Pusty schemat jest akceptowalny (na przykład `{ "type": "object", "additionalProperties": false }`).
- **Każdy plugin musi dostarczać schemat JSON**, nawet jeśli nie akceptuje żadnej konfiguracji.
- Pusty schemat jest akceptowalny, na przykład `{ "type": "object", "additionalProperties": false }`.
- Schematy są walidowane podczas odczytu/zapisu konfiguracji, a nie w runtime.
## Zachowanie walidacji
- Nieznane klucze `channels.*` **błędami**, chyba że identyfikator kanału został zadeklarowany przez
- Nieznane klucze `channels.*` to **błędy**, chyba że identyfikator kanału jest zadeklarowany przez
manifest pluginu.
- `plugins.entries.<id>`, `plugins.allow`, `plugins.deny` i `plugins.slots.*`
muszą wskazywać **wykrywalne** identyfikatory pluginów. Nieznane identyfikatory są **błędami**.
muszą odwoływać się do identyfikatorów pluginów, które można **wykryć**. Nieznane identyfikatory to **błędy**.
- Jeśli plugin jest zainstalowany, ale ma uszkodzony lub brakujący manifest albo schemat,
walidacja kończy się niepowodzeniem, a Doctor zgłasza błąd pluginu.
- Jeśli konfiguracja pluginu istnieje, ale plugin jest **wyłączony**, konfiguracja jest zachowywana i
zgłaszane jest **ostrzeżenie** w Doctor + logach.
- Jeśli konfiguracja pluginu istnieje, ale plugin jest **wyłączony**, konfiguracja jest zachowywana, a
w Doctor + logach pojawia się **ostrzeżenie**.
Pełny schemat `plugins.*` znajdziesz w [Odniesieniu do konfiguracji](/pl/gateway/configuration).
Zobacz [Odniesienie do konfiguracji](/pl/gateway/configuration), aby poznać pełny schemat `plugins.*`.
## Uwagi
- Manifest jest **wymagany dla natywnych pluginów OpenClaw**, w tym ładowanych z lokalnego systemu plików.
- Manifest jest **wymagany dla natywnych pluginów OpenClaw**, w tym przy ładowaniu z lokalnego systemu plików.
- Runtime nadal ładuje moduł pluginu osobno; manifest służy wyłącznie do
wykrywania + walidacji.
- Natywne manifesty są parsowane przez JSON5, więc komentarze, końcowe przecinki i
nieujęte w cudzysłów klucze są akceptowane, o ile końcowa wartość nadal jest obiektem.
- Ładowarka manifestu odczytuje tylko udokumentowane pola manifestu. Unikaj dodawania
- Natywne manifesty są parsowane przy użyciu JSON5, więc komentarze, końcowe przecinki i
nieujęte w cudzysłowy klucze są akceptowane, o ile końcowa wartość nadal jest obiektem.
- Loader manifestu odczytuje tylko udokumentowane pola manifestu. Unikaj dodawania
tutaj własnych kluczy najwyższego poziomu.
- `providerAuthEnvVars` to tania ścieżka metadanych dla sprawdzania uwierzytelnienia, walidacji znaczników env
i podobnych powierzchni uwierzytelniania dostawców, które nie powinny uruchamiać runtime pluginu
- `providerAuthEnvVars` to tania ścieżka metadanych dla sondowania auth, walidacji
znaczników env i podobnych powierzchni uwierzytelniania dostawcy, które nie powinny uruchamiać runtime pluginu
tylko po to, aby sprawdzić nazwy env.
- `providerAuthAliases` pozwala wariantom dostawców ponownie używać env vars uwierzytelniania,
profili uwierzytelniania, uwierzytelniania opartego na konfiguracji i wyboru onboardingu klucza API innego dostawcy
bez zakodowywania tej relacji na sztywno w rdzeniu.
- `channelEnvVars` to tania ścieżka metadanych dla fallbacku env powłoki, promptów konfiguracji
i podobnych powierzchni kanałów, które nie powinny uruchamiać runtime pluginu
- `providerAuthAliases` pozwala wariantom dostawcy ponownie używać auth
env vars, profili auth, auth opartego na konfiguracji i wyboru onboardingu klucza API innego dostawcy
bez twardego kodowania tej relacji w rdzeniu.
- `channelEnvVars` to tania ścieżka metadanych dla rezerwowego użycia env powłoki, promptów konfiguracji
i podobnych powierzchni kanału, które nie powinny uruchamiać runtime pluginu
tylko po to, aby sprawdzić nazwy env.
- `providerAuthChoices` to tania ścieżka metadanych dla selektorów wyboru uwierzytelniania,
rozstrzygania `--auth-choice`, mapowania preferowanego dostawcy i prostego rejestrowania
flag CLI onboardingu przed załadowaniem runtime dostawcy. Metadane kreatora runtime,
które wymagają kodu dostawcy, opisano w
- `providerAuthChoices` to tania ścieżka metadanych dla selektorów wyboru auth,
rozpoznawania `--auth-choice`, mapowania preferowanego dostawcy i prostej rejestracji flag CLI
onboardingu przed załadowaniem runtime dostawcy. Metadane kreatora runtime,
które wymagają kodu dostawcy, znajdziesz w
[Hookach runtime dostawcy](/pl/plugins/architecture#provider-runtime-hooks).
- Wyłączne rodzaje pluginów są wybierane przez `plugins.slots.*`.
- `kind: "memory"` jest wybierane przez `plugins.slots.memory`.
@ -488,12 +566,12 @@ Pełny schemat `plugins.*` znajdziesz w [Odniesieniu do konfiguracji](/pl/gatewa
(domyślnie: wbudowane `legacy`).
- `channels`, `providers`, `cliBackends` i `skills` można pominąć, gdy
plugin ich nie potrzebuje.
- Jeśli Twój plugin zależy od modułów natywnych, udokumentuj kroki budowania i wszelkie
wymagania dotyczące listy dozwolonych menedżera pakietów (na przykład pnpm `allow-build-scripts`
- `pnpm rebuild <package>`).
- Jeśli Twój plugin zależy od modułów natywnych, udokumentuj kroki budowania oraz wszelkie
wymagania dotyczące listy dozwolonych menedżera pakietów, na przykład pnpm `allow-build-scripts`
- `pnpm rebuild <package>`.
## Powiązane
- [Tworzenie pluginów](/pl/plugins/building-plugins) — wprowadzenie do pluginów
- [Tworzenie pluginów](/pl/plugins/building-plugins) — jak zacząć pracę z pluginami
- [Architektura pluginów](/pl/plugins/architecture) — architektura wewnętrzna
- [Przegląd SDK](/pl/plugins/sdk-overview) — odniesienie do Plugin SDK
- [Przegląd SDK](/pl/plugins/sdk-overview) — odniesienie do SDK pluginów

View File

@ -0,0 +1,60 @@
---
x-i18n:
generated_at: "2026-04-11T15:15:56Z"
model: gpt-5.4
provider: openai
source_hash: 2a8884fc2c304bf96d4675f0c1d1ff781d6dc1ae8c49d92ce08040c9c7709035
source_path: reference/rich-output-protocol.md
workflow: 15
---
# Protokół rozbudowanego wyjścia
Wynik asystenta może zawierać niewielki zestaw dyrektyw dostarczania/renderowania:
- `MEDIA:` do dostarczania załączników
- `[[audio_as_voice]]` do wskazówek dotyczących prezentacji audio
- `[[reply_to_current]]` / `[[reply_to:<id>]]` do metadanych odpowiedzi
- `[embed ...]` do rozbudowanego renderowania w interfejsie użytkownika Control UI
Te dyrektywy są odrębne. `MEDIA:` oraz tagi reply/voice pozostają metadanymi dostarczania; `[embed ...]` to ścieżka rozbudowanego renderowania tylko dla sieci.
## `[embed ...]`
`[embed ...]` to jedyna składnia rozbudowanego renderowania skierowana do agentów dla interfejsu użytkownika Control UI.
Przykład samodomykający:
```text
[embed ref="cv_123" title="Status" /]
```
Zasady:
- `[view ...]` nie jest już prawidłowe dla nowych wyników.
- Krótkie kody embed są renderowane tylko na powierzchni wiadomości asystenta.
- Renderowane są tylko osadzenia oparte na URL. Użyj `ref="..."` lub `url="..."`.
- Krótkie kody osadzania w postaci blokowej, zapisane jako wbudowany HTML, nie są renderowane.
- Interfejs webowy usuwa shortcode z widocznego tekstu i renderuje osadzenie w linii.
- `MEDIA:` nie jest aliasem embed i nie należy go używać do renderowania rozbudowanych osadzeń.
## Zapisany kształt renderowania
Znormalizowany/zapisany blok treści asystenta ma postać uporządkowanego elementu `canvas`:
```json
{
"type": "canvas",
"preview": {
"kind": "canvas",
"surface": "assistant_message",
"render": "url",
"viewId": "cv_123",
"url": "/__openclaw__/canvas/documents/cv_123/index.html",
"title": "Status",
"preferredHeight": 320
}
}
```
Zapisane/renderowane bloki rozbudowane używają bezpośrednio tego kształtu `canvas`. `present_view` nie jest rozpoznawane.