Перейти к основному содержанию

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: {
    native: "auto",
    nativeSkills: "auto",
    text: true,
    bash: false,
    bashForegroundMs: 2000,
    config: false,
    debug: false,
    restart: false,
    useAccessGroups: true,
  },
}
  • commands.text (по умолчанию true) включает разбор /... в сообщениях чата.
    • На поверхностях без нативных команд (WhatsApp/WebChat/Signal/iMessage/Google Chat/MS Teams) текстовые команды продолжают работать, даже если установить это значение в false.
  • 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 продолжает работать.
  • /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 3
/model openai/gpt-5.2
/model opus@anthropic:default
/model status
Примечания:
  • /model и /model list показывают компактный нумерованный выбор (семейство моделей + доступные провайдеры).
  • /model <#> выбирает из этого списка (и по возможности предпочитает текущего провайдера).
  • /model status показывает детализированный вид, включая настроенный эндпоинт провайдера (baseUrl) и режим API (api), когда доступно.

Debug overrides

/debug позволяет задавать переопределения конфига только во время выполнения (в памяти, не на диске). Только для владельца. По умолчанию отключено; включается через commands.debug: true. Примеры:
/debug show
/debug set messages.responsePrefix="[openclaw]"
/debug set channels.whatsapp.allowFrom=["+1555","+4477"]
/debug unset messages.responsePrefix
/debug reset
Примечания:
  • Переопределения применяются немедленно к новым чтениям конфига, но не записываются в openclaw.json.
  • Используйте /debug reset, чтобы очистить все переопределения и вернуться к конфигу на диске.

Обновления конфига

/config записывает изменения в конфиг на диске (openclaw.json). Только для владельца. По умолчанию отключено; включается через commands.config: true. Примеры:
/config show
/config show messages.responsePrefix
/config get messages.responsePrefix
/config set messages.responsePrefix="[openclaw]"
/config unset messages.responsePrefix
Примечания:
  • Конфигурация валидируется перед записью; недопустимые изменения отклоняются.
  • Обновления /config сохраняются между перезапусками.

Примечания по поверхностям

  • Текстовые команды выполняются в обычном сеансе чата (личные сообщения разделяют main, у групп — свой собственный сеанс).
  • Нативные команды используют изолированные сеансы:
    • Discord: agent:<agentId>:discord:slash:<userId>
    • Slack: agent:<agentId>:slack:slash:<userId> (префикс настраивается через channels.slack.slashCommand.sessionPrefix)
    • Telegram: telegram:slash:<userId> (нацеливается на сеанс чата через CommandTargetSessionKey)
  • /stop нацелен на активный сеанс чата, поэтому может прервать текущий запуск.
  • Slack: channels.slack.slashCommand по-прежнему поддерживается для одной команды в стиле /openclaw. Если вы включаете commands.native, необходимо создать одну Slack slash-команду для каждой встроенной команды (с теми же именами, что и /help). Меню аргументов команд для Slack доставляются в виде эфемерных кнопок Block Kit.