chore(i18n): refresh pl translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-13 12:37:44 +00:00
parent d10f098d12
commit 8bf9280c21

View File

@ -5,342 +5,84 @@ read_when:
summary: Przegląd bota Feishu, funkcje i konfiguracja
title: Feishu
x-i18n:
generated_at: "2026-04-05T13:43:36Z"
generated_at: "2026-04-13T12:36:58Z"
model: gpt-5.4
provider: openai
source_hash: 4e39b6dfe3a3aa4ebbdb992975e570e4f1b5e79f3b400a555fc373a0d1889952
source_hash: 77fcf95a3fab534ed898bc157d76bf8bdfa8bf8a918d6af84c0db19890916c1a
source_path: channels/feishu.md
workflow: 15
---
# Bot Feishu
# Feishu / Lark
Feishu (Lark) to platforma czatu zespołowego używana przez firmy do komunikacji i współpracy. Ten plugin łączy OpenClaw z botem Feishu/Lark przy użyciu subskrypcji zdarzeń WebSocket platformy, dzięki czemu wiadomości mogą być odbierane bez udostępniania publicznego adresu URL webhooka.
Feishu/Lark to kompleksowa platforma do współpracy, w której zespoły czatują, udostępniają dokumenty, zarządzają kalendarzami i wspólnie wykonują pracę.
---
## Dołączony plugin
Feishu jest dołączony do aktualnych wydań OpenClaw, więc nie jest wymagana osobna instalacja pluginu.
Jeśli używasz starszej wersji lub niestandardowej instalacji, która nie zawiera dołączonego
Feishu, zainstaluj go ręcznie:
```bash
openclaw plugins install @openclaw/feishu
```
**Status:** gotowe do użycia produkcyjnego dla prywatnych wiadomości bota i czatów grupowych. WebSocket jest trybem domyślnym; tryb webhook jest opcjonalny.
---
## Szybki start
Są dwa sposoby dodania kanału Feishu:
### Metoda 1: onboarding (zalecane)
Jeśli właśnie zainstalowano OpenClaw, uruchom onboarding:
```bash
openclaw onboard
```
Kreator przeprowadzi Cię przez:
1. Utworzenie aplikacji Feishu i zebranie danych uwierzytelniających
2. Skonfigurowanie danych uwierzytelniających aplikacji w OpenClaw
3. Uruchomienie gateway
**Po konfiguracji** sprawdź stan gateway:
- `openclaw gateway status`
- `openclaw logs --follow`
### Metoda 2: konfiguracja przez CLI
Jeśli początkowa instalacja została już ukończona, dodaj kanał przez CLI:
```bash
openclaw channels add
```
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](https://open.feishu.cn/app) i zaloguj się.
Dzierżawy Lark (globalne) powinny używać [https://open.larksuite.com/app](https://open.larksuite.com/app) i ustawić `domain: "lark"` w konfiguracji Feishu.
### 2. Utwórz aplikację
1. Kliknij **Create enterprise app**
2. Wypełnij nazwę i opis aplikacji
3. Wybierz ikonę aplikacji
![Create enterprise app](/images/feishu-step2-create-app.png)
### 3. Skopiuj dane uwierzytelniające
Z sekcji **Credentials & Basic Info** skopiuj:
- **App ID** (format: `cli_xxx`)
- **App Secret**
**Ważne:** zachowaj App Secret w tajemnicy.
![Get credentials](/images/feishu-step3-credentials.png)
### 4. Skonfiguruj uprawnienia
W sekcji **Permissions** kliknij **Batch import** i wklej:
```json
{
"scopes": {
"tenant": [
"aily:file:read",
"aily:file:write",
"application:application.app_message_stats.overview:readonly",
"application:application:self_manage",
"application:bot.menu:write",
"cardkit:card:read",
"cardkit:card:write",
"contact:user.employee_id:readonly",
"corehr:file:download",
"event:ip_list",
"im:chat.access_event.bot_p2p_chat:read",
"im:chat.members:bot_access",
"im:message",
"im:message.group_at_msg:readonly",
"im:message.p2p_msg:readonly",
"im:message:readonly",
"im:message:send_as_bot",
"im:resource"
],
"user": ["aily:file:read", "aily:file:write", "im:chat.access_event.bot_p2p_chat:read"]
}
}
```
![Configure permissions](/images/feishu-step4-permissions.png)
### 5. Włącz możliwości bota
W **App Capability** > **Bot**:
1. Włącz możliwości bota
2. Ustaw nazwę bota
![Enable bot capability](/images/feishu-step5-bot-capability.png)
### 6. Skonfiguruj subskrypcję zdarzeń
⚠️ **Ważne:** przed skonfigurowaniem subskrypcji zdarzeń upewnij się, że:
1. `openclaw channels add` zostało już uruchomione dla Feishu
2. Gateway jest uruchomiony (`openclaw gateway status`)
W sekcji **Event Subscription**:
1. Wybierz **Use long connection to receive events** (WebSocket)
2. Dodaj zdarzenie: `im.message.receive_v1`
3. (Opcjonalnie) Dla workflow komentarzy Drive dodaj też: `drive.notice.comment_add_v1`
⚠️ Jeśli gateway nie jest uruchomiony, konfiguracja long connection może nie zostać zapisana.
![Configure event subscription](/images/feishu-step6-event-subscription.png)
### 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 firmowe zwykle są zatwierdzane automatycznie)
---
## Krok 2: Skonfiguruj OpenClaw
### Skonfiguruj za pomocą kreatora (zalecane)
```bash
openclaw channels add
```
Wybierz **Feishu** i wklej swój App ID oraz App Secret.
### Skonfiguruj przez plik config
Edytuj `~/.openclaw/openclaw.json`:
```json5
{
channels: {
feishu: {
enabled: true,
dmPolicy: "pairing",
accounts: {
main: {
appId: "cli_xxx",
appSecret: "xxx",
name: "Mój asystent AI",
},
},
},
},
}
```
Jeśli używasz `connectionMode: "webhook"`, ustaw zarówno `verificationToken`, jak i `encryptKey`. Serwer webhooków Feishu domyślnie nasłuchuje na `127.0.0.1`; ustaw `webhookHost` tylko wtedy, gdy celowo potrzebujesz innego adresu nasłuchiwania.
#### Verification Token i Encrypt Key (tryb webhook)
Podczas używania trybu webhook ustaw w konfiguracji zarówno `channels.feishu.verificationToken`, jak i `channels.feishu.encryptKey`. Aby uzyskać te wartości:
1. W Feishu Open Platform otwórz swoją aplikację
2. Przejdź do **Development****Events & Callbacks** (开发配置 → 事件与回调)
3. Otwórz kartę **Encryption** (加密策略)
4. Skopiuj **Verification Token** i **Encrypt Key**
Poniższy zrzut ekranu pokazuje, gdzie znaleźć **Verification Token**. **Encrypt Key** znajduje się w tej samej sekcji **Encryption**.
![Verification Token location](/images/feishu-verification-token.png)
### Skonfiguruj przez zmienne środowiskowe
```bash
export FEISHU_APP_ID="cli_xxx"
export FEISHU_APP_SECRET="xxx"
```
### Domena Lark (globalna)
Jeśli Twoja dzierżawa działa w Lark (międzynarodowym), ustaw domenę na `lark` (lub pełny ciąg domeny). Można to ustawić w `channels.feishu.domain` albo per konto (`channels.feishu.accounts.<id>.domain`).
```json5
{
channels: {
feishu: {
domain: "lark",
accounts: {
main: {
appId: "cli_xxx",
appSecret: "xxx",
},
},
},
},
}
```
### Flagi optymalizacji limitów
Możesz ograniczyć użycie API Feishu za pomocą dwóch opcjonalnych flag:
- `typingIndicator` (domyślnie `true`): gdy ustawione na `false`, pomija wywołania reakcji wpisywania.
- `resolveSenderNames` (domyślnie `true`): gdy ustawione na `false`, pomija wywołania wyszukiwania profilu nadawcy.
Ustaw je na poziomie głównym lub per konto:
```json5
{
channels: {
feishu: {
typingIndicator: false,
resolveSenderNames: false,
accounts: {
main: {
appId: "cli_xxx",
appSecret: "xxx",
typingIndicator: true,
resolveSenderNames: false,
},
},
},
},
}
```
---
## Krok 3: Uruchom + przetestuj
### 1. Uruchom gateway
```bash
openclaw 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:
```bash
openclaw pairing approve feishu <CODE>
```
Po zatwierdzeniu możesz normalnie rozmawiać.
---
## Przegląd
- **Kanał bota Feishu**: bot Feishu zarządzany przez gateway
- **Deterministyczne routowanie**: odpowiedzi zawsze wracają do Feishu
- **Izolacja sesji**: wiadomości prywatne współdzielą główną sesję; grupy są izolowane
- **Połączenie WebSocket**: long connection przez SDK Feishu, bez potrzeby używania publicznego URL
> **Wymaga OpenClaw 2026.4.10 lub nowszego.** Aby sprawdzić wersję, uruchom `openclaw --version`. Zaktualizuj za pomocą `openclaw update`.
<Steps>
<Step title="Uruchom kreator konfiguracji kanału">
```bash
openclaw channels login --channel feishu
```
Zeskanuj kod QR w aplikacji mobilnej Feishu/Lark, aby automatycznie utworzyć bota Feishu/Lark.
</Step>
<Step title="Po zakończeniu konfiguracji uruchom ponownie Gateway, aby zastosować zmiany">
```bash
openclaw gateway restart
```
</Step>
</Steps>
---
## Kontrola dostępu
### Wiadomości prywatne
### Prywatne wiadomości
- **Domyślnie**: `dmPolicy: "pairing"` (nieznani użytkownicy otrzymują kod parowania)
- **Zatwierdź parowanie**:
Skonfiguruj `dmPolicy`, aby określić, kto może wysyłać prywatne wiadomości do bota:
```bash
openclaw pairing list feishu
openclaw pairing approve feishu <CODE>
```
- `"pairing"` — nieznani użytkownicy otrzymują kod parowania; zatwierdź przez CLI
- `"allowlist"` — tylko użytkownicy wymienieni w `allowFrom` mogą czatować (domyślnie: tylko właściciel bota)
- `"open"` — zezwól wszystkim użytkownikom
- `"disabled"` — wyłącz wszystkie prywatne wiadomości
- **Tryb allowlist**: ustaw `channels.feishu.allowFrom` z dozwolonymi Open ID
**Zatwierdzanie prośby o parowanie:**
```bash
openclaw pairing list feishu
openclaw pairing approve feishu <CODE>
```
### Czaty grupowe
**1. Zasada grupy** (`channels.feishu.groupPolicy`):
**Zasada dla grup** (`channels.feishu.groupPolicy`):
- `"open"` = zezwól wszystkim w grupach
- `"allowlist"` = zezwól tylko `groupAllowFrom`
- `"disabled"` = wyłącz wiadomości grupowe
| Wartość | Zachowanie |
| ------------- | ------------------------------------------ |
| `"open"` | Odpowiadaj na wszystkie wiadomości w grupach |
| `"allowlist"` | Odpowiadaj tylko grupom z `groupAllowFrom` |
| `"disabled"` | Wyłącz wszystkie wiadomości grupowe |
Domyślnie: `allowlist`
**2. Wymaganie wzmianki** (`channels.feishu.requireMention`, z możliwością nadpisania przez `channels.feishu.groups.<chat_id>.requireMention`):
**Wymaganie wzmianki** (`channels.feishu.requireMention`):
- jawne `true` = wymagaj @wzmianki
- jawne `false` = odpowiadaj bez wzmianek
- gdy nieustawione i `groupPolicy: "open"` = domyślnie `false`
- gdy nieustawione i `groupPolicy` nie jest `"open"` = domyślnie `true`
- `true` — wymagaj wzmianki @ (domyślnie)
- `false` — odpowiadaj bez wzmianki @
- Nadpisanie dla grupy: `channels.feishu.groups.<chat_id>.requireMention`
---
## Przykłady konfiguracji grup
### Zezwól na wszystkie grupy, bez wymagania @wzmianki (domyślnie dla otwartych grup)
### Zezwól na wszystkie grupy, bez wymogu wzmianki @
```json5
{
@ -352,7 +94,7 @@ Domyślnie: `allowlist`
}
```
### Zezwól na wszystkie grupy, ale nadal wymagaj @wzmianki
### Zezwól na wszystkie grupy, ale nadal wymagaj wzmianki @
```json5
{
@ -372,16 +114,14 @@ Domyślnie: `allowlist`
channels: {
feishu: {
groupPolicy: "allowlist",
// Identyfikatory grup Feishu (chat_id) wyglądają tak: oc_xxx
// Identyfikatory grup wyglądają tak: oc_xxx
groupAllowFrom: ["oc_xxx", "oc_yyy"],
},
},
}
```
### Ogranicz, którzy nadawcy mogą wysyłać wiadomości w grupie (allowlist nadawców)
Oprócz zezwolenia na samą grupę, **wszystkie wiadomości** w tej grupie są filtrowane według `open_id` nadawcy: przetwarzane są tylko wiadomości użytkowników wymienionych w `groups.<chat_id>.allowFrom`; wiadomości od pozostałych członków są ignorowane (to pełne filtrowanie na poziomie nadawcy, a nie tylko dla poleceń sterujących takich jak /reset lub /new).
### Ogranicz nadawców w obrębie grupy
```json5
{
@ -391,7 +131,7 @@ Oprócz zezwolenia na samą grupę, **wszystkie wiadomości** w tej grupie są f
groupAllowFrom: ["oc_xxx"],
groups: {
oc_xxx: {
// Identyfikatory użytkowników Feishu (open_id) wyglądają tak: ou_xxx
// Identyfikatory open_id użytkowników wyglądają tak: ou_xxx
allowFrom: ["ou_user1", "ou_user2"],
},
},
@ -402,35 +142,23 @@ Oprócz zezwolenia na samą grupę, **wszystkie wiadomości** w tej grupie są f
---
<a id="get-groupuser-ids"></a>
## Pobieranie identyfikatorów grup/użytkowników
### Identyfikatory grup (chat_id)
### Identyfikatory grup (`chat_id`, format: `oc_xxx`)
Identyfikatory grup wyglądają tak: `oc_xxx`.
Otwórz grupę w Feishu/Lark, kliknij ikonę menu w prawym górnym rogu i przejdź do **Settings**. Identyfikator grupy (`chat_id`) jest widoczny na stronie ustawień.
**Metoda 1 (zalecana)**
![Get Group ID](/images/feishu-get-group-id.png)
1. Uruchom gateway i użyj @wzmianki bota w grupie
2. Uruchom `openclaw logs --follow` i poszukaj `chat_id`
### Identyfikatory użytkowników (`open_id`, format: `ou_xxx`)
**Metoda 2**
Uruchom Gateway, wyślij prywatną wiadomość do bota, a następnie sprawdź logi:
Użyj debuggera API Feishu, aby wyświetlić listę czatów grupowych.
```bash
openclaw logs --follow
```
### Identyfikatory użytkowników (open_id)
Identyfikatory użytkowników wyglądają tak: `ou_xxx`.
**Metoda 1 (zalecana)**
1. Uruchom gateway i wyślij wiadomość prywatną do bota
2. Uruchom `openclaw logs --follow` i poszukaj `open_id`
**Metoda 2**
Sprawdź żądania parowania dla Open ID użytkowników:
Poszukaj `open_id` w danych wyjściowych logów. Możesz też sprawdzić oczekujące prośby o parowanie:
```bash
openclaw pairing list feishu
@ -440,59 +168,43 @@ openclaw pairing list feishu
## Typowe polecenia
| Polecenie | Opis |
| --------- | --------------------- |
| `/status` | Pokaż stan bota |
| `/reset` | Zresetuj sesję |
| `/model` | Pokaż/przełącz model |
| Polecenie | Opis |
| --------- | ----------------------------- |
| `/status` | Pokaż status bota |
| `/reset` | Zresetuj bieżącą sesję |
| `/model` | Pokaż lub przełącz model AI |
> Uwaga: Feishu nie obsługuje jeszcze natywnych menu poleceń, więc polecenia muszą być wysyłane jako tekst.
## Polecenia zarządzania gateway
| Polecenie | Opis |
| ------------------------- | ----------------------------- |
| `openclaw gateway status` | Pokaż stan gateway |
| `openclaw gateway install` | Zainstaluj/uruchom usługę gateway |
| `openclaw gateway stop` | Zatrzymaj usługę gateway |
| `openclaw gateway restart` | Uruchom ponownie usługę gateway |
| `openclaw logs --follow` | Śledź logi gateway |
> Feishu/Lark nie obsługuje natywnego menu poleceń z ukośnikiem, więc wysyłaj je jako zwykłe wiadomości tekstowe.
---
## Rozwiązywanie problemów
### Bot nie odpowiada w czatach grupowych
### Bot nie odpowiada na czatach grupowych
1. Upewnij się, że bot został dodany do grupy
2. Upewnij się, że używasz @wzmianki bota (zachowanie domyślne)
3. Sprawdź, czy `groupPolicy` nie jest ustawione na `"disabled"`
2. Upewnij się, że oznaczasz bota wzmianką @ (domyślnie wymagane)
3. Sprawdź, czy `groupPolicy` nie ma wartości `"disabled"`
4. Sprawdź logi: `openclaw logs --follow`
### Bot nie odbiera wiadomości
1. Upewnij się, że aplikacja została opublikowana i zatwierdzona
2. Upewnij się, że subskrypcja zdarzeń zawiera `im.message.receive_v1`
3. Upewnij się, że **long connection** jest włączone
4. Upewnij się, że uprawnienia aplikacji są kompletne
5. Upewnij się, że gateway jest uruchomiony: `openclaw gateway status`
1. Upewnij się, że bot został opublikowany i zatwierdzony w Feishu Open Platform / Lark Developer
2. Upewnij się, że subskrypcja zdarzeń obejmuje `im.message.receive_v1`
3. Upewnij się, że wybrano **persistent connection** (WebSocket)
4. Upewnij się, że przyznano wszystkie wymagane zakresy uprawnień
5. Upewnij się, że Gateway działa: `openclaw gateway status`
6. Sprawdź logi: `openclaw logs --follow`
### Wyciek App Secret
### Wyciekł App Secret
1. Zresetuj App Secret w Feishu Open Platform
2. Zaktualizuj App Secret w swojej konfiguracji
3. Uruchom ponownie gateway
### Błędy wysyłania wiadomości
1. Upewnij się, że aplikacja ma uprawnienie `im:message:send_as_bot`
2. Upewnij się, że aplikacja została opublikowana
3. Sprawdź logi pod kątem szczegółowych błędów
1. Zresetuj App Secret w Feishu Open Platform / Lark Developer
2. Zaktualizuj wartość w swojej konfiguracji
3. Uruchom ponownie Gateway: `openclaw gateway restart`
---
## Zaawansowana konfiguracja
## Konfiguracja zaawansowana
### Wiele kont
@ -505,12 +217,12 @@ openclaw pairing list feishu
main: {
appId: "cli_xxx",
appSecret: "xxx",
name: "Podstawowy bot",
name: "Główny bot",
},
backup: {
appId: "cli_yyy",
appSecret: "yyy",
name: "Zapasowy bot",
name: "Bot zapasowy",
enabled: false,
},
},
@ -519,42 +231,53 @@ openclaw pairing list feishu
}
```
`defaultAccount` kontroluje, które konto Feishu jest używane, gdy wychodzące API nie określają jawnie `accountId`.
`defaultAccount` określa, które konto jest używane, gdy wychodzące API nie określają `accountId`.
### Limity wiadomości
- `textChunkLimit`: rozmiar fragmentu tekstu wychodzącego (domyślnie: 2000 znaków)
- `mediaMaxMb`: limit wysyłania/pobierania multimediów (domyślnie: 30MB)
- `textChunkLimit` rozmiar fragmentu tekstu wychodzącego (domyślnie: `2000` znaków)
- `mediaMaxMb` — limit przesyłania/pobierania multimediów (domyślnie: `30` MB)
### Streaming
Feishu obsługuje odpowiedzi strumieniowe przez karty interaktywne. Gdy jest włączone, bot aktualizuje kartę podczas generowania tekstu.
Feishu/Lark obsługuje odpowiedzi strumieniowe za pomocą interaktywnych kart. Gdy ta funkcja jest włączona, bot aktualizuje kartę w czasie rzeczywistym podczas generowania tekstu.
```json5
{
channels: {
feishu: {
streaming: true, // włącz wyjście strumieniowe kart (domyślnie true)
blockStreaming: true, // włącz streaming na poziomie bloków (domyślnie true)
streaming: true, // włącz wyjście strumieniowe w kartach (domyślnie: true)
blockStreaming: true, // włącz streaming na poziomie bloków (domyślnie: true)
},
},
}
```
Ustaw `streaming: false`, aby poczekać na pełną odpowiedź przed wysłaniem.
Ustaw `streaming: false`, aby wysyłać pełną odpowiedź w jednej wiadomości.
### Optymalizacja limitów
Zmniejsz liczbę wywołań API Feishu/Lark za pomocą dwóch opcjonalnych flag:
- `typingIndicator` (domyślnie `true`): ustaw `false`, aby pominąć wywołania reakcji pisania
- `resolveSenderNames` (domyślnie `true`): ustaw `false`, aby pominąć wyszukiwanie profili nadawców
```json5
{
channels: {
feishu: {
typingIndicator: false,
resolveSenderNames: false,
},
},
}
```
### Sesje ACP
Feishu obsługuje ACP dla:
Feishu/Lark obsługuje ACP dla prywatnych wiadomości i wiadomości wątków grupowych. ACP w Feishu/Lark jest sterowane poleceniami tekstowymi — nie ma natywnych menu poleceń z ukośnikiem, więc używaj bezpośrednio wiadomości `/acp ...` w rozmowie.
- wiadomości prywatnych
- rozmów grupowych w wątkach tematycznych
ACP w Feishu jest sterowane poleceniami tekstowymi. Nie ma natywnych menu poleceń typu slash, więc używaj wiadomości `/acp ...` bezpośrednio w rozmowie.
#### Trwałe powiązania ACP
Użyj typowanych powiązań ACP na poziomie głównym, aby przypiąć wiadomość prywatną Feishu lub rozmowę tematyczną do trwałej sesji ACP.
#### Trwałe powiązanie ACP
```json5
{
@ -598,58 +321,39 @@ Użyj typowanych powiązań ACP na poziomie głównym, aby przypiąć wiadomoś
}
```
#### Uruchamianie ACP powiązanego z wątkiem z czatu
#### Uruchamianie ACP z czatu
W wiadomości prywatnej Feishu lub rozmowie tematycznej możesz uruchomić i powiązać sesję ACP bezpośrednio na miejscu:
W prywatnej wiadomości lub wątku Feishu/Lark:
```text
/acp spawn codex --thread here
```
Uwagi:
`--thread here` działa w prywatnych wiadomościach i wiadomościach wątków Feishu/Lark. Kolejne wiadomości w powiązanej rozmowie są kierowane bezpośrednio do tej sesji ACP.
- `--thread here` działa dla wiadomości prywatnych i tematów Feishu.
- Kolejne wiadomości w powiązanej wiadomości prywatnej/temacie są routowane bezpośrednio do tej sesji ACP.
- Wersja v1 nie obsługuje ogólnych czatów grupowych bez tematów.
### Routing wielu agentów
### Routowanie wielu agentów
Użyj `bindings`, aby routować wiadomości prywatne lub grupy Feishu do różnych agentów.
Użyj `bindings`, aby kierować prywatne wiadomości lub grupy Feishu/Lark do różnych agentów.
```json5
{
agents: {
list: [
{ id: "main" },
{
id: "clawd-fan",
workspace: "/home/user/clawd-fan",
agentDir: "/home/user/.openclaw/agents/clawd-fan/agent",
},
{
id: "clawd-xi",
workspace: "/home/user/clawd-xi",
agentDir: "/home/user/.openclaw/agents/clawd-xi/agent",
},
{ id: "agent-a", workspace: "/home/user/agent-a" },
{ id: "agent-b", workspace: "/home/user/agent-b" },
],
},
bindings: [
{
agentId: "main",
agentId: "agent-a",
match: {
channel: "feishu",
peer: { kind: "direct", id: "ou_xxx" },
},
},
{
agentId: "clawd-fan",
match: {
channel: "feishu",
peer: { kind: "direct", id: "ou_yyy" },
},
},
{
agentId: "clawd-xi",
agentId: "agent-b",
match: {
channel: "feishu",
peer: { kind: "group", id: "oc_zzz" },
@ -659,58 +363,47 @@ Użyj `bindings`, aby routować wiadomości prywatne lub grupy Feishu do różny
}
```
Pola routowania:
Pola routingu:
- `match.channel`: `"feishu"`
- `match.peer.kind`: `"direct"` lub `"group"`
- `match.peer.id`: Open ID użytkownika (`ou_xxx`) lub ID grupy (`oc_xxx`)
- `match.peer.kind`: `"direct"` (prywatna wiadomość) lub `"group"` (czat grupowy)
- `match.peer.id`: Open ID użytkownika (`ou_xxx`) lub identyfikator grupy (`oc_xxx`)
Wskazówki dotyczące wyszukiwania znajdziesz w sekcji [Pobieranie identyfikatorów grup/użytkowników](#get-groupuser-ids).
Wskazówki dotyczące wyszukiwania znajdziesz w [Pobieranie identyfikatorów grup/użytkowników](#pobieranie-identyfikatorów-grupużytkowników).
---
## Odniesienie do konfiguracji
## Dokumentacja konfiguracji
Pełna konfiguracja: [Konfiguracja Gateway](/gateway/configuration)
Pełna konfiguracja: [Konfiguracja Gateway](/pl/gateway/configuration)
Najważniejsze opcje:
| Ustawienie | Opis | Domyślnie |
| ------------------------------------------------- | --------------------------------------- | ---------------- |
| `channels.feishu.enabled` | Włącz/wyłącz kanał | `true` |
| `channels.feishu.domain` | Domena API (`feishu` lub `lark`) | `feishu` |
| `channels.feishu.connectionMode` | Tryb transportu zdarzeń | `websocket` |
| `channels.feishu.defaultAccount` | Domyślne ID konta dla routowania wychodzącego | `default` |
| `channels.feishu.verificationToken` | Wymagane dla trybu webhook | - |
| `channels.feishu.encryptKey` | Wymagane dla trybu webhook | - |
| `channels.feishu.webhookPath` | Ścieżka trasy webhooka | `/feishu/events` |
| `channels.feishu.webhookHost` | Host nasłuchiwania webhooka | `127.0.0.1` |
| `channels.feishu.webhookPort` | Port nasłuchiwania webhooka | `3000` |
| `channels.feishu.accounts.<id>.appId` | App ID | - |
| `channels.feishu.accounts.<id>.appSecret` | App Secret | - |
| `channels.feishu.accounts.<id>.domain` | Nadpisanie domeny API per konto | `feishu` |
| `channels.feishu.dmPolicy` | Zasada wiadomości prywatnych | `pairing` |
| `channels.feishu.allowFrom` | Allowlist wiadomości prywatnych (lista `open_id`) | - |
| `channels.feishu.groupPolicy` | Zasada grup | `allowlist` |
| `channels.feishu.groupAllowFrom` | Allowlist grup | - |
| `channels.feishu.requireMention` | Domyślnie wymagaj @wzmianki | warunkowe |
| `channels.feishu.groups.<chat_id>.requireMention` | Nadpisanie wymagania @wzmianki per grupa | dziedziczone |
| `channels.feishu.groups.<chat_id>.enabled` | Włącz grupę | `true` |
| `channels.feishu.textChunkLimit` | Rozmiar fragmentu wiadomości | `2000` |
| `channels.feishu.mediaMaxMb` | Limit rozmiaru mediów | `30` |
| `channels.feishu.streaming` | Włącz strumieniowe wyjście kart | `true` |
| `channels.feishu.blockStreaming` | Włącz streaming bloków | `true` |
---
## Odniesienie do dmPolicy
| Wartość | Zachowanie |
| ------------- | --------------------------------------------------------------- |
| `"pairing"` | **Domyślnie.** Nieznani użytkownicy otrzymują kod parowania; muszą zostać zatwierdzeni |
| `"allowlist"` | Tylko użytkownicy z `allowFrom` mogą rozmawiać |
| `"open"` | Zezwól wszystkim użytkownikom (wymaga `"*"` w `allowFrom`) |
| `"disabled"` | Wyłącz wiadomości prywatne |
| Ustawienie | Opis | Domyślnie |
| ------------------------------------------------- | ------------------------------------------ | ---------------- |
| `channels.feishu.enabled` | Włącz/wyłącz kanał | `true` |
| `channels.feishu.domain` | Domena API (`feishu` lub `lark`) | `feishu` |
| `channels.feishu.connectionMode` | Transport zdarzeń (`websocket` lub `webhook`) | `websocket` |
| `channels.feishu.defaultAccount` | Domyślne konto dla routingu wychodzącego | `default` |
| `channels.feishu.verificationToken` | Wymagane w trybie webhook | — |
| `channels.feishu.encryptKey` | Wymagane w trybie webhook | — |
| `channels.feishu.webhookPath` | Ścieżka trasy webhooka | `/feishu/events` |
| `channels.feishu.webhookHost` | Host powiązania webhooka | `127.0.0.1` |
| `channels.feishu.webhookPort` | Port powiązania webhooka | `3000` |
| `channels.feishu.accounts.<id>.appId` | App ID | — |
| `channels.feishu.accounts.<id>.appSecret` | App Secret | — |
| `channels.feishu.accounts.<id>.domain` | Nadpisanie domeny dla konta | `feishu` |
| `channels.feishu.dmPolicy` | Zasada dla prywatnych wiadomości | `allowlist` |
| `channels.feishu.allowFrom` | Lista dozwolonych prywatnych wiadomości (lista `open_id`) | [BotOwnerId] |
| `channels.feishu.groupPolicy` | Zasada dla grup | `allowlist` |
| `channels.feishu.groupAllowFrom` | Lista dozwolonych grup | — |
| `channels.feishu.requireMention` | Wymagaj wzmianki @ w grupach | `true` |
| `channels.feishu.groups.<chat_id>.requireMention` | Nadpisanie wzmianki @ dla grupy | dziedziczone |
| `channels.feishu.groups.<chat_id>.enabled` | Włącz/wyłącz określoną grupę | `true` |
| `channels.feishu.textChunkLimit` | Rozmiar fragmentu wiadomości | `2000` |
| `channels.feishu.mediaMaxMb` | Limit rozmiaru multimediów | `30` |
| `channels.feishu.streaming` | Strumieniowe wyjście kart | `true` |
| `channels.feishu.blockStreaming` | Streaming na poziomie bloków | `true` |
| `channels.feishu.typingIndicator` | Wysyłaj reakcje pisania | `true` |
| `channels.feishu.resolveSenderNames` | Rozpoznawaj wyświetlane nazwy nadawców | `true` |
---
@ -723,7 +416,7 @@ Najważniejsze opcje:
- ✅ Obrazy
- ✅ Pliki
- ✅ Audio
- ✅ Wideo/media
- ✅ Wideo/multimedia
- ✅ Naklejki
### Wysyłanie
@ -732,68 +425,22 @@ Najważniejsze opcje:
- ✅ Obrazy
- ✅ Pliki
- ✅ Audio
- ✅ Wideo/media
- ✅ Karty interaktywne
- ⚠️ Tekst sformatowany (formatowanie w stylu post i karty, ale nie dowolne funkcje autorskie Feishu)
- ✅ Wideo/multimedia
- ✅ Karty interaktywne (w tym aktualizacje strumieniowe)
- ⚠️ Tekst sformatowany (formatowanie w stylu post; nie obsługuje pełnych możliwości tworzenia treści Feishu/Lark)
### Wątki i odpowiedzi
- ✅ Odpowiedzi inline
- ✅ Odpowiedzi w wątkach tematycznych, gdy Feishu udostępnia `reply_in_thread`
- ✅ Odpowiedzi multimedialne zachowują świadomość wątku podczas odpowiadania na wiadomość w wątku/temacie
- ✅ Odpowiedzi wbudowane
- ✅ Odpowiedzi wątkowe
- ✅ Odpowiedzi z multimediami zachowują świadomość wątku podczas odpowiadania na wiadomość w wątku
## Komentarze Drive
Feishu może wyzwolić agenta, gdy ktoś doda komentarz do dokumentu Feishu Drive (Docs, Sheets
itp.). Agent otrzymuje treść komentarza, kontekst dokumentu i wątek komentarzy, dzięki czemu może
odpowiedzieć w wątku lub edytować dokument.
Wymagania:
- Subskrybuj `drive.notice.comment_add_v1` w ustawieniach subskrypcji zdarzeń aplikacji Feishu
(obok istniejącego `im.message.receive_v1`)
- Narzędzie Drive jest domyślnie włączone; wyłącz je przez `channels.feishu.tools.drive: false`
Narzędzie `feishu_drive` udostępnia następujące akcje komentarzy:
| Akcja | Opis |
| --------------------- | ------------------------------------- |
| `list_comments` | Wyświetl komentarze dokumentu |
| `list_comment_replies` | Wyświetl odpowiedzi w wątku komentarzy |
| `add_comment` | Dodaj nowy komentarz najwyższego poziomu |
| `reply_comment` | Odpowiedz w istniejącym wątku komentarzy |
Gdy agent obsługuje zdarzenie komentarza Drive, otrzymuje:
- treść komentarza i nadawcę
- metadane dokumentu (tytuł, typ, URL)
- kontekst wątku komentarzy do odpowiedzi w wątku
Po wprowadzeniu zmian w dokumencie agent otrzymuje wskazówkę, aby użyć `feishu_drive.reply_comment` do powiadomienia
komentującego, a następnie wypisać dokładny cichy token `NO_REPLY` / `no_reply`, aby
uniknąć zduplikowanych wysyłek.
## Powierzchnia akcji runtime
Feishu obecnie udostępnia następujące akcje runtime:
- `send`
- `read`
- `edit`
- `thread-reply`
- `pin`
- `list-pins`
- `unpin`
- `member-info`
- `channel-info`
- `channel-list`
- `react` i `reactions`, gdy reakcje są włączone w konfiguracji
- akcje komentarzy `feishu_drive`: `list_comments`, `list_comment_replies`, `add_comment`, `reply_comment`
---
## Powiązane
- [Przegląd kanałów](/channels) — wszystkie obsługiwane kanały
- [Pairing](/channels/pairing) — uwierzytelnianie wiadomości prywatnych i przepływ parowania
- [Grupy](/channels/groups) — zachowanie czatów grupowych i filtrowanie wzmiankami
- [Routowanie kanałów](/channels/channel-routing) — routowanie sesji dla wiadomości
- [Bezpieczeństwo](/gateway/security) — model dostępu i wzmacnianie zabezpieczeń
- [Przegląd kanałów](/pl/channels) — wszystkie obsługiwane kanały
- [Parowanie](/pl/channels/pairing) — uwierzytelnianie prywatnych wiadomości i przepływ parowania
- [Grupy](/pl/channels/groups) — zachowanie czatów grupowych i bramkowanie wzmiankami
- [Routing kanałów](/pl/channels/channel-routing) — routing sesji dla wiadomości
- [Zabezpieczenia](/pl/gateway/security) — model dostępu i utwardzanie