Polecenia slash
Polecenia są obsługiwane przez Gateway. Większość poleceń musi być wysyłana jako samodzielna wiadomość zaczynająca się od/.
Polecenie czatu bash dostępne tylko dla hosta używa ! <cmd> (z /bash <cmd> jako aliasem).
Istnieją dwa powiązane systemy:
- Polecenia: samodzielne wiadomości
/.... - Dyrektywy:
/think,/verbose,/reasoning,/elevated,/exec,/model,/queue.- Dyrektywy są usuwane z wiadomości, zanim zobaczy ją model.
- W zwykłych wiadomościach czatu (nie tylko dyrektywach) są traktowane jako „wskazówki inline” i nie utrwalają ustawień sesji.
- W wiadomościach zawierających wyłącznie dyrektywy utrwalają się w sesji i zwracają potwierdzenie.
- Dyrektywy są stosowane tylko dla autoryzowanych nadawców. Dyrektywy są stosowane wyłącznie dla autoryzowanych nadawców (listy dozwolonych kanałów/parowanie plus
commands.useAccessGroups). Nieautoryzowani nadawcy widzą dyrektywy traktowane jako zwykły tekst.
/help, /commands, /status, /whoami (/id).
Uruchamiają się natychmiast, są usuwane zanim model zobaczy wiadomość, a pozostały tekst przechodzi dalej normalnym tokiem.
Konfiguracja
commands.text(domyślnietrue) włącza parsowanie/...w wiadomościach czatu.- Na powierzchniach bez natywnych poleceń (WhatsApp/WebChat/Signal/iMessage/Google Chat/MS Teams) polecenia tekstowe nadal działają, nawet jeśli ustawisz to na
false.
- Na powierzchniach bez natywnych poleceń (WhatsApp/WebChat/Signal/iMessage/Google Chat/MS Teams) polecenia tekstowe nadal działają, nawet jeśli ustawisz to na
commands.native(domyślnie"auto") rejestruje natywne polecenia.- Auto: włączone dla Discord/Telegram; wyłączone dla Slack (do czasu dodania poleceń slash); ignorowane dla dostawców bez natywnego wsparcia.
- Ustaw
channels.discord.commands.native,channels.telegram.commands.nativelubchannels.slack.commands.native, aby nadpisać per dostawca (bool lub"auto"). falseczyści wcześniej zarejestrowane polecenia na Discord/Telegram przy starcie. Polecenia Slack są zarządzane w aplikacji Slack i nie są usuwane automatycznie.
commands.nativeSkills(domyślnie"auto") rejestruje natywnie polecenia skill, gdy są obsługiwane.- Auto: włączone dla Discord/Telegram; wyłączone dla Slack (Slack wymaga utworzenia polecenia slash dla każdej skill).
- Ustaw
channels.discord.commands.nativeSkills,channels.telegram.commands.nativeSkillslubchannels.slack.commands.nativeSkills, aby nadpisać per dostawca (bool lub"auto").
commands.bash(domyślniefalse) włącza! <cmd>do uruchamiania poleceń powłoki hosta (/bash <cmd>jest aliasem; wymaga list dozwolonychtools.elevated).commands.bashForegroundMs(domyślnie2000) kontroluje, jak długo bash czeka przed przełączeniem do trybu tła (0przełącza do tła natychmiast).commands.config(domyślniefalse) włącza/config(odczyt/zapisopenclaw.json).commands.debug(domyślniefalse) włącza/debug(nadpisania tylko w czasie działania).commands.allowFrom(opcjonalne) ustawia per‑dostawcę listę dozwolonych źródeł autoryzacji poleceń. Po skonfigurowaniu jest to jedyne źródło autoryzacji dla poleceń i dyrektyw (listy dozwolonych kanałów/parowanie orazcommands.useAccessGroupssą ignorowane). Użyj"*"jako globalnej wartości domyślnej; klucze specyficzne dla dostawcy mają nad nią pierwszeństwo.commands.useAccessGroups(domyślnietrue) wymusza listy dozwolonych/polityki dla poleceń.
Lista poleceń
Tekstowe + natywne (gdy włączone):/help/commands/skill <name> [input](uruchom skill po nazwie)/status(pokaż bieżący stan; zawiera użycie/limity dostawcy dla aktualnego dostawcy modelu, gdy dostępne)/allowlist(lista/dodaj/usuń wpisy listy dozwolonych)/approve <id> allow-once|allow-always|deny(rozwiąż monity zatwierdzania exec)/context [list|detail|json](wyjaśnij „kontekst”;detailpokazuje rozmiar per plik + per narzędzie + per skill + prompt systemowy)/whoami(pokaż identyfikator nadawcy; alias:/id)/subagents list|stop|log|info|send(inspekcja, zatrzymanie, logowanie lub wysyłanie wiadomości do uruchomień sub-agenta dla bieżącej sesji)/kill <id|#|all>(natychmiast przerywa jednego lub wszystkie działające sub‑agenty w tej sesji; bez komunikatu potwierdzającego)/steer <id|#> <message>(natychmiast kieruje działającym sub‑agentem: w trakcie działania, jeśli to możliwe, w przeciwnym razie przerywa bieżącą pracę i uruchamia ponownie z komunikatem sterującym)/tell <id|#> <message>(alias dla/steer)/config show|get|set|unset(zapis konfiguracji na dysk, tylko właściciel; wymagacommands.config: true)/debug show|set|unset|reset(nadpisania w czasie działania, tylko właściciel; wymagacommands.debug: true)/usage off|tokens|full|cost(stopka użycia per odpowiedź lub lokalne podsumowanie kosztów)/tts off|always|inbound|tagged|status|provider|limit|summary|audio(sterowanie TTS; zob. /tts)- Discord: natywne polecenie to
/voice(Discord rezerwuje/tts); tekstowe/ttsnadal działa.
- Discord: natywne polecenie to
/stop/restart/dock-telegram(alias:/dock_telegram) (przełącz odpowiedzi na Telegram)/dock-discord(alias:/dock_discord) (przełącz odpowiedzi na Discord)/dock-slack(alias:/dock_slack) (przełącz odpowiedzi na Slack)/activation mention|always(tylko grupy)/send on|off|inherit(tylko właściciel)/resetlub/new [model](opcjonalna wskazówka modelu; reszta jest przekazywana dalej)/think <off|minimal|low|medium|high|xhigh>(dynamiczne wybory według modelu/dostawcy; aliasy:/thinking,/t)/verbose on|full|off(alias:/v)/reasoning on|off|stream(alias:/reason; gdy włączone, wysyła osobną wiadomość z prefiksemReasoning:;stream= tylko szkic Telegram)/elevated on|off|ask|full(alias:/elev;fullpomija zatwierdzanie exec)/exec host=<sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>(wyślij/exec, aby pokazać bieżące)/model <name>(alias:/models; lub/<alias>zagents.defaults.models.*.alias)/queue <mode>(plus opcje takie jakdebounce:2s cap:25 drop:summarize; wyślij/queue, aby zobaczyć bieżące ustawienia)/bash <command>(tylko host; alias dla! <command>; wymaga list dozwolonychcommands.bash: true+tools.elevated)
/compact [instructions](zob. /concepts/compaction)! <command>(tylko host; po jednym naraz; użyj!poll+!stopdla długotrwałych zadań)!poll(sprawdź wyjście / status; akceptuje opcjonalniesessionId;/bash polltakże działa)!stop(zatrzymaj uruchomione zadanie bash; akceptuje opcjonalniesessionId;/bash stoptakże działa)
- Polecenia akceptują opcjonalne
:między poleceniem a argumentami (np./think: high,/send: on,/help:). /new <model>akceptuje alias modelu,provider/modellub nazwę dostawcy (dopasowanie przybliżone); jeśli brak dopasowania, tekst jest traktowany jako treść wiadomości.- Aby uzyskać pełny podział użycia według dostawcy, użyj
openclaw status --usage. /allowlist add|removewymagacommands.config=truei respektuje kanałoweconfigWrites./usagekontroluje stopkę użycia per odpowiedź;/usage costdrukuje lokalne podsumowanie kosztów z logów sesji OpenClaw./restartjest domyślnie wyłączone; ustawcommands.restart: true, aby je włączyć./verbosejest przeznaczone do debugowania i zwiększonej widoczności; w normalnym użyciu pozostaw wyłączone./reasoning(oraz/verbose) są ryzykowne w ustawieniach grupowych: mogą ujawniać wewnętrzne rozumowanie lub wyjście narzędzi, których nie zamierzałeś ujawnić. Preferuj pozostawienie ich wyłączonych, zwłaszcza w czatach grupowych.- Szybka ścieżka: wiadomości zawierające wyłącznie polecenia od nadawców z listy dozwolonych są obsługiwane natychmiast (z pominięciem kolejki + modelu).
- Bramkowanie wzmianek w grupach: wiadomości zawierające wyłącznie polecenia od nadawców z listy dozwolonych omijają wymagania dotyczące wzmianek.
- Skróty inline (tylko nadawcy z listy dozwolonych): niektóre polecenia działają także, gdy są osadzone w zwykłej wiadomości i są usuwane, zanim model zobaczy pozostały tekst.
- Przykład:
hey /statuswyzwala odpowiedź statusu, a pozostały tekst przechodzi dalej normalnym tokiem.
- Przykład:
- Obecnie:
/help,/commands,/status,/whoami(/id). - Nieautoryzowane wiadomości zawierające wyłącznie polecenia są po cichu ignorowane, a tokeny inline
/...są traktowane jako zwykły tekst. - Polecenia skill: skille
user-invocablesą udostępniane jako polecenia slash. Nazwy są sanityzowane doa-z0-9_(maks. 32 znaki); kolizje otrzymują sufiksy liczbowe (np._2)./skill <name> [input]uruchamia skill po nazwie (przydatne, gdy limity natywnych poleceń uniemożliwiają polecenia per skill).- Domyślnie polecenia skill są przekazywane do modelu jako zwykłe żądanie.
- Skille mogą opcjonalnie deklarować
command-dispatch: tool, aby routować polecenie bezpośrednio do narzędzia (deterministycznie, bez modelu). - Przykład:
/prose(wtyczka OpenProse) — zob. OpenProse.
- Argumenty poleceń natywnych: Discord używa autouzupełniania dla opcji dynamicznych (oraz menu przycisków, gdy pominiesz wymagane argumenty). Telegram i Slack pokazują menu przycisków, gdy polecenie obsługuje wybory, a pominiesz argument.
Powierzchnie użycia (co gdzie się wyświetla)
- Użycie/limit dostawcy (np. „Claude 80% left”) pojawia się w
/statusdla bieżącego dostawcy modelu, gdy śledzenie użycia jest włączone. - Tokeny/koszt per odpowiedź są kontrolowane przez
/usage off|tokens|full(dołączane do normalnych odpowiedzi). /model statusdotyczy modeli/uwierzytelniania/endpointów, a nie użycia.
Wybór modelu (/model)
/model jest zaimplementowane jako dyrektywa.
Przykłady:
/modeloraz/model listpokazują kompaktowy, numerowany selektor (rodzina modeli + dostępni dostawcy)./model <#>wybiera z tego selektora (i preferuje bieżącego dostawcę, gdy to możliwe)./model statuspokazuje widok szczegółowy, w tym skonfigurowany endpoint dostawcy (baseUrl) oraz tryb API (api), gdy są dostępne.
Nadpisania debugowania
/debug pozwala ustawić nadpisania tylko w czasie działania konfiguracji (pamięć, nie dysk). Tylko właściciel. Domyślnie wyłączone; włącz za pomocą commands.debug: true.
Przykłady:
- Nadpisania obowiązują natychmiast dla nowych odczytów konfiguracji, ale nie zapisują się do
openclaw.json. - Użyj
/debug reset, aby wyczyścić wszystkie nadpisania i wrócić do konfiguracji na dysku.
Aktualizacje konfiguracji
/config zapisuje do konfiguracji na dysku (openclaw.json). Tylko właściciel. Domyślnie wyłączone; włącz za pomocą commands.config: true.
Przykłady:
- Konfiguracja jest walidowana przed zapisem; nieprawidłowe zmiany są odrzucane.
- Aktualizacje
/configutrzymują się po restartach.
Uwagi dotyczące powierzchni
- Polecenia tekstowe działają w normalnej sesji czatu (DM-y współdzielą
main, grupy mają własną sesję). - Polecenia natywne używają izolowanych sesji:
- Discord:
agent:<agentId>:discord:slash:<userId> - Slack:
agent:<agentId>:slack:slash:<userId>(prefiks konfigurowalny przezchannels.slack.slashCommand.sessionPrefix) - Telegram:
telegram:slash:<userId>(celuje w sesję czatu przezCommandTargetSessionKey)
- Discord:
/stopceluje w aktywną sesję czatu, aby móc przerwać bieżące uruchomienie.- Slack:
channels.slack.slashCommandjest nadal obsługiwane dla pojedynczego polecenia w stylu/openclaw. Jeśli włączyszcommands.native, musisz utworzyć jedno polecenie slash Slack dla każdego wbudowanego polecenia (te same nazwy co/help). Menu argumentów poleceń dla Slack są dostarczane jako efemeryczne przyciski Block Kit.