Feishu-bot¶
Feishu (Lark) is een teamchatplatform dat door bedrijven wordt gebruikt voor messaging en samenwerking. Deze plugin verbindt OpenClaw met een Feishu/Lark-bot via het WebSocket-eventabonnement van het platform, zodat berichten kunnen worden ontvangen zonder een publieke webhook-URL bloot te stellen.
Vereiste plugin¶
Installeer de Feishu-plugin:
openclaw plugins install @openclaw/feishu
Lokale checkout (wanneer je vanuit een git-repo draait):
openclaw plugins install ./extensions/feishu
Snelle start¶
Er zijn twee manieren om het Feishu-kanaal toe te voegen:
Methode 1: onboardingwizard (aanbevolen)¶
Als je OpenClaw net hebt geïnstalleerd, start de wizard:
openclaw onboard
De wizard begeleidt je bij:
- Het aanmaken van een Feishu-app en het verzamelen van inloggegevens
- Het configureren van app-inloggegevens in OpenClaw
- Het starten van de Gateway
✅ Na configuratie, controleer de Gateway-status:
openclaw gateway statusopenclaw logs --follow
Methode 2: CLI-installatie¶
Als je de initiële installatie al hebt voltooid, voeg het kanaal toe via de CLI:
openclaw channels add
Kies Feishu en voer vervolgens de App ID en App Secret in.
✅ Na configuratie, beheer de Gateway:
openclaw gateway statusopenclaw gateway restartopenclaw logs --follow
Stap 1: Een Feishu-app maken¶
1. Open het Feishu Open Platform¶
Ga naar Feishu Open Platform en meld je aan.
Lark (globale) tenants moeten https://open.larksuite.com/app gebruiken en domain: "lark" instellen in de Feishu-configuratie.
2. Maak een app aan¶
- Klik op Create enterprise app
- Vul de appnaam en -beschrijving in
- Kies een app-icoon

3. Kopieer inloggegevens¶
Kopieer vanuit Credentials & Basic Info:
- App ID (formaat:
cli_xxx) - App Secret
❗ Belangrijk: houd het App Secret privé.

4. Configureer rechten¶
Klik in Permissions op Batch import en plak:
{
"scopes": {
"tenant": [
"aily:file:read",
"aily:file:write",
"application:application.app_message_stats.overview:readonly",
"application:application:self_manage",
"application:bot.menu: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"]
}
}

5. Botfunctionaliteit inschakelen¶
In App-mogelijkheden > Bot:
- Schakel botfunctionaliteit in
- Stel de botnaam in

6. Eventabonnement configureren¶
⚠️ Belangrijk: zorg ervoor dat vóór het instellen van het eventabonnement:
- Je
openclaw channels addvoor Feishu al hebt uitgevoerd - De Gateway draait (
openclaw gateway status)
In Evenementabonnement:
- Kies Use long connection to receive events (WebSocket)
- Voeg het event toe:
im.message.receive_v1
⚠️ Als de Gateway niet draait, kan het opslaan van de long-connection-instelling mislukken.

7. Publiceer de app¶
- Maak een versie aan in Version Management & Release
- Dien deze in ter beoordeling en publiceer
- Wacht op goedkeuring door een beheerder (enterprise-apps worden meestal automatisch goedgekeurd)
Stap 2: OpenClaw configureren¶
Configureren met de wizard (aanbevolen)¶
openclaw channels add
Kies Feishu en plak je App ID en App Secret.
Configureren via het configbestand¶
Bewerk ~/.openclaw/openclaw.json:
{
channels: {
feishu: {
enabled: true,
dmPolicy: "pairing",
accounts: {
main: {
appId: "cli_xxx",
appSecret: "xxx",
botName: "My AI assistant",
},
},
},
},
}
Configureren via omgevingsvariabelen¶
export FEISHU_APP_ID="cli_xxx"
export FEISHU_APP_SECRET="xxx"
Lark (globaal) domein¶
Als je tenant op Lark (internationaal) zit, stel het domein in op lark (of een volledige domeinstring). Je kunt dit instellen op channels.feishu.domain of per account (channels.feishu.accounts.<id>.domain).
{
channels: {
feishu: {
domain: "lark",
accounts: {
main: {
appId: "cli_xxx",
appSecret: "xxx",
},
},
},
},
}
Stap 3: Starten + testen¶
1. Start de Gateway¶
openclaw gateway
2. Stuur een testbericht¶
Zoek in Feishu je bot en stuur een bericht.
3. Koppeling goedkeuren¶
Standaard antwoordt de bot met een koppelingscode. Keur deze goed:
openclaw pairing approve feishu <CODE>
Na goedkeuring kun je normaal chatten.
Overzicht¶
- Feishu-botkanaal: Feishu-bot beheerd door de Gateway
- Deterministische routering: antwoorden keren altijd terug naar Feishu
- Sessiescheiding: DM's delen één hoofdsessie; groepen zijn geïsoleerd
- WebSocket-verbinding: long connection via de Feishu-SDK, geen publieke URL nodig
Toegangs beheer¶
Directe berichten¶
-
Standaard:
dmPolicy: "pairing"(onbekende gebruikers krijgen een koppelingscode) -
Koppeling goedkeuren:
bash
openclaw pairing list feishu
openclaw pairing approve feishu <CODE>
- Toegestane-lijstmodus: stel
channels.feishu.allowFromin met toegestane Open ID's
Groep chats¶
1. Groepsbeleid (channels.feishu.groupPolicy):
"open"= iedereen in groepen toestaan (standaard)"allowlist"= alleengroupAllowFromtoestaan"disabled"= groepsberichten uitschakelen
2. Vermeldingsvereiste (channels.feishu.groups.<chat_id>.requireMention):
true= @vermelding vereist (standaard)false= antwoorden zonder vermeldingen
Voorbeelden van groepsconfiguratie¶
Alle groepen toestaan, @vermelding vereist (standaard)¶
{
channels: {
feishu: {
groupPolicy: "open",
// Default requireMention: true
},
},
}
Alle groepen toestaan, geen @vermelding vereist¶
{
channels: {
feishu: {
groups: {
oc_xxx: { requireMention: false },
},
},
},
}
Alleen specifieke gebruikers in groepen toestaan¶
{
channels: {
feishu: {
groupPolicy: "allowlist",
groupAllowFrom: ["ou_xxx", "ou_yyy"],
},
},
}
Groeps-/gebruikers-ID's ophalen¶
Groeps-ID's (chat_id)¶
Groeps-ID's zien eruit als oc_xxx.
Methode 1 (aanbevolen)
- Start de Gateway en @vermeld de bot in de groep
- Voer
openclaw logs --followuit en zoek naarchat_id
Methode 2
Gebruik de Feishu API-debugger om groepschats op te sommen.
Gebruikers-ID's (open_id)¶
Gebruikers-ID's zien eruit als ou_xxx.
Methode 1 (aanbevolen)
- Start de Gateway en stuur de bot een DM
- Voer
openclaw logs --followuit en zoek naaropen_id
Methode 2
Controleer koppelingsverzoeken voor Open ID's van gebruikers:
openclaw pairing list feishu
Veelgebruikte opdrachten¶
| Opdracht | Beschrijving |
|---|---|
/status |
Botstatus tonen |
/reset |
De sessie resetten |
/model |
Model tonen/wisselen |
Let op: Feishu ondersteunt nog geen native opdrachtmenu's, dus opdrachten moeten als tekst worden verzonden.
Gateway-beheeropdrachten¶
| Opdracht | Beschrijving |
|---|---|
openclaw gateway status |
Gateway-status tonen |
openclaw gateway install |
Gateway-service installeren/starten |
openclaw gateway stop |
Gateway-service stoppen |
openclaw gateway restart |
Gateway-service herstarten |
openclaw logs --follow |
Gateway-logs volgen |
Problemen oplossen¶
Bot reageert niet in groepschats¶
- Zorg ervoor dat de bot aan de groep is toegevoegd
- Zorg ervoor dat je de bot @vermeldt (standaardgedrag)
- Controleer dat
groupPolicyniet is ingesteld op"disabled" - Controleer de logs:
openclaw logs --follow
Bot ontvangt geen berichten¶
- Zorg ervoor dat de app is gepubliceerd en goedgekeurd
- Zorg ervoor dat het eventabonnement
im.message.receive_v1bevat - Zorg ervoor dat long connection is ingeschakeld
- Zorg ervoor dat de app-rechten volledig zijn
- Zorg ervoor dat de Gateway draait:
openclaw gateway status - Controleer de logs:
openclaw logs --follow
App Secret gelekt¶
- Reset het App Secret in Feishu Open Platform
- Werk het App Secret bij in je configuratie
- Herstart de Gateway
Verzendfouten bij berichten¶
- Zorg ervoor dat de app de
im:message:send_as_bot-rechten heeft - Zorg ervoor dat de app is gepubliceerd
- Controleer de logs voor gedetailleerde fouten
Geavanceerde configuratie¶
Meerdere accounts¶
{
channels: {
feishu: {
accounts: {
main: {
appId: "cli_xxx",
appSecret: "xxx",
botName: "Primary bot",
},
backup: {
appId: "cli_yyy",
appSecret: "yyy",
botName: "Backup bot",
enabled: false,
},
},
},
},
}
Limiet bericht¶
textChunkLimit: uitgaande tekstblokgrootte (standaard: 2000 tekens)mediaMaxMb: upload-/downloadlimiet voor media (standaard: 30 MB)
Streaming¶
Feishu ondersteunt streamingantwoorden via interactieve kaarten. Wanneer ingeschakeld, werkt de bot een kaart bij terwijl hij tekst genereert.
{
channels: {
feishu: {
streaming: true, // enable streaming card output (default true)
blockStreaming: true, // enable block-level streaming (default true)
},
},
}
Stel streaming: false in om te wachten op het volledige antwoord voordat het wordt verzonden.
Multi-agentroutering¶
Gebruik bindings om Feishu-DM's of -groepen naar verschillende agents te routeren.
{
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",
},
],
},
bindings: [
{
agentId: "main",
match: {
channel: "feishu",
peer: { kind: "direct", id: "ou_xxx" },
},
},
{
agentId: "clawd-fan",
match: {
channel: "feishu",
peer: { kind: "direct", id: "ou_yyy" },
},
},
{
agentId: "clawd-xi",
match: {
channel: "feishu",
peer: { kind: "group", id: "oc_zzz" },
},
},
],
}
Routeringsvelden:
match.channel:"feishu"match.peer.kind: "direct" of "group"match.peer.id: Open ID van gebruiker (ou_xxx) of groeps-ID (oc_xxx)
Zie Groeps-/gebruikers-ID's ophalen voor tips om deze op te zoeken.
Configuratie referentie¶
Volledige configuratie: Gateway-configuratie
Belangrijke opties:
| Instelling | Beschrijving | Standaard |
|---|---|---|
channels.feishu.enabled |
Kanaal in-/uitschakelen | true |
channels.feishu.domain |
API-domein (feishu of lark) |
feishu |
channels.feishu.accounts.<id>.appId |
App ID | - |
channels.feishu.accounts.<id>.appSecret |
App Secret | - |
channels.feishu.accounts.<id>.domain |
Per-account API-domeinoverschrijving | feishu |
channels.feishu.dmPolicy |
DM-beleid | pairing |
channels.feishu.allowFrom |
DM-toegestane lijst (open_id-lijst) | - |
channels.feishu.groupPolicy |
Groepsbeleid | open |
channels.feishu.groupAllowFrom |
Groepstoegestane lijst | - |
channels.feishu.groups.<chat_id>.requireMention |
@vermelding vereist | true |
channels.feishu.groups.<chat_id>.enabled |
Groep inschakelen | true |
channels.feishu.textChunkLimit |
Berichtblokgrootte | 2000 |
channels.feishu.mediaMaxMb |
Medialimiet | 30 |
channels.feishu.streaming |
Streamingkaart-uitvoer inschakelen | true |
channels.feishu.blockStreaming |
Blokstreaming inschakelen | true |
dmPolicy-referentie¶
| Waarde | Gedrag |
|---|---|
"pairing" |
Standaard. Onbekende gebruikers krijgen een koppelingscode; moeten worden goedgekeurd |
"allowlist" |
Alleen gebruikers in allowFrom kunnen chatten |
"open" |
Alle gebruikers toestaan (vereist "*" in allowFrom) |
"disabled" |
DM's uitschakelen |
Ondersteunde berichttypen¶
Ontvangen¶
- ✅ Tekst
- ✅ Rijke tekst (post)
- ✅ Afbeeldingen
- ✅ Bestanden
- ✅ Audio
- ✅ Video
- ✅ Stickers
Verzenden¶
- ✅ Tekst
- ✅ Afbeeldingen
- ✅ Bestanden
- ✅ Audio
- ⚠️ Rijke tekst (gedeeltelijke ondersteuning)