Slash-команды
Команды обрабатываются Gateway (шлюзом). Большинство команд должно отправляться как отдельное сообщение, начинающееся с/.
Команда bash-чата только для хоста использует ! <cmd> (с /bash <cmd> в качестве алиаса).
Существует две связанные системы:
- Команды: отдельные сообщения
/.... - Директивы:
/think,/verbose,/reasoning,/elevated,/exec,/model,/queue.- Директивы удаляются из сообщения до того, как его увидит модель.
- В обычных сообщениях чата (не только из директив) они рассматриваются как «встроенные подсказки» и не сохраняют настройки сеанса.
- В сообщениях, состоящих только из директив (сообщение содержит только директивы), они сохраняются в сеансе и отвечают подтверждением.
- Директивы применяются только для авторизованных отправителей (списки разрешённых каналов/сопряжение плюс
commands.useAccessGroups). Если заданcommands.allowFrom, используется только этот allowlist; в противном случае авторизация выполняется через allowlist каналов/сопряжение иcommands.useAccessGroups. Для неавторизованных отправителей директивы обрабатываются как обычный текст.
/help, /commands, /status, /whoami (/id).
Они выполняются немедленно, удаляются до того, как модель увидит сообщение, а оставшийся текст проходит обычный конвейер обработки.
Конфигурация
commands.text(по умолчаниюtrue) включает разбор/...в сообщениях чата.- На поверхностях без нативных команд (WhatsApp/WebChat/Signal/iMessage/Google Chat/MS Teams) текстовые команды продолжают работать, даже если установить это значение в
false.
- На поверхностях без нативных команд (WhatsApp/WebChat/Signal/iMessage/Google Chat/MS Teams) текстовые команды продолжают работать, даже если установить это значение в
commands.native(по умолчанию"auto") регистрирует нативные команды.- Auto: включено для Discord/Telegram; выключено для Slack (пока вы не добавите slash-команды); игнорируется для провайдеров без нативной поддержки.
- Установите
channels.discord.commands.native,channels.telegram.commands.nativeилиchannels.slack.commands.native, чтобы переопределить поведение для конкретного провайдера (bool или"auto"). falseочищает ранее зарегистрированные команды в Discord/Telegram при запуске. Команды Slack управляются в приложении Slack и автоматически не удаляются.
commands.nativeSkills(по умолчанию"auto") регистрирует нативные команды Skills, когда это поддерживается.- Auto: включено для Discord/Telegram; выключено для Slack (Slack требует создания отдельной slash-команды для каждого skill).
- Установите
channels.discord.commands.nativeSkills,channels.telegram.commands.nativeSkillsилиchannels.slack.commands.nativeSkills, чтобы переопределить для конкретного провайдера (bool или"auto").
commands.bash(по умолчаниюfalse) включает! <cmd>для запуска команд оболочки хоста (/bash <cmd>— алиас; требуются allowlist’ыtools.elevated).commands.bashForegroundMs(по умолчанию2000) управляет тем, сколько bash ждёт перед переключением в фоновый режим (0переводит в фон немедленно).commands.config(по умолчаниюfalse) включает/config(чтение/записьopenclaw.json).commands.debug(по умолчаниюfalse) включает/debug(переопределения только во время выполнения).commands.allowFrom(необязательно) задаёт allowlist на уровне провайдера для авторизации команд. Если параметр настроен, он является единственным источником авторизации для команд и директив (allowlist каналов/сопряжение иcommands.useAccessGroupsигнорируются). Используйте"*"для глобального значения по умолчанию; ключи конкретных провайдеров переопределяют его.commands.useAccessGroups(по умолчаниюtrue) принудительно применяет списки разрешённых/политики для команд.
Список команд
Текстовые + нативные (когда включено):/help/commands/skill <name> [input](запуск skill по имени)/status(показ текущего статуса; включает использование/квоту провайдера для текущего провайдера модели, когда доступно)/allowlist(список/добавление/удаление записей allowlist)/approve <id> allow-once|allow-always|deny(разрешение запросов на подтверждение выполнения)/context [list|detail|json](объяснение «контекста»;detailпоказывает размер по файлам + инструментам + skills + системному prompt’у)/whoami(показ вашего sender id; алиас:/id)/subagents list|stop|log|info|send(просмотр, остановка, логирование или отправка сообщений подзадачам агента для текущего сеанса)/kill <id|#|all>(немедленно прервать одного или всех запущенных sub-agents для этой сессии; без сообщения подтверждения)/steer <id|#> <message>(немедленно направить выполняющийся sub-agent: в процессе выполнения, если возможно, иначе прервать текущую работу и перезапустить с сообщением steer)/tell <id|#> <message>(алиас для/steer)/config show|get|set|unset(сохранение конфига на диск, только для владельца; требуетсяcommands.config: true)/debug show|set|unset|reset(переопределения во время выполнения, только для владельца; требуетсяcommands.debug: true)/usage off|tokens|full|cost(футер использования на ответ или локальная сводка стоимости)/tts off|always|inbound|tagged|status|provider|limit|summary|audio(управление TTS; см. /tts)- Discord: нативная команда —
/voice(Discord резервирует/tts); текстовая/ttsпродолжает работать.
- Discord: нативная команда —
/stop/restart/dock-telegram(алиас:/dock_telegram) (переключить ответы в Telegram)/dock-discord(алиас:/dock_discord) (переключить ответы в Discord)/dock-slack(алиас:/dock_slack) (переключить ответы в Slack)/activation mention|always(только группы)/send on|off|inherit(только для владельца)/resetили/new [model](необязательная подсказка модели; остальное передаётся дальше)/think <off|minimal|low|medium|high|xhigh>(динамические варианты по модели/провайдеру; алиасы:/thinking,/t)/verbose on|full|off(алиас:/v)/reasoning on|off|stream(алиас:/reason; при включении отправляет отдельное сообщение с префиксомReasoning:;stream= только черновик Telegram)/elevated on|off|ask|full(алиас:/elev;fullпропускает подтверждения выполнения)/exec host=<sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>(отправьте/exec, чтобы показать текущее)/model <name>(алиас:/models; или/<alias>изagents.defaults.models.*.alias)/queue <mode>(плюс параметры, такие какdebounce:2s cap:25 drop:summarize; отправьте/queue, чтобы увидеть текущие настройки)/bash <command>(только для хоста; алиас для! <command>; требуются allowlist’ыcommands.bash: true+tools.elevated)
/compact [instructions](см. /concepts/compaction)! <command>(только для хоста; по одному за раз; используйте!poll+!stopдля длительных задач)!poll(проверка вывода/статуса; принимает необязательныйsessionId; также работает/bash poll)!stop(остановка выполняющейся bash-задачи; принимает необязательныйsessionId; также работает/bash stop)
- Команды принимают необязательный
:между командой и аргументами (например,/think: high,/send: on,/help:). /new <model>принимает алиас модели,provider/modelили имя провайдера (нечёткое сопоставление); если совпадение не найдено, текст трактуется как тело сообщения.- Для полного разбиения использования по провайдерам используйте
openclaw status --usage. /allowlist add|removeтребуетcommands.config=trueи учитывает каналconfigWrites./usageуправляет футером использования на ответ;/usage costпечатает локальную сводку стоимости из логов сеанса OpenClaw./restartпо умолчанию отключено; установитеcommands.restart: true, чтобы включить./verboseпредназначено для отладки и дополнительной видимости; держите выключенным при обычном использовании./reasoning(и/verbose) рискованны в групповых настройках: они могут раскрыть внутренние рассуждения или вывод инструментов, которые вы не планировали показывать. Предпочтительно оставлять их выключенными, особенно в групповых чатах.- Быстрый путь: сообщения, состоящие только из команд, от отправителей из списка разрешённых обрабатываются немедленно (обход очереди + модели).
- Ограничение по упоминаниям в группах: сообщения, состоящие только из команд, от отправителей из списка разрешённых обходят требования упоминаний.
- Встроенные сокращения (только для отправителей из списка разрешённых): некоторые команды также работают, будучи встроенными в обычное сообщение, и удаляются до того, как модель увидит оставшийся текст.
- Пример:
hey /statusвызывает ответ со статусом, а оставшийся текст продолжает обычную обработку.
- Пример:
- В настоящее время:
/help,/commands,/status,/whoami(/id). - Неавторизованные сообщения, состоящие только из команд, молча игнорируются, а встроенные токены
/...обрабатываются как обычный текст. - Команды Skills: skills
user-invocableпубликуются как slash-команды. Имена приводятся к видуa-z0-9_(макс. 32 символа); при коллизиях добавляются числовые суффиксы (например,_2)./skill <name> [input]запускает skill по имени (полезно, когда ограничения нативных команд не позволяют иметь команды для каждого skill).- По умолчанию команды skills пересылаются модели как обычный запрос.
- Skills могут опционально объявлять
command-dispatch: tool, чтобы направлять команду напрямую инструменту (детерминированно, без модели). - Пример:
/prose(плагин OpenProse) — см. OpenProse.
- Аргументы нативных команд: Discord использует автодополнение для динамических параметров (и кнопочные меню, когда вы пропускаете обязательные аргументы). Telegram и Slack показывают кнопочное меню, когда команда поддерживает варианты выбора и вы пропускаете аргумент.
Поверхности использования (что где отображается)
- Использование/квота провайдера (пример: «Claude: осталось 80%») отображается в
/statusдля текущего провайдера модели, когда включён учёт использования. - Токены/стоимость на ответ управляются через
/usage off|tokens|full(добавляется к обычным ответам). /model statusотносится к моделям/аутентификации/эндпоинтам, а не к использованию.
Выбор модели (/model)
/model реализован как директива.
Примеры:
/modelи/model listпоказывают компактный нумерованный выбор (семейство моделей + доступные провайдеры)./model <#>выбирает из этого списка (и по возможности предпочитает текущего провайдера)./model statusпоказывает детализированный вид, включая настроенный эндпоинт провайдера (baseUrl) и режим API (api), когда доступно.
Debug overrides
/debug позволяет задавать переопределения конфига только во время выполнения (в памяти, не на диске). Только для владельца. По умолчанию отключено; включается через commands.debug: true.
Примеры:
- Переопределения применяются немедленно к новым чтениям конфига, но не записываются в
openclaw.json. - Используйте
/debug reset, чтобы очистить все переопределения и вернуться к конфигу на диске.
Обновления конфига
/config записывает изменения в конфиг на диске (openclaw.json). Только для владельца. По умолчанию отключено; включается через commands.config: true.
Примеры:
- Конфигурация валидируется перед записью; недопустимые изменения отклоняются.
- Обновления
/configсохраняются между перезапусками.
Примечания по поверхностям
- Текстовые команды выполняются в обычном сеансе чата (личные сообщения разделяют
main, у групп — свой собственный сеанс). - Нативные команды используют изолированные сеансы:
- Discord:
agent:<agentId>:discord:slash:<userId> - Slack:
agent:<agentId>:slack:slash:<userId>(префикс настраивается черезchannels.slack.slashCommand.sessionPrefix) - Telegram:
telegram:slash:<userId>(нацеливается на сеанс чата черезCommandTargetSessionKey)
- Discord:
/stopнацелен на активный сеанс чата, поэтому может прервать текущий запуск.- Slack:
channels.slack.slashCommandпо-прежнему поддерживается для одной команды в стиле/openclaw. Если вы включаетеcommands.native, необходимо создать одну Slack slash-команду для каждой встроенной команды (с теми же именами, что и/help). Меню аргументов команд для Slack доставляются в виде эфемерных кнопок Block Kit.