Naar hoofdinhoud gaan

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

Feishu / Lark

Feishu/Lark is een alles-in-één samenwerkingsplatform waar teams chatten, documenten delen, agenda’s beheren en samen werk gedaan krijgen. Status: productieklaar voor bot-DM’s + groepschats. WebSocket is de standaardmodus; Webhook-modus is optioneel.

Snel aan de slag

Vereist OpenClaw 2026.4.25 of hoger. Voer openclaw --version uit om dit te controleren. Upgrade met openclaw update.
1

Voer de installatiewizard voor het kanaal uit

openclaw channels login --channel feishu
Scan de QR-code met je mobiele Feishu/Lark-app om automatisch een Feishu/Lark-bot te maken.
2

Nadat de installatie is voltooid, herstart je de Gateway om de wijzigingen toe te passen

openclaw gateway restart

Toegangsbeheer

Directe berichten

Configureer dmPolicy om te bepalen wie de bot een DM kan sturen:
  • "pairing" — onbekende gebruikers ontvangen een koppelingscode; keur goed via de CLI
  • "allowlist" — alleen gebruikers die in allowFrom staan, kunnen chatten (standaard: alleen de boteigenaar)
  • "open" — sta openbare DM’s alleen toe wanneer allowFrom "*" bevat; met beperkende vermeldingen kunnen alleen overeenkomende gebruikers chatten
  • "disabled" — schakel alle DM’s uit
Keur een koppelingsverzoek goed:
openclaw pairing list feishu
openclaw pairing approve feishu <CODE>

Groepschats

Groepsbeleid (channels.feishu.groupPolicy):
WaardeGedrag
"open"Reageer op alle berichten in groepen
"allowlist"Reageer alleen op groepen in groupAllowFrom of expliciet geconfigureerd onder groups.<chat_id>
"disabled"Schakel alle groepsberichten uit; expliciete groups.<chat_id>-vermeldingen overschrijven dit niet
Standaard: allowlist Vermeldingsvereiste (channels.feishu.requireMention):
  • true — vereist @vermelding (standaard)
  • false — reageer zonder @vermelding
  • Overschrijving per groep: channels.feishu.groups.<chat_id>.requireMention
  • Alleen-uitzenden @all en @_all worden niet behandeld als botvermeldingen. Een bericht dat zowel @all als de bot direct vermeldt, telt nog steeds als botvermelding.

Voorbeelden van groepsconfiguratie

Alle groepen toestaan, geen @vermelding vereist

{
  channels: {
    feishu: {
      groupPolicy: "open",
    },
  },
}

Alle groepen toestaan, nog steeds @vermelding vereisen

{
  channels: {
    feishu: {
      groupPolicy: "open",
      requireMention: true,
    },
  },
}

Alleen specifieke groepen toestaan

{
  channels: {
    feishu: {
      groupPolicy: "allowlist",
      // Group IDs look like: oc_xxx
      groupAllowFrom: ["oc_xxx", "oc_yyy"],
    },
  },
}
In de allowlist-modus kun je ook een groep toelaten door een expliciete groups.<chat_id>-vermelding toe te voegen. Expliciete vermeldingen overschrijven groupPolicy: "disabled" niet. Jokertekenstandaarden onder groups.* configureren overeenkomende groepen, maar laten groepen niet op zichzelf toe.
{
  channels: {
    feishu: {
      groupPolicy: "allowlist",
      groups: {
        oc_xxx: {
          requireMention: false,
        },
      },
    },
  },
}

Afzenders binnen een groep beperken

{
  channels: {
    feishu: {
      groupPolicy: "allowlist",
      groupAllowFrom: ["oc_xxx"],
      groups: {
        oc_xxx: {
          // User open_ids look like: ou_xxx
          allowFrom: ["ou_user1", "ou_user2"],
        },
      },
    },
  },
}

Groeps-/gebruikers-ID’s ophalen

Groeps-ID’s (chat_id, formaat: oc_xxx)

Open de groep in Feishu/Lark, klik op het menu-icoon in de rechterbovenhoek en ga naar Instellingen. Het groeps-ID (chat_id) staat op de instellingenpagina. Groeps-ID ophalen

Gebruikers-ID’s (open_id, formaat: ou_xxx)

Start de Gateway, stuur een DM naar de bot en controleer daarna de logs:
openclaw logs --follow
Zoek naar open_id in de loguitvoer. Je kunt ook openstaande koppelingsverzoeken controleren:
openclaw pairing list feishu

Veelgebruikte opdrachten

OpdrachtBeschrijving
/statusToon botstatus
/resetReset de huidige sessie
/modelToon of wissel het AI-model
Feishu/Lark ondersteunt geen ingebouwde slash-command-menu’s, dus stuur deze als gewone tekstberichten.

Probleemoplossing

Bot reageert niet in groepschats

  1. Zorg dat de bot aan de groep is toegevoegd
  2. Zorg dat je de bot @vermeldt (standaard vereist)
  3. Controleer of groupPolicy niet "disabled" is
  4. Controleer logs: openclaw logs --follow

Bot ontvangt geen berichten

  1. Zorg dat de bot is gepubliceerd en goedgekeurd in Feishu Open Platform / Lark Developer
  2. Zorg dat gebeurtenisabonnement im.message.receive_v1 bevat
  3. Zorg dat persistente verbinding (WebSocket) is geselecteerd
  4. Zorg dat alle vereiste machtigingsscopes zijn verleend
  5. Zorg dat de Gateway draait: openclaw gateway status
  6. Controleer logs: openclaw logs --follow

App Secret gelekt

  1. Reset het App Secret in Feishu Open Platform / Lark Developer
  2. Werk de waarde in je configuratie bij
  3. Herstart de Gateway: openclaw gateway restart

Geavanceerde configuratie

Meerdere accounts

{
  channels: {
    feishu: {
      defaultAccount: "main",
      accounts: {
        main: {
          appId: "cli_xxx",
          appSecret: "xxx",
          name: "Primary bot",
          tts: {
            providers: {
              openai: { voice: "shimmer" },
            },
          },
        },
        backup: {
          appId: "cli_yyy",
          appSecret: "yyy",
          name: "Backup bot",
          enabled: false,
        },
      },
    },
  },
}
defaultAccount bepaalt welk account wordt gebruikt wanneer uitgaande API’s geen accountId opgeven. accounts.<id>.tts gebruikt dezelfde vorm als messages.tts en wordt diep samengevoegd over de globale TTS-configuratie, zodat Feishu-setups met meerdere bots gedeelde providerreferenties globaal kunnen houden en alleen stem, model, persona of automatische modus per account kunnen overschrijven.

Berichtlimieten

  • textChunkLimit — grootte van uitgaande tekstfragmenten (standaard: 2000 tekens)
  • mediaMaxMb — limiet voor media-upload/download (standaard: 30 MB)

Streaming

Feishu/Lark ondersteunt streaming-antwoorden via interactieve kaarten. Wanneer dit is ingeschakeld, werkt de bot de kaart in realtime bij terwijl tekst wordt gegenereerd.
{
  channels: {
    feishu: {
      streaming: true, // enable streaming card output (default: true)
      blockStreaming: true, // enable block-level streaming (default: true)
    },
  },
}
Stel streaming: false in om het volledige antwoord in één bericht te sturen.

Quota-optimalisatie

Verminder het aantal Feishu/Lark-API-aanroepen met twee optionele vlaggen:
  • typingIndicator (standaard true): stel in op false om aanroepen voor typreacties over te slaan
  • resolveSenderNames (standaard true): stel in op false om profielopzoekingen van afzenders over te slaan
{
  channels: {
    feishu: {
      typingIndicator: false,
      resolveSenderNames: false,
    },
  },
}

ACP-sessies

Feishu/Lark ondersteunt ACP voor DM’s en berichten in groepsgesprekken. Feishu/Lark ACP wordt aangestuurd via tekstopdrachten — er zijn geen ingebouwde slash-command-menu’s, dus gebruik /acp ...-berichten direct in het gesprek.

Persistente ACP-binding

{
  agents: {
    list: [
      {
        id: "codex",
        runtime: {
          type: "acp",
          acp: {
            agent: "codex",
            backend: "acpx",
            mode: "persistent",
            cwd: "/workspace/openclaw",
          },
        },
      },
    ],
  },
  bindings: [
    {
      type: "acp",
      agentId: "codex",
      match: {
        channel: "feishu",
        accountId: "default",
        peer: { kind: "direct", id: "ou_1234567890" },
      },
    },
    {
      type: "acp",
      agentId: "codex",
      match: {
        channel: "feishu",
        accountId: "default",
        peer: { kind: "group", id: "oc_group_chat:topic:om_topic_root" },
      },
      acp: { label: "codex-feishu-topic" },
    },
  ],
}

ACP vanuit chat starten

In een Feishu/Lark-DM of gesprek:
/acp spawn codex --thread here
--thread here werkt voor DM’s en Feishu/Lark-gespreksberichten. Vervolgberichten in het gebonden gesprek worden direct naar die ACP-sessie gerouteerd.

Routering met meerdere agents

Gebruik bindings om Feishu/Lark-DM’s of groepen naar verschillende agents te routeren.
{
  agents: {
    list: [
      { id: "main" },
      { id: "agent-a", workspace: "/home/user/agent-a" },
      { id: "agent-b", workspace: "/home/user/agent-b" },
    ],
  },
  bindings: [
    {
      agentId: "agent-a",
      match: {
        channel: "feishu",
        peer: { kind: "direct", id: "ou_xxx" },
      },
    },
    {
      agentId: "agent-b",
      match: {
        channel: "feishu",
        peer: { kind: "group", id: "oc_zzz" },
      },
    },
  ],
}
Routeringsvelden:
  • match.channel: "feishu"
  • match.peer.kind: "direct" (DM) of "group" (groepschat)
  • match.peer.id: Open ID van gebruiker (ou_xxx) of groeps-ID (oc_xxx)
Zie Groeps-/gebruikers-ID’s ophalen voor opzoektips.

Configuratiereferentie

Volledige configuratie: Gateway-configuratie
InstellingBeschrijvingStandaard
channels.feishu.enabledHet kanaal in-/uitschakelentrue
channels.feishu.domainAPI-domein (feishu of lark)feishu
channels.feishu.connectionModeEventtransport (websocket of webhook)websocket
channels.feishu.defaultAccountStandaardaccount voor uitgaande routeringdefault
channels.feishu.verificationTokenVereist voor webhookmodus
channels.feishu.encryptKeyVereist voor webhookmodus
channels.feishu.webhookPathWebhook-routepad/feishu/events
channels.feishu.webhookHostWebhook-bindhost127.0.0.1
channels.feishu.webhookPortWebhook-bindpoort3000
channels.feishu.accounts.<id>.appIdApp-ID
channels.feishu.accounts.<id>.appSecretApp Secret
channels.feishu.accounts.<id>.domainDomeinoverschrijving per accountfeishu
channels.feishu.accounts.<id>.ttsTTS-overschrijving per accountmessages.tts
channels.feishu.dmPolicyDM-beleidallowlist
channels.feishu.allowFromDM-toelatingslijst (open_id-lijst)[BotOwnerId]
channels.feishu.groupPolicyGroepsbeleidallowlist
channels.feishu.groupAllowFromGroepstoelatingslijst
channels.feishu.requireMention@mention vereisen in groepentrue
channels.feishu.groups.<chat_id>.requireMention@mention-overschrijving per groep; expliciete ID’s laten de groep ook toe in toelatingslijstmodusovergenomen
channels.feishu.groups.<chat_id>.enabledEen specifieke groep in-/uitschakelentrue
channels.feishu.textChunkLimitGrootte van berichtfragment2000
channels.feishu.mediaMaxMbLimiet voor mediagrootte30
channels.feishu.streamingStreaming-kaartuitvoertrue
channels.feishu.blockStreamingStreaming op blokniveautrue
channels.feishu.typingIndicatorTypreacties verzendentrue
channels.feishu.resolveSenderNamesWeergavenamen van afzenders oplossentrue

Ondersteunde berichttypen

Ontvangen

  • ✅ Tekst
  • ✅ Tekst met opmaak (post)
  • ✅ Afbeeldingen
  • ✅ Bestanden
  • ✅ Audio
  • ✅ Video/media
  • ✅ Stickers
Binnenkomende Feishu/Lark-audioberichten worden genormaliseerd als mediaplaceholders in plaats van ruwe file_key-JSON. Wanneer tools.media.audio is geconfigureerd, downloadt OpenClaw de voice-note-bron en voert het gedeelde audiotranscriptie uit vóór de agentbeurt, zodat de agent het gesproken transcript ontvangt. Als Feishu transcripttekst direct in de audio-payload opneemt, wordt die tekst gebruikt zonder nog een ASR-aanroep. Zonder provider voor audiotranscriptie ontvangt de agent nog steeds een <media:audio>-placeholder plus de opgeslagen bijlage, niet de ruwe Feishu- resource-payload.

Verzenden

  • ✅ Tekst
  • ✅ Afbeeldingen
  • ✅ Bestanden
  • ✅ Audio
  • ✅ Video/media
  • ✅ Interactieve kaarten (inclusief streaming-updates)
  • ⚠️ Tekst met opmaak (post-achtige opmaak; ondersteunt niet de volledige Feishu/Lark-auteurmogelijkheden)
Native Feishu/Lark-audiobubbels gebruiken het Feishu-berichttype audio en vereisen Ogg/Opus-uploadmedia (file_type: "opus"). Bestaande .opus- en .ogg-media worden direct als native audio verzonden. MP3/WAV/M4A en andere waarschijnlijke audioformaten worden alleen naar 48kHz Ogg/Opus getranscodeerd met ffmpeg wanneer het antwoord spraaklevering aanvraagt (audioAsVoice / berichttool asVoice, inclusief TTS-voice-note- antwoorden). Gewone MP3-bijlagen blijven reguliere bestanden. Als ffmpeg ontbreekt of conversie mislukt, valt OpenClaw terug op een bestandsbijlage en logt het de reden.

Threads en antwoorden

  • ✅ Inline-antwoorden
  • ✅ Thread-antwoorden
  • ✅ Media-antwoorden blijven thread-bewust bij het antwoorden op een threadbericht
Voor groupSessionScope: "group_topic" en "group_topic_sender" gebruiken native Feishu/Lark-onderwerpgroepen de event-thread_id (omt_*) als de canonieke sessiesleutel voor het onderwerp. Normale groepsantwoorden die OpenClaw omzet in threads blijven de bericht-ID van de antwoordroot (om_*) gebruiken, zodat de eerste beurt en vervolgbeurt in dezelfde sessie blijven.

Gerelateerd