Get started
ClickClack
ClickClack, OpenClaw'u birinci sınıf ClickClack bot belirteçleri aracılığıyla kendi sunucunuzda barındırılan bir ClickClack çalışma alanına bağlar.
Bir OpenClaw ajanının ClickClack bot kullanıcısı olarak görünmesini istediğinizde bunu kullanın. ClickClack, bağımsız hizmet botlarını ve kullanıcıya ait botları destekler; kullanıcıya ait botlar bir owner_user_id tutar ve yalnızca verdiğiniz belirteç kapsamlarını alır.
Hızlı kurulum
ClickClack'te Workspace settings → Integrations → OpenClaw bölümünü açın, bir bot oluşturun ve belirtecini kopyalayın. Ardından kanalı yapılandırın:
openclaw channels add clickclack --base-url https://clickclack.example.com --token ccb_... --workspace defaultworkspace bir çalışma alanı kimliğini (wsp_...), kısa adı veya görünen adı kabul eder.
channels add, kaydettikten sonra sunucuyu, belirteci ve çalışma alanını doğrular; ardından
çalışan Gateway'in yeni hesabı alıp almadığını bildirir. OpenClaw
zaten çalışıyorsa ClickClack otomatik olarak bağlanır ve ikinci bir komuta
gerek kalmaz. Aksi takdirde şununla başlatın:
openclaw gatewayYönlendirmeli kurulum için şunu çalıştırın:
openclaw onboardClickClack'i seçin, ardından istendiğinde sunucu URL'sini, bot belirtecini ve çalışma alanını girin. Yönlendirmeli kurulum, kaydettikten sonra sunucuyu, belirteci ve çalışma alanını denetler; başarısız bir denetim yapılandırmayı silmez.
Alternatif: ortam değişkeni tabanlı belirteç
Varsayılan hesap, yapılandırmada bir belirteç saklamak yerine CLICKCLACK_BOT_TOKEN okuyabilir:
export CLICKCLACK_BOT_TOKEN="ccb_..."openclaw channels add clickclack --base-url https://clickclack.example.com --workspace default --use-envopenclaw gatewayAdlandırılmış hesaplar yapılandırılmış bir belirteç veya belirteç dosyası kullanmalıdır; paylaşılan ortam değişkeni kasıtlı olarak varsayılan hesapla sınırlıdır.
JSON5 referansı
Eşdeğer yapılandırma biçimi şöyledir:
{ channels: { clickclack: { enabled: true, baseUrl: "https://clickclack.example.com", token: { source: "env", provider: "default", id: "CLICKCLACK_BOT_TOKEN" }, workspace: "default", defaultTo: "channel:general", }, },}Bir hesap yalnızca baseUrl, bir belirteç kaynağı ve
workspace ayarlarının tümü yapıldığında yapılandırılmış sayılır. Bir belirteç kaynağı, varsayılan hesap için token, tokenFile veya
CLICKCLACK_BOT_TOKEN olabilir. workspace bir çalışma alanı
kimliğini (wsp_...), kısa adı veya adı kabul eder; Gateway başlangıçta bunu kimliğe çözümler.
Hesap yapılandırma anahtarları
| Anahtar | Varsayılan | Notlar |
|---|---|---|
baseUrl |
yok (zorunlu) | ClickClack sunucu URL'si. |
token |
yok | Düz metin veya gizli değer referansı (source: "env" | "file" | "exec") olarak bot belirteci. |
tokenFile |
yok | Bot belirteci dosyasının yolu; token değerinden önceliklidir. |
workspace |
yok (zorunlu) | Çalışma alanı kimliği, kısa adı veya adı. |
replyMode |
"agent" |
"agent" tam ajan işlem hattını çalıştırır; "model" kısa, doğrudan model tamamlamaları gönderir. |
defaultTo |
"channel:general" |
Giden bir yol hedef belirtmediğinde kullanılan hedef. |
allowFrom |
["*"] |
Gelen doğrudan mesajlar ve kanal mesajları için kullanıcı kimliği izin listesi. |
botUserId |
otomatik algılanır | Başlangıçta bot belirteci kimliğinden çözümlenir. |
agentId |
yönlendirme varsayılanı | Bu hesabın gelen mesajlarını tek bir ajana sabitler. |
toolsAllow |
yok | Bu hesaptan gelen ajan yanıtları için araç izin listesi. |
model, systemPrompt |
yok | replyMode: "model" tamamlamaları tarafından kullanılır. |
commandMenu |
true |
Yerel komutları ClickClack oluşturucu otomatik tamamlamasında yayımlar. |
reconnectMs |
1500 |
Gerçek zamanlı yeniden bağlanma gecikmesi (100 ila 60000). |
plugins.allow boş olmayan kısıtlayıcı bir listeyse kanal kurulumunda
ClickClack'i açıkça seçmek veya openclaw plugins enable clickclack çalıştırmak,
bu listeye clickclack ekler. İlk katılım kurulumu aynı
açık seçim davranışını kullanır. Bu yollar plugins.deny değerini veya
genel bir plugins.enabled: false ayarını geçersiz kılmaz. Doğrudan
openclaw plugins install @openclaw/clickclack, normal
Plugin kurulum politikasını izler ve ayrıca ClickClack'i mevcut bir izin listesine kaydeder.
Birden fazla bot
Her hesap kendi ClickClack gerçek zamanlı bağlantısını açar ve kendi bot belirtecini kullanır.
{ 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", }, }, }, },}Yanıt modları
replyMode: "agent"(varsayılan), gelen mesajları oturum kaydı ve araç politikası dâhil olmak üzere normal ajan işlem hattından geçirir.replyMode: "model", ajan işlem hattını atlar ve doğrudan bot yanıtları için Plugin çalışma zamanınınllm.completedeğerini kullanır; yanıtlar isteğe bağlı olarakmodelvesystemPromptile biçimlendirilir. Tamamlama bütçesi seçilen sağlayıcıya ve modele aittir.
Model modu, tamamlamaları çözümlenen bot ajan kimliğiyle çalıştırır; bunun için açık
plugins.entries.clickclack.llm.allowAgentIdOverride: true güven
biti gerekir:
{ plugins: { entries: { clickclack: { llm: { allowAgentIdOverride: true, }, }, }, },}Yalnızca varsayılan agent yanıt modunu kullanıyorsanız güven bitini kapalı tutun;
bu modda gerekli değildir.
Komut menüsü
Gateway başlangıcında yapılandırılmış her hesap, OpenClaw'un yerel komutlarını ClickClack'te yayımlar. Bunlar, botun kullanıcı adıyla etiketlenmiş olarak oluşturucu otomatik tamamlamasında görünür. Yayımlanan küme her başlangıçta bütünüyle değiştirilir; yerel komut kataloğu boş olduğunda eski bir menünün temizlenmesi de buna dâhildir.
Komut menüsü eşitlemesi varsayılan olarak etkindir. Devre dışı bırakmak için bir hesapta
commandMenu: false ayarını yapın:
{ channels: { clickclack: { enabled: true, token: { source: "env", provider: "default", id: "CLICKCLACK_BOT_TOKEN" }, workspace: "default", commandMenu: false, }, },}Belirteç için commands:write gerekir. Güncel ClickClack bot:write ve
bot:admin paketleri bu kapsamı içerir ve kapsam ayrıca tek başına da verilebilir.
Komut menüleri kullanıma sunulmadan önce oluşturulan belirteçlere kapsamın eklenmesi veya
belirtecin değiştirilmesi gerekebilir.
Eşitleme en iyi çaba esasına göre yapılır ve her Gateway başlangıcında bir kez çalışır. Eksik bir kapsam veya ağ hatası bir uyarı kaydeder; uç noktaya sahip olmayan eski bir ClickClack sunucusu hata ayıklama düzeyinde kayıt oluşturur. Bu hataların hiçbiri gerçek zamanlı başlatmayı engellemez. Menüler, ajan çevrimdışıyken kullanılabilir durumda kalır ve bot çalışma alanından ayrıldığında kaldırılır.
Bu sürüm yalnızca yerel komut belirtimlerini yayımlar. Takma adlar ve skill, Plugin veya özel komut katalogları menüye eklenmez. Bir ad aynı zamanda HTTP eğik çizgi komutu olarak kaydedilmişse ClickClack önce bu kaydı çalıştırır; diğer menü komutları normal mesaj teslimatı üzerinden devam eder.
Hizmetler arası korelasyon kanıtı için agent modunu kullanın. Standart msg_<ulid>
biçimindeki yetkili bir ClickClack mesaj kimliği için kanal,
belirleyici OpenClaw çalıştırma kimliği clickclack:<message-id> değerini türetir. Her model çağrısı
daha sonra tanılamada clickclack:<message-id>:model:<n> olarak görünür; bu
tur ClawRouter kullandığında aynı model çağrısı kimliği X-Request-ID olarak gönderilir.
model modu normal ajan çalıştırma/oturum tanılamasını atlar ve bu nedenle
bu kanıt yolu için uygun değildir.
Gerçek zamanlı bir olay doğrulanmış bir payload.correlation_id içerdiğinde
kanal, bunu yetkili mesaj getirme işleminde ve
sonuçta oluşan ClickClack yanıt isteklerinde X-Correlation-ID olarak taşır. Değerler ClickClack'in güvenli
128 karakterlik kümesini (A-Z, a-z, 0-9, ., _, : ve -) kullanır; geçersiz değerler
atlanır. Bu birleştirmeler yalnızca tanımlayıcıları içerir; asla mesaj gövdelerini,
istemleri, tamamlamaları, kimlik bilgilerini veya araç çıktılarını içermez.
Kalıcı medya teslimatı
Medya içeren ajan yanıtları zorunlu kalıcı teslimatı kullanır. OpenClaw, ilk ClickClack yazma işleminden önce parça başına kararlı mesaj ve yükleme tek seferlik değerleri atar; böylece yeniden deneme, depolama kotasını tüketmek veya yinelenen içerik yayımlamak yerine aynı yüklemeyi ve mesajı yeniden kullanır. Yükleme yeniden başlatmanın ardından zaten mevcutsa OpenClaw özgün yerel yolu veya uzak medya URL'sini tekrar okumaz.
Bu kurtarma sözleşmesi, aşağıdakileri destekleyen bir ClickClack sunucusu gerektirir:
GET /api/uploads/by-nonceile bulunan ve bulunmayan sonuçlardaX-ClickClack-Upload-Nonce: supported.GET /api/messages/by-nonceile bulunan ve bulunmayan sonuçlardaX-ClickClack-Message-Nonce: supported.- Aynı sahip kapsamlı tek seferlik değer ve yükleme için eş etkili mesaj oluşturma ve ek ilişkilendirme.
Eski bir sunucunun genel 404 yanıtı, bir gönderimin mevcut olmadığının kanıtı olarak değerlendirilmez. OpenClaw, yinelenen gönderim riskine girmek yerine teslimatı çözümlenmemiş bırakır; medya üreten ajan yanıtlarını etkinleştirmeden önce ClickClack'i güncelleyin.
Ajan etkinliği satırları
Varsayılan olarak bir ClickClack kanalı, ajan turu çalışırken hiçbir şey göstermez; yalnızca son yanıt iletilir. Tur devam ederken kalıcı agent_commentary ve agent_tool mesaj satırlarını yayımlamak için bir hesapta agentActivity: true ayarını yapın:
{ channels: { clickclack: { enabled: true, token: { source: "env", provider: "default", id: "CLICKCLACK_BOT_TOKEN" }, workspace: "default", agentActivity: true, }, },}Gereksinimler ve davranış:
- Varsayılan olarak kapalıdır. Standart kurulumlara ve eski ClickClack sunucularına dokunulmaz.
agent_activity:writebelirteç kapsamını gerektirir. Bu kapsambot:writekapsamından ayrıdır ve ondan devralınmaz; seçeneği etkinleştirmeden önce bot belirtecini--scopes bot:write,agent_activity:writeile oluşturun (veya kapsamı mevcut bir belirtece verin).- En iyi çaba esaslı işlev azalması. Belirteçte
agent_activity:writeyoksa veya sunucu etkinlik yazma işlemlerini reddederse hatalar kaydedilir ve son yanıt yine normal şekilde teslim edilir; etkinlik satırları görünmez. - Satırlar tur başına (
turn_id) gruplandırılır, bir mantıksal adım bir satır olacak şekilde birleştirilir ve araç satırları Discord/Slack/Telegram ile aynı ilerleme biçimlendirmesini kullanır (araç adı ve komut ayrıntısı). - İlişkilendirme meta verileri. Ajan tarafından oluşturulan gönderiler (etkinlik satırları ve son yanıt), tur için gerçekten kullanılan modelden (geri dönüş sonrasında da) çözümlenen
author_modelveauthor_thinkingalanlarını taşır. Bu sütunları tanımlamayan sunucular bilinmeyen JSON alanlarını yok sayar; bunları kalıcılaştıran sunucular mesaj başına "bu satırı hangi model, hangi düşünme düzeyinde söyledi" sorusunu yanıtlayabilir.
Hedefler
channel:<name-or-id>bir çalışma alanı kanalına gönderir. Önek içermeyen hedefler varsayılan olarakchannel:değerini kullanır.dm:<user_id>söz konusu kullanıcıyla doğrudan bir konuşma oluşturur veya mevcut konuşmayı yeniden kullanır.thread:<message_id>söz konusu iletinin başlattığı ileti dizisinde yanıt verir.
Açık giden hedefler ayrıca clickclack: veya cc: sağlayıcı önekini içerebilir.
Giden medya, ClickClack'in yükleme API'sini kullanır ve ardından kalıcı yüklemeyi oluşturulan kanal iletisine, ileti dizisi yanıtına veya DM'ye ekler. Yerel dosyalar ve desteklenen uzak medya URL'leri, dosya başına 64 MiB sınırıyla OpenClaw'in normal medya erişimi politikasına uyar. Kalıcı kuyruğa alınmış gönderimler, her yükleme ve ileti bölümü için sahip kapsamlı ayrı nonce değerleri kullanır ve ardından aynı nesnelerle ek ilişkilendirmesini yeniden dener. Sunucu sözleşmesi ve kurtarma davranışı için Kalıcı medya teslimatı bölümüne bakın.
Örnekler:
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"İzinler
ClickClack belirteç kapsamları ClickClack API'si tarafından uygulanır.
bot:read: çalışma alanı/kanal/ileti/ileti dizisi/DM/gerçek zamanlı/profil verilerini okur.bot:write:bot:readile birlikte kanal iletileri, ileti dizisi yanıtları, DM'ler, yüklemeler ve komut menüsü yayımlama.bot:admin:bot:writeile birlikte kanal oluşturma.commands:write: botun komut menüsünü yayımlar. Mevcutbot:writevebot:adminpaketlerine dahildir ve ayrı olarak verilebilir.agent_activity:write: kalıcı aracı etkinliği satırları (agent_commentary/agent_tool).bot:writeveyabot:admintarafından devralınmaz; yalnızcaagentActivity: trueayarlandığında gereklidir.
OpenClaw, normal aracı sohbeti ve komut menüsü eşitlemesi için yalnızca mevcut bot:write değerine ihtiyaç duyar. Aracı etkinliği satırlarını etkinleştirirken agent_activity:write ekleyin.
Sorun Giderme
ClickClack is not configured for account "<id>": söz konusu hesap içinbaseUrl,token(örneğinCLICKCLACK_BOT_TOKENaracılığıyla) veworkspacedeğerlerini ayarlayın.ClickClack workspace not found: <value>:workspacedeğerini ClickClack tarafından döndürülen çalışma alanı kimliği, kısa adı veya adı olarak ayarlayın.- Gelen yanıt yok: belirtecin gerçek zamanlı okuma erişimine sahip olduğunu doğrulayın ve botun kendi iletilerini ve diğer botlardan gelen iletileri yok saydığını unutmayın.
- Kanala gönderimler başarısız oluyor: botun çalışma alanının üyesi olduğunu ve
bot:writeiznine sahip olduğunu doğrulayın. - Komut menüsü yok:
commandMenudeğerininfalseolmadığını, ClickClack sunucusununPUT /api/bots/self/commandsözelliğini desteklediğini ve belirtecincommands:writeiznine sahip olduğunu doğrulayın.