Get started

ClickClack

ClickClack з’єднує OpenClaw із самостійно розміщеним робочим простором ClickClack за допомогою повноцінних токенів ботів ClickClack.

Використовуйте це, якщо потрібно, щоб агент OpenClaw відображався як користувач-бот ClickClack. ClickClack підтримує незалежних службових ботів і ботів, що належать користувачам; боти користувачів зберігають owner_user_id й отримують лише надані вами області дії токена.

Швидке налаштування

Створіть токен бота на сервері ClickClack:

bash
clickclack admin bot create \  --workspace <workspace_id> \  --name "OpenClaw" \  --handle openclaw \  --scopes bot:write \  --plain

Для бота, що належить користувачу, додайте --owner <user_id>.

Налаштуйте OpenClaw:

json5
{  channels: {    clickclack: {      enabled: true,      baseUrl: "https://clickclack.example.com",      token: { source: "env", provider: "default", id: "CLICKCLACK_BOT_TOKEN" },      workspace: "default",      defaultTo: "channel:general",    },  },}

Потім виконайте:

bash
export CLICKCLACK_BOT_TOKEN="ccb_..."openclaw gateway

Обліковий запис вважається налаштованим, лише коли задано всі параметри: baseUrl, token і workspace. workspace приймає ідентифікатор робочого простору (wsp_...), коротке ім’я або назву; під час запуску Gateway перетворює значення на ідентифікатор.

Ключі конфігурації облікового запису

Ключ Типове значення Примітки
baseUrl немає (обов’язково) URL-адреса сервера ClickClack.
token немає (обов’язково) Звичайний рядок або посилання на секрет (source: "env" | "file" | "exec").
workspace немає (обов’язково) Ідентифікатор, коротке ім’я або назва робочого простору.
replyMode "agent" "agent" запускає повний конвеєр агента; "model" надсилає короткі прямі відповіді моделі.
defaultTo "channel:general" Ціль, яку використовують, коли шлях вихідного повідомлення не вказує ціль.
allowFrom ["*"] Список дозволених ідентифікаторів користувачів для вхідних приватних повідомлень і повідомлень каналів.
botUserId визначається автоматично Визначається за ідентичністю токена бота під час запуску.
agentId типове значення маршруту Закріплює вхідні повідомлення цього облікового запису за одним агентом.
toolsAllow немає Список дозволених інструментів для відповідей агента з цього облікового запису.
model, systemPrompt немає Використовуються для відповідей у режимі replyMode: "model".
reconnectMs 1500 Затримка повторного підключення в реальному часі (від 100 до 60000).

Якщо plugins.allow є непорожнім обмежувальним списком, явний вибір ClickClack під час налаштування каналу або виконання openclaw plugins enable clickclack додає clickclack до цього списку. Встановлення під час початкового налаштування використовує таку саму поведінку явного вибору. Ці шляхи не перевизначають plugins.deny або глобальне налаштування plugins.enabled: false. Безпосереднє виконання openclaw plugins install @openclaw/clickclack дотримується звичайної політики встановлення Plugin, а також реєструє ClickClack у наявному списку дозволених.

Кілька ботів

Кожен обліковий запис відкриває власне з’єднання ClickClack у реальному часі й використовує власний токен бота.

json5
{  channels: {    clickclack: {      enabled: true,      baseUrl: "https://clickclack.example.com",      defaultAccount: "service",      accounts: {        service: {          token: { source: "env", provider: "default", id: "CLICKCLACK_SERVICE_BOT_TOKEN" },          workspace: "default",          defaultTo: "channel:general",          agentId: "service-bot",        },        support: {          token: { source: "env", provider: "default", id: "CLICKCLACK_SUPPORT_BOT_TOKEN" },          workspace: "default",          defaultTo: "dm:usr_...",          agentId: "support-bot",        },      },    },  },}

Режими відповіді

  • replyMode: "agent" (типове значення) передає вхідні повідомлення через звичайний конвеєр агента, включно із записуванням сеансу та політикою інструментів.
  • replyMode: "model" оминає конвеєр агента й використовує llm.complete середовища виконання Plugin для коротких прямих відповідей бота (які за потреби визначаються параметрами model і systemPrompt).

Режим моделі виконує запити до моделі від імені визначеного ідентифікатора агента бота, що потребує явного біта довіри plugins.entries.clickclack.llm.allowAgentIdOverride: true:

json5
{  plugins: {    entries: {      clickclack: {        llm: {          allowAgentIdOverride: true,        },      },    },  },}

Залиште біт довіри вимкненим, якщо використовуєте лише типовий режим відповіді agent; у ньому він не потрібен.

Використовуйте режим 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. Значення використовують безпечний набір ClickClack із 128 символів (A-Z, a-z, 0-9, ., _, : і -); недійсні значення пропускаються. Ці зв’язки містять лише ідентифікатори, але ніколи не тіла повідомлень, запити, відповіді моделі, облікові дані чи вивід інструментів.

Рядки активності агента

Типово канал ClickClack нічого не показує, поки виконується хід агента; з’являється лише остаточна відповідь. Установіть agentActivity: true для облікового запису, щоб публікувати постійні рядки повідомлень agent_commentary і agent_tool під час виконання ходу:

json5
{  channels: {    clickclack: {      enabled: true,      token: { source: "env", provider: "default", id: "CLICKCLACK_BOT_TOKEN" },      workspace: "default",      agentActivity: true,    },  },}

Вимоги та поведінка:

  • Типово вимкнено. Стандартні конфігурації та старіші сервери 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:.

Приклади:

bash
openclaw message send --channel clickclack --target channel:general --message "hello"openclaw message send --channel clickclack --target dm:usr_123 --message "hello"openclaw message send --channel clickclack --target thread:msg_123 --message "following up"

Дозволи

Області дії токена ClickClack контролюються API ClickClack.

  • bot:read: читання даних робочих просторів, каналів, повідомлень, гілок, приватних розмов, подій реального часу та профілів.
  • bot:write: можливості bot:read, а також повідомлення каналів, відповіді в гілках, приватні повідомлення й завантаження файлів.
  • bot:admin: можливості bot:write, а також створення каналів.
  • agent_activity:write: постійні рядки активності агента (agent_commentary / agent_tool). Не успадковується від bot:write або bot:admin; потрібна лише тоді, коли встановлено agentActivity: true.

Для звичайного спілкування з агентом OpenClaw потрібна лише область дії 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.
Was this useful?
On this page

On this page