owner_user_id и получают только предоставленные вами области действия токена.
Быстрая настройка
В ClickClack откройте Workspace settings → Integrations → OpenClaw, создайте бота и скопируйте его токен. Затем настройте канал:workspace принимает идентификатор рабочего пространства (wsp_...), слаг или отображаемое имя.
После сохранения channels add проверяет сервер, токен и рабочее пространство, а затем
сообщает, подхватил ли работающий Gateway новую учётную запись. Если OpenClaw
уже запущен, ClickClack подключается автоматически, и вторая команда не
требуется. В противном случае запустите его:
Альтернативный вариант: токен из переменной окружения
Учётная запись по умолчанию может считыватьCLICKCLACK_BOT_TOKEN вместо хранения токена
в конфигурации:
Справочник JSON5
Эквивалентная структура конфигурации:baseUrl, источник токена и
workspace. Источником токена может быть token, tokenFile или
CLICKCLACK_BOT_TOKEN для учётной записи по умолчанию. workspace принимает идентификатор
рабочего пространства (wsp_...), слаг или имя; Gateway преобразует его в идентификатор при запуске.
Ключи конфигурации учётной записи
Если
plugins.allow представляет собой непустой ограничительный список, явный выбор
ClickClack при настройке канала или выполнение openclaw plugins enable clickclack
добавляет clickclack в этот список. Установка во время первоначальной настройки использует такое же
поведение явного выбора. Эти пути не переопределяют plugins.deny или
глобальную настройку plugins.enabled: false. Прямое выполнение
openclaw plugins install @openclaw/clickclack следует обычной
политике установки плагинов и также добавляет ClickClack в существующий список разрешённых.
Несколько ботов
Каждая учётная запись открывает собственное подключение ClickClack в реальном времени и использует собственный токен бота.Режимы ответов
replyMode: "agent"(по умолчанию) направляет входящие сообщения через обычный конвейер агента, включая запись сеанса и политику инструментов.replyMode: "model"пропускает конвейер агента и используетllm.completeсреды выполнения плагина для прямых ответов бота, форму которых при необходимости определяютmodelиsystemPrompt. Бюджет генерации определяется выбранными поставщиком и моделью.
plugins.entries.clickclack.llm.allowAgentIdOverride: true:
agent по умолчанию;
в этом режиме он не нужен.
Меню команд
При запуске Gateway каждая настроенная учётная запись публикует собственные команды OpenClaw в ClickClack. Они отображаются в автодополнении редактора с меткой, содержащей дескриптор бота. При каждом запуске опубликованный набор полностью заменяется, включая удаление устаревшего меню, если каталог собственных команд пуст. Синхронизация меню команд включена по умолчанию. Чтобы отключить её, задайтеcommandMenu: false
для учётной записи:
commands:write. Текущие наборы ClickClack bot:write и
bot:admin включают эту область действия; её также можно предоставить
отдельно. Для токенов, созданных до появления меню команд, может потребоваться
добавить область действия или выпустить новый токен.
Синхронизация выполняется по мере возможности один раз при каждом запуске Gateway. При отсутствии области действия или сетевом
сбое в журнал записывается предупреждение; для старого сервера ClickClack без этой конечной точки
сообщение записывается на уровне отладки. Ни один из этих сбоев не блокирует запуск подключения в реальном времени. Меню остаются
доступными, пока агент не подключён, и удаляются, когда бот покидает
рабочее пространство.
В этом выпуске публикуются только спецификации собственных команд. Псевдонимы и
каталоги команд Skills, плагинов или пользовательских команд в меню не добавляются. Если
имя также зарегистрировано как HTTP-команда с косой чертой, ClickClack сначала обрабатывает эту
регистрацию; остальные команды меню продолжают поступать через обычную доставку
сообщений.
Используйте режим agent для получения данных корреляции между сервисами. Для достоверного
идентификатора сообщения ClickClack в его канонической форме msg_<ulid> канал формирует
детерминированный идентификатор запуска OpenClaw clickclack:<message-id>. Каждый вызов модели
затем отображается в диагностике как clickclack:<message-id>:model:<n>; когда в этом
ходе используется ClawRouter, тот же идентификатор вызова модели отправляется как X-Request-ID.
Режим model обходит обычную диагностику запуска и сеанса агента, поэтому
не подходит для этого способа получения данных.
Когда событие реального времени содержит проверенное значение payload.correlation_id,
канал передаёт его как X-Correlation-ID при достоверном получении сообщения и
в результирующих запросах ответа ClickClack. Значения используют безопасный
128-символьный набор ClickClack (A-Z, a-z, 0-9, ., _, : и -); недопустимые значения
пропускаются. Эти связи содержат только идентификаторы и никогда не включают тела сообщений,
промпты, результаты генерации, учётные данные или вывод инструментов.
Надёжная доставка медиафайлов
Ответы агента с медиафайлами используют обязательную надёжную доставку. OpenClaw назначает стабильные одноразовые значения сообщений и загрузок для каждой части до первой записи в ClickClack, поэтому при повторной попытке используются те же загрузка и сообщение без расходования квоты хранилища и публикации дубликатов. Если загрузка уже существует после перезапуска, OpenClaw не считывает повторно исходный локальный путь или удалённый URL-адрес медиафайла. Для этого контракта восстановления требуется сервер ClickClack, поддерживающий:GET /api/uploads/by-nonceсX-ClickClack-Upload-Nonce: supportedдля результатов обнаружения и отсутствия.GET /api/messages/by-nonceсX-ClickClack-Message-Nonce: supportedдля результатов обнаружения и отсутствия.- Идемпотентное создание сообщений и связывание вложений для одного и того же одноразового значения в области владельца и загрузки.
Строки активности агента
По умолчанию канал ClickClack ничего не показывает во время выполнения хода агента; отображается только окончательный ответ. ЗадайтеagentActivity: true для учётной записи, чтобы публиковать сохраняемые строки сообщений agent_commentary и agent_tool во время выполнения хода:
- По умолчанию выключено. Стандартные конфигурации и старые серверы ClickClack не затрагиваются.
- Требуется область действия токена
agent_activity:write. Эта область действия отделена отbot:writeи не наследуется от неё; перед включением параметра создайте токен бота с--scopes bot:write,agent_activity:write(или предоставьте эту область действия существующему токену). - Постепенное ухудшение по мере возможности. Если у токена нет
agent_activity:writeили сервер отклоняет записи активности, ошибки заносятся в журнал, а окончательный ответ по-прежнему доставляется обычным образом; строки активности не отображаются. - Строки группируются по ходам (
turn_id) и объединяются так, чтобы одному логическому шагу соответствовала одна строка; строки инструментов используют то же форматирование хода выполнения, что и Discord/Slack/Telegram (имя инструмента и сведения о команде). - Метаданные атрибуции. Созданные агентом публикации (строки активности и окончательный ответ) содержат поля
author_modelиauthor_thinking, определённые на основе модели, фактически использованной для хода (в том числе после перехода на резервный вариант). Серверы, в которых эти столбцы не определены, игнорируют неизвестные поля JSON; серверы, сохраняющие их, могут для каждого сообщения ответить на вопрос «какая модель создала эту строку и на каком уровне рассуждения».
Цели
channel:<name-or-id>отправляет сообщение в канал рабочего пространства. Для целей без префикса по умолчанию используетсяchannel:.dm:<user_id>создаёт или повторно использует прямой диалог с указанным пользователем.thread:<message_id>отвечает в ветке, начатой этим сообщением.
clickclack: или cc:.
Исходящие медиафайлы загружаются через API загрузки ClickClack, после чего постоянная загрузка
прикрепляется к созданному сообщению канала, ответу в ветке или личному сообщению. Локальные файлы и поддерживаемые
URL удалённых медиафайлов обрабатываются согласно обычной политике OpenClaw по доступу к медиафайлам, с ограничением
64 MiB на файл. Для постоянных отправок из очереди используются отдельные одноразовые значения, привязанные к владельцу, для каждой
загрузки и части сообщения, после чего привязка вложения повторяется с теми же
объектами. Контракт сервера и поведение при восстановлении описаны в разделе Постоянная доставка медиафайлов.
Примеры:
Разрешения
Области действия токена ClickClack контролируются API ClickClack.bot:read: чтение данных рабочего пространства, каналов, сообщений, веток, личных сообщений, обмена данными в реальном времени и профилей.bot:write:bot:read, а также сообщения каналов, ответы в ветках, личные сообщения, загрузки и публикация меню команд.bot:admin:bot:write, а также создание каналов.commands:write: публикация меню команд бота. Включено в текущие наборыbot:writeиbot:admin, а также может предоставляться отдельно.agent_activity:write: постоянные строки активности агента (agent_commentary/agent_tool). Не наследуется разрешениямиbot:writeилиbot:admin; требуется только при заданномagentActivity: true.
bot:write. При включении строк активности агента добавьте agent_activity:write.
Устранение неполадок
ClickClack is not configured for account "<id>": задайтеbaseUrl,token(например, черезCLICKCLACK_BOT_TOKEN) иworkspaceдля этой учётной записи.ClickClack workspace not found: <value>: задайте дляworkspaceидентификатор, слаг или имя рабочего пространства, возвращённые ClickClack.- Нет входящих ответов: убедитесь, что токен имеет доступ на чтение данных в реальном времени, и учтите, что бот игнорирует собственные сообщения и сообщения других ботов.
- Не удаётся отправлять сообщения в каналы: убедитесь, что бот является участником рабочего пространства и имеет
bot:write. - Нет меню команд: убедитесь, что
commandMenuне имеет значенияfalse, сервер ClickClack поддерживаетPUT /api/bots/self/commands, а токен имеетcommands:write.