// dokumentacja openclaw

Integracja OpenClaw z Discord — konfiguracja bota

Wprowadzenie

OpenClaw zapewnia pełną integrację z Discordem przez oficjalne Bot API. Obsługiwane są wiadomości prywatne (DM), kanały gildii, wątki, fora, komponenty interaktywne v2 oraz natywne komendy slash. Integracja jest gotowa do użycia produkcyjnego i oferuje rozbudowane opcje konfiguracyjne.

Tworzenie bota Discord

Proces konfiguracji obejmuje następujące kroki:

  1. Utwórz aplikację — przejdź do Discord Developer Portal i utwórz nową aplikację z użytkownikiem bota
  2. Włącz intenty — w ustawieniach bota włącz Message Content Intent (wymagany), Server Members Intent (zalecany) i opcjonalnie Presence Intent
  3. Wygeneruj token — kliknij „Reset Token" w zakładce Bot, aby uzyskać token autoryzacyjny
  4. Skonfiguruj OAuth2 — ustaw zakresy (bot, applications.commands) i uprawnienia: View Channels, Send Messages, Read Message History, Embed Links, Attach Files, opcjonalnie Add Reactions
  5. Włącz tryb dewelopera — w ustawieniach Discord włącz Developer Mode, aby mieć dostęp do numerycznych ID serwerów, użytkowników i kanałów
  6. Prywatność DM — na serwerze włącz opcję pozwalającą członkom na wysyłanie wiadomości bezpośrednich

Konfiguracja tokenu

Ustaw token bota jako zmienną środowiskową przed uruchomieniem Gateway:

export DISCORD_BOT_TOKEN="twoj-token-bota-discord"

Alternatywnie możesz podać token bezpośrednio w pliku konfiguracyjnym, choć zmienne środowiskowe są bezpieczniejsze.

Uruchomienie i parowanie

  1. Uruchom Gateway poleceniem openclaw gateway
  2. Wyślij wiadomość prywatną do bota — wygeneruje się kod parowania
  3. Zatwierdź kod: openclaw pairing approve discord KOD
  4. Opcjonalnie skonfiguruj gildię z izolowanymi sesjami na kanałach

Kontrola dostępu

Polityka wiadomości prywatnych

OpenClaw oferuje cztery tryby obsługi DM:

  • pairing (domyślny) — nieznani nadawcy otrzymują kod parowania do zatwierdzenia
  • allowlist — dostęp mają tylko użytkownicy z listy dozwolonych
  • open — każdy może pisać do bota (wymaga jawnej konfiguracji)
  • disabled — DM są całkowicie zablokowane

Polityka gildii

  • open — bot odpowiada na wszystkich serwerach
  • allowlist (domyślny gdy istnieje konfiguracja discord) — tylko wskazane gildie są dozwolone
  • disabled — wiadomości z gildii są blokowane

Routing na podstawie ról

Możesz kierować członków gildii do określonych agentów na podstawie ich roli Discord. Powiązania oparte na rolach są ewaluowane po powiązaniach peer/parent-peer, ale przed powiązaniami opartymi wyłącznie na gildii. Wszystkie skonfigurowane pola dopasowania muszą pasować jednocześnie.

Kanały i wątki

Standardowe kanały

  • Limit historii domyślnie wynosi 20 wiadomości (konfigurowalny przez historyLimit)
  • Tematy kanałów są wstrzykiwane do kontekstu jako niezaufane dane
  • Wątkowanie jest obsługiwane z powiązaniem sesji nadrzędnej

Kanały forum i media

Tworzenie wątków na forach odbywa się na dwa sposoby:

  • Wysłanie wiadomości do rodzica forum — wątek tworzy się automatycznie
  • Jawne polecenie tworzenia wątku z parametrem tytułu

Rodzice forów odrzucają komponenty Discord — w ich miejsce korzystaj z wątków.

Komponenty interaktywne

System obsługuje komponenty Discord v2, w tym kontenery z następującymi blokami:

  • Typy bloków: tekst, sekcja, separator, akcje, galeria mediów, plik
  • Wiersze akcji: do 5 przycisków lub jedno menu wyboru na wiersz
  • Typy menu: string, user, role, mentionable, channel
  • Formularze modalne: do 5 pól (tekst, checkbox, radio, select)

Komponenty są domyślnie jednorazowe — włącz reusable: true dla wielokrotnych interakcji. Możesz ograniczyć dostęp przez allowedUsers i ustawić niestandardowy kolor akcentu za pomocą wartości hex.

Komendy slash

Natywne komendy slash są domyślnie włączone (commands.native="auto") i zwracają odpowiedzi efemeryczne, widoczne tylko dla wywołującego. Uwierzytelnianie komend odbywa się identycznie jak dla zwykłych wiadomości — przez te same listy dozwolonych i polityki. Polecenia /model i /models udostępniają interaktywny selektor dostawcy i modelu.

Streaming odpowiedzi

Sterowanie podglądem na żywo odbywa się przez ustawienie replyToMode:

  • off (domyślnie) — brak podglądu strumieniowego
  • partial — edytuje pojedynczą wiadomość podglądu w miarę napływania tokenów
  • block — emituje fragmenty o konfigurowalnym rozmiarze (domyślnie 200-800 znaków, preferowane dzielenie na akapity)
  • progress — mapowany na tryb partial na Discordzie

Integracja głosowa

Bot może dołączać do kanałów głosowych Discord, jeśli posiada odpowiednie uprawnienia (Connect + Speak). Sterowanie odbywa się komendami:

  • /vc join — dołączenie do kanału głosowego
  • /vc leave — opuszczenie kanału
  • /vc status — sprawdzenie statusu

Możliwa jest konfiguracja automatycznego dołączania do wybranych kanałów po starcie Gateway oraz nadpisanie ustawień Text-to-Speech.

Bramy akcji

OpenClaw kontroluje, jakie akcje bot może wykonywać na Discordzie. Domyślnie włączone grupy to: reakcje, wiadomości, wątki, przypięcia, ankiety, wyszukiwanie, informacje o członkach, rolach i kanałach, wydarzenia, naklejki i emoji. Wyłączone domyślnie są: zarządzanie rolami, moderacja i status obecności.

Status i obecność

Konfiguracja statusu bota obejmuje:

  • Status: online, idle (bezczynny), dnd (nie przeszkadzać), invisible (niewidoczny)
  • Typy aktywności: Gra, Streamuje, Słucha, Ogląda, Niestandardowy, Rywalizuje
  • Auto-obecność: automatyczne mapowanie stanu zdrowia runtime na status Discord (zdrowy → online, zdegradowany → idle, wyczerpany → dnd)

Rozwiązywanie problemów

  • Problemy z intentami — sprawdź, czy Message Content Intent jest włączony; po zmianach zrestartuj Gateway
  • Blokowanie gildii — zweryfikuj groupPolicy, listy dozwolonych gildii i kanałów, ustawienia requireMention
  • Brak odpowiedzi na DM — sprawdź dm.enabled, dmPolicy i status parowania
  • Pętla botów — włącz allowBots tylko z rygorystycznymi regułami wzmianek; preferuj allowBots="mentions"
  • Awarie STT — zaktualizuj OpenClaw, potwierdź daveEncryption=true