owner_user_id і отримують лише надані вами області доступу токена.
Швидке налаштування
У ClickClack відкрийте Workspace settings → Integrations → OpenClaw, створіть бота та скопіюйте його токен. Потім налаштуйте канал:workspace приймає ідентифікатор робочого простору (wsp_...), slug або відображувану назву.
Після збереження channels add перевіряє сервер, токен і робочий простір, а потім
повідомляє, чи підхопив запущений Gateway новий обліковий запис. Якщо OpenClaw
уже запущено, ClickClack підключиться автоматично й друга команда не
потрібна. Інакше запустіть його командою:
Альтернатива: токен зі змінної середовища
Обліковий запис за замовчуванням може зчитуватиCLICKCLACK_BOT_TOKEN замість зберігання токена
в конфігурації:
Довідка щодо JSON5
Еквівалентна структура конфігурації:baseUrl, джерело токена та
workspace. Джерелом токена може бути token, tokenFile або
CLICKCLACK_BOT_TOKEN для облікового запису за замовчуванням. workspace приймає ідентифікатор робочого простору
(wsp_...), slug або назву; під час запуску 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.