Üretime hazır Slack uygulama entegrasyonları üzerinden DM’ler ve kanallar için uygundur. Varsayılan mod Socket Mode’dur; HTTP Request URL’leri de desteklenir.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Eşleştirme
Slack DM’leri varsayılan olarak eşleştirme modunu kullanır.
Slash komutları
Yerel komut davranışı ve komut kataloğu.
Kanal sorun giderme
Kanallar arası tanılama ve onarım playbook’ları.
Socket Mode veya HTTP Request URL’leri seçme
Her iki aktarım da üretime hazırdır ve mesajlaşma, slash komutları, App Home ve etkileşim için özellik eşitliğine ulaşır. Özelliklere göre değil, dağıtım yapısına göre seçin.| Konu | Socket Mode (varsayılan) | HTTP Request URL’leri |
|---|---|---|
| Herkese açık Gateway URL’si | Gerekli değil | Gerekli (DNS, TLS, ters proxy veya tünel) |
| Giden ağ | wss-primary.slack.com adresine giden WSS erişilebilir olmalıdır | Giden WS yok; yalnızca gelen HTTPS |
| Gerekli token’lar | Bot token’ı (xoxb-...) + connections:write içeren App-Level Token (xapp-...) | Bot token’ı (xoxb-...) + Signing Secret |
| Geliştirme dizüstüsü / güvenlik duvarı arkasında | Olduğu gibi çalışır | Herkese açık bir tünel (ngrok, Cloudflare Tunnel, Tailscale Funnel) veya hazırlama Gateway’i gerekir |
| Yatay ölçekleme | Uygulama ve host başına bir Socket Mode oturumu; birden çok Gateway ayrı Slack uygulamaları gerektirir | Durumsuz POST işleyicisi; birden çok Gateway replikası, yük dengeleyici arkasında tek uygulamayı paylaşabilir |
| Tek Gateway’de çoklu hesap | Desteklenir; her hesap kendi WS’sini açar | Desteklenir; kayıtların çakışmaması için her hesabın benzersiz bir webhookPath değerine (varsayılan /slack/events) ihtiyacı vardır |
| Slash komutu aktarımı | WS bağlantısı üzerinden teslim edilir; slash_commands[].url yok sayılır | Slack, slash_commands[].url adresine POST gönderir; komutun çalışması için alan gereklidir |
| İstek imzalama | Kullanılmaz (kimlik doğrulama App-Level Token’dır) | Slack her isteği imzalar; OpenClaw signingSecret ile doğrular |
| Bağlantı kopmasında kurtarma | Slack SDK otomatik yeniden bağlanır; gateway’in pong zaman aşımı aktarım ayarı uygulanır | Kopacak kalıcı bağlantı yoktur; yeniden denemeler Slack tarafından istek başına yapılır |
Tek Gateway host’ları, geliştirme dizüstüleri ve
*.slack.com adresine giden bağlantı kurabilen ancak gelen HTTPS kabul edemeyen şirket içi ağlar için Socket Mode’u seçin.Yük dengeleyici arkasında birden çok Gateway replikası çalıştırırken, giden WSS engellenmiş ancak gelen HTTPS izinliyken veya Slack webhook’larını zaten bir ters proxy’de sonlandırıyorsanız HTTP Request URL’lerini seçin.Hızlı kurulum
- Socket Mode (varsayılan)
- HTTP Request URL'leri
Yeni bir Slack uygulaması oluşturun
api.slack.com/apps sayfasını açın → Create New App → From a manifest → çalışma alanınızı seçin → aşağıdaki manifestlerden birini yapıştırın → Next → Create.Slack uygulamayı oluşturduktan sonra:
Önerilen, paketle gelen Slack plugin’inin tam özellik kümesiyle eşleşir: App Home, slash komutları, dosyalar, tepkiler, sabitlemeler, grup DM’leri ve emoji/kullanıcı grubu okumaları. Çalışma alanı politikası kapsamları kısıtlıyorsa Minimal seçin — DM’leri, kanal/grup geçmişini, bahsetmeleri ve slash komutlarını kapsar ancak dosyaları, tepkileri, sabitlemeleri, grup DM (
mpim:*), emoji:read ve usergroups:read kapsamlarını çıkarır. Kapsam başına gerekçe ve ek slash komutları gibi eklemeli seçenekler için Manifest ve kapsam kontrol listesi bölümüne bakın.- Basic Information → App-Level Tokens → Generate Token and Scopes:
connections:writeekleyin, kaydedin,xapp-...değerini kopyalayın. - Install App → Install to Workspace:
xoxb-...Bot User OAuth Token’ını kopyalayın.
Socket Mode aktarım ayarı
OpenClaw, Slack SDK istemcisi pong zaman aşımını Socket Mode için varsayılan olarak 15 saniyeye ayarlar. Aktarım ayarlarını yalnızca çalışma alanına veya ana makineye özgü ayar gerektiğinde geçersiz kılın:clientPingTimeout, SDK bir istemci ping’i gönderdikten sonraki pong bekleme süresidir; serverPingTimeout, Slack sunucu ping’leri için bekleme süresidir. Uygulama mesajları ve olayları aktarım canlılık sinyalleri değil, uygulama durumu olarak kalır.
Manifest ve kapsam kontrol listesi
Temel Slack uygulama manifesti Socket Mode ve HTTP Request URLs için aynıdır. Yalnızcasettings bloğu (ve slash komutunun url değeri) farklıdır.
Temel manifest (Socket Mode varsayılanı):
settings değerini HTTP varyantıyla değiştirin ve her slash komutuna url ekleyin. Genel URL gereklidir:
Ek manifest ayarları
Yukarıdaki varsayılanları genişleten farklı özellikleri kullanıma sunun. Varsayılan manifest, Slack App Home Home sekmesini etkinleştirir veapp_home_opened olayına abone olur. Bir çalışma alanı üyesi Home sekmesini açtığında OpenClaw, views.publish ile güvenli bir varsayılan Home görünümü yayımlar; konuşma yükü veya özel yapılandırma dahil edilmez. Messages sekmesi Slack DM’leri için etkin kalır.
İsteğe bağlı yerel slash komutları
İsteğe bağlı yerel slash komutları
Birden çok yerel slash komutu, nüanslı şekilde yapılandırılmış tek bir komut yerine kullanılabilir:
/statuskomutu ayrılmış olduğundan/statusyerine/agentstatuskullanın.- Aynı anda en fazla 25 slash komutu kullanılabilir hale getirilebilir.
features.slash_commands bölümünüzü kullanılabilir komutlar alt kümesiyle değiştirin:- Socket Mode (varsayılan)
- HTTP Request URLs
İsteğe bağlı yazarlık kapsamları (yazma işlemleri)
İsteğe bağlı yazarlık kapsamları (yazma işlemleri)
Giden mesajların varsayılan Slack uygulaması kimliği yerine etkin ajan kimliğini (özel kullanıcı adı ve simge) kullanmasını istiyorsanız
chat:write.customize bot kapsamını ekleyin.Bir emoji simgesi kullanırsanız Slack :emoji_name: söz dizimini bekler.İsteğe bağlı kullanıcı token kapsamları (okuma işlemleri)
İsteğe bağlı kullanıcı token kapsamları (okuma işlemleri)
channels.slack.userToken yapılandırırsanız tipik okuma kapsamları şunlardır:channels:history,groups:history,im:history,mpim:historychannels:read,groups:read,im:read,mpim:readusers:readreactions:readpins:reademoji:readsearch:read(Slack arama okumalarına bağımlıysanız)
Token modeli
- Socket Mode için
botToken+appTokengereklidir. - HTTP modu
botToken+signingSecretgerektirir. botToken,appToken,signingSecretveuserTokendüz metin dizelerini veya SecretRef nesnelerini kabul eder.- Yapılandırma token’ları ortam değişkeni yedeğini geçersiz kılar.
SLACK_BOT_TOKEN/SLACK_APP_TOKENortam değişkeni yedeği yalnızca varsayılan hesap için geçerlidir.userToken(xoxp-...) yalnızca yapılandırma üzerinden verilir (ortam değişkeni yedeği yoktur) ve varsayılan olarak salt okunur davranışa ayarlanır (userTokenReadOnly: true).
- Slack hesap incelemesi kimlik bilgisi başına
*Sourceve*Statusalanlarını izler (botToken,appToken,signingSecret,userToken). - Durum
available,configured_unavailableveyamissingolur. configured_unavailable, hesabın SecretRef veya başka bir satır içi olmayan gizli kaynak üzerinden yapılandırıldığı, ancak geçerli komut/çalışma zamanı yolunun gerçek değeri çözemediği anlamına gelir.- HTTP modunda
signingSecretStatusdahil edilir; Socket Mode’da gerekli çiftbotTokenStatus+appTokenStatusolur.
Eylemler ve kapılar
Slack eylemlerichannels.slack.actions.* tarafından kontrol edilir.
Geçerli Slack araçlarında kullanılabilen eylem grupları:
| Grup | Varsayılan |
|---|---|
| messages | etkin |
| reactions | etkin |
| pins | etkin |
| memberInfo | etkin |
| emojiList | etkin |
send, upload-file, download-file, read, edit, delete, pin, unpin, list-pins, member-info ve emoji-list içerir. download-file, gelen dosya yer tutucularında gösterilen Slack dosya kimliklerini kabul eder ve görüntüler için görüntü önizlemeleri, diğer dosya türleri için yerel dosya meta verileri döndürür.
Erişim denetimi ve yönlendirme
- DM ilkesi
- Kanal ilkesi
- Bahsetmeler ve kanal kullanıcıları
channels.slack.dmPolicy DM erişimini kontrol eder. channels.slack.allowFrom standart DM izin listesidir.pairing(varsayılan)allowlistopen(channels.slack.allowFromiçinde"*"bulunmasını gerektirir)disabled
dm.enabled(varsayılan true)channels.slack.allowFromdm.allowFrom(eski)dm.groupEnabled(grup DM’leri varsayılan false)dm.groupChannels(isteğe bağlı MPIM izin listesi)
channels.slack.accounts.default.allowFromyalnızcadefaulthesabına uygulanır.- Adlandırılmış hesaplar, kendi
allowFromdeğerleri ayarlanmamışsachannels.slack.allowFromdeğerini devralır. - Adlandırılmış hesaplar
channels.slack.accounts.default.allowFromdeğerini devralmaz.
channels.slack.dm.policy ve channels.slack.dm.allowFrom uyumluluk için hâlâ okunur. openclaw doctor --fix, erişimi değiştirmeden yapabildiğinde bunları dmPolicy ve allowFrom öğelerine geçirir.DM’lerde eşleştirme openclaw pairing approve slack <code> kullanır.İş parçacıkları, oturumlar ve yanıt etiketleri
- DM’ler
directolarak, kanallarchannelolarak, MPIM’lergroupolarak yönlendirilir. - Slack rota bağlamaları ham eş kimliklerini ve
channel:C12345678,user:U12345678ve<@U12345678>gibi Slack hedef biçimlerini kabul eder. - Varsayılan
session.dmScope=mainile Slack DM’leri ajan ana oturumuna daraltılır. - Kanal oturumları:
agent:<agentId>:slack:channel:<channelId>. - İş parçacığı yanıtları, geçerli olduğunda iş parçacığı oturum sonekleri (
:thread:<threadTs>) oluşturabilir. - OpenClaw’ın açık bir bahsetme gerektirmeden üst düzey mesajları işlediği kanallarda,
offolmayanreplyToMode, işlenen her köküagent:<agentId>:slack:channel:<channelId>:thread:<rootTs>içine yönlendirir; böylece görünen Slack iş parçacığı ilk turdan itibaren tek bir OpenClaw oturumuyla eşleşir. channels.slack.thread.historyScopevarsayılanıthread;thread.inheritParentvarsayılanıfalse.channels.slack.thread.initialHistoryLimit, yeni bir iş parçacığı oturumu başladığında kaç mevcut iş parçacığı mesajının getirileceğini kontrol eder (varsayılan20; devre dışı bırakmak için0ayarlayın).channels.slack.thread.requireExplicitMention(varsayılanfalse):trueolduğunda örtük iş parçacığı bahsetmelerini bastırır; böylece bot, iş parçacığına daha önce katılmış olsa bile yalnızca iş parçacıkları içindeki açık@botbahsetmelerine yanıt verir. Bu olmadan, botun katıldığı bir iş parçacığındaki yanıtlarrequireMentionkapısını atlar.
channels.slack.replyToMode:off|first|all|batched(varsayılanoff)channels.slack.replyToModeByChatType:direct|group|channelbaşına- doğrudan sohbetler için eski yedek:
channels.slack.dm.replyToMode
[[reply_to_current]][[reply_to:<id>]]
message aracından açık Slack iş parçacığı yanıtları için Slack’ten iş parçacığı yanıtını üst kanala da yayınlamasını istemek üzere action: "send" ile replyBroadcast: true ve threadId veya replyTo ayarlayın. Bu, Slack’in chat.postMessage reply_broadcast bayrağına eşlenir ve medya yüklemeleri için değil, yalnızca metin veya Block Kit gönderimleri için desteklenir.
Bir message araç çağrısı bir Slack iş parçacığı içinde çalıştığında ve aynı kanalı hedeflediğinde, OpenClaw normalde geçerli Slack iş parçacığını replyToMode uyarınca devralır. Bunun yerine yeni bir üst kanal mesajını zorlamak için action: "send" veya action: "upload-file" üzerinde topLevel: true ayarlayın. threadId: null aynı üst düzey vazgeçme seçeneği olarak kabul edilir.
replyToMode="off" Slack’te açık [[reply_to_*]] etiketleri dahil tüm yanıt iş parçacıklarını devre dışı bırakır. Bu, "off" modunda açık etiketlerin hâlâ dikkate alındığı Telegram’dan farklıdır. Slack iş parçacıkları mesajları kanaldan gizlerken Telegram yanıtları satır içinde görünür kalır.Onay tepkileri
ackReaction, OpenClaw gelen bir mesajı işlerken bir onay emojisi gönderir.
Çözümleme sırası:
channels.slack.accounts.<accountId>.ackReactionchannels.slack.ackReactionmessages.ackReaction- ajan kimliği emoji yedeği (
agents.list[].identity.emoji, aksi halde ”👀”)
- Slack kısa kodlar bekler (örneğin
"eyes"). - Slack hesabı veya genel olarak tepkiyi devre dışı bırakmak için
""kullanın.
Metin akışı
channels.slack.streaming canlı önizleme davranışını kontrol eder:
off: canlı önizleme akışını devre dışı bırakır.partial(varsayılan): önizleme metnini en son kısmi çıktı ile değiştirir.block: parçalı önizleme güncellemelerini ekler.progress: oluşturma sırasında ilerleme durumu metnini gösterir, ardından son metni gönderir.streaming.preview.toolProgress: taslak önizleme etkinken araç/ilerleme güncellemelerini aynı düzenlenen önizleme mesajına yönlendirir (varsayılan:true). Ayrı araç/ilerleme mesajlarını korumak içinfalseayarlayın.streaming.preview.commandText/streaming.progress.commandText: ham komut/exec metnini gizlerken kompakt araç ilerleme satırlarını korumak içinstatusolarak ayarlayın (varsayılan:raw).
channels.slack.streaming.nativeTransport, channels.slack.streaming.mode partial olduğunda Slack yerel metin akışını kontrol eder (varsayılan: true).
- Yerel metin akışının ve Slack asistan dizisi durumunun görünmesi için bir yanıt dizisi kullanılabilir olmalıdır. Dizi seçimi yine
replyToModeayarını izler. - Kanal, grup sohbeti ve üst düzey DM kökleri, yerel akış kullanılamadığında veya yanıt dizisi olmadığında normal taslak önizlemesini kullanmaya devam edebilir.
- Üst düzey Slack DM’leri varsayılan olarak dizi dışında kalır, bu nedenle Slack’in dizi tarzı yerel akış/durum önizlemesini göstermez; bunun yerine OpenClaw DM içinde bir taslak önizlemesi gönderir ve düzenler.
- Medya ve metin olmayan payload’lar normal teslimata geri döner.
- Medya/hata finalleri bekleyen önizleme düzenlemelerini iptal eder; uygun metin/blok finalleri yalnızca önizlemeyi yerinde düzenleyebildiklerinde boşaltılır.
- Akış yanıtın ortasında başarısız olursa OpenClaw kalan payload’lar için normal teslimata geri döner.
channels.slack.streamMode(replace | status_final | append),channels.slack.streaming.modeiçin eski bir çalışma zamanı takma adıdır.- boolean
channels.slack.streaming,channels.slack.streaming.modevechannels.slack.streaming.nativeTransportiçin eski bir çalışma zamanı takma adıdır. - eski
channels.slack.nativeStreaming,channels.slack.streaming.nativeTransportiçin bir çalışma zamanı takma adıdır. - Kalıcı Slack akış yapılandırmasını kurallı anahtarlara yeniden yazmak için
openclaw doctor --fixçalıştırın.
Yazıyor tepkisi yedeği
typingReaction, OpenClaw bir yanıtı işlerken gelen Slack mesajına geçici bir tepki ekler, ardından çalışma bittiğinde bunu kaldırır. Bu, varsayılan bir “yazıyor…” durum göstergesi kullanan dizi yanıtlarının dışında en kullanışlıdır.
Çözümleme sırası:
channels.slack.accounts.<accountId>.typingReactionchannels.slack.typingReaction
- Slack kısa kodlar bekler (örneğin
"hourglass_flowing_sand"). - Tepki en iyi çabayla uygulanır ve yanıt veya hata yolu tamamlandıktan sonra temizlik otomatik olarak denenir.
Medya, parçalara ayırma ve teslimat
Gelen ekler
Gelen ekler
Slack dosya ekleri, Slack tarafından barındırılan özel URL’lerden indirilir (token ile kimlik doğrulamalı istek akışı) ve getirme başarılı olduğunda ve boyut sınırları izin verdiğinde medya deposuna yazılır. Dosya yer tutucuları Slack
fileId değerini içerir, böylece ajanlar özgün dosyayı download-file ile getirebilir.İndirmeler sınırlı boşta kalma ve toplam zaman aşımları kullanır. Slack dosyası alma işlemi takılır veya başarısız olursa OpenClaw mesajı işlemeye devam eder ve dosya yer tutucusuna geri döner.Çalışma zamanı gelen boyut sınırı, channels.slack.mediaMaxMb ile geçersiz kılınmadığı sürece varsayılan olarak 20MB olur.Giden metin ve dosyalar
Giden metin ve dosyalar
- metin parçaları
channels.slack.textChunkLimitkullanır (varsayılan 4000) channels.slack.chunkMode="newline"paragraf öncelikli bölmeyi etkinleştirir- dosya gönderimleri Slack yükleme API’lerini kullanır ve dizi yanıtlarını (
thread_ts) içerebilir - giden medya sınırı yapılandırıldığında
channels.slack.mediaMaxMbdeğerini izler; aksi halde kanal gönderimleri medya pipeline’ındaki MIME türü varsayılanlarını kullanır
Teslimat hedefleri
Teslimat hedefleri
Tercih edilen açık hedefler:
- DM’ler için
user:<id> - kanallar için
channel:<id>
Komutlar ve slash davranışı
Slash komutları Slack’te tek bir yapılandırılmış komut veya birden fazla yerel komut olarak görünür. Komut varsayılanlarını değiştirmek içinchannels.slack.slashCommand yapılandırın:
enabled: falsename: "openclaw"sessionPrefix: "slack:slash"ephemeral: true
channels.slack.commands.native: true veya commands.native: true ile etkinleştirilir.
- Yerel komut otomatik modu Slack için kapalıdır, bu nedenle
commands.native: "auto"Slack yerel komutlarını etkinleştirmez.
- en fazla 5 seçenek: düğme blokları
- 6-100 seçenek: statik seçim menüsü
- 100’den fazla seçenek: etkileşim seçenekleri işleyicileri mevcut olduğunda zaman uyumsuz seçenek filtrelemeli harici seçim
- Slack sınırları aşıldı: kodlanmış seçenek değerleri düğmelere geri döner
agent:<agentId>:slack:slash:<userId> gibi yalıtılmış anahtarlar kullanır ve komut yürütmelerini CommandTargetSessionKey kullanarak hedef konuşma oturumuna yönlendirmeye devam eder.
Etkileşimli yanıtlar
Slack, ajan tarafından yazılmış etkileşimli yanıt denetimlerini işleyebilir, ancak bu özellik varsayılan olarak devre dışıdır. Genel olarak etkinleştirin:[[slack_buttons: Approve:approve, Reject:reject]][[slack_select: Choose a target | Canary:canary, Production:production]]
- Bu, Slack’e özgü bir kullanıcı arayüzüdür. Diğer kanallar Slack Block Kit yönergelerini kendi düğme sistemlerine çevirmez.
- Etkileşimli callback değerleri OpenClaw tarafından üretilen opak token’lardır, ajan tarafından yazılmış ham değerler değildir.
- Üretilen etkileşimli bloklar Slack Block Kit sınırlarını aşacaksa OpenClaw geçersiz bir blocks payload’ı göndermek yerine özgün metin yanıtına geri döner.
Slack’te exec onayları
Slack, Web UI veya terminale geri dönmek yerine etkileşimli düğmeler ve etkileşimlerle yerel bir onay istemcisi olarak davranabilir.- Exec onayları yerel DM/kanal yönlendirmesi için
channels.slack.execApprovals.*kullanır. - Plugin onayları, istek zaten Slack’e ulaştığında ve onay id türü
plugin:olduğunda aynı Slack yerel düğme yüzeyi üzerinden çözümlenmeye devam edebilir. - Onaylayan yetkilendirmesi hâlâ uygulanır: yalnızca onaylayan olarak tanımlanan kullanıcılar Slack üzerinden istekleri onaylayabilir veya reddedebilir.
interactivity etkinleştirildiğinde, onay istemleri konuşmanın içinde doğrudan Block Kit düğmeleri olarak işlenir.
Bu düğmeler mevcut olduğunda birincil onay kullanıcı deneyimi bunlardır; OpenClaw,
yalnızca araç sonucu sohbet onaylarının kullanılamadığını veya manuel onayın tek yol olduğunu söylediğinde manuel bir /approve komutu içermelidir.
Yapılandırma yolu:
channels.slack.execApprovals.enabledchannels.slack.execApprovals.approvers(isteğe bağlı; mümkün olduğundacommands.ownerAllowFromdeğerine geri döner)channels.slack.execApprovals.target(dm|channel|both, varsayılan:dm)agentFilter,sessionFilter
enabled ayarlanmamış veya "auto" olduğunda ve en az bir
onaylayan çözümlendiğinde yerel exec onaylarını otomatik olarak etkinleştirir. Slack’i yerel onay istemcisi olarak açıkça devre dışı bırakmak için enabled: false ayarlayın.
Onaylayanlar çözümlendiğinde yerel onayları zorla açmak için enabled: true ayarlayın.
Açık Slack exec onay yapılandırması olmadığında varsayılan davranış:
approvals.exec yönlendirmesi ayrıdır. Yalnızca exec onay istemlerinin başka sohbetlere
veya açık bant dışı hedeflere de yönlendirilmesi gerektiğinde kullanın. Paylaşılan approvals.plugin yönlendirmesi de
ayrıdır; Slack yerel düğmeleri, bu istekler zaten Slack’e ulaştığında Plugin onaylarını yine de çözümlüyebilir.
Aynı sohbet /approve, zaten komutları destekleyen Slack kanallarında ve DM’lerinde de çalışır. Tam onay yönlendirme modeli için Exec onayları bölümüne bakın.
Olaylar ve operasyonel davranış
- Mesaj düzenlemeleri/silmeleri sistem olaylarına eşlenir.
- Dizi yayınları (“Kanala da gönder” dizi yanıtları) normal kullanıcı mesajları olarak işlenir.
- Tepki ekleme/kaldırma olayları sistem olaylarına eşlenir.
- Üye katılma/ayrılma, kanal oluşturulma/yeniden adlandırılma ve sabitleme ekleme/kaldırma olayları sistem olaylarına eşlenir.
channel_id_changed,configWritesetkinleştirildiğinde kanal yapılandırma anahtarlarını taşıyabilir.- Kanal konu/amaç meta verileri güvenilmeyen bağlam olarak değerlendirilir ve yönlendirme bağlamına enjekte edilebilir.
- Dizi başlatıcı ve ilk dizi geçmişi bağlamı tohumlama, geçerli olduğunda yapılandırılmış gönderen izin listelerine göre filtrelenir.
- Blok eylemleri ve modal etkileşimleri, zengin payload alanlarıyla yapılandırılmış
Slack interaction: ...sistem olayları yayar:- blok eylemleri: seçilen değerler, etiketler, seçici değerleri ve
workflow_*meta verileri - modal
view_submissionveview_closedolayları, yönlendirilmiş kanal meta verileri ve form girdileriyle
- blok eylemleri: seçilen değerler, etiketler, seçici değerleri ve
Yapılandırma referansı
Birincil referans: Yapılandırma referansı - Slack.Yüksek sinyalli Slack alanları
Yüksek sinyalli Slack alanları
- mod/kimlik doğrulama:
mode,botToken,appToken,signingSecret,webhookPath,accounts.* - DM erişimi:
dm.enabled,dmPolicy,allowFrom(eski:dm.policy,dm.allowFrom),dm.groupEnabled,dm.groupChannels - uyumluluk anahtarı:
dangerouslyAllowNameMatching(acil durum; gerekmedikçe kapalı tutun) - kanal erişimi:
groupPolicy,channels.*,channels.*.users,channels.*.requireMention - dizileme/geçmiş:
replyToMode,replyToModeByChatType,thread.*,historyLimit,dmHistoryLimit,dms.*.historyLimit - teslimat:
textChunkLimit,chunkMode,mediaMaxMb,streaming,streaming.nativeTransport,streaming.preview.toolProgress - önizlemeler:
chat.postMessagebağlantı/medya önizleme denetimi içinunfurlLinks,unfurlMedia - operasyonlar/özellikler:
configWrites,commands.native,slashCommand.*,actions.*,userToken,userTokenReadOnly
Sorun giderme
Kanallarda yanıt yok
Kanallarda yanıt yok
Sırayla kontrol edin:
groupPolicy- kanal izin listesi (
channels.slack.channels) — anahtarlar kanal ID’leri olmalıdır (C12345678), adlar değil (#channel-name). Ad tabanlı anahtarlargroupPolicy: "allowlist"altında sessizce başarısız olur, çünkü kanal yönlendirmesi varsayılan olarak ID önceliklidir. Bir ID bulmak için: Slack’te kanala sağ tıklayın → Bağlantıyı kopyala — URL’nin sonundakiC...değeri kanal ID’sidir. requireMention- kanal başına
usersizin listesi
DM mesajları yok sayılıyor
DM mesajları yok sayılıyor
Kontrol edin:
channels.slack.dm.enabledchannels.slack.dmPolicy(veya eskichannels.slack.dm.policy)- eşleştirme onayları / izin listesi girdileri
- Slack Assistant DM olayları:
drop message_changedifadesinden bahseden ayrıntılı günlükler genellikle Slack’in mesaj meta verilerinde kurtarılabilir bir insan gönderen olmadan düzenlenmiş bir Assistant dizisi olayı gönderdiği anlamına gelir
Socket mode bağlanmıyor
Socket mode bağlanmıyor
Slack uygulama ayarlarında bot + uygulama token’larını ve Socket Mode etkinleştirmesini doğrulayın.
openclaw channels status --probe --json çıktısı botTokenStatus veya
appTokenStatus: "configured_unavailable" gösteriyorsa Slack hesabı
yapılandırılmıştır, ancak geçerli çalışma zamanı SecretRef destekli
değeri çözememiştir.HTTP modu olay almıyor
HTTP modu olay almıyor
Doğrulayın:
- imzalama gizli anahtarı
- webhook yolu
- Slack Request URL’leri (Events + Interactivity + Slash Commands)
- HTTP hesabı başına benzersiz
webhookPath
signingSecretStatus: "configured_unavailable"
görünürse, HTTP hesabı yapılandırılmıştır ancak mevcut çalışma zamanı
SecretRef destekli imzalama gizli anahtarını çözememiştir.Yerel/slash komutları tetiklenmiyor
Yerel/slash komutları tetiklenmiyor
Hangisini amaçladığınızı doğrulayın:
- Slack’te kayıtlı eşleşen slash komutlarıyla yerel komut modu (
channels.slack.commands.native: true) - veya tek slash komutu modu (
channels.slack.slashCommand.enabled: true)
commands.useAccessGroups ile kanal/kullanıcı izin listelerini denetleyin.Ek görsel referansı
Slack dosya indirmeleri başarılı olduğunda ve boyut sınırları izin verdiğinde Slack, indirilen medyayı aracı turuna ekleyebilir. Görsel dosyaları medya anlama yolundan geçirilebilir veya doğrudan görsel yetenekli bir yanıt modeline aktarılabilir; diğer dosyalar ise görsel girdisi olarak ele alınmak yerine indirilebilir dosya bağlamı olarak tutulur.Desteklenen medya türleri
| Medya türü | Kaynak | Mevcut davranış | Notlar |
|---|---|---|---|
| JPEG / PNG / GIF / WebP görselleri | Slack dosya URL’si | İndirilir ve görsel yetenekli işleme için tura eklenir | Dosya başına sınır: channels.slack.mediaMaxMb (varsayılan 20 MB) |
| PDF dosyaları | Slack dosya URL’si | İndirilir ve download-file veya pdf gibi araçlar için dosya bağlamı olarak sunulur | Slack gelen iş akışı PDF’leri otomatik olarak görsel-görüş girdisine dönüştürmez |
| Diğer dosyalar | Slack dosya URL’si | Mümkün olduğunda indirilir ve dosya bağlamı olarak sunulur | İkili dosyalar görsel girdisi olarak ele alınmaz |
| Konu yanıtları | Konu başlatıcı dosyaları | Yanıtta doğrudan medya yoksa kök mesaj dosyaları bağlam olarak doldurulabilir | Yalnızca dosya içeren başlatıcılar bir ek yer tutucusu kullanır |
| Çoklu görsel mesajları | Birden fazla Slack dosyası | Her dosya bağımsız olarak değerlendirilir | Slack işleme, mesaj başına sekiz dosyayla sınırlıdır |
Gelen iş hattı
Dosya ekleri olan bir Slack mesajı geldiğinde:- OpenClaw, bot belirtecini (
xoxb-...) kullanarak dosyayı Slack’in özel URL’sinden indirir. - Başarılı olursa dosya medya deposuna yazılır.
- İndirilen medya yolları ve içerik türleri gelen bağlama eklenir.
- Görsel yetenekli model/araç yolları bu bağlamdaki görsel eklerini kullanabilir.
- Görsel olmayan dosyalar, bunları işleyebilen araçlar için dosya meta verisi veya medya referansı olarak kullanılabilir kalır.
Konu kökü ek devralma
Bir mesaj bir konuda geldiğinde (thread_ts üst öğesine sahipse):
- Yanıtın kendisinde doğrudan medya yoksa ve dahil edilen kök mesajda dosyalar varsa, Slack kök dosyaları konu başlatıcı bağlamı olarak doldurabilir.
- Doğrudan yanıt ekleri, kök mesaj eklerine göre önceliklidir.
- Yalnızca dosyaları olan ve metni olmayan bir kök mesaj, yedeğin dosyalarını yine de içerebilmesi için bir ek yer tutucusuyla temsil edilir.
Çoklu ek işleme
Tek bir Slack mesajı birden fazla dosya eki içerdiğinde:- Her ek medya iş hattından bağımsız olarak geçirilir.
- İndirilen medya referansları mesaj bağlamında birleştirilir.
- İşleme sırası, olay yükündeki Slack dosya sırasını izler.
- Bir ekin indirilmesindeki hata diğerlerini engellemez.
Boyut, indirme ve model sınırları
- Boyut sınırı: Dosya başına varsayılan 20 MB.
channels.slack.mediaMaxMbile yapılandırılabilir. - İndirme hataları: Slack’in sunamadığı dosyalar, süresi dolmuş URL’ler, erişilemeyen dosyalar, büyük boyutlu dosyalar ve Slack kimlik doğrulama/giriş HTML yanıtları desteklenmeyen biçimler olarak bildirilmek yerine atlanır.
- Görsel modeli: Görsel analizi, görseli destekliyorsa etkin yanıt modelini veya
agents.defaults.imageModelkonumunda yapılandırılan görsel modelini kullanır.
Bilinen sınırlar
| Senaryo | Mevcut davranış | Geçici çözüm |
|---|---|---|
| Süresi dolmuş Slack dosya URL’si | Dosya atlanır; hata gösterilmez | Dosyayı Slack’e yeniden yükleyin |
| Görsel modeli yapılandırılmamış | Görsel ekleri medya referansları olarak saklanır, ancak görsel olarak analiz edilmez | agents.defaults.imageModel yapılandırın veya görsel yetenekli bir yanıt modeli kullanın |
| Çok büyük görseller (varsayılan olarak > 20 MB) | Boyut sınırına göre atlanır | Slack izin veriyorsa channels.slack.mediaMaxMb değerini artırın |
| İletilmiş/paylaşılmış ekler | Metin ve Slack üzerinde barındırılan görsel/dosya medyası en iyi çabayla işlenir | Doğrudan OpenClaw konusunda yeniden paylaşın |
| PDF ekleri | Dosya/medya bağlamı olarak saklanır, otomatik olarak görsel görüşten geçirilmez | Dosya meta verileri için download-file veya PDF analizi için pdf aracını kullanın |
İlgili belgeler
- Medya anlama iş hattı
- PDF aracı
- Epic: #51349 — Slack ek görsel etkinleştirmesi
- Regresyon testleri: #51353
- Canlı doğrulama: #51354
İlgili
Eşleştirme
Bir Slack kullanıcısını Gateway ile eşleştirin.
Gruplar
Kanal ve grup DM davranışı.
Kanal yönlendirme
Gelen mesajları aracılara yönlendirin.
Güvenlik
Tehdit modeli ve sağlamlaştırma.
Yapılandırma
Yapılandırma düzeni ve öncelik.
Slash komutları
Komut kataloğu ve davranışı.