Przejdź do głównej treści

Polecenia ukośnikowe

Polecenia są obsługiwane przez Gateway. Większość poleceń musi zostać wysłana jako samodzielna wiadomość zaczynająca się od /. Polecenie czatu bash tylko dla hosta używa ! <cmd> (z aliasem /bash <cmd>). Istnieją dwa powiązane systemy:
  • Polecenia: samodzielne wiadomości /....
  • Dyrektywy: /think, /fast, /verbose, /reasoning, /elevated, /exec, /model, /queue.
    • Dyrektywy są usuwane z wiadomości, zanim model ją zobaczy.
    • W zwykłych wiadomościach czatu (nie tylko z dyrektywami) są traktowane jako „wskazówki inline” i nie utrwalają ustawień sesji.
    • W wiadomościach zawierających wyłącznie dyrektywy (wiadomość zawiera tylko dyrektywy) utrwalają się w sesji i odpowiadają potwierdzeniem.
    • Dyrektywy są stosowane tylko dla autoryzowanych nadawców. Jeśli ustawiono commands.allowFrom, jest to jedyna lista dozwolonych używana dla dyrektyw; w przeciwnym razie autoryzacja pochodzi z list dozwolonych/parowania kanałów oraz commands.useAccessGroups. Nieautoryzowani nadawcy widzą dyrektywy traktowane jak zwykły tekst.
Istnieje też kilka skrótów inline (tylko dla nadawców z allowlisty/autoryzowanych): /help, /commands, /status, /whoami (/id). Uruchamiają się natychmiast, są usuwane przed zobaczeniem wiadomości przez model, a pozostały tekst przechodzi dalej normalnym przepływem.

Konfiguracja

{
  commands: {
    native: "auto",
    nativeSkills: "auto",
    text: true,
    bash: false,
    bashForegroundMs: 2000,
    config: false,
    mcp: false,
    plugins: false,
    debug: false,
    restart: true,
    ownerAllowFrom: ["discord:123456789012345678"],
    ownerDisplay: "raw",
    ownerDisplaySecret: "${OWNER_ID_HASH_SECRET}",
    allowFrom: {
      "*": ["user1"],
      discord: ["user:123"],
    },
    useAccessGroups: true,
  },
}
  • commands.text (domyślnie true) włącza parsowanie /... w wiadomościach czatu.
    • Na powierzchniach bez natywnych poleceń (WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams) polecenia tekstowe nadal działają, nawet jeśli ustawisz to na false.
  • commands.native (domyślnie "auto") rejestruje polecenia natywne.
    • Auto: włączone dla Discord/Telegram; wyłączone dla Slack (dopóki nie dodasz slash commands); ignorowane dla providerów bez natywnego wsparcia.
    • Ustaw channels.discord.commands.native, channels.telegram.commands.native lub channels.slack.commands.native, aby nadpisać to dla konkretnego providera (bool lub "auto").
    • false czyści wcześniej zarejestrowane polecenia w Discord/Telegram przy uruchamianiu. Polecenia Slack są zarządzane w aplikacji Slack i nie są usuwane automatycznie.
  • commands.nativeSkills (domyślnie "auto") rejestruje polecenia Skills natywnie tam, gdzie jest to obsługiwane.
    • Auto: włączone dla Discord/Telegram; wyłączone dla Slack (Slack wymaga utworzenia slash command dla każdej skill).
    • Ustaw channels.discord.commands.nativeSkills, channels.telegram.commands.nativeSkills lub channels.slack.commands.nativeSkills, aby nadpisać to dla konkretnego providera (bool lub "auto").
  • commands.bash (domyślnie false) włącza ! <cmd> do uruchamiania poleceń powłoki hosta (/bash <cmd> jest aliasem; wymaga allowlist tools.elevated).
  • commands.bashForegroundMs (domyślnie 2000) określa, jak długo bash czeka przed przełączeniem do trybu tła (0 natychmiast przenosi do tła).
  • commands.config (domyślnie false) włącza /config (odczyt/zapis openclaw.json).
  • commands.mcp (domyślnie false) włącza /mcp (odczyt/zapis konfiguracji MCP zarządzanej przez OpenClaw w mcp.servers).
  • commands.plugins (domyślnie false) włącza /plugins (wykrywanie/status pluginów oraz kontrolki instalacji + włączania/wyłączania).
  • commands.debug (domyślnie false) włącza /debug (nadpisania tylko dla runtime).
  • commands.restart (domyślnie true) włącza /restart oraz akcje narzędzi restartu gateway.
  • commands.ownerAllowFrom (opcjonalne) ustawia jawną allowlistę właściciela dla powierzchni poleceń/narzędzi dostępnych tylko dla właściciela. Jest to oddzielne od commands.allowFrom.
  • commands.ownerDisplay określa, jak identyfikatory właściciela pojawiają się w prompcie systemowym: raw lub hash.
  • commands.ownerDisplaySecret opcjonalnie ustawia sekret HMAC używany, gdy commands.ownerDisplay="hash".
  • commands.allowFrom (opcjonalne) ustawia allowlistę dla autoryzacji poleceń per provider. Gdy jest skonfigurowana, jest to jedyne źródło autoryzacji dla poleceń i dyrektyw (listy dozwolonych/parowanie kanałów i commands.useAccessGroups są ignorowane). Użyj "*" jako globalnej wartości domyślnej; klucze specyficzne dla providera ją nadpisują.
  • commands.useAccessGroups (domyślnie true) wymusza allowlisty/polityki dla poleceń, gdy commands.allowFrom nie jest ustawione.

Lista poleceń

Bieżące źródło prawdy:
  • wbudowane polecenia core pochodzą z src/auto-reply/commands-registry.shared.ts
  • wygenerowane dock commands pochodzą z src/auto-reply/commands-registry.data.ts
  • polecenia pluginów pochodzą z wywołań plugin registerCommand()
  • rzeczywista dostępność na Twoim gateway nadal zależy od flag konfiguracji, powierzchni kanału oraz zainstalowanych/włączonych pluginów

Wbudowane polecenia core

Wbudowane polecenia dostępne obecnie:
  • /new [model] rozpoczyna nową sesję; /reset jest aliasem resetu.
  • /compact [instructions] kompaktuje kontekst sesji. Zobacz /concepts/compaction.
  • /stop przerywa bieżące uruchomienie.
  • /session idle <duration|off> i /session max-age <duration|off> zarządzają wygaśnięciem powiązania wątku.
  • /think <off|minimal|low|medium|high|xhigh> ustawia poziom rozumowania. Aliasy: /thinking, /t.
  • /verbose on|off|full przełącza szczegółowe wyjście. Alias: /v.
  • /fast [status|on|off] pokazuje lub ustawia tryb fast.
  • /reasoning [on|off|stream] przełącza widoczność rozumowania. Alias: /reason.
  • /elevated [on|off|ask|full] przełącza tryb elevated. Alias: /elev.
  • /exec host=<auto|sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id> pokazuje lub ustawia domyślne wartości exec.
  • /model [name|#|status] pokazuje lub ustawia model.
  • /models [provider] [page] [limit=<n>|size=<n>|all] wyświetla listę providerów lub modeli dla providera.
  • /queue <mode> zarządza zachowaniem kolejki (steer, interrupt, followup, collect, steer-backlog) oraz opcjami takimi jak debounce:2s cap:25 drop:summarize.
  • /help pokazuje krótkie podsumowanie pomocy.
  • /commands pokazuje wygenerowany katalog poleceń.
  • /tools [compact|verbose] pokazuje, czego bieżący agent może teraz używać.
  • /status pokazuje status runtime, w tym użycie/limit providera, gdy jest dostępny.
  • /tasks wyświetla aktywne/ostatnie zadania w tle dla bieżącej sesji.
  • /context [list|detail|json] wyjaśnia, jak składany jest kontekst.
  • /export-session [path] eksportuje bieżącą sesję do HTML. Alias: /export.
  • /whoami pokazuje identyfikator nadawcy. Alias: /id.
  • /skill <name> [input] uruchamia skill po nazwie.
  • /allowlist [list|add|remove] ... zarządza wpisami allowlisty. Tylko tekstowe.
  • /approve <id> <decision> rozwiązuje prompty zatwierdzeń exec.
  • /btw <question> zadaje poboczne pytanie bez zmieniania przyszłego kontekstu sesji. Zobacz /tools/btw.
  • /subagents list|kill|log|info|send|steer|spawn zarządza uruchomieniami subagentów dla bieżącej sesji.
  • /acp spawn|cancel|steer|close|sessions|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|help zarządza sesjami ACP i opcjami runtime.
  • /focus <target> wiąże bieżący wątek Discord lub temat/konwersację Telegram z celem sesji.
  • /unfocus usuwa bieżące powiązanie.
  • /agents wyświetla listę agentów związanych z wątkiem dla bieżącej sesji.
  • /kill <id|#|all> przerywa jednego lub wszystkich działających subagentów.
  • /steer <id|#> <message> wysyła sterowanie do działającego subagenta. Alias: /tell.
  • /config show|get|set|unset odczytuje lub zapisuje openclaw.json. Tylko dla właściciela. Wymaga commands.config: true.
  • /mcp show|get|set|unset odczytuje lub zapisuje konfigurację serwera MCP zarządzaną przez OpenClaw w mcp.servers. Tylko dla właściciela. Wymaga commands.mcp: true.
  • /plugins list|inspect|show|get|install|enable|disable sprawdza lub zmienia stan pluginów. /plugin jest aliasem. Zapis tylko dla właściciela. Wymaga commands.plugins: true.
  • /debug show|set|unset|reset zarządza nadpisaniami konfiguracji tylko dla runtime. Tylko dla właściciela. Wymaga commands.debug: true.
  • /usage off|tokens|full|cost steruje stopką użycia dla każdej odpowiedzi albo wyświetla lokalne podsumowanie kosztów.
  • /tts on|off|status|provider|limit|summary|audio|help steruje TTS. Zobacz /tools/tts.
  • /restart restartuje OpenClaw, gdy jest włączone. Domyślnie: włączone; ustaw commands.restart: false, aby je wyłączyć.
  • /activation mention|always ustawia tryb aktywacji grupy.
  • /send on|off|inherit ustawia politykę wysyłania. Tylko dla właściciela.
  • /bash <command> uruchamia polecenie powłoki hosta. Tylko tekstowe. Alias: ! <command>. Wymaga commands.bash: true oraz allowlist tools.elevated.
  • !poll [sessionId] sprawdza zadanie bash działające w tle.
  • !stop [sessionId] zatrzymuje zadanie bash działające w tle.

Wygenerowane dock commands

Dock commands są generowane z pluginów kanałów ze wsparciem natywnych poleceń. Obecny zestaw wbudowany:
  • /dock-discord (alias: /dock_discord)
  • /dock-mattermost (alias: /dock_mattermost)
  • /dock-slack (alias: /dock_slack)
  • /dock-telegram (alias: /dock_telegram)

Polecenia wbudowanych pluginów

Wbudowane pluginy mogą dodawać więcej poleceń ukośnikowych. Bieżące polecenia wbudowane w tym repo:
  • /dreaming [on|off|status|help] przełącza dreaming pamięci. Zobacz Dreaming.
  • /pair [qr|status|pending|approve|cleanup|notify] zarządza przepływem parowania/konfiguracji urządzeń. Zobacz Pairing.
  • /phone status|arm <camera|screen|writes|all> [duration]|disarm tymczasowo uzbraja wysokiego ryzyka polecenia node telefonu.
  • /voice status|list [limit]|set <voiceId|name> zarządza konfiguracją głosu Talk. W Discord natywna nazwa polecenia to /talkvoice.
  • /card ... wysyła presety kart LINE rich card. Zobacz LINE.
  • /codex status|models|threads|resume|compact|review|account|mcp|skills sprawdza i kontroluje wbudowany harness app-servera Codex. Zobacz Codex Harness.
  • Polecenia tylko dla QQBot:
    • /bot-ping
    • /bot-version
    • /bot-help
    • /bot-upgrade
    • /bot-logs

Dynamiczne polecenia Skills

Skills wywoływane przez użytkownika są również udostępniane jako polecenia ukośnikowe:
  • /skill <name> [input] zawsze działa jako ogólny punkt wejścia.
  • Skills mogą też pojawiać się jako bezpośrednie polecenia, takie jak /prose, gdy skill/plugin je zarejestruje.
  • Rejestracja natywnych poleceń Skills jest sterowana przez commands.nativeSkills oraz channels.<provider>.commands.nativeSkills.
Uwagi:
  • Polecenia akceptują opcjonalny : między poleceniem a argumentami (np. /think: high, /send: on, /help:).
  • /new <model> akceptuje alias modelu, provider/model albo nazwę providera (dopasowanie rozmyte); jeśli nie ma dopasowania, tekst jest traktowany jako treść wiadomości.
  • Aby uzyskać pełne zestawienie użycia per provider, użyj openclaw status --usage.
  • /allowlist add|remove wymaga commands.config=true i respektuje configWrites kanału.
  • W kanałach wielokontowych ukierunkowane na konfigurację /allowlist --account <id> oraz /config set channels.<provider>.accounts.<id>... także respektują configWrites docelowego konta.
  • /usage steruje stopką użycia dla każdej odpowiedzi; /usage cost wyświetla lokalne podsumowanie kosztów z logów sesji OpenClaw.
  • /restart jest domyślnie włączone; ustaw commands.restart: false, aby je wyłączyć.
  • /plugins install <spec> akceptuje te same specyfikacje pluginów co openclaw plugins install: lokalna ścieżka/archiwum, pakiet npm albo clawhub:<pkg>.
  • /plugins enable|disable aktualizuje konfigurację pluginów i może poprosić o restart.
  • Natywne polecenie tylko dla Discord: /vc join|leave|status steruje kanałami głosowymi (wymaga channels.discord.voice i poleceń natywnych; niedostępne jako polecenie tekstowe).
  • Polecenia powiązań wątków Discord (/focus, /unfocus, /agents, /session idle, /session max-age) wymagają skutecznie włączonych powiązań wątków (session.threadBindings.enabled i/lub channels.discord.threadBindings.enabled).
  • Dokumentacja polecenia ACP i zachowanie runtime: ACP Agents.
  • /verbose służy do debugowania i dodatkowej widoczności; w normalnym użyciu trzymaj je wyłączone.
  • /fast on|off utrwala nadpisanie sesji. Użyj opcji inherit w interfejsie Sessions UI, aby je wyczyścić i wrócić do domyślnych ustawień z konfiguracji.
  • /fast jest specyficzne dla providera: OpenAI/OpenAI Codex mapują je na service_tier=priority w natywnych endpointach Responses, podczas gdy bezpośrednie publiczne żądania Anthropic, w tym ruch uwierzytelniany OAuth wysyłany do api.anthropic.com, mapują je na service_tier=auto lub standard_only. Zobacz OpenAI i Anthropic.
  • Podsumowania błędów narzędzi są nadal pokazywane, gdy mają znaczenie, ale szczegółowy tekst błędu jest dołączany tylko wtedy, gdy /verbose ma wartość on albo full.
  • /reasoning (i /verbose) są ryzykowne w ustawieniach grupowych: mogą ujawnić wewnętrzne rozumowanie albo dane wyjściowe narzędzi, których nie zamierzałeś ujawniać. Lepiej zostawić je wyłączone, szczególnie na czatach grupowych.
  • /model natychmiast utrwala nowy model sesji.
  • Jeśli agent jest bezczynny, następne uruchomienie użyje go od razu.
  • Jeśli uruchomienie jest już aktywne, OpenClaw oznacza przełączenie na żywo jako oczekujące i restartuje się z nowym modelem dopiero w czystym punkcie ponownej próby.
  • Jeśli aktywność narzędzi lub wyjście odpowiedzi już się rozpoczęły, oczekujące przełączenie może pozostać w kolejce do późniejszej okazji ponownej próby albo do następnej tury użytkownika.
  • Szybka ścieżka: wiadomości zawierające tylko polecenie od nadawców z allowlisty są obsługiwane natychmiast (z pominięciem kolejki + modelu).
  • Wymóg wzmianki w grupie: wiadomości zawierające tylko polecenie od nadawców z allowlisty omijają wymagania dotyczące wzmianki.
  • Skróty inline (tylko dla nadawców z allowlisty): niektóre polecenia działają także po osadzeniu w zwykłej wiadomości i są usuwane, zanim model zobaczy pozostały tekst.
    • Przykład: hey /status wywołuje odpowiedź statusu, a pozostały tekst przechodzi dalej normalnym przepływem.
  • Obecnie: /help, /commands, /status, /whoami (/id).
  • Nieautoryzowane wiadomości zawierające tylko polecenie są po cichu ignorowane, a tokeny inline /... są traktowane jak zwykły tekst.
  • Polecenia Skills: Skills typu user-invocable są udostępniane jako polecenia ukośnikowe. Nazwy są sanityzowane do a-z0-9_ (maks. 32 znaki); kolizje dostają sufiksy numeryczne (np. _2).
    • /skill <name> [input] uruchamia skill po nazwie (przydatne, gdy limity natywnych poleceń uniemożliwiają polecenia per skill).
    • Domyślnie polecenia Skills są przekazywane do modelu jako zwykłe żądanie.
    • Skills mogą opcjonalnie deklarować command-dispatch: tool, aby kierować polecenie bezpośrednio do narzędzia (deterministycznie, bez modelu).
    • Przykład: /prose (plugin OpenProse) — zobacz 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 Ty pominiesz argument.

/tools

/tools odpowiada na pytanie dotyczące runtime, a nie konfiguracji: czego ten agent może teraz używać w tej rozmowie.
  • Domyślne /tools jest zwięzłe i zoptymalizowane pod szybkie skanowanie.
  • /tools verbose dodaje krótkie opisy.
  • Powierzchnie z poleceniami natywnymi, które obsługują argumenty, udostępniają ten sam przełącznik trybu compact|verbose.
  • Wyniki są ograniczone do sesji, więc zmiana agenta, kanału, wątku, autoryzacji nadawcy albo modelu może zmienić wynik.
  • /tools obejmuje narzędzia, które są faktycznie osiągalne w runtime, w tym narzędzia core, podłączone narzędzia pluginów i narzędzia należące do kanału.
Do edytowania profili i nadpisań używaj panelu Tools w Control UI albo powierzchni config/catalog, zamiast traktować /tools jako statyczny katalog.

Powierzchnie użycia (co gdzie się pokazuje)

  • Użycie/quota providera (np. „Claude 80% left”) pojawia się w /status dla bieżącego providera modelu, gdy śledzenie użycia jest włączone. OpenClaw normalizuje okna providerów do % left; dla MiniMax pola procentowe zawierające tylko wartość pozostałą są odwracane przed wyświetleniem, a odpowiedzi model_remains preferują wpis modelu czatu wraz z etykietą planu oznaczoną modelem.
  • Wiersze token/cache w /status mogą wracać do ostatniego wpisu użycia w transkrypcie, gdy migawka bieżącej sesji jest uboga. Istniejące niezerowe wartości na żywo nadal mają pierwszeństwo, a fallback do transkryptu może też odzyskać etykietę aktywnego modelu runtime oraz większą sumę zorientowaną na prompt, gdy zapisane sumy są nieobecne lub mniejsze.
  • Tokeny/koszt dla każdej odpowiedzi są kontrolowane przez /usage off|tokens|full (dołączane do zwykłych odpowiedzi).
  • /model status dotyczy modeli/auth/endpointów, a nie użycia.

Wybór modelu (/model)

/model jest zaimplementowane jako dyrektywa. Przykłady:
/model
/model list
/model 3
/model openai/gpt-5.4
/model opus@anthropic:default
/model status
Uwagi:
  • /model i /model list pokazują zwięzły, numerowany picker (rodzina modeli + dostępni providerzy).
  • W Discord /model i /models otwierają interaktywny picker z listami rozwijanymi providera i modelu oraz krokiem Submit.
  • /model <#> wybiera z tego pickera (i preferuje bieżącego providera, gdy to możliwe).
  • /model status pokazuje widok szczegółowy, w tym skonfigurowany endpoint providera (baseUrl) i tryb API (api), gdy są dostępne.

Nadpisania debug

/debug pozwala ustawiać nadpisania konfiguracji tylko dla runtime (w pamięci, nie na dysku). Tylko dla właściciela. Domyślnie wyłączone; włącz przez commands.debug: true. Przykłady:
/debug show
/debug set messages.responsePrefix="[openclaw]"
/debug set channels.whatsapp.allowFrom=["+1555","+4477"]
/debug unset messages.responsePrefix
/debug reset
Uwagi:
  • Nadpisania stosują się natychmiast do 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 z dysku.

Aktualizacje konfiguracji

/config zapisuje do konfiguracji na dysku (openclaw.json). Tylko dla właściciela. Domyślnie wyłączone; włącz przez commands.config: true. Przykłady:
/config show
/config show messages.responsePrefix
/config get messages.responsePrefix
/config set messages.responsePrefix="[openclaw]"
/config unset messages.responsePrefix
Uwagi:
  • Konfiguracja jest walidowana przed zapisem; nieprawidłowe zmiany są odrzucane.
  • Aktualizacje /config utrzymują się po restartach.

Aktualizacje MCP

/mcp zapisuje definicje serwerów MCP zarządzanych przez OpenClaw w mcp.servers. Tylko dla właściciela. Domyślnie wyłączone; włącz przez commands.mcp: true. Przykłady:
/mcp show
/mcp show context7
/mcp set context7={"command":"uvx","args":["context7-mcp"]}
/mcp unset context7
Uwagi:
  • /mcp przechowuje konfigurację w konfiguracji OpenClaw, a nie w ustawieniach projektu należących do Pi.
  • Adapery runtime decydują, które transporty są faktycznie wykonywalne.

Aktualizacje pluginów

/plugins pozwala operatorom sprawdzać wykryte pluginy i przełączać włączenie w konfiguracji. Przepływy tylko do odczytu mogą używać /plugin jako aliasu. Domyślnie wyłączone; włącz przez commands.plugins: true. Przykłady:
/plugins
/plugins list
/plugin show context7
/plugins enable context7
/plugins disable context7
Uwagi:
  • /plugins list i /plugins show używają rzeczywistego wykrywania pluginów względem bieżącego workspace i konfiguracji z dysku.
  • /plugins enable|disable aktualizuje tylko konfigurację pluginów; nie instaluje ani nie odinstalowuje pluginów.
  • Po zmianach enable/disable uruchom ponownie gateway, aby je zastosować.

Uwagi dotyczące powierzchni

  • Polecenia tekstowe działają w zwykłej sesji czatu (DM 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 przez channels.slack.slashCommand.sessionPrefix)
    • Telegram: telegram:slash:<userId> (celuje w sesję czatu przez CommandTargetSessionKey)
  • /stop celuje w aktywną sesję czatu, aby mogło przerwać bieżące uruchomienie.
  • Slack: channels.slack.slashCommand jest nadal obsługiwane dla pojedynczego polecenia w stylu /openclaw. Jeśli włączysz commands.native, musisz utworzyć jedno polecenie ukośnikowe Slack dla każdego wbudowanego polecenia (te same nazwy co /help). Menu argumentów poleceń dla Slack są dostarczane jako efemeryczne przyciski Block Kit.
    • Wyjątek dla poleceń natywnych Slack: zarejestruj /agentstatus (a nie /status), ponieważ Slack rezerwuje /status. Tekstowe /status nadal działa w wiadomościach Slack.

Poboczne pytania BTW

/btw to szybkie poboczne pytanie dotyczące bieżącej sesji. W odróżnieniu od zwykłego czatu:
  • używa bieżącej sesji jako kontekstu w tle,
  • działa jako osobne jednorazowe wywołanie bez narzędzi,
  • nie zmienia przyszłego kontekstu sesji,
  • nie jest zapisywane do historii transkryptu,
  • jest dostarczane jako wynik poboczny na żywo, a nie jako zwykła wiadomość asystenta.
Dzięki temu /btw jest przydatne, gdy chcesz uzyskać tymczasowe doprecyzowanie, podczas gdy główne zadanie nadal trwa. Przykład:
/btw co teraz robimy?
Zobacz Poboczne pytania BTW, aby poznać pełne zachowanie i szczegóły UX klienta.