Discord (Bot API)
Durum: resmi Discord ağ geçidi üzerinden DM’ler ve sunucu kanalları için hazır.Eşleştirme
Slash komutları
Kanal sorun giderme
Hızlı kurulum
Bot içeren yeni bir uygulama oluşturmanız, botu sunucunuza eklemeniz ve OpenClaw ile eşleştirmeniz gerekir. Botunuzu kendi özel sunucunuza eklemenizi öneririz. Henüz bir sunucunuz yoksa önce bir tane oluşturun (Create My Own > For me and my friends seçin).Bir Discord uygulaması ve botu oluşturun
Ayrıcalıklı intent'leri etkinleştirin
- Message Content Intent (gerekli)
- Server Members Intent (önerilir; rol izin listeleri ve ad-ID eşleştirmesi için gereklidir)
- Presence Intent (isteğe bağlı; yalnızca presence güncellemeleri için gereklidir)
Bot token'ınızı kopyalayın
Bir davet URL'si oluşturun ve botu sunucunuza ekleyin
botapplications.commands
- View Channels
- Send Messages
- Read Message History
- Embed Links
- Attach Files
- Add Reactions (isteğe bağlı)
Developer Mode'u etkinleştirin ve ID'lerinizi toplayın
- User Settings (avatarınızın yanındaki dişli simgesi) → Advanced → Developer Mode seçeneğini açın
- Kenar çubuğunda sunucu simgenize sağ tıklayın → Copy Server ID
- Kendi avatarınıza sağ tıklayın → Copy User ID
Sunucu üyelerinden gelen DM'lere izin verin
Bot token'ınızı güvenli şekilde ayarlayın (sohbette göndermeyin)
openclaw gateway run sürecini durdurup yeniden başlatarak yeniden başlatın.OpenClaw'ı yapılandırın ve eşleştirin
- Aracınıza sorun
- CLI / yapılandırma
“Discord bot token’ımı zaten yapılandırmada ayarladım. Lütfen User ID<user_id>ve Server ID<server_id>ile Discord kurulumunu tamamla.”
İlk DM eşleştirmesini onaylayın
- Aracınıza sorun
- CLI
“Bu Discord eşleştirme kodunu onayla: <CODE>”
DISCORD_BOT_TOKEN yalnızca varsayılan hesap için kullanılır.
Gelişmiş giden çağrılar için (mesaj aracı/kanal eylemleri), çağrı başına açık bir token o çağrı için kullanılır. Bu, gönderme ve okuma/probe tarzı eylemler için geçerlidir (örneğin read/search/fetch/thread/pins/permissions). Hesap ilkesi/yeniden deneme ayarları yine etkin çalışma zamanı anlık görüntüsündeki seçili hesaptan gelir.Önerilen: Bir sunucu çalışma alanı kurun
DM’ler çalıştıktan sonra, Discord sunucunuzu her kanalın kendi bağlamına sahip kendi aracı oturumunu aldığı tam bir çalışma alanı olarak ayarlayabilirsiniz. Bu, yalnızca sizin ve botunuzun bulunduğu özel sunucular için önerilir.Sunucunuzu sunucu izin listesine ekleyin
- Aracınıza sorun
- Yapılandırma
“Discord Server ID <server_id> değerimi sunucu izin listesine ekle”
@mention olmadan yanıt verilmesine izin verin
- Aracınıza sorun
- Yapılandırma
“Aracımın bu sunucuda @mention yapılmasına gerek kalmadan yanıt vermesine izin ver”
Sunucu kanallarında bellek kullanımını planlayın
- Aracınıza sorun
- Elle
“Discord kanallarında soru sorduğumda, MEMORY.md içindeki uzun süreli bağlama ihtiyacın olursa memory_search veya memory_get kullan.”
#coding, #home, #research veya başka kanallar kurabilirsiniz.
Çalışma zamanı modeli
- Ağ geçidi Discord bağlantısının sahibidir.
- Yanıt yönlendirmesi deterministiktir: Discord’dan gelen yanıtlar tekrar Discord’a döner.
- Varsayılan olarak (
session.dmScope=main), doğrudan sohbetler aracın ana oturumunu paylaşır (agent:main:main). - Sunucu kanalları izole oturum anahtarlarıdır (
agent:<agentId>:discord:channel:<channelId>). - Grup DM’leri varsayılan olarak yok sayılır (
channels.discord.dm.groupEnabled=false). - Yerel slash komutları izole komut oturumlarında çalışır (
agent:<agentId>:discord:slash:<userId>), ancak yine de yönlendirilen konuşma oturumunaCommandTargetSessionKeytaşır.
Forum kanalları
Discord forum ve medya kanalları yalnızca thread gönderilerini kabul eder. OpenClaw bunları oluşturmak için iki yolu destekler:- Bir thread’i otomatik oluşturmak için forum üst öğesine (
channel:<forumId>) mesaj gönderin. Thread başlığı, mesajınızın ilk boş olmayan satırını kullanır. - Bir thread’i doğrudan oluşturmak için
openclaw message thread createkullanın. Forum kanalları için--message-idgeçmeyin.
channel:<threadId>).
Etkileşimli bileşenler
OpenClaw, aracı mesajları için Discord components v2 kapsayıcılarını destekler.components payload’u ile mesaj aracını kullanın. Etkileşim sonuçları normal gelen mesajlar olarak aracıya geri yönlendirilir ve mevcut Discord replyToMode ayarlarını izler.
Desteklenen bloklar:
text,section,separator,actions,media-gallery,file- Eylem satırları en fazla 5 düğmeye veya tek bir seçim menüsüne izin verir
- Seçim türleri:
string,user,role,mentionable,channel
components.reusable=true ayarlayın.
Bir düğmeye kimlerin tıklayabileceğini sınırlamak için o düğmede allowedUsers ayarlayın (Discord kullanıcı ID’leri, etiketler veya *). Yapılandırıldığında, eşleşmeyen kullanıcılar ephemeral bir red yanıtı alır.
/model ve /models slash komutları, sağlayıcı ve model açılır menülerinin yanı sıra bir Submit adımı içeren etkileşimli bir model seçici açar. Seçici yanıtı ephemeral’dır ve yalnızca komutu çağıran kullanıcı tarafından kullanılabilir.
Dosya ekleri:
fileblokları bir ek başvurusuna işaret etmelidir (attachment://<filename>)- Eki
media/path/filePathüzerinden sağlayın (tek dosya); birden çok dosya içinmedia-gallerykullanın - Yükleme adı ek başvurusuyla eşleşmesi gerektiğinde bunu geçersiz kılmak için
filenamekullanın
- En fazla 5 alanla
components.modalekleyin - Alan türleri:
text,checkbox,radio,select,role-select,user-select - OpenClaw otomatik olarak bir tetikleyici düğme ekler
Erişim denetimi ve yönlendirme
- DM ilkesi
- Sunucu ilkesi
- Mention'lar ve grup DM'leri
channels.discord.dmPolicy, DM erişimini denetler (eski: channels.discord.dm.policy):pairing(varsayılan)allowlistopen(channels.discord.allowFromiçinde"*"bulunmasını gerektirir; eski:channels.discord.dm.allowFrom)disabled
pairing modunda eşleştirme için yönlendirilir).Çok hesaplı öncelik:channels.discord.accounts.default.allowFromyalnızcadefaulthesabı için geçerlidir.- Adlandırılmış hesaplar, kendi
allowFromdeğerleri ayarlı değilsechannels.discord.allowFromdeğerini devralır. - Adlandırılmış hesaplar
channels.discord.accounts.default.allowFromdeğerini devralmaz.
user:<id><@id>mention
Role dayalı aracı yönlendirmesi
Discord sunucu üyelerini rol ID’ye göre farklı aracılara yönlendirmek içinbindings[].match.roles kullanın. Role dayalı bağlamalar yalnızca rol ID’lerini kabul eder ve eş veya üst-eş bağlamalarından sonra, yalnızca sunucu bağlamalarından önce değerlendirilir. Bir bağlama başka eşleşme alanları da ayarlıyorsa (örneğin peer + guildId + roles), yapılandırılmış tüm alanların eşleşmesi gerekir.
Developer Portal kurulumu
Uygulama ve bot oluşturun
Uygulama ve bot oluşturun
- Discord Developer Portal -> Applications -> New Application
- Bot -> Add Bot
- Bot token’ını kopyalayın
Ayrıcalıklı intent'ler
Ayrıcalıklı intent'ler
- Message Content Intent
- Server Members Intent (önerilir)
setPresence), üyeler için presence güncellemelerini etkinleştirmeyi gerektirmez.OAuth kapsamları ve temel izinler
OAuth kapsamları ve temel izinler
- kapsamlar:
bot,applications.commands
- View Channels
- Send Messages
- Read Message History
- Embed Links
- Attach Files
- Add Reactions (isteğe bağlı)
Administrator kullanmaktan kaçının.ID'leri kopyalayın
ID'leri kopyalayın
- sunucu ID
- kanal ID
- kullanıcı ID
Yerel komutlar ve komut yetkilendirmesi
commands.nativevarsayılan olarak"auto"değerindedir ve Discord için etkindir.- Kanal başına geçersiz kılma:
channels.discord.commands.native. commands.native=false, daha önce kaydedilmiş Discord yerel komutlarını açıkça temizler.- Yerel komut yetkilendirmesi, normal mesaj işlemede kullanılan aynı Discord izin listelerini/ilkelerini kullanır.
- Komutlar, yetkili olmayan kullanıcılar için Discord arayüzünde yine de görünür olabilir; yürütme yine de OpenClaw yetkilendirmesini uygular ve “not authorized” döndürür.
ephemeral: true
Özellik ayrıntıları
Yanıt etiketleri ve yerel yanıtlar
Yanıt etiketleri ve yerel yanıtlar
[[reply_to_current]][[reply_to:<id>]]
channels.discord.replyToMode tarafından denetlenir:off(varsayılan)firstall
off, örtük yanıt thread’lemeyi devre dışı bırakır. Açık [[reply_to_*]] etiketleri yine de uygulanır.Mesaj ID’leri bağlam/geçmiş içinde görünür, böylece aracılar belirli mesajları hedefleyebilir.Canlı akış önizlemesi
Canlı akış önizlemesi
channels.discord.streaming, önizleme akışını denetler (off|partial|block|progress, varsayılan:off).- Varsayılan olarak
offkalır çünkü Discord önizleme düzenlemeleri, özellikle birden çok bot veya ağ geçidi aynı hesap ya da sunucu trafiğini paylaştığında hızla rate limit’e takılabilir. progress, kanallar arası tutarlılık için kabul edilir ve Discord’dapartialolarak eşlenir.channels.discord.streamModeeski bir takma addır ve otomatik olarak geçirilir.partial, token’lar geldikçe tek bir önizleme mesajını düzenler.block, taslak boyutlu parçalar yayınlar (boyutu ve kırılma noktalarını ayarlamak içindraftChunkkullanın).
block modu parça varsayılanları (channels.discord.textChunkLimit ile sınırlandırılır):Geçmiş, bağlam ve thread davranışı
Geçmiş, bağlam ve thread davranışı
channels.discord.historyLimitvarsayılan20- fallback:
messages.groupChat.historyLimit 0devre dışı bırakır
channels.discord.dmHistoryLimitchannels.discord.dms["<user_id>"].historyLimit
- Discord thread’leri kanal oturumları olarak yönlendirilir
- üst thread meta verileri üst-oturum bağlantısı için kullanılabilir
- thread’e özgü bir giriş yoksa thread yapılandırması üst kanal yapılandırmasını devralır
Alt aracılar için thread'e bağlı oturumlar
Alt aracılar için thread'e bağlı oturumlar
/focus <target>geçerli/yeni thread’i bir alt aracı/oturum hedefine bağla/unfocusgeçerli thread bağlamasını kaldır/agentsetkin çalıştırmaları ve bağlama durumunu göster/session idle <duration|off>odaklanmış bağlamalar için hareketsizlikle otomatik odak kaldırmayı incele/güncelle/session max-age <duration|off>odaklanmış bağlamalar için katı maksimum yaşı incele/güncelle
session.threadBindings.*genel varsayılanları ayarlar.channels.discord.threadBindings.*, Discord davranışını geçersiz kılar.sessions_spawn({ thread: true })için thread’leri otomatik oluşturup bağlamak üzerespawnSubagentSessionstrue olmalıdır.- ACP için (
/acp spawn ... --thread ...veyasessions_spawn({ runtime: "acp", thread: true })) thread’leri otomatik oluşturup bağlamak üzerespawnAcpSessionstrue olmalıdır. - Bir hesap için thread bağlamaları devre dışıysa
/focusve ilgili thread bağlama işlemleri kullanılamaz.
Kalıcı ACP kanal bağlamaları
Kalıcı ACP kanal bağlamaları
type: "acp"vematch.channel: "discord"ilebindings[]
/acp spawn codex --bind here, geçerli Discord kanalını veya thread’ini yerinde bağlar ve gelecekteki mesajları aynı ACP oturumuna yönlendirilmiş halde tutar.- Bu hâlâ “yeni bir Codex ACP oturumu başlat” anlamına gelebilir, ancak kendi başına yeni bir Discord thread’i oluşturmaz. Mevcut kanal sohbet yüzeyi olarak kalır.
- Codex yine de disk üzerindeki kendi
cwdveya backend çalışma alanında çalışabilir. Bu çalışma alanı, Discord thread’i değil çalışma zamanı durumudur. - Thread mesajları üst kanal ACP bağlamasını devralabilir.
- Bağlı bir kanal veya thread’de
/newve/reset, aynı ACP oturumunu yerinde sıfırlar. - Geçici thread bağlamaları yine de çalışır ve etkin olduklarında hedef çözümlemesini geçersiz kılabilir.
- OpenClaw’ın
--thread auto|hereile bir alt thread oluşturup bağlaması gerektiğinde yalnızcaspawnAcpSessionsgerekir. Geçerli kanaldaki/acp spawn ... --bind hereiçin gerekli değildir.
Tepki bildirimleri
Tepki bildirimleri
offown(varsayılan)allallowlist(guilds.<id>.userskullanır)
Ack tepkileri
Ack tepkileri
ackReaction, OpenClaw gelen bir mesajı işlerken bir onay emojisi gönderir.Çözümleme sırası:channels.discord.accounts.<accountId>.ackReactionchannels.discord.ackReactionmessages.ackReaction- aracı kimliği emoji fallback’i (
agents.list[].identity.emoji, aksi halde ”👀”)
- Discord unicode emoji veya özel emoji adlarını kabul eder.
- Bir kanal ya da hesap için tepkiyi devre dışı bırakmak üzere
""kullanın.
Yapılandırma yazmaları
Yapılandırma yazmaları
/config set|unset akışlarını etkiler (komut özellikleri etkin olduğunda).Devre dışı bırakın:Gateway proxy
Gateway proxy
channels.discord.proxy ile bir HTTP(S) proxy üzerinden yönlendirin.PluralKit desteği
PluralKit desteği
- izin listeleri
pk:<memberId>kullanabilir - üye görünen adları yalnızca
channels.discord.dangerouslyAllowNameMatching: trueolduğunda ad/slug ile eşleştirilir - aramalar orijinal mesaj ID’sini kullanır ve zaman penceresi ile sınırlıdır
- arama başarısız olursa, proxy’lenmiş mesajlar bot mesajı olarak değerlendirilir ve
allowBots=trueolmadıkça düşürülür
Presence yapılandırması
Presence yapılandırması
- 0: Oynuyor
- 1: Yayın Yapıyor (
activityUrlgerektirir) - 2: Dinliyor
- 3: İzliyor
- 4: Özel (etkinlik metnini durum durumu olarak kullanır; emoji isteğe bağlıdır)
- 5: Yarışıyor
autoPresence.healthyTextautoPresence.degradedTextautoPresence.exhaustedText({reason}yer tutucusunu destekler)
Discord'da onaylar
Discord'da onaylar
channels.discord.execApprovals.enabledchannels.discord.execApprovals.approvers(isteğe bağlı; mümkün olduğundacommands.ownerAllowFromdeğerine fallback yapar)channels.discord.execApprovals.target(dm|channel|both, varsayılan:dm)agentFilter,sessionFilter,cleanupAfterResolve
enabled ayarlanmamış veya "auto" olduğunda ve execApprovals.approvers ya da commands.ownerAllowFrom üzerinden en az bir onaylayıcı çözümlenebildiğinde yerel exec onaylarını otomatik etkinleştirir. Discord, exec onaylayıcılarını kanal allowFrom, eski dm.allowFrom veya doğrudan mesaj defaultTo değerlerinden çıkarmaz. Discord’u yerel onay istemcisi olarak açıkça devre dışı bırakmak için enabled: false ayarlayın.target, channel veya both olduğunda, onay istemi kanalda görünür. Yalnızca çözümlenen onaylayıcılar düğmeleri kullanabilir; diğer kullanıcılar ephemeral bir red yanıtı alır. Onay istemleri komut metnini içerir, bu nedenle kanal teslimatını yalnızca güvenilen kanallarda etkinleştirin. Kanal ID’si oturum anahtarından türetilemezse OpenClaw DM teslimatına fallback yapar.Discord, diğer sohbet kanallarında kullanılan paylaşılan onay düğmelerini de işler. Yerel Discord adaptörü esas olarak onaylayıcı DM yönlendirmesi ve kanal fanout’u ekler.
Bu düğmeler mevcut olduğunda, bunlar birincil onay UX’idir; OpenClaw
yalnızca araç sonucu sohbet onaylarının kullanılamadığını söylediğinde veya
tek yol manuel onay olduğunda bir manuel /approve komutu eklemelidir.Bu işleyici için Gateway yetkilendirmesi, diğer Gateway istemcileriyle aynı paylaşılan kimlik bilgisi çözümleme sözleşmesini kullanır:- env-first yerel yetkilendirme (
OPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD, ardındangateway.auth.*) - yerel modda,
gateway.auth.*ayarlı değilsegateway.remote.*yalnızca fallback olarak kullanılabilir; yapılandırılmış ancak çözümlenmemiş yerel SecretRef’ler fail closed olur - uygun olduğunda
gateway.remote.*üzerinden remote-mode desteği - URL geçersiz kılmaları override-safe’tir: CLI geçersiz kılmaları örtük kimlik bilgilerini yeniden kullanmaz ve env geçersiz kılmaları yalnızca env kimlik bilgilerini kullanır
plugin:önekli ID’lerplugin.approval.resolveüzerinden çözülür.- Diğer ID’ler
exec.approval.resolveüzerinden çözülür. - Discord burada ek bir exec-to-plugin fallback sıçraması yapmaz;
idöneki hangi gateway yöntemini çağıracağını belirler.
Araçlar ve eylem geçitleri
Discord mesaj eylemleri; mesajlaşma, kanal yönetimi, moderasyon, presence ve meta veri eylemlerini içerir. Temel örnekler:- mesajlaşma:
sendMessage,readMessages,editMessage,deleteMessage,threadReply - tepkiler:
react,reactions,emojiList - moderasyon:
timeout,kick,ban - presence:
setPresence
channels.discord.actions.* altında bulunur.
Varsayılan geçit davranışı:
| Eylem grubu | Varsayılan |
|---|---|
| reactions, messages, threads, pins, polls, search, memberInfo, roleInfo, channelInfo, channels, voiceStatus, events, stickers, emojiUploads, stickerUploads, permissions | etkin |
| roles | devre dışı |
| moderation | devre dışı |
| presence | devre dışı |
Components v2 UI
OpenClaw, exec onayları ve bağlamlar arası işaretleyiciler için Discord components v2 kullanır. Discord mesaj eylemleri, özel UI içincomponents da kabul edebilir (ileri düzey; discord aracı üzerinden bir bileşen payload’u oluşturmayı gerektirir), ancak eski embeds kullanılabilir olmaya devam eder ve önerilmez.
channels.discord.ui.components.accentColor, Discord bileşen kapsayıcıları için kullanılan vurgu rengini ayarlar (hex).- Hesap başına ayarlamak için
channels.discord.accounts.<id>.ui.components.accentColorkullanın. - components v2 mevcut olduğunda
embedsyok sayılır.
Ses kanalları
OpenClaw, gerçek zamanlı ve sürekli konuşmalar için Discord ses kanallarına katılabilir. Bu, sesli mesaj eklerinden ayrıdır. Gereksinimler:- Yerel komutları etkinleştirin (
commands.nativeveyachannels.discord.commands.native). channels.discord.voiceyapılandırın.- Botun hedef ses kanalında Connect + Speak izinlerine sahip olması gerekir.
/vc join|leave|status komutunu kullanın. Komut, hesabın varsayılan aracısını kullanır ve diğer Discord komutlarıyla aynı izin listesi ve grup ilkesi kurallarını izler.
Otomatik katılma örneği:
voice.tts, yalnızca ses oynatma içinmessages.ttsdeğerini geçersiz kılar.- Ses transkripti dönüşleri, sahip durumunu Discord
allowFrom(veyadm.allowFrom) üzerinden türetir; sahip olmayan konuşmacılar yalnızca sahip araçlarına (örneğingatewayvecron) erişemez. - Ses varsayılan olarak etkindir; devre dışı bırakmak için
channels.discord.voice.enabled=falseayarlayın. voice.daveEncryptionvevoice.decryptionFailureTolerance,@discordjs/voicekatılma seçeneklerine aynen geçirilir.@discordjs/voicevarsayılanları, ayarlanmamışsadaveEncryption=truevedecryptionFailureTolerance=24değerleridir.- OpenClaw ayrıca alma tarafı çözme hatalarını izler ve kısa bir pencerede tekrarlanan hatalardan sonra ses kanalından ayrılıp yeniden katılarak otomatik toparlanır.
- Alma günlükleri tekrar tekrar
DecryptionFailed(UnencryptedWhenPassthroughDisabled)gösteriyorsa bu, discord.js #11419 içinde izlenen yukarı akış@discordjs/voicealma hatası olabilir.
Sesli mesajlar
Discord sesli mesajları bir waveform önizlemesi gösterir ve OGG/Opus ses ile meta veri gerektirir. OpenClaw waveform’u otomatik oluşturur, ancak ses dosyalarını incelemek ve dönüştürmek için ağ geçidi ana bilgisayarındaffmpeg ve ffprobe kullanılabilir olmalıdır.
Gereksinimler ve kısıtlar:
- Bir yerel dosya yolu sağlayın (URL’ler reddedilir).
- Metin içeriğini atlayın (Discord aynı payload’da metin + sesli mesaja izin vermez).
- Her türlü ses biçimi kabul edilir; gerektiğinde OpenClaw bunu OGG/Opus’a dönüştürür.
Sorun giderme
İzin verilmeyen intent'ler kullanıldı veya bot sunucu mesajlarını görmüyor
İzin verilmeyen intent'ler kullanıldı veya bot sunucu mesajlarını görmüyor
- Message Content Intent’i etkinleştirin
- kullanıcı/üye çözümlemesine bağlıysanız Server Members Intent’i etkinleştirin
- intent’leri değiştirdikten sonra ağ geçidini yeniden başlatın
Sunucu mesajları beklenmedik şekilde engelleniyor
Sunucu mesajları beklenmedik şekilde engelleniyor
groupPolicydeğerini doğrulayınchannels.discord.guildsaltındaki sunucu izin listesini doğrulayın- sunucu
channelseşlemesi varsa yalnızca listelenen kanallara izin verilir requireMentiondavranışını ve mention kalıplarını doğrulayın
Require mention false ama yine de engelleniyor
Require mention false ama yine de engelleniyor
- eşleşen sunucu/kanal izin listesi olmadan
groupPolicy="allowlist" requireMentionyanlış yerde yapılandırılmış (channels.discord.guildsveya kanal girdisi altında olmalıdır )- gönderici sunucu/kanal
usersizin listesi tarafından engelleniyor
Uzun süren işleyiciler zaman aşımına uğruyor veya yinelenen yanıtlar oluşuyor
Uzun süren işleyiciler zaman aşımına uğruyor veya yinelenen yanıtlar oluşuyor
Listener DiscordMessageListener timed out after 30000ms for event MESSAGE_CREATESlow listener detected ...discord inbound worker timed out after ...
- tek hesap:
channels.discord.eventQueue.listenerTimeout - çok hesap:
channels.discord.accounts.<accountId>.eventQueue.listenerTimeout
- tek hesap:
channels.discord.inboundWorker.runTimeoutMs - çok hesap:
channels.discord.accounts.<accountId>.inboundWorker.runTimeoutMs - varsayılan:
1800000(30 dakika); devre dışı bırakmak için0ayarlayın
eventQueue.listenerTimeout, kuyruğa alınmış aracı dönüşleri için ayrı bir emniyet supabı istiyorsanız ise
yalnızca inboundWorker.runTimeoutMs kullanın.İzin denetimi uyuşmazlıkları
İzin denetimi uyuşmazlıkları
channels status --probe izin denetimleri yalnızca sayısal kanal ID’leriyle çalışır.Slug anahtarları kullanıyorsanız çalışma zamanı eşleştirmesi yine de çalışabilir, ancak probe izinleri tam olarak doğrulayamaz.DM ve eşleştirme sorunları
DM ve eşleştirme sorunları
- DM kapalı:
channels.discord.dm.enabled=false - DM ilkesi devre dışı:
channels.discord.dmPolicy="disabled"(eski:channels.discord.dm.policy) pairingmodunda eşleştirme onayı bekleniyor
Bottan bota döngüler
Bottan bota döngüler
channels.discord.allowBots=true ayarlarsanız, döngü davranışını önlemek için katı mention ve izin listesi kuralları kullanın.
Yalnızca botu mention eden bot mesajlarını kabul etmek için channels.discord.allowBots="mentions" tercih edin.Voice STT, DecryptionFailed(...) ile düşüyor
Voice STT, DecryptionFailed(...) ile düşüyor
- Discord ses alma toparlama mantığının mevcut olması için OpenClaw’ı güncel tutun (
openclaw update) channels.discord.voice.daveEncryption=trueolduğunu doğrulayın (varsayılan)channels.discord.voice.decryptionFailureTolerance=24(yukarı akış varsayılanı) değerinden başlayın ve yalnızca gerekirse ayarlayın- günlüklerde şunları izleyin:
discord voice: DAVE decrypt failures detecteddiscord voice: repeated decrypt failures; attempting rejoin
- otomatik yeniden katılmadan sonra hatalar sürerse günlükleri toplayın ve discord.js #11419 ile karşılaştırın
Yapılandırma başvuru işaretçileri
Birincil başvuru: Yüksek sinyalli Discord alanları:- başlangıç/kimlik doğrulama:
enabled,token,accounts.*,allowBots - ilke:
groupPolicy,dm.*,guilds.*,guilds.*.channels.* - komut:
commands.native,commands.useAccessGroups,configWrites,slashCommand.* - olay kuyruğu:
eventQueue.listenerTimeout(listener bütçesi),eventQueue.maxQueueSize,eventQueue.maxConcurrency - inbound worker:
inboundWorker.runTimeoutMs - yanıt/geçmiş:
replyToMode,historyLimit,dmHistoryLimit,dms.*.historyLimit - teslimat:
textChunkLimit,chunkMode,maxLinesPerMessage - akış:
streaming(eski takma ad:streamMode),draftChunk,blockStreaming,blockStreamingCoalesce - medya/yeniden deneme:
mediaMaxMb,retrymediaMaxMb, giden Discord yüklemelerini sınırlar (varsayılan:8MB)
- eylemler:
actions.* - presence:
activity,status,activityType,activityUrl - UI:
ui.components.accentColor - özellikler:
threadBindings, üst düzeybindings[](type: "acp"),pluralkit,execApprovals,intents,agentComponents,heartbeat,responsePrefix
Güvenlik ve işlemler
- Bot token’larını gizli bilgi olarak değerlendirin (denetimli ortamlarda
DISCORD_BOT_TOKENtercih edilir). - En az ayrıcalık ilkesine uygun Discord izinleri verin.
- Komut dağıtımı/durumu bayatsa ağ geçidini yeniden başlatın ve
openclaw channels status --probeile yeniden kontrol edin.