Skip to main content

Bot Feishu

Feishu (Lark) to zespołowa platforma czatu używana przez firmy do komunikacji i współpracy. Ta wtyczka łączy OpenClaw z botem Feishu/Lark, wykorzystując subskrypcję zdarzeń WebSocket platformy, dzięki czemu wiadomości mogą być odbierane bez wystawiania publicznego adresu URL webhooka.

Wymagana wtyczka

Zainstaluj wtyczkę Feishu:
Lokalne repozytorium (gdy uruchamiasz z repozytorium git):

Szybki start

Istnieją dwa sposoby dodania kanału Feishu:

Metoda 1: kreator onboardingu (zalecane)

Jeśli właśnie zainstalowałeś OpenClaw, uruchom kreator:
Kreator przewodniczy Ci przez:
  1. Utworzenie aplikacji Feishu i zebranie poświadczeń
  2. Skonfigurowanie poświadczeń aplikacji w OpenClaw
  3. Uruchomienie gateway
Po konfiguracji sprawdź status gateway:
  • openclaw gateway status
  • openclaw logs --follow

Metoda 2: konfiguracja przez CLI

Jeśli masz już ukończoną instalację początkową, dodaj kanał przez CLI:
Wybierz Feishu, a następnie wprowadź App ID i App Secret. Po konfiguracji zarządzaj gateway:
  • openclaw gateway status
  • openclaw gateway restart
  • openclaw logs --follow

Krok 1: Utwórz aplikację Feishu

1. Otwórz Feishu Open Platform

Odwiedź Feishu Open Platform i zaloguj się. Tenanci Lark (globalni) powinni użyć https://open.larksuite.com/app i ustawić domain: "lark" w konfiguracji Feishu.

2. Utwórz aplikację

  1. Kliknij Create enterprise app
  2. Uzupełnij nazwę aplikacji i opis
  3. Wybierz ikonę aplikacji
Create enterprise app

3. Skopiuj poświadczenia

W sekcji Credentials & Basic Info skopiuj:
  • Identyfikator aplikacji (format: cli_xxx)
  • Sekret aplikacji
Ważne: zachowaj App Secret w tajemnicy. Get credentials

4. Skonfiguruj uprawnienia

W Permissions kliknij Batch import i wklej:
Configure permissions

5. Włącz możliwości bota

W App Capability > Bot:
  1. Włącz obsługę bota
  2. Ustaw nazwę bota
Enable bot capability

6. Skonfiguruj subskrypcję zdarzeń

⚠️ Ważne: przed skonfigurowaniem subskrypcji zdarzeń upewnij się, że:
  1. Wykonałeś już openclaw channels add dla Feishu
  2. Gateway jest uruchomiony (openclaw gateway status)
W Event Subscription:
  1. Wybierz Use long connection to receive events (WebSocket)
  2. Dodaj zdarzenie: im.message.receive_v1
⚠️ Jeśli gateway nie jest uruchomiony, konfiguracja długiego połączenia może nie zapisać się poprawnie. Configure event subscription

7. Opublikuj aplikację

  1. Utwórz wersję w Version Management & Release
  2. Wyślij do przeglądu i opublikuj
  3. Poczekaj na zatwierdzenie przez administratora (aplikacje enterprise zwykle są zatwierdzane automatycznie)

Krok 2: Skonfiguruj OpenClaw

Konfiguracja za pomocą kreatora (zalecane)

Wybierz Feishu i wklej App ID oraz App Secret.

Konfiguracja przez plik konfiguracyjny

Edytuj ~/.openclaw/openclaw.json:

Konfiguracja przez zmienne środowiskowe

Domena Lark (globalna)

Jeśli Twój tenant korzysta z Lark (międzynarodowego), ustaw domenę na lark (lub pełny ciąg domeny). Możesz ustawić ją w channels.feishu.domain lub per konto (channels.feishu.accounts.<id>.domain).

Krok 3: Uruchomienie i test

1. Uruchom gateway

2. Wyślij wiadomość testową

W Feishu znajdź swojego bota i wyślij wiadomość.

3. Zatwierdź parowanie

Domyślnie bot odpowiada kodem parowania. Zatwierdź go:
Po zatwierdzeniu możesz normalnie prowadzić rozmowę.

Przegląd

  • Kanał bota Feishu: bot Feishu zarządzany przez gateway
  • Deterministyczne routowanie: odpowiedzi zawsze wracają do Feishu
  • Izolacja sesji: DM-y współdzielą główną sesję; grupy są izolowane
  • Połączenie WebSocket: długie połączenie przez SDK Feishu, bez potrzeby publicznego URL-a

Kontrola dostępu

Wiadomości bezpośrednie

  • Domyślnie: dmPolicy: "pairing" (nieznani użytkownicy otrzymują kod parowania)
  • Zatwierdzanie parowania:
  • Tryb listy dozwolonych: ustaw channels.feishu.allowFrom z dozwolonymi Open ID

Czaty grupowe

1. Polityka grup (channels.feishu.groupPolicy):
  • "open" = zezwól wszystkim w grupach (domyślnie)
  • "allowlist" = zezwól tylko groupAllowFrom
  • "disabled" = wyłącz wiadomości grupowe
2. Wymóg wzmianki (channels.feishu.groups.<chat_id>.requireMention):
  • true = wymagaj @wzmianki (domyślnie)
  • false = odpowiadaj bez wzmianek

Przykłady konfiguracji grup

Zezwól na wszystkie grupy, wymagaj @wzmianki (domyślnie)

Zezwól na wszystkie grupy, bez wymogu @wzmianki

Zezwól tylko określonym użytkownikom w grupach


Uzyskiwanie identyfikatorów grup/użytkowników

ID grup (chat_id)

Identyfikatory grup wyglądają jak oc_xxx. Metoda 1 (zalecana)
  1. Uruchom gateway i @wzmiankuj bota w grupie
  2. Uruchom openclaw logs --follow i znajdź chat_id
Metoda 2 Użyj debuggera API Feishu do wylistowania czatów grupowych.

ID użytkowników (open_id)

Identyfikatory użytkowników wyglądają jak ou_xxx. Metoda 1 (zalecana)
  1. Uruchom gateway i wyślij botowi DM
  2. Uruchom openclaw logs --follow i znajdź open_id
Metoda 2 Sprawdź żądania parowania pod kątem Open ID użytkowników:

Typowe polecenia

Uwaga: Feishu nie obsługuje jeszcze natywnych menu poleceń, dlatego polecenia muszą być wysyłane jako tekst.

Polecenia zarządzania gateway


Rozwiązywanie problemów

Bot nie odpowiada w czatach grupowych

  1. Upewnij się, że bot został dodany do grupy
  2. Upewnij się, że @wzmiankujesz bota (zachowanie domyślne)
  3. Sprawdź, czy groupPolicy nie jest ustawione na "disabled"
  4. Sprawdź logi: openclaw logs --follow

Bot nie odbiera wiadomości

  1. Upewnij się, że aplikacja jest opublikowana i zatwierdzona
  2. Upewnij się, że subskrypcja zdarzeń obejmuje im.message.receive_v1
  3. Upewnij się, że włączone jest długie połączenie
  4. Upewnij się, że uprawnienia aplikacji są kompletne
  5. Upewnij się, że gateway jest uruchomiony: openclaw gateway status
  6. Sprawdź logi: openclaw logs --follow

Wyciek App Secret

  1. Zresetuj App Secret w Feishu Open Platform
  2. Zaktualizuj App Secret w konfiguracji
  3. Zrestartuj gateway

Błędy wysyłania wiadomości

  1. Upewnij się, że aplikacja ma uprawnienie im:message:send_as_bot
  2. Upewnij się, że aplikacja jest opublikowana
  3. Sprawdź logi w poszukiwaniu szczegółowych błędów

Konfiguracja zaawansowana

Wiele kont

Limity wiadomości

  • textChunkLimit: rozmiar fragmentu tekstu wychodzącego (domyślnie: 2000 znaków)
  • mediaMaxMb: limit wysyłania/pobierania mediów (domyślnie: 30 MB)

Strumieniowanie

Feishu obsługuje strumieniowe odpowiedzi za pomocą kart interaktywnych. Po włączeniu bot aktualizuje kartę w miarę generowania tekstu.
Ustaw streaming: false, aby czekać na pełną odpowiedź przed wysłaniem.

Routowanie wieloagentowe

Użyj bindings do kierowania DM-ów lub grup Feishu do różnych agentów.
Pola routowania:
  • match.channel: "feishu"
  • match.peer.kind: "direct" or "group"
  • match.peer.id: Open ID użytkownika (ou_xxx) lub ID grupy (oc_xxx)
Zobacz Uzyskiwanie identyfikatorów grup/użytkowników, aby uzyskać wskazówki.

Referencja konfiguracji

Pełna konfiguracja: Konfiguracja Gateway Kluczowe opcje:

Referencja dmPolicy


Obsługiwane typy wiadomości

Odbiór

  • ✅ Tekst
  • ✅ Tekst sformatowany (post)
  • ✅ Obrazy
  • ✅ Pliki
  • ✅ Audio
  • ✅ Wideo
  • ✅ Naklejki

Wysyłanie

  • ✅ Tekst
  • ✅ Obrazy
  • ✅ Pliki
  • ✅ Audio
  • ⚠️ Tekst sformatowany (częściowe wsparcie)