Overview
Narzędzia i Pluginy
Wszystko, co agent robi poza generowaniem tekstu, odbywa się przez narzędzia. Narzędzia pozwalają agentowi czytać pliki, uruchamiać polecenia, przeglądać sieć, wysyłać wiadomości i wchodzić w interakcję z urządzeniami.
Narzędzia, Skills i pluginy
OpenClaw ma trzy współpracujące ze sobą warstwy:
Narzędzia są tym, co wywołuje agent
Narzędzie to typowana funkcja, którą agent może wywołać (np. exec, browser,
web_search, message). OpenClaw zawiera zestaw wbudowanych narzędzi, a
pluginy mogą rejestrować dodatkowe.
Agent widzi narzędzia jako ustrukturyzowane definicje funkcji wysyłane do API modelu.
Skills uczą agenta, kiedy i jak działać
Skill to plik markdown (SKILL.md) wstrzykiwany do promptu systemowego.
Skills dają agentowi kontekst, ograniczenia i instrukcje krok po kroku dotyczące
skutecznego używania narzędzi. Skills znajdują się w Twoim obszarze roboczym, we współdzielonych folderach
albo są dostarczane w pluginach.
Pluginy pakują wszystko razem
Plugin to pakiet, który może rejestrować dowolną kombinację możliwości: kanały, dostawców modeli, narzędzia, Skills, mowę, transkrypcję w czasie rzeczywistym, głos w czasie rzeczywistym, rozumienie mediów, generowanie obrazów, generowanie wideo, pobieranie z sieci, wyszukiwanie w sieci i więcej. Niektóre pluginy są rdzeniowe (dostarczane z OpenClaw), inne są zewnętrzne (publikowane przez społeczność w npm).
Wbudowane narzędzia
Te narzędzia są dostarczane z OpenClaw i są dostępne bez instalowania żadnych pluginów:
| Narzędzie | Co robi | Strona |
|---|---|---|
exec / process |
Uruchamia polecenia powłoki, zarządza procesami w tle | Exec, Zatwierdzenia Exec |
code_execution |
Uruchamia izolowaną zdalną analizę Python | Wykonywanie kodu |
browser |
Steruje przeglądarką Chromium (nawigacja, kliknięcia, zrzuty ekranu) | Przeglądarka |
web_search / x_search / web_fetch |
Przeszukuje sieć, przeszukuje wpisy X, pobiera zawartość stron | Sieć, Pobieranie z sieci |
read / write / edit |
Wejście/wyjście plików w obszarze roboczym | |
apply_patch |
Wieloczęściowe poprawki plików | Apply Patch |
message |
Wysyła wiadomości przez wszystkie kanały | Wysyłanie przez agenta |
canvas |
Steruje node Canvas (prezentacja, ewaluacja, migawka) | |
nodes |
Wykrywa sparowane urządzenia i kieruje do nich działania | |
cron / gateway |
Zarządza zaplanowanymi zadaniami; sprawdza, poprawia, restartuje lub aktualizuje Gateway | |
image / image_generate |
Analizuje lub generuje obrazy | Generowanie obrazów |
music_generate |
Generuje utwory muzyczne | Generowanie muzyki |
video_generate |
Generuje filmy | Generowanie wideo |
tts |
Jednorazowa konwersja tekstu na mowę | TTS |
sessions_* / subagents / agents_list |
Zarządzanie sesjami, status i orkiestracja podagentów | Podagenci |
session_status |
Lekki odczyt w stylu /status i nadpisanie modelu sesji |
Narzędzia sesji |
Do pracy z obrazami używaj image do analizy oraz image_generate do generowania lub edycji. Jeśli wybierasz openai/*, google/*, fal/* albo innego niedomyślnego dostawcę obrazów, najpierw skonfiguruj uwierzytelnianie/klucz API tego dostawcy.
Do pracy z muzyką używaj music_generate. Jeśli wybierasz google/*, minimax/* albo innego niedomyślnego dostawcę muzyki, najpierw skonfiguruj uwierzytelnianie/klucz API tego dostawcy.
Do pracy z wideo używaj video_generate. Jeśli wybierasz qwen/* albo innego niedomyślnego dostawcę wideo, najpierw skonfiguruj uwierzytelnianie/klucz API tego dostawcy.
Do generowania audio sterowanego workflow używaj music_generate, gdy rejestruje je plugin taki jak
ComfyUI. To jest oddzielne od tts, które służy do zamiany tekstu na mowę.
session_status to lekkie narzędzie statusu/odczytu w grupie sesji.
Odpowiada na pytania w stylu /status dotyczące bieżącej sesji i może
opcjonalnie ustawić nadpisanie modelu dla danej sesji; model=default usuwa to
nadpisanie. Podobnie jak /status, może uzupełniać skąpe liczniki tokenów/pamięci podręcznej oraz
etykietę aktywnego modelu runtime na podstawie najnowszego wpisu użycia w transkrypcie.
gateway to narzędzie runtime przeznaczone tylko dla właściciela do operacji Gateway:
config.schema.lookupdla jednego poddrzewa konfiguracji ograniczonego ścieżką przed edycjąconfig.getdla bieżącej migawki konfiguracji + hashconfig.patchdla częściowych aktualizacji konfiguracji z restartemconfig.applytylko do zastąpienia pełnej konfiguracjiupdate.rundla jawnej samoaktualizacji + restartu
Przy zmianach częściowych preferuj config.schema.lookup, a potem config.patch. Używaj
config.apply tylko wtedy, gdy celowo zastępujesz całą konfigurację.
Szerszą dokumentację konfiguracji znajdziesz w Konfiguracja i
Dokumentacja konfiguracji.
Narzędzie odmawia także zmiany tools.exec.ask lub tools.exec.security;
starsze aliasy tools.bash.* są normalizowane do tych samych chronionych ścieżek exec.
Narzędzia dostarczane przez pluginy
Pluginy mogą rejestrować dodatkowe narzędzia. Przykłady:
- Diffy — przeglądarka i renderer różnic
- Zadanie LLM — krok LLM tylko JSON dla ustrukturyzowanego wyniku
- Lobster — typowany runtime workflow z wznawialnymi zatwierdzeniami
- Generowanie muzyki — współdzielone narzędzie
music_generatez dostawcami opartymi na workflow - OpenProse — orkiestracja workflow z markdown jako formatem podstawowym
- Tokenjuice — kompaktuje zaszumione wyniki narzędzi
execibash
Narzędzia pluginów nadal są tworzone przy użyciu api.registerTool(...) i deklarowane na
liście contracts.tools w manifeście pluginu. OpenClaw przechwytuje zweryfikowany
deskryptor narzędzia podczas wykrywania i buforuje go według źródła pluginu oraz kontraktu, dzięki czemu
późniejsze planowanie narzędzi może pominąć ładowanie runtime pluginu. Wykonanie narzędzia nadal ładuje
właścicielski plugin i wywołuje aktywną zarejestrowaną implementację.
Konfiguracja narzędzi
Listy dozwolone i blokowane
Kontroluj, które narzędzia agent może wywoływać, za pomocą tools.allow / tools.deny w
konfiguracji. Blokada zawsze ma pierwszeństwo przed zezwoleniem.
{
tools: {
allow: ["group:fs", "browser", "web_search"],
deny: ["exec"],
},
}
OpenClaw kończy niepowodzeniem w trybie zamkniętym, gdy jawna allowlista nie prowadzi do żadnych możliwych do wywołania narzędzi.
Na przykład tools.allow: ["query_db"] działa tylko wtedy, gdy załadowany plugin faktycznie
rejestruje query_db. Jeśli żadne wbudowane narzędzie, plugin ani dołączone narzędzie MCP nie pasuje do
allowlisty, uruchomienie zatrzymuje się przed wywołaniem modelu, zamiast kontynuować jako
uruchomienie wyłącznie tekstowe, które mogłoby zmyślić wyniki narzędzi.
Profile narzędzi
tools.profile ustawia bazową allowlistę przed zastosowaniem allow/deny.
Nadpisanie dla agenta: agents.list[].tools.profile.
| Profil | Co obejmuje |
|---|---|
full |
Wszystkie rdzeniowe i opcjonalne narzędzia pluginów; nieograniczona baza dla szerszego dostępu do poleceń/kontroli |
coding |
group:fs, group:runtime, group:web, group:sessions, group:memory, cron, image, image_generate, music_generate, video_generate |
messaging |
group:messaging, sessions_list, sessions_history, sessions_send, session_status |
minimal |
Tylko session_status |
coding obejmuje lekkie narzędzia sieciowe (web_search, web_fetch, x_search),
ale nie pełne narzędzie sterowania przeglądarką. Automatyzacja przeglądarki może sterować prawdziwymi
sesjami i zalogowanymi profilami, więc dodaj ją jawnie przez
tools.alsoAllow: ["browser"] albo dla konkretnego agenta przez
agents.list[].tools.alsoAllow: ["browser"].
Profile coding i messaging pozwalają także na skonfigurowane narzędzia bundle MCP
pod kluczem pluginu bundle-mcp. Dodaj tools.deny: ["bundle-mcp"], gdy chcesz,
aby profil zachował swoje normalne wbudowane narzędzia, ale ukrył wszystkie skonfigurowane narzędzia MCP.
Profil minimal nie obejmuje narzędzi bundle MCP.
Przykład (domyślnie najszersza powierzchnia narzędzi):
{
tools: {
profile: "full",
},
}
Grupy narzędzi
Używaj skrótów group:* na listach dozwolonych/blokowanych:
| Grupa | Narzędzia |
|---|---|
group:runtime |
exec, process, code_execution (bash jest akceptowane jako alias dla exec) |
group:fs |
read, write, edit, apply_patch |
group:sessions |
sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status |
group:memory |
memory_search, memory_get |
group:web |
web_search, x_search, web_fetch |
group:ui |
browser, canvas |
group:automation |
heartbeat_respond, cron, gateway |
group:messaging |
message |
group:nodes |
nodes |
group:agents |
agents_list, update_plan |
group:media |
image, image_generate, music_generate, video_generate, tts |
group:openclaw |
Wszystkie wbudowane narzędzia OpenClaw (bez narzędzi Plugin) |
sessions_history zwraca ograniczony, przefiltrowany pod kątem bezpieczeństwa widok przywołania. Usuwa
tagi myślenia, strukturę pomocniczą <relevant-memories>, zwykłotekstowe ładunki XML
wywołań narzędzi (w tym <tool_call>...</tool_call>,
<function_call>...</function_call>, <tool_calls>...</tool_calls>,
<function_calls>...</function_calls> oraz obcięte bloki wywołań narzędzi),
zdegradowaną strukturę pomocniczą wywołań narzędzi, ujawnione tokeny sterujące modelu
ASCII/pełnej szerokości oraz niepoprawnie sformatowany XML wywołań narzędzi MiniMax z tekstu asystenta, a następnie stosuje
redakcję/obcinanie i ewentualne symbole zastępcze dla zbyt dużych wierszy, zamiast działać
jako surowy zrzut transkrypcji.
Ograniczenia specyficzne dla dostawcy
Użyj tools.byProvider, aby ograniczyć narzędzia dla określonych dostawców bez
zmieniania globalnych ustawień domyślnych:
{
tools: {
profile: "coding",
byProvider: {
"google-antigravity": { profile: "minimal" },
},
},
}