chore(i18n): refresh pl translations
This commit is contained in:
parent
aa426faafd
commit
8f309ba6a0
File diff suppressed because it is too large
Load Diff
174
docs/pl/help/gpt54-codex-agentic-parity-maintainers.md
Normal file
174
docs/pl/help/gpt54-codex-agentic-parity-maintainers.md
Normal 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 |
|
||||
229
docs/pl/help/gpt54-codex-agentic-parity.md
Normal file
229
docs/pl/help/gpt54-codex-agentic-parity.md
Normal 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
@ -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.*` są **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
|
||||
|
||||
60
docs/pl/reference/rich-output-protocol.md
Normal file
60
docs/pl/reference/rich-output-protocol.md
Normal 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.
|
||||
Loading…
Reference in New Issue
Block a user