Discord (Bot API)
Status: gotowy do DM-ów i tekstowych kanałów gildii przez oficjalną bramę bota Discord.Szybka konfiguracja (dla początkujących)
- Utwórz bota Discord i skopiuj token bota.
- W ustawieniach aplikacji Discord włącz Message Content Intent (oraz Server Members Intent, jeśli planujesz używać list dozwolonych lub wyszukiwania nazw).
- Ustaw token dla OpenClaw:
- Env:
DISCORD_BOT_TOKEN=... - Lub konfiguracja:
channels.discord.token: "...". - Jeśli ustawione są oba, konfiguracja ma pierwszeństwo (env jako zapas dotyczy tylko konta domyślnego).
- Env:
- Zaproś bota na swój serwer z uprawnieniami do wiadomości (utwórz prywatny serwer, jeśli chcesz tylko DM-y).
- Uruchom gateway.
- Dostęp do DM-ów jest domyślnie parowany; zatwierdź kod parowania przy pierwszym kontakcie.
Cele
- Rozmawiać z OpenClaw przez DM-y Discord lub kanały gildii.
- Czat bezpośredni zwija się do głównej sesji agenta (domyślnie
agent:main:main); kanały gildii pozostają odizolowane jakoagent:<agentId>:discord:channel:<channelId>(nazwy wyświetlane używajądiscord:<guildSlug>#<channelSlug>). - Grupowe DM-y są domyślnie ignorowane; włącz przez
channels.discord.dm.groupEnabledi opcjonalnie ogranicz przezchannels.discord.dm.groupChannels. - Zachować deterministyczne trasowanie: odpowiedzi zawsze wracają do kanału, z którego przyszły.
Jak to działa
- Utwórz aplikację Discord → Bot, włącz potrzebne intenty (DM-y + wiadomości gildii + treść wiadomości) i pobierz token bota.
- Zaproś bota na swój serwer z uprawnieniami wymaganymi do odczytu/wysyłania wiadomości tam, gdzie chcesz go używać.
- Skonfiguruj OpenClaw za pomocą
channels.discord.token(lubDISCORD_BOT_TOKENjako zapas). - Uruchom gateway; automatycznie uruchamia kanał Discord, gdy dostępny jest token (najpierw konfiguracja, potem env jako zapas) i
channels.discord.enablednie jestfalse.- Jeśli wolisz zmienne środowiskowe, ustaw
DISCORD_BOT_TOKEN(blok konfiguracji jest opcjonalny).
- Jeśli wolisz zmienne środowiskowe, ustaw
- Czat bezpośredni: użyj
user:<id>(lub wzmianki<@id>) przy dostarczaniu; wszystkie tury trafiają do współdzielonej sesjimain. Same identyfikatory numeryczne są niejednoznaczne i odrzucane. - Kanały gildii: użyj
channel:<channelId>do dostarczania. Wzmianki są domyślnie wymagane i można je ustawić per gildia lub per kanał. - Czat bezpośredni: domyślnie zabezpieczony przez
channels.discord.dm.policy(domyślnie:"pairing"). Nieznani nadawcy otrzymują kod parowania (wygasa po 1 godzinie); zatwierdź przezopenclaw pairing approve discord <code>.- Aby zachować stare zachowanie „otwarte dla wszystkich”: ustaw
channels.discord.dm.policy="open"ichannels.discord.dm.allowFrom=["*"]. - Aby zastosować twardą listę dozwolonych: ustaw
channels.discord.dm.policy="allowlist"i wypisz nadawców wchannels.discord.dm.allowFrom. - Aby ignorować wszystkie DM-y: ustaw
channels.discord.dm.enabled=falselubchannels.discord.dm.policy="disabled".
- Aby zachować stare zachowanie „otwarte dla wszystkich”: ustaw
- Grupowe DM-y są domyślnie ignorowane; włącz przez
channels.discord.dm.groupEnabledi opcjonalnie ogranicz przezchannels.discord.dm.groupChannels. - Opcjonalne reguły gildii: ustaw
channels.discord.guildsz kluczami według id gildii (preferowane) lub sluga, z regułami per kanał. - Opcjonalne komendy natywne:
commands.nativedomyślnie"auto"(włączone dla Discord/Telegram, wyłączone dla Slack). Nadpisz przezchannels.discord.commands.native: true|false|"auto";falseczyści wcześniej zarejestrowane komendy. Komendy tekstowe są kontrolowane przezcommands.texti muszą być wysyłane jako samodzielne wiadomości/.... Użyjcommands.useAccessGroups: false, aby pominąć sprawdzanie grup dostępu dla komend.- Pełna lista komend + konfiguracja: Slash commands
- Opcjonalna historia kontekstu gildii: ustaw
channels.discord.historyLimit(domyślnie 20, z zapasem domessages.groupChat.historyLimit), aby dołączyć ostatnie N wiadomości gildii jako kontekst przy odpowiedzi na wzmiankę. Ustaw0, aby wyłączyć. - Reakcje: agent może wyzwalać reakcje przez narzędzie
discord(kontrolowane przezchannels.discord.actions.*).- Semantyka usuwania reakcji: zobacz /tools/reactions.
- Narzędzie
discordjest udostępniane tylko, gdy bieżący kanał to Discord.
- Komendy natywne używają izolowanych kluczy sesji (
agent:<agentId>:discord:slash:<userId>) zamiast współdzielonej sesjimain.
<@id>.
Uwaga: Slugi są pisane małymi literami, a spacje zastępowane przez -. Nazwy kanałów są slugowane bez wiodącego #.
Uwaga: Linie kontekstu gildii [from:] zawierają author.tag + id, aby ułatwić odpowiedzi gotowe do pingowania.
Zapisy konfiguracji
Domyślnie Discord ma prawo zapisywać aktualizacje konfiguracji wyzwalane przez/config set|unset (wymaga commands.config: true).
Wyłącz przez:
Jak utworzyć własnego bota
To jest konfiguracja „Discord Developer Portal” do uruchamiania OpenClaw w kanale serwera (gildii), takim jak#help.
1. Utwórz aplikację Discord + użytkownika bota
- Discord Developer Portal → Applications → New Application
- W aplikacji:
- Bot → Add Bot
- Skopiuj Bot Token (to trafia do
DISCORD_BOT_TOKEN)
2) Włącz intenty bramy wymagane przez OpenClaw
Discord blokuje „uprzywilejowane intenty”, jeśli nie włączysz ich jawnie. W Bot → Privileged Gateway Intents włącz:- Message Content Intent (wymagany do odczytu treści wiadomości w większości gildii; bez niego zobaczysz „Used disallowed intents” lub bot połączy się, ale nie zareaguje na wiadomości)
- Server Members Intent (zalecany; wymagany do niektórych wyszukiwań członków/użytkowników i dopasowań list dozwolonych w gildiach)
setPresence) używa OP3 bramy i nie wymaga tego intentu; jest on potrzebny tylko, jeśli chcesz otrzymywać aktualizacje obecności innych członków gildii.
3. Wygeneruj URL zaproszenia (OAuth2 URL Generator)
W aplikacji: OAuth2 → URL Generator Scopes- ✅
bot - ✅
applications.commands(wymagane dla komend natywnych)
- ✅ View Channels
- ✅ Send Messages
- ✅ Read Message History
- ✅ Embed Links
- ✅ Attach Files
- ✅ Add Reactions (opcjonalne, ale zalecane)
- ✅ Use External Emojis / Stickers (opcjonalne; tylko jeśli chcesz)
4. Pobierz identyfikatory (gildia/użytkownik/kanał)
Discord używa wszędzie identyfikatorów numerycznych; konfiguracja OpenClaw preferuje id.- Discord (desktop/web) → User Settings → Advanced → włącz Developer Mode
- Kliknij prawym przyciskiem:
- Nazwa serwera → Copy Server ID (id gildii)
- Kanał (np.
#help) → Copy Channel ID - Twój użytkownik → Copy User ID
5) Skonfiguruj OpenClaw
Token
Ustaw token bota przez zmienną środowiskową (zalecane na serwerach):DISCORD_BOT_TOKEN=...
channels.discord.accounts z tokenami per konto i opcjonalnym name. Zobacz gateway/configuration dla wspólnego wzorca.
Lista dozwolonych + trasowanie kanałów
Przykład „jeden serwer, tylko ja, tylko #help”:requireMention: trueoznacza, że bot odpowiada tylko na wzmianki (zalecane dla kanałów współdzielonych).agents.list[].groupChat.mentionPatterns(lubmessages.groupChat.mentionPatterns) również liczą się jako wzmianki dla wiadomości gildii.- Nadpisanie wieloagentowe: ustaw wzorce per agent w
agents.list[].groupChat.mentionPatterns. - Jeśli obecne jest
channels, każdy niewymieniony kanał jest domyślnie odrzucany. - Użyj wpisu kanału
"*", aby zastosować domyślne ustawienia dla wszystkich kanałów; jawne wpisy kanałów nadpisują wildcard. - Wątki dziedziczą konfigurację kanału nadrzędnego (lista dozwolonych,
requireMention, skills, prompty itd.), chyba że jawnie dodasz id kanału wątku. chyba że dodasz wyraźnie identyfikator kanału wątków. - Wskazówka właściciela: gdy per-gildia lub per-kanał lista dozwolonych
usersdopasuje nadawcę, OpenClaw traktuje go jako właściciela w systemowym promptcie. Dla globalnego właściciela między kanałami ustawcommands.ownerAllowFrom. - Wiadomości autorstwa bota są domyślnie ignorowane; ustaw
channels.discord.allowBots=true, aby je dopuścić (własne wiadomości pozostają filtrowane). - Ostrzeżenie: jeśli zezwolisz na odpowiedzi do innych botów (
channels.discord.allowBots=true), zapobiegaj pętlom bot–bot za pomocą list dozwolonychrequireMention,channels.discord.guilds.*.channels.<id>.usersi/lub wyczyść zabezpieczenia wAGENTS.mdiSOUL.md.
6. Sprawdź, czy działa
- Uruchom gateway.
- Na kanale serwera wyślij:
@Krill hello(lub nazwę swojego bota). - Jeśli nic się nie dzieje: sprawdź Rozwiązywanie problemów poniżej.
Rozwiązywanie problemów
- Najpierw: uruchom
openclaw doctoriopenclaw channels status --probe(ostrzeżenia możliwe do działania + szybkie audyty). - „Used disallowed intents”: włącz Message Content Intent (i prawdopodobnie Server Members Intent) w Developer Portal, następnie zrestartuj gateway.
- Bot łączy się, ale nigdy nie odpowiada na kanale gildii:
- Brak Message Content Intent, lub
- Bot nie ma uprawnień kanału (View/Send/Read History), lub
- Konfiguracja wymaga wzmianek, a nie wspomniałeś bota, lub
- Lista dozwolonych gildii/kanału odrzuca kanał/użytkownika.
requireMention: false, ale nadal brak odpowiedzi:channels.discord.groupPolicydomyślnie to allowlist; ustaw na"open"lub dodaj wpis gildii podchannels.discord.guilds(opcjonalnie wypisz kanały podchannels.discord.guilds.<id>.channels, aby ograniczyć).- Jeśli ustawisz tylko
DISCORD_BOT_TOKENi nigdy nie utworzysz sekcjichannels.discord, środowisko wykonawcze domyślnie ustawigroupPolicynaopen. Dodajchannels.discord.groupPolicy,channels.defaults.groupPolicylub listę dozwolonych gildii/kanału, aby to zablokować.
- Jeśli ustawisz tylko
requireMentionmusi znajdować się podchannels.discord.guilds(lub konkretnym kanałem).channels.discord.requireMentionna najwyższym poziomie jest ignorowane.- Audyty uprawnień (
channels status --probe) sprawdzają tylko numeryczne identyfikatory kanałów. Jeśli używasz slugów/nazw jako kluczychannels.discord.guilds.*.channels, audyt nie może zweryfikować uprawnień. - DM-y nie działają:
channels.discord.dm.enabled=false,channels.discord.dm.policy="disabled"lub nie zostałeś jeszcze zatwierdzony (channels.discord.dm.policy="pairing"). - Zatwierdzanie exec w Discord: Discord obsługuje interfejs przycisków dla zatwierdzeń exec w DM-ach (Allow once / Always allow / Deny).
/approve <id> ...dotyczy tylko przekazywanych zatwierdzeń i nie rozwiąże promptów przycisków Discord. Jeśli widzisz❌ Failed to submit approval: Error: unknown approval idlub UI nigdy się nie pojawia, sprawdź:channels.discord.execApprovals.enabled: truew konfiguracji.- Czy Twój Discord user ID jest na liście
channels.discord.execApprovals.approvers(UI jest wysyłane tylko do zatwierdzających). - Użyj przycisków w DM (Allow once, Always allow, Deny).
- Zobacz Exec approvals i Slash commands dla szerszego przepływu zatwierdzeń i komend.
Możliwości i limity
- DM-y i tekstowe kanały gildii (wątki są traktowane jako osobne kanały; głos nie jest obsługiwany).
- Wskaźniki pisania wysyłane w trybie best-effort; dzielenie wiadomości używa
channels.discord.textChunkLimit(domyślnie 2000) i rozcina długie odpowiedzi według liczby linii (channels.discord.maxLinesPerMessage, domyślnie 17). - Opcjonalne dzielenie po nowych liniach: ustaw
channels.discord.chunkMode="newline", aby dzielić po pustych liniach (granice akapitów) przed dzieleniem długości. - Wysyłanie plików obsługiwane do skonfigurowanego
channels.discord.mediaMaxMb(domyślnie 8 MB). - Odpowiedzi w gildii domyślnie wymagają wzmianki, aby uniknąć hałaśliwych botów.
- Kontekst odpowiedzi jest wstrzykiwany, gdy wiadomość odwołuje się do innej wiadomości (cytowana treść + id).
- Natywne wątki odpowiedzi są domyślnie wyłączone; włącz przez
channels.discord.replyToModei tagi odpowiedzi.
Polityka ponowień
Wychodzące wywołania API Discord ponawiają przy limitach (429) z użyciem Discordretry_after, gdy dostępne, z wykładniczym opóźnieniem i jitterem. Konfiguruj przez channels.discord.retry. Zobacz Retry policy.
Konfiguracja
messages.ackReaction +
messages.ackReactionScope. Użyj messages.removeAckAfterReply, aby usunąć
reakcję potwierdzenia po odpowiedzi bota.
dm.enabled: ustawfalse, aby ignorować wszystkie DM-y (domyślnietrue).dm.policy: kontrola dostępu DM (pairingzalecane)."open"wymagadm.allowFrom=["*"].dm.allowFrom: lista dozwolonych DM (id użytkowników lub nazwy). Używana przezdm.policy="allowlist"i do walidacjidm.policy="open". Kreator akceptuje nazwy użytkowników i rozwiązuje je do id, gdy bot może wyszukiwać członków.dm.groupEnabled: włącz grupowe DM-y (domyślniefalse).dm.groupChannels: opcjonalna lista dozwolonych id kanałów grupowych DM lub slugów.groupPolicy: kontroluje obsługę kanałów gildii (open|disabled|allowlist);allowlistwymaga list dozwolonych kanałów.guilds: reguły per-gildia z kluczami id gildii (preferowane) lub slug.guilds."*": domyślne ustawienia per-gildia stosowane, gdy brak jawnego wpisu.guilds.<id>.slug: opcjonalny przyjazny slug używany w nazwach wyświetlanych.guilds.<id>.users: opcjonalna per-gildia lista dozwolonych użytkowników (id lub nazwy).guilds.<id>.tools: opcjonalne per-gildia nadpisania polityki narzędzi (allow/deny/alsoAllow) używane, gdy brak nadpisania kanału.guilds.<id>.toolsBySender: opcjonalne per-nadawca nadpisania polityki narzędzi na poziomie gildii (stosowane, gdy brak nadpisania kanału; obsługiwany wildcard"*").guilds.<id>.channels.<channel>.allow: zezwól/zabroń kanału, gdygroupPolicy="allowlist".guilds.<id>.channels.<channel>.requireMention: bramkowanie wzmianek dla kanału.guilds.<id>.channels.<channel>.tools: opcjonalne per-kanał nadpisania polityki narzędzi (allow/deny/alsoAllow).guilds.<id>.channels.<channel>.toolsBySender: opcjonalne per-nadawca nadpisania polityki narzędzi w kanale (obsługiwany wildcard"*").guilds.<id>.channels.<channel>.users: opcjonalna per-kanał lista dozwolonych użytkowników.guilds.<id>.channels.<channel>.skills: filtr skills (pominięcie = wszystkie skills, puste = brak).guilds.<id>.channels.<channel>.systemPrompt: dodatkowy systemowy prompt dla kanału. Tematy kanałów Discord są wstrzykiwane jako kontekst niezaufany (nie systemowy prompt).guilds.<id>.channels.<channel>.enabled: ustawfalse, aby wyłączyć kanał.guilds.<id>.channels: reguły kanałów (klucze to slugi lub id kanałów).guilds.<id>.requireMention: wymaganie wzmianek per-gildia (możliwe do nadpisania per kanał).guilds.<id>.reactionNotifications: tryb zdarzeń systemu reakcji (off,own,all,allowlist).textChunkLimit: rozmiar fragmentów tekstu wychodzącego (znaki). Domyślnie: 2000.chunkMode:length(domyślnie) dzieli tylko po przekroczeniutextChunkLimit;newlinedzieli po pustych liniach (granice akapitów) przed dzieleniem długości.maxLinesPerMessage: miękki maks. liczby linii na wiadomość. Domyślnie: 17.mediaMaxMb: ogranicz zapisywane na dysku media przychodzące.historyLimit: liczba ostatnich wiadomości gildii dołącza jako kontekst przy odpowiedzi na wzmiankę (domyślnie 20; z zapasem domessages.groupChat.historyLimit;0wyłącza).dmHistoryLimit: limit historii DM w turach użytkownika. Nadpisania per użytkownik:dms["<user_id>"].historyLimit.retry: polityka ponowień dla wychodzących wywołań API Discord (próby, minDelayMs, maxDelayMs, jitter).pluralkit: rozwiązywanie wiadomości proxy PluralKit, aby członkowie systemu byli widoczni jako odrębni nadawcy.actions: bramki narzędzi per akcja; pomiń, aby zezwolić na wszystkie (ustawfalse, aby wyłączyć).reactions(obejmuje reakcje + odczyt reakcji)stickers,emojiUploads,stickerUploads,polls,permissions,messages,threads,pins,searchmemberInfo,roleInfo,channelInfo,voiceStatus,eventschannels(tworzenie/edycja/usuwanie kanałów + kategorii + uprawnień)roles(dodawanie/usuwanie ról, domyślniefalse)moderation(timeout/kick/ban, domyślniefalse)presence(status/aktywność bota, domyślniefalse)
execApprovals: zatwierdzenia exec tylko dla Discord (DM-y z UI przycisków). Obsługujeenabled,approvers,agentFilter,sessionFilter.
guilds.<id>.reactionNotifications:
off: brak zdarzeń reakcji.own: reakcje na własnych wiadomościach bota (domyślnie).all: wszystkie reakcje na wszystkich wiadomościach.allowlist: reakcje odguilds.<id>.usersna wszystkich wiadomościach (pusta lista wyłącza).
Wsparcie PluralKit (PK)
Włącz wyszukiwania PK, aby wiadomości proxy były rozwiązywane do bazowego systemu + członka. Po włączeniu OpenClaw używa tożsamości członka do list dozwolonych i etykietuje nadawcę jakoMember (PK:System), aby uniknąć przypadkowych pingów Discord.
- Użyj
pk:<memberId>wdm.allowFrom,guilds.<id>.userslub per-kanałusers. - Nazwy wyświetlane członków są również dopasowywane po nazwie/slug.
- Wyszukiwania używają oryginalnego ID wiadomości Discord (sprzed proxy), więc API PK rozwiązuje je tylko w swoim 30‑minutowym oknie.
- Jeśli wyszukiwania PK się nie powiodą (np. prywatny system bez tokena), wiadomości proxy
są traktowane jako wiadomości bota i odrzucane, chyba że
channels.discord.allowBots=true.
Domyślne akcje narzędzi
| Grupa akcji | Domyślne | Uwagi |
|---|---|---|
| reactions | enabled | Reakcje + lista reakcji + emojiList |
| stickers | enabled | Wysyłanie naklejek |
| emojiUploads | enabled | Wgrywanie emoji |
| stickerUploads | enabled | Wgrywanie naklejek |
| polls | enabled | Tworzenie ankiet |
| permissions | enabled | Migawka uprawnień kanału |
| messages | enabled | Odczyt/wysyłanie/edycja/usuwanie |
| threads | enabled | Tworzenie/listowanie/odpowiedzi |
| pins | enabled | Przypinanie/odpinanie/lista |
| search | enabled | Wyszukiwanie wiadomości (preview) |
| memberInfo | enabled | Informacje o członku |
| roleInfo | enabled | Lista ról |
| channelInfo | włączone | Informacje o kanale + lista |
| channels | włączone | Zarządzanie kanałami/kategoriami |
| voiceStatus | włączone | Podgląd stanu głosu |
| events | włączone | Lista/tworzenie wydarzeń |
| role | wyłączone | Dodawanie/usuwanie ról |
| moderacja | wyłączone | Timeout/kick/ban |
| presence | wyłączone | Status/aktywność bota (setPresence) |
replyToMode:off(domyślnie),firstluball. Stosowane tylko, gdy model zawiera tag odpowiedzi.
Tagi odpowiedzi
Aby zażądać odpowiedzi w wątku, model może zawrzeć jeden tag w swoim wyjściu:[[reply_to_current]]— odpowiedz na wyzwalającą wiadomość Discord.[[reply_to:<id>]]— odpowiedz na konkretne id wiadomości z kontekstu/historii. Bieżące id wiadomości są dołączane do promptów jako[message_id: …]; wpisy historii już zawierają id.
channels.discord.replyToMode:
off: ignoruj tagi.first: tylko pierwszy fragment/załącznik wychodzący jest odpowiedzią.all: każdy fragment/załącznik wychodzący jest odpowiedzią.
allowFrom/users/groupChannelsakceptują id, nazwy, tagi lub wzmianki, takie jak<@id>.- Prefiksy takie jak
discord:/user:(użytkownicy) orazchannel:(grupowe DM-y) są obsługiwane. - Użyj
*, aby dopuścić dowolnego nadawcę/kanał. - Gdy obecne jest
guilds.<id>.channels, niewymienione kanały są domyślnie odrzucane. - Gdy
guilds.<id>.channelsjest pominięte, wszystkie kanały w dozwolonej gildii są dozwolone. - Aby dopuścić żadne kanały, ustaw
channels.discord.groupPolicy: "disabled"(lub pozostaw pustą listę dozwolonych). - Kreator konfiguracji akceptuje nazwy
Guild/Channel(publiczne + prywatne) i rozwiązuje je do ID, gdy to możliwe. - Przy starcie OpenClaw rozwiązuje nazwy kanałów/użytkowników w listach dozwolonych do ID (gdy bot może wyszukiwać członków) i loguje mapowanie; nierozwiązane wpisy są zachowywane w oryginalnej postaci.
- Zarejestrowane komendy odzwierciedlają komendy czatu OpenClaw.
- Komendy natywne respektują te same listy dozwolonych co DM-y/wiadomości gildii (
channels.discord.dm.allowFrom,channels.discord.guilds, reguły per kanał). - Komendy slash mogą być nadal widoczne w UI Discord dla użytkowników spoza listy dozwolonych; OpenClaw egzekwuje listy przy wykonaniu i odpowiada „not authorized”.
Akcje narzędzi
Agent może wywołaćdiscord z akcjami takimi jak:
react/reactions(dodawanie lub listowanie reakcji)sticker,poll,permissionsreadMessages,sendMessage,editMessage,deleteMessage- Ładunki narzędzi odczytu/wyszukiwania/przypinania zawierają znormalizowany
timestampMs(UTC epoch ms) oraztimestampUtcobok surowego Discordtimestamp. threadCreate,threadList,threadReplypinMessage,unpinMessage,listPinssearchMessages,memberInfo,roleInfo,roleAdd,roleRemove,emojiListchannelInfo,channelList,voiceStatus,eventList,eventCreatetimeout,kick,bansetPresence(aktywność bota i status online)
[discord message id: …] i linie historii), aby agent mógł je adresować.
Emoji mogą być unicode (np. ✅) lub niestandardową składnią emoji, jak <:party_blob:1234567890>.
Bezpieczeństwo i operacje
- Traktuj token bota jak hasło; preferuj zmienną środowiskową
DISCORD_BOT_TOKENna hostach nadzorowanych lub zablokuj uprawnienia pliku konfiguracyjnego. - Przyznawaj botowi tylko potrzebne uprawnienia (zwykle Read/Send Messages).
- Jeśli bot utknął lub jest limitowany, zrestartuj gateway (
openclaw gateway --force) po potwierdzeniu, że żadne inne procesy nie posiadają sesji Discord.