owner_user_id i otrzymują wyłącznie przyznane im zakresy tokenu.
Szybka konfiguracja
W ClickClack otwórz Workspace settings → Integrations → OpenClaw, utwórz bota i skopiuj jego token. Następnie skonfiguruj kanał:workspace akceptuje identyfikator obszaru roboczego (wsp_...), slug lub nazwę wyświetlaną.
channels add po zapisaniu weryfikuje serwer, token i obszar roboczy, a następnie
informuje, czy działający Gateway wykrył nowe konto. Jeśli OpenClaw już
działa, ClickClack połączy się automatycznie i nie trzeba wykonywać drugiego
polecenia. W przeciwnym razie uruchom go za pomocą:
Alternatywa: token ze zmiennej środowiskowej
Konto domyślne może odczytywaćCLICKCLACK_BOT_TOKEN zamiast przechowywać token
w konfiguracji:
Dokumentacja referencyjna JSON5
Równoważna struktura konfiguracji wygląda następująco:baseUrl, źródło tokenu oraz
workspace. Źródłem tokenu może być token, tokenFile lub
CLICKCLACK_BOT_TOKEN w przypadku konta domyślnego. workspace akceptuje identyfikator obszaru roboczego
(wsp_...), slug lub nazwę; podczas uruchamiania Gateway przekształca tę wartość na identyfikator.
Klucze konfiguracji konta
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 podczas wdrażania używa tego samego
mechanizmu jawnego wyboru. Te ścieżki nie zastępują ustawienia plugins.deny ani
globalnego ustawienia plugins.enabled: false. Bezpośrednie
openclaw plugins install @openclaw/clickclack podlega standardowej
polityce instalowania 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.Tryby odpowiedzi
replyMode: "agent"(domyślnie) przekazuje wiadomości przychodzące przez standardowy potok agenta, w tym rejestrowanie sesji i politykę narzędzi.replyMode: "model"pomija potok agenta i używallm.completeśrodowiska uruchomieniowego pluginu do bezpośrednich odpowiedzi bota, opcjonalnie kształtowanych przezmodelisystemPrompt. Wybrany dostawca i model określają budżet uzupełnienia.
plugins.entries.clickclack.llm.allowAgentIdOverride: true:
agent, bit zaufania powinien pozostać wyłączony;
nie jest on wówczas potrzebny.
Menu poleceń
Podczas uruchamiania Gateway każde skonfigurowane konto publikuje natywne polecenia OpenClaw w ClickClack. Pojawiają się one w autouzupełnianiu edytora z etykietą uchwytu bota. Opublikowany zestaw jest zastępowany w całości przy każdym uruchomieniu, w tym przez wyczyszczenie nieaktualnego menu, gdy katalog natywnych poleceń jest pusty. Synchronizacja menu poleceń jest domyślnie włączona. Aby z niej zrezygnować, ustawcommandMenu: false na koncie:
commands:write. Obecne pakiety ClickClack bot:write i
bot:admin obejmują ten zakres, który można również przyznać
indywidualnie. Tokeny utworzone przed wprowadzeniem menu poleceń mogą wymagać
dodania zakresu lub zastąpienia tokenu.
Synchronizacja odbywa się w miarę możliwości i jest uruchamiana raz przy każdym starcie Gateway. Brakujący zakres lub awaria
sieci powoduje zapisanie ostrzeżenia; starszy serwer ClickClack bez tego punktu końcowego zapisuje komunikat
na poziomie debugowania. Żadna z tych awarii nie blokuje uruchamiania połączenia w czasie rzeczywistym. Menu pozostają
dostępne, gdy agent jest offline, i są usuwane, gdy bot opuszcza
obszar roboczy.
To wydanie publikuje wyłącznie natywne specyfikacje poleceń. Aliasy oraz
katalogi umiejętności, pluginów i poleceń niestandardowych nie są dodawane do menu. Jeśli
nazwa jest również zarejestrowana jako polecenie HTTP z ukośnikiem, ClickClack najpierw obsługuje tę
rejestrację; pozostałe polecenia menu nadal są przekazywane przez standardowy mechanizm
dostarczania wiadomości.
Trybu agent należy używać do uzyskiwania dowodów korelacji między usługami. Na podstawie wiarygodnego
identyfikatora wiadomości ClickClack w jego kanonicznej postaci msg_<ulid> kanał wyprowadza
deterministyczny identyfikator uruchomienia OpenClaw clickclack:<message-id>. Każde wywołanie modelu jest
następnie widoczne w diagnostyce jako clickclack:<message-id>:model:<n>; gdy ta
tura używa ClawRouter, ten sam identyfikator wywołania modelu jest wysyłany jako X-Request-ID.
Tryb model pomija standardową diagnostykę uruchomienia agenta i sesji, dlatego
nie nadaje się do tej ścieżki dowodowej.
Gdy zdarzenie czasu rzeczywistego zawiera zweryfikowaną wartość payload.correlation_id,
kanał przekazuje ją jako X-Correlation-ID podczas wiarygodnego pobierania wiadomości oraz
w wynikowych żądaniach 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.
Trwałe dostarczanie multimediów
Odpowiedzi agenta zawierające multimedia korzystają z wymaganego trwałego mechanizmu dostarczania. OpenClaw przypisuje stabilne identyfikatory jednorazowe wiadomości i przesyłania dla każdej części przed pierwszym zapisem w ClickClack, dzięki czemu ponowna próba wykorzystuje to samo przesłanie i wiadomość zamiast zużywać limit miejsca lub publikować duplikaty. Jeśli przesłany plik istnieje już po ponownym uruchomieniu, OpenClaw nie odczytuje ponownie pierwotnej ścieżki lokalnej ani zdalnego adresu URL multimediów. Ta umowa odzyskiwania wymaga serwera ClickClack obsługującego:GET /api/uploads/by-noncezX-ClickClack-Upload-Nonce: supportedzarówno dla wyników znalezionych, jak i brakujących.GET /api/messages/by-noncezX-ClickClack-Message-Nonce: supportedzarówno dla wyników znalezionych, jak i brakujących.- Idempotentne tworzenie wiadomości i powiązanie załącznika dla tego samego identyfikatora jednorazowego i przesłania w zakresie właściciela.
Wiersze aktywności agenta
Domyślnie kanał ClickClack nie wyświetla niczego podczas trwania tury agenta; pojawia się tylko końcowa odpowiedź. Aby podczas trwania tury publikować trwałe wiersze wiadomościagent_commentary i agent_tool, ustaw agentActivity: true na koncie:
- Domyślnie wyłączone. Standardowe konfiguracje i starsze serwery ClickClack pozostają bez zmian.
- Wymaga zakresu tokenu
agent_activity:write. Ten zakres jest niezależny odbot:writei nie jest przez niego dziedziczony; przed włączeniem opcji należy utworzyć token bota z--scopes bot:write,agent_activity:write(lub przyznać ten zakres istniejącemu tokenowi). - Łagodne ograniczanie funkcjonalności. Jeśli token nie ma
agent_activity:writelub serwer odrzuca zapisy aktywności, awarie są rejestrowane, a końcowa odpowiedź nadal jest dostarczana normalnie; wiersze aktywności nie są wyświetlane. - Wiersze są grupowane według tury (
turn_id) i scalane tak, aby jeden logiczny krok odpowiadał jednemu wierszowi, a wiersze narzędzi używały tego samego formatowania postępu co Discord/Slack/Telegram (nazwa narzędzia i szczegóły polecenia). - Metadane atrybucji. Wpisy utworzone przez agenta (wiersze aktywności i końcowa odpowiedź) zawierają pola
author_modeliauthor_thinkingustalone na podstawie modelu faktycznie użytego w danej turze (również po użyciu rozwiązania rezerwowego). Serwery, które nie definiują tych kolumn, ignorują nieznane pola JSON; serwery, które je utrwalają, mogą dla każdej wiadomości odpowiedzieć na pytanie „który model wypowiedział ten wiersz i na jakim poziomie rozumowania”.
Cele
channel:<name-or-id>wysyła do kanału obszaru roboczego. Cele bez prefiksu domyślnie wskazująchannel:.dm:<user_id>tworzy lub ponownie wykorzystuje bezpośrednią konwersację z tym użytkownikiem.thread:<message_id>odpowiada w wątku rozpoczętym przez tę wiadomość.
clickclack: lub cc:.
Wychodzące multimedia korzystają z interfejsu API przesyłania ClickClack, a następnie trwały przesłany plik jest dołączany
do utworzonej wiadomości na kanale, odpowiedzi w wątku lub wiadomości prywatnej. Pliki lokalne i obsługiwane
adresy URL zdalnych multimediów podlegają standardowej polityce dostępu do multimediów OpenClaw, z limitem 64 MiB
na plik. Trwałe wysyłki z kolejki używają oddzielnych wartości jednorazowych o zakresie właściciela dla każdego
przesyłanego pliku i każdej części wiadomości, a następnie ponawiają powiązanie załącznika z tymi samymi
obiektami. Kontrakt serwera i zachowanie podczas odzyskiwania opisano w sekcji Trwałe dostarczanie multimediów.
Przykłady:
Uprawnienia
Zakresy tokenów ClickClack są egzekwowane przez interfejs API ClickClack.bot:read: odczyt danych obszaru roboczego, kanałów, wiadomości, wątków, wiadomości prywatnych, komunikacji w czasie rzeczywistym i profili.bot:write:bot:readoraz wiadomości na kanałach, odpowiedzi w wątkach, wiadomości prywatne, przesyłanie plików i publikowanie menu poleceń.bot:admin:bot:writeoraz tworzenie kanałów.commands:write: publikowanie menu poleceń bota. Uwzględnione w obecnych pakietachbot:writeibot:adminoraz możliwe do przyznania osobno.agent_activity:write: trwałe wiersze aktywności agenta (agent_commentary/agent_tool). Nie są dziedziczone przezbot:writeanibot:admin; wymagane tylko wtedy, gdy ustawionoagentActivity: true.
bot:write. Podczas włączania wierszy aktywności agenta należy dodać agent_activity:write.
Rozwiązywanie problemów
ClickClack is not configured for account "<id>": ustawbaseUrl,token(na przykład za pomocąCLICKCLACK_BOT_TOKEN) orazworkspacedla tego konta.ClickClack workspace not found: <value>: ustawworkspacena identyfikator, uproszczoną nazwę lub nazwę obszaru roboczego zwróconą przez ClickClack.- Brak odpowiedzi przychodzących: upewnij się, ż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 kończy się niepowodzeniem: sprawdź, czy bot jest członkiem obszaru roboczego i ma
bot:write. - Brak menu poleceń: upewnij się, że
commandMenunie ma wartościfalse, serwer ClickClack obsługujePUT /api/bots/self/commands, a token macommands:write.