Ana içeriğe atla

Slack

Durum: Slack uygulaması entegrasyonları üzerinden DM’ler ve kanallar için üretime hazır. Varsayılan mod Socket Mode’dur; HTTP İstek URL’leri de desteklenir.

Eşleme

Slack DM’leri varsayılan olarak eşleme modunu kullanır.

Slash komutları

Yerel komut davranışı ve komut kataloğu.

Kanal sorun giderme

Kanallar arası tanılama ve onarım çalışma kitapları.

Hızlı kurulum

1

Yeni bir Slack uygulaması oluşturun

Slack uygulaması ayarlarında Create New App düğmesine basın:
  • from a manifest seçeneğini seçin ve uygulamanız için bir workspace seçin
  • aşağıdaki örnek manifest içeriğini yapıştırın ve oluşturmaya devam edin
  • connections:write ile bir App-Level Token (xapp-...) oluşturun
  • uygulamayı yükleyin ve gösterilen Bot Token (xoxb-...) değerini kopyalayın
2

OpenClaw'ı yapılandırın

{
  channels: {
    slack: {
      enabled: true,
      mode: "socket",
      appToken: "xapp-...",
      botToken: "xoxb-...",
    },
  },
}
Ortam değişkeni yedeği (yalnızca varsayılan hesap):
SLACK_APP_TOKEN=xapp-...
SLACK_BOT_TOKEN=xoxb-...
3

Gateway'i başlatın

openclaw gateway

Manifest ve kapsam kontrol listesi

{
  "display_information": {
    "name": "OpenClaw",
    "description": "OpenClaw için Slack bağlayıcısı"
  },
  "features": {
    "bot_user": {
      "display_name": "OpenClaw",
      "always_online": true
    },
    "app_home": {
      "messages_tab_enabled": true,
      "messages_tab_read_only_enabled": false
    },
    "slash_commands": [
      {
        "command": "/openclaw",
        "description": "OpenClaw'a bir mesaj gönder",
        "should_escape": false
      }
    ]
  },
  "oauth_config": {
    "scopes": {
      "bot": [
        "app_mentions:read",
        "assistant:write",
        "channels:history",
        "channels:read",
        "chat:write",
        "commands",
        "emoji:read",
        "files:read",
        "files:write",
        "groups:history",
        "groups:read",
        "im:history",
        "im:read",
        "im:write",
        "mpim:history",
        "mpim:read",
        "mpim:write",
        "pins:read",
        "pins:write",
        "reactions:read",
        "reactions:write",
        "users:read"
      ]
    }
  },
  "settings": {
    "socket_mode_enabled": true,
    "event_subscriptions": {
      "bot_events": [
        "app_mention",
        "channel_rename",
        "member_joined_channel",
        "member_left_channel",
        "message.channels",
        "message.groups",
        "message.im",
        "message.mpim",
        "pin_added",
        "pin_removed",
        "reaction_added",
        "reaction_removed"
      ]
    }
  }
}

Ek manifest ayarları

Yukarıdaki varsayılanları genişleten farklı özellikleri görünür hale getirin.
Nüanslı biçimde, tek bir yapılandırılmış komut yerine birden fazla yerel slash komutu kullanılabilir:
  • /status komutu ayrılmış olduğu için /status yerine /agentstatus kullanın.
  • Aynı anda en fazla 25 slash komutu kullanılabilir.
Mevcut features.slash_commands bölümünüzü kullanılabilir komutlar içinden bir alt kümeyle değiştirin:
    "slash_commands": [
      {
        "command": "/new",
        "description": "Yeni bir oturum başlat",
        "usage_hint": "[model]"
      },
      {
        "command": "/reset",
        "description": "Geçerli oturumu sıfırla"
      },
      {
        "command": "/compact",
        "description": "Oturum bağlamını sıkıştır",
        "usage_hint": "[instructions]"
      },
      {
        "command": "/stop",
        "description": "Geçerli çalıştırmayı durdur"
      },
      {
        "command": "/session",
        "description": "İş parçacığı bağlama süresinin dolmasını yönet",
        "usage_hint": "idle <duration|off> veya max-age <duration|off>"
      },
      {
        "command": "/think",
        "description": "Düşünme düzeyini ayarla",
        "usage_hint": "<off|minimal|low|medium|high|xhigh>"
      },
      {
        "command": "/verbose",
        "description": "Ayrıntılı çıktıyı aç veya kapat",
        "usage_hint": "on|off|full"
      },
      {
        "command": "/fast",
        "description": "Hızlı modu göster veya ayarla",
        "usage_hint": "[status|on|off]"
      },
      {
        "command": "/reasoning",
        "description": "Akıl yürütme görünürlüğünü aç veya kapat",
        "usage_hint": "[on|off|stream]"
      },
      {
        "command": "/elevated",
        "description": "Yükseltilmiş modu aç veya kapat",
        "usage_hint": "[on|off|ask|full]"
      },
      {
        "command": "/exec",
        "description": "Exec varsayılanlarını göster veya ayarla",
        "usage_hint": "host=<auto|sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>"
      },
      {
        "command": "/model",
        "description": "Modeli göster veya ayarla",
        "usage_hint": "[name|#|status]"
      },
      {
        "command": "/models",
        "description": "Sağlayıcıları veya bir sağlayıcının modellerini listele",
        "usage_hint": "[provider] [page] [limit=<n>|size=<n>|all]"
      },
      {
        "command": "/help",
        "description": "Kısa yardım özetini göster"
      },
      {
        "command": "/commands",
        "description": "Oluşturulmuş komut kataloğunu göster"
      },
      {
        "command": "/tools",
        "description": "Geçerli ajanının şu anda neleri kullanabildiğini göster",
        "usage_hint": "[compact|verbose]"
      },
      {
        "command": "/agentstatus",
        "description": "Mevcutsa sağlayıcı kullanımı/kota dahil çalışma zamanı durumunu göster"
      },
      {
        "command": "/tasks",
        "description": "Geçerli oturum için etkin/güncel arka plan görevlerini listele"
      },
      {
        "command": "/context",
        "description": "Bağlamın nasıl bir araya getirildiğini açıkla",
        "usage_hint": "[list|detail|json]"
      },
      {
        "command": "/whoami",
        "description": "Gönderen kimliğinizi göster"
      },
      {
        "command": "/skill",
        "description": "Ada göre bir Skill çalıştır",
        "usage_hint": "<name> [input]"
      },
      {
        "command": "/btw",
        "description": "Oturum bağlamını değiştirmeden yan bir soru sor",
        "usage_hint": "<question>"
      },
      {
        "command": "/usage",
        "description": "Kullanım altbilgisini denetle veya maliyet özetini göster",
        "usage_hint": "off|tokens|full|cost"
      }
    ]
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özdizimini bekler.
channels.slack.userToken yapılandırırsanız, tipik okuma kapsamları şunlardır:
  • channels:history, groups:history, im:history, mpim:history
  • channels:read, groups:read, im:read, mpim:read
  • users:read
  • reactions:read
  • pins:read
  • emoji:read
  • search:read (Slack arama okumalarına bağımlıysanız)

Belirteç modeli

  • Socket Mode için botToken + appToken gereklidir.
  • HTTP modu için botToken + signingSecret gereklidir.
  • botToken, appToken, signingSecret ve userToken, düz metin dizeleri veya SecretRef nesnelerini kabul eder.
  • Yapılandırma belirteçleri, ortam değişkeni yedeğini geçersiz kılar.
  • SLACK_BOT_TOKEN / SLACK_APP_TOKEN ortam değişkeni yedeği yalnızca varsayılan hesap için geçerlidir.
  • userToken (xoxp-...) yalnızca yapılandırmadadır (ortam değişkeni yedeği yoktur) ve varsayılan olarak salt okunur davranışa sahiptir (userTokenReadOnly: true).
Durum anlık görüntüsü davranışı:
  • Slack hesap incelemesi, kimlik bilgisi başına *Source ve *Status alanlarını izler (botToken, appToken, signingSecret, userToken).
  • Durum available, configured_unavailable veya missing olabilir.
  • configured_unavailable, hesabın SecretRef veya başka bir satır içi olmayan gizli kaynak üzerinden yapılandırıldığı, ancak mevcut komut/çalışma zamanı yolunun gerçek değeri çözemediği anlamına gelir.
  • HTTP modunda signingSecretStatus dahil edilir; Socket Mode’da gerekli çift botTokenStatus + appTokenStatus olur.
Eylemler/dizin okumaları için, yapılandırılmışsa kullanıcı belirteci tercih edilebilir. Yazmalar için bot belirteci tercih edilmeye devam eder; kullanıcı belirteciyle yazmaya yalnızca userTokenReadOnly: false olduğunda ve bot belirteci kullanılamadığında izin verilir.

Eylemler ve geçitler

Slack eylemleri channels.slack.actions.* ile denetlenir. Mevcut Slack araçlarında kullanılabilir eylem grupları:
GrupVarsayılan
messagesetkin
reactionsetkin
pinsetkin
memberInfoetkin
emojiListetkin
Mevcut Slack mesaj eylemleri arasında send, upload-file, download-file, read, edit, delete, pin, unpin, list-pins, member-info ve emoji-list bulunur.

Erişim denetimi ve yönlendirme

channels.slack.dmPolicy, DM erişimini denetler (eski: channels.slack.dm.policy):
  • pairing (varsayılan)
  • allowlist
  • open (channels.slack.allowFrom içinde "*" bulunmasını gerektirir; eski: channels.slack.dm.allowFrom)
  • disabled
DM işaretleri:
  • dm.enabled (varsayılan true)
  • channels.slack.allowFrom (tercih edilen)
  • dm.allowFrom (eski)
  • dm.groupEnabled (grup DM’leri varsayılan olarak false)
  • dm.groupChannels (isteğe bağlı MPIM izin listesi)
Çok hesaplı öncelik:
  • channels.slack.accounts.default.allowFrom yalnızca default hesabı için geçerlidir.
  • Adlandırılmış hesaplar, kendi allowFrom değerleri ayarlanmamışsa channels.slack.allowFrom değerini devralır.
  • Adlandırılmış hesaplar channels.slack.accounts.default.allowFrom değerini devralmaz.
DM’lerde eşleme için openclaw pairing approve slack <code> kullanılır.

İş parçacığı, oturumlar ve yanıt etiketleri

  • DM’ler direct, kanallar channel, MPIM’ler group olarak yönlendirilir.
  • Varsayılan session.dmScope=main ile Slack DM’leri ajan ana oturumuna daraltılır.
  • Kanal oturumları: agent:<agentId>:slack:channel:<channelId>.
  • İş parçacığı yanıtları, uygun olduğunda iş parçacığı oturumu son ekleri (:thread:<threadTs>) oluşturabilir.
  • channels.slack.thread.historyScope varsayılanı thread, thread.inheritParent varsayılanı false değeridir.
  • channels.slack.thread.initialHistoryLimit, yeni bir iş parçacığı oturumu başladığında kaç mevcut iş parçacığı mesajının getirileceğini denetler (varsayılan 20; devre dışı bırakmak için 0 olarak ayarlayın).
  • channels.slack.thread.requireExplicitMention (varsayılan false): true olduğunda, bot iş parçacığında zaten yer almış olsa bile iş parçacıkları içindeki örtük mention’ları bastırır, böylece bot yalnızca iş parçacıkları içindeki açık @bot mention’larına yanıt verir. Bu olmadan, botun katıldığı bir iş parçacığındaki yanıtlar requireMention geçidini atlar.
Yanıt iş parçacığı denetimleri:
  • channels.slack.replyToMode: off|first|all|batched (varsayılan off)
  • channels.slack.replyToModeByChatType: her direct|group|channel için
  • doğrudan sohbetler için eski yedek: channels.slack.dm.replyToMode
El ile yanıt etiketleri desteklenir:
  • [[reply_to_current]]
  • [[reply_to:<id>]]
Not: replyToMode="off", açık [[reply_to_*]] etiketleri dahil Slack’teki tüm yanıt iş parçacıklarını devre dışı bırakır. Bu, açık etiketlerin "off" modunda yine de dikkate alındığı Telegram’dan farklıdır. Fark, platformların iş parçacığı modellerini yansıtır: Slack iş parçacıkları mesajları kanaldan gizlerken, Telegram yanıtları ana sohbet akışında görünür kalır.

Onay reaksiyonları

ackReaction, OpenClaw gelen bir mesajı işlerken bir onay emojisi gönderir. Çözümleme sırası:
  • channels.slack.accounts.<accountId>.ackReaction
  • channels.slack.ackReaction
  • messages.ackReaction
  • ajan kimliği emoji yedeği (agents.list[].identity.emoji, aksi halde ”👀”)
Notlar:
  • Slack kısa kodlar bekler (örneğin "eyes").
  • Slack hesabı veya genel olarak reaksiyonu devre dışı bırakmak için "" kullanın.

Metin akışı

channels.slack.streaming, canlı önizleme davranışını denetler:
  • off: canlı önizleme akışını devre dışı bırakır.
  • partial (varsayılan): önizleme metnini en son kısmi çıktıyla 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.
channels.slack.streaming.nativeTransport, channels.slack.streaming.mode değeri partial olduğunda Slack yerel metin akışını denetler (varsayılan: true).
  • Yerel metin akışının ve Slack assistant iş parçacığı durumunun görünmesi için bir yanıt iş parçacığının mevcut olması gerekir. İş parçacığı seçimi yine de replyToMode değerini izler.
  • Kanal ve grup sohbeti kökleri, yerel akış kullanılamadığında normal taslak önizlemeyi kullanmaya devam edebilir.
  • Üst düzey Slack DM’leri varsayılan olarak iş parçacığı dışındadır, bu nedenle iş parçacığı tarzı önizlemeyi göstermezler; burada görünür ilerleme istiyorsanız iş parçacığı yanıtlarını veya typingReaction kullanın.
  • Medya ve metin dışı yükler normal teslimata geri döner.
  • Akış yanıtın ortasında başarısız olursa OpenClaw kalan yükler için normal teslimata geri döner.
Slack yerel metin akışı yerine taslak önizleme kullanın:
{
  channels: {
    slack: {
      streaming: {
        mode: "partial",
        nativeTransport: false,
      },
    },
  },
}
Eski anahtarlar:
  • channels.slack.streamMode (replace | status_final | append) otomatik olarak channels.slack.streaming.mode değerine geçirilir.
  • boolean channels.slack.streaming, otomatik olarak channels.slack.streaming.mode ve channels.slack.streaming.nativeTransport değerlerine geçirilir.
  • eski channels.slack.nativeStreaming, otomatik olarak channels.slack.streaming.nativeTransport değerine geçirilir.

Yazıyor reaksiyonu yedeği

typingReaction, OpenClaw bir yanıtı işlerken gelen Slack mesajına geçici bir reaksiyon ekler, ardından çalışma tamamlandığında bunu kaldırır. Bu en çok, varsayılan "is typing..." durum göstergesini kullanan iş parçacığı yanıtlarının dışında yararlıdır. Çözümleme sırası:
  • channels.slack.accounts.<accountId>.typingReaction
  • channels.slack.typingReaction
Notlar:
  • Slack kısa kodlar bekler (örneğin "hourglass_flowing_sand").
  • Reaksiyon en iyi çabayla uygulanır ve yanıt veya hata yolu tamamlandıktan sonra temizleme işlemi otomatik olarak denenir.

Medya, parçalama ve teslimat

Slack dosya ekleri, Slack tarafından barındırılan özel URL’lerden (belirteç doğrulamalı istek akışı) indirilir ve getirme başarılı olduğunda ve boyut sınırları izin verdiğinde medya deposuna yazılır.Çalışma zamanındaki gelen boyut üst sınırı, channels.slack.mediaMaxMb ile geçersiz kılınmadıkça varsayılan olarak 20MB değeridir.
  • metin parçaları channels.slack.textChunkLimit kullanı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 iş parçacığı yanıtlarını içerebilir (thread_ts)
  • giden medya üst sınırı, yapılandırıldığında channels.slack.mediaMaxMb değerini izler; aksi halde kanal gönderimleri medya hattındaki MIME türü varsayılanlarını kullanır
Tercih edilen açık hedefler:
  • DM’ler için user:<id>
  • kanallar için channel:<id>
Slack DM’leri, kullanıcı hedeflerine gönderim yapılırken Slack konuşma API’leri üzerinden açılır.

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çin channels.slack.slashCommand yapılandırın:
  • enabled: false
  • name: "openclaw"
  • sessionPrefix: "slack:slash"
  • ephemeral: true
/openclaw /help
Yerel komutlar, Slack uygulamanızda ek manifest ayarları gerektirir ve bunun yerine channels.slack.commands.native: true veya genel yapılandırmalarda 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.
/help
Yerel bağımsız değişken menüleri, seçilen seçenek değerini göndermeden önce onay modali gösteren uyarlanabilir bir işleme stratejisi kullanır:
  • 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çenek işleyicileri mevcut olduğunda eşzamansız seçenek filtrelemeli harici seçim
  • Slack sınırları aşıldığında: kodlanmış seçenek değerleri düğmelere geri döner
/think
Slash oturumları agent:<agentId>:slack:slash:<userId> gibi yalıtılmış anahtarlar kullanır ve komut yürütmelerini yine de CommandTargetSessionKey kullanarak hedef konuşma oturumuna yönlendirir.

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. Bunu genel olarak etkinleştirin:
{
  channels: {
    slack: {
      capabilities: {
        interactiveReplies: true,
      },
    },
  },
}
Veya yalnızca bir Slack hesabı için etkinleştirin:
{
  channels: {
    slack: {
      accounts: {
        ops: {
          capabilities: {
            interactiveReplies: true,
          },
        },
      },
    },
  },
}
Etkinleştirildiğinde ajanlar yalnızca Slack’e özel yanıt yönergeleri üretebilir:
  • [[slack_buttons: Approve:approve, Reject:reject]]
  • [[slack_select: Choose a target | Canary:canary, Production:production]]
Bu yönergeler Slack Block Kit’e derlenir ve tıklamaları veya seçimleri mevcut Slack etkileşim olayı yolu üzerinden geri yönlendirir. Notlar:
  • Bu Slack’e özgü bir UI’dır. Diğer kanallar Slack Block Kit yönergelerini kendi düğme sistemlerine çevirmez.
  • Etkileşimli geri çağrı değerleri, ajan tarafından yazılmış ham değerler değil, OpenClaw tarafından oluşturulan opak belirteçlerdir.
  • Oluşturulan etkileşimli bloklar Slack Block Kit sınırlarını aşarsa, OpenClaw geçersiz bir blocks yükü 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.
  • İstek zaten Slack’e ulaştığında ve onay kimliği türü plugin: olduğunda, eklenti onayları aynı Slack yerel düğme yüzeyi üzerinden çözülebilir.
  • Onaylayan yetkilendirmesi yine de uygulanır: yalnızca onaylayan olarak tanımlanan kullanıcılar istekleri Slack üzerinden onaylayabilir veya reddedebilir.
Bu, diğer kanallarla aynı paylaşılan onay düğmesi yüzeyini kullanır. Slack uygulaması ayarlarınızda interactivity etkin olduğunda, onay istemleri doğrudan konuşmada Block Kit düğmeleri olarak işlenir. Bu düğmeler mevcut olduğunda, birincil onay UX’i bunlardır; OpenClaw yalnızca araç sonucu sohbet içi onayların kullanılamadığını söylediğinde veya tek yol el ile onay olduğunda el ile /approve komutunu içermelidir. Yapılandırma yolu:
  • channels.slack.execApprovals.enabled
  • channels.slack.execApprovals.approvers (isteğe bağlı; mümkün olduğunda commands.ownerAllowFrom değerine geri döner)
  • channels.slack.execApprovals.target (dm | channel | both, varsayılan: dm)
  • agentFilter, sessionFilter
Slack, 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 bir 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ı olmadan varsayılan davranış:
{
  commands: {
    ownerAllowFrom: ["slack:U12345678"],
  },
}
Açık Slack yerel yapılandırması yalnızca onaylayanları geçersiz kılmak, filtreler eklemek veya kaynak sohbet teslimatını tercih etmek istediğinizde gereklidir:
{
  channels: {
    slack: {
      execApprovals: {
        enabled: true,
        approvers: ["U12345678"],
        target: "both",
      },
    },
  },
}
Paylaşılan approvals.exec yönlendirmesi ayrıdır. Bunu yalnızca exec onay istemlerinin ayrıca başka sohbetlere veya açık bant dışı hedeflere yönlendirilmesi gerektiğinde kullanın. Paylaşılan approvals.plugin yönlendirmesi de ayrıdır; bu istekler zaten Slack’e ulaştığında Slack yerel düğmeleri yine de eklenti onaylarını çözebilir. Aynı sohbet içi /approve, komutları zaten destekleyen Slack kanallarında ve DM’lerinde de çalışır. Tam onay yönlendirme modeli için Exec approvals bölümüne bakın.

Olaylar ve operasyonel davranış

  • Mesaj düzenlemeleri/silmeleri/iş parçacığı yayınları sistem olaylarına eşlenir.
  • Reaksiyon ekleme/kaldırma olayları sistem olaylarına eşlenir.
  • Üye katılma/ayrılma, kanal oluşturma/yeniden adlandırma ve sabitleme ekleme/kaldırma olayları sistem olaylarına eşlenir.
  • channel_id_changed, configWrites etkin olduğunda 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.
  • İş parçacığı başlatıcısı ve ilk iş parçacığı geçmişi bağlam tohumlaması, uygulanabildiğinde yapılandırılmış gönderen izin listelerine göre filtrelenir.
  • Blok eylemleri ve modal etkileşimleri, zengin yük alanlarıyla yapılandırılmış Slack interaction: ... sistem olayları üretir:
    • blok eylemleri: seçilen değerler, etiketler, seçici değerleri ve workflow_* meta verileri
    • yönlendirilmiş kanal meta verileri ve form girdileriyle modal view_submission ve view_closed olayları

Yapılandırma başvurusu işaretçileri

Birincil başvuru:
  • Yapılandırma başvurusu - Slack 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 anahtarı; gerekmedikçe kapalı tutun)
    • kanal erişimi: groupPolicy, channels.*, channels.*.users, channels.*.requireMention
    • iş parçacığı/geçmiş: replyToMode, replyToModeByChatType, thread.*, historyLimit, dmHistoryLimit, dms.*.historyLimit
    • teslimat: textChunkLimit, chunkMode, mediaMaxMb, streaming, streaming.nativeTransport
    • operasyonlar/özellikler: configWrites, commands.native, slashCommand.*, actions.*, userToken, userTokenReadOnly

Sorun giderme

Sırayla kontrol edin:
  • groupPolicy
  • kanal izin listesi (channels.slack.channels)
  • requireMention
  • kanal başına users izin listesi
Yararlı komutlar:
openclaw channels status --probe
openclaw logs --follow
openclaw doctor
Kontrol edin:
  • channels.slack.dm.enabled
  • channels.slack.dmPolicy (veya eski channels.slack.dm.policy)
  • eşleme onayları / izin listesi girdileri
openclaw pairing list slack
Slack uygulaması ayarlarında bot + app belirteçlerini ve Socket Mode etkinliğini doğrulayın.openclaw channels status --probe --json, botTokenStatus veya appTokenStatus: "configured_unavailable" gösteriyorsa, Slack hesabı yapılandırılmıştır ancak mevcut çalışma zamanı SecretRef destekli değeri çözememiştir.
Şunları doğrulayın:
  • signing secret
  • webhook yolu
  • Slack İstek URL’leri (Events + Interactivity + Slash Commands)
  • HTTP hesabı başına benzersiz webhookPath
Hesap anlık görüntülerinde signingSecretStatus: "configured_unavailable" görünürse, HTTP hesabı yapılandırılmıştır ancak mevcut çalışma zamanı SecretRef destekli signing secret değerini çözememiştir.
Şunlardan hangisini amaçladığınızı doğrulayın:
  • Slack’te eşleşen slash komutları kayıtlıyken yerel komut modu (channels.slack.commands.native: true)
  • veya tek slash komutu modu (channels.slack.slashCommand.enabled: true)
Ayrıca commands.useAccessGroups ve kanal/kullanıcı izin listelerini de kontrol edin.

İlgili