Get started
ClickClack
ClickClack łączy OpenClaw z samodzielnie hostowaną przestrzenią roboczą ClickClack za pomocą natywnie obsługiwanych tokenów botów ClickClack.
Użyj tej integracji, jeśli chcesz, aby agent OpenClaw występował jako użytkownik-bot ClickClack. ClickClack obsługuje niezależne boty usługowe oraz boty należące do użytkowników; boty należące do użytkowników zachowują owner_user_id i otrzymują wyłącznie przyznane im zakresy tokenu.
Szybka konfiguracja
Utwórz token bota na serwerze ClickClack:
clickclack admin bot create \ --workspace <workspace_id> \ --name "OpenClaw" \ --handle openclaw \ --scopes bot:write \ --plainW przypadku bota należącego do użytkownika dodaj --owner <user_id>.
Skonfiguruj OpenClaw:
{ channels: { clickclack: { enabled: true, baseUrl: "https://clickclack.example.com", token: { source: "env", provider: "default", id: "CLICKCLACK_BOT_TOKEN" }, workspace: "default", defaultTo: "channel:general", }, },}Następnie uruchom:
export CLICKCLACK_BOT_TOKEN="ccb_..."openclaw gatewayKonto jest uznawane za skonfigurowane tylko wtedy, gdy ustawiono wszystkie pola: baseUrl, token i workspace. Pole workspace przyjmuje identyfikator przestrzeni roboczej (wsp_...), uproszczoną nazwę lub nazwę; podczas uruchamiania Gateway zamienia tę wartość na identyfikator.
Klucze konfiguracji konta
| Klucz | Wartość domyślna | Uwagi |
|---|---|---|
baseUrl |
brak (wymagane) | Adres URL serwera ClickClack. |
token |
brak (wymagane) | Zwykły ciąg znaków lub odwołanie do sekretu (source: "env" | "file" | "exec"). |
workspace |
brak (wymagane) | Identyfikator, uproszczona nazwa lub nazwa przestrzeni roboczej. |
replyMode |
"agent" |
"agent" uruchamia pełny potok agenta; "model" wysyła krótkie, bezpośrednie odpowiedzi modelu. |
defaultTo |
"channel:general" |
Cel używany, gdy ścieżka wychodząca nie określa celu. |
allowFrom |
["*"] |
Lista dozwolonych identyfikatorów użytkowników dla przychodzących wiadomości prywatnych i kanałowych. |
botUserId |
wykrywane automatycznie | Ustalane na podstawie tożsamości tokenu bota podczas uruchamiania. |
agentId |
domyślna wartość trasy | Przypisuje wiadomości przychodzące tego konta do jednego agenta. |
toolsAllow |
brak | Lista dozwolonych narzędzi dla odpowiedzi agenta z tego konta. |
model, systemPrompt |
brak | Używane do uzupełnień w trybie replyMode: "model". |
reconnectMs |
1500 |
Opóźnienie ponownego połączenia w czasie rzeczywistym (od 100 do 60000). |
Jeśli plugins.allow jest niepustą listą ograniczającą, jawne wybranie
ClickClack podczas konfiguracji kanału lub uruchomienie openclaw plugins enable clickclack
dodaje clickclack do tej listy. Instalacja w ramach wdrażania używa takiego samego
mechanizmu jawnego wyboru. Te ścieżki nie zastępują ustawienia plugins.deny ani
globalnego ustawienia plugins.enabled: false. Bezpośrednie użycie
openclaw plugins install @openclaw/clickclack podlega standardowym zasadom
instalacji pluginów i również zapisuje ClickClack na istniejącej liście dozwolonych.
Wiele botów
Każde konto otwiera własne połączenie ClickClack w czasie rzeczywistym i używa własnego tokenu bota.
{ 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", }, }, }, },}Tryby odpowiedzi
replyMode: "agent"(domyślnie) przekazuje wiadomości przychodzące przez standardowy potok agenta, w tym rejestrowanie sesji i zasady używania narzędzi.replyMode: "model"pomija potok agenta i używallm.completeśrodowiska wykonawczego pluginu do generowania krótkich, bezpośrednich odpowiedzi bota, opcjonalnie kształtowanych przezmodelisystemPrompt.
Tryb modelu uruchamia uzupełnienia dla ustalonego identyfikatora agenta bota, co wymaga
jawnego ustawienia zaufania plugins.entries.clickclack.llm.allowAgentIdOverride: true:
{ plugins: { entries: { clickclack: { llm: { allowAgentIdOverride: true, }, }, }, },}Pozostaw to ustawienie zaufania wyłączone, jeśli używasz tylko domyślnego trybu odpowiedzi
agent; nie jest ono w nim potrzebne.
Używaj trybu agent do uzyskiwania dowodów korelacji między usługami. Dla miarodajnego
identyfikatora wiadomości ClickClack w kanonicznym formacie msg_<ulid> kanał wyprowadza
deterministyczny identyfikator przebiegu OpenClaw clickclack:<message-id>. Każde wywołanie modelu
jest następnie widoczne w diagnostyce jako clickclack:<message-id>:model:<n>; gdy ten
przebieg używa ClawRouter, ten sam identyfikator wywołania modelu jest wysyłany jako X-Request-ID.
Tryb model pomija standardową diagnostykę przebiegu i sesji agenta, dlatego
nie nadaje się do tej ścieżki dowodowej.
Gdy zdarzenie czasu rzeczywistego zawiera zweryfikowane payload.correlation_id, kanał
przekazuje je jako X-Correlation-ID podczas miarodajnego pobierania wiadomości oraz
wynikających z niego żądań odpowiedzi ClickClack. Wartości używają bezpiecznego,
128-znakowego zestawu ClickClack (A-Z, a-z, 0-9, ., _, : i -); nieprawidłowe wartości
są pomijane. Te powiązania zawierają wyłącznie identyfikatory, nigdy treści wiadomości,
promptów, uzupełnień, danych uwierzytelniających ani danych wyjściowych narzędzi.
Wiersze aktywności agenta
Domyślnie kanał ClickClack nie wyświetla niczego podczas trwania przebiegu agenta; pojawia się tylko odpowiedź końcowa. Ustaw agentActivity: true na koncie, aby publikować trwałe wiersze wiadomości agent_commentary i agent_tool podczas trwania przebiegu:
{ channels: { clickclack: { enabled: true, token: { source: "env", provider: "default", id: "CLICKCLACK_BOT_TOKEN" }, workspace: "default", agentActivity: true, }, },}Wymagania i działanie:
- Domyślnie wyłączone. Standardowe konfiguracje i starsze serwery ClickClack pozostają bez zmian.
- Wymaga zakresu tokenu
agent_activity:write. Ten zakres jest odrębny odbot:writei nie jest po nim dziedziczony; przed włączeniem tej opcji utwórz token bota z--scopes bot:write,agent_activity:writealbo przyznaj ten zakres istniejącemu tokenowi. - Łagodne ograniczenie funkcjonalności. Jeśli token nie ma zakresu
agent_activity:writelub serwer odrzuca zapisy aktywności, błędy są rejestrowane, a odpowiedź końcowa nadal jest dostarczana normalnie; wiersze aktywności się nie pojawiają. - Wiersze są grupowane według przebiegu (
turn_id) i scalane tak, aby jeden logiczny krok odpowiadał jednemu wierszowi, a wiersze narzędzi używają tego samego formatowania postępu co Discord/Slack/Telegram (nazwa narzędzia oraz szczegóły polecenia). - Metadane przypisania autorstwa. Wpisy utworzone przez agenta (wiersze aktywności i odpowiedź końcowa) zawierają pola
author_modeliauthor_thinking, ustalone na podstawie modelu rzeczywiście użytego w przebiegu, również po zastosowaniu modelu zapasowego. Serwery, które nie definiują tych kolumn, ignorują nieznane pola JSON; serwery, które je zapisują, mogą dla każdej wiadomości odpowiedzieć na pytanie „który model wypowiedział ten wiersz i przy jakim poziomie rozumowania”.
Cele
channel:<name-or-id>wysyła do kanału przestrzeni roboczej. Cele bez prefiksu domyślnie otrzymują prefikschannel:.dm:<user_id>tworzy lub ponownie wykorzystuje bezpośrednią rozmowę z danym użytkownikiem.thread:<message_id>odpowiada w wątku zakorzenionym w danej wiadomości.
Jawne cele wychodzące mogą również zawierać prefiks dostawcy clickclack: lub cc:.
Przykłady:
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"Uprawnienia
Zakresy tokenów ClickClack są egzekwowane przez API ClickClack.
bot:read: odczyt danych przestrzeni roboczej, kanałów, wiadomości, wątków, wiadomości prywatnych, komunikacji w czasie rzeczywistym i profili.bot:write: uprawnieniabot:readoraz możliwość wysyłania wiadomości kanałowych, odpowiedzi w wątkach, wiadomości prywatnych i przesyłania plików.bot:admin: uprawnieniabot:writeoraz możliwość tworzenia kanałów.agent_activity:write: trwałe wiersze aktywności agenta (agent_commentary/agent_tool). Nie jest dziedziczony przezbot:writeanibot:admin; jest wymagany tylko po ustawieniuagentActivity: true.
Do zwykłego czatu z agentem OpenClaw potrzebuje tylko bot:write. Dodaj agent_activity:write podczas włączania wierszy aktywności agenta.
Rozwiązywanie problemów
ClickClack is not configured for account "<id>": ustawbaseUrl,token(na przykład przezCLICKCLACK_BOT_TOKEN) orazworkspacedla tego konta.ClickClack workspace not found: <value>: ustawworkspacena identyfikator, uproszczoną nazwę lub nazwę przestrzeni roboczej zwróconą przez ClickClack.- Brak odpowiedzi na wiadomości przychodzące: potwierdź, że token ma uprawnienia do odczytu w czasie rzeczywistym, i pamiętaj, że bot ignoruje własne wiadomości oraz wiadomości od innych botów.
- Wysyłanie do kanału nie działa: sprawdź, czy bot jest członkiem przestrzeni roboczej i ma uprawnienie
bot:write.