Langsung ke konten utama

Feishu / Lark

Feishu/Lark adalah platform kolaborasi all-in-one tempat tim mengobrol, berbagi dokumen, mengelola kalender, dan menyelesaikan pekerjaan bersama. Status: siap produksi untuk DM bot + obrolan grup. WebSocket adalah mode default; mode webhook bersifat opsional.

Mulai cepat

Memerlukan OpenClaw 2026.4.10 atau yang lebih baru. Jalankan openclaw --version untuk memeriksa. Tingkatkan dengan openclaw update.
1

Jalankan wizard penyiapan saluran

openclaw channels login --channel feishu
Pindai kode QR dengan aplikasi seluler Feishu/Lark Anda untuk membuat bot Feishu/Lark secara otomatis.
2

Setelah penyiapan selesai, mulai ulang Gateway untuk menerapkan perubahan

openclaw gateway restart

Kontrol akses

Pesan langsung

Konfigurasikan dmPolicy untuk mengontrol siapa yang dapat mengirim DM ke bot:
  • "pairing" — pengguna yang tidak dikenal menerima kode pairing; setujui melalui CLI
  • "allowlist" — hanya pengguna yang tercantum dalam allowFrom yang dapat mengobrol (default: hanya pemilik bot)
  • "open" — izinkan semua pengguna
  • "disabled" — nonaktifkan semua DM
Setujui permintaan pairing:
openclaw pairing list feishu
openclaw pairing approve feishu <CODE>

Obrolan grup

Kebijakan grup (channels.feishu.groupPolicy):
ValuePerilaku
"open"Merespons semua pesan di grup
"allowlist"Hanya merespons grup dalam groupAllowFrom
"disabled"Nonaktifkan semua pesan grup
Default: allowlist Persyaratan mention (channels.feishu.requireMention):
  • true — memerlukan @mention (default)
  • false — merespons tanpa @mention
  • Override per grup: channels.feishu.groups.<chat_id>.requireMention

Contoh konfigurasi grup

Izinkan semua grup, tidak memerlukan @mention

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

Izinkan semua grup, tetapi tetap memerlukan @mention

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

Hanya izinkan grup tertentu

{
  channels: {
    feishu: {
      groupPolicy: "allowlist",
      // ID grup terlihat seperti: oc_xxx
      groupAllowFrom: ["oc_xxx", "oc_yyy"],
    },
  },
}

Batasi pengirim dalam grup

{
  channels: {
    feishu: {
      groupPolicy: "allowlist",
      groupAllowFrom: ["oc_xxx"],
      groups: {
        oc_xxx: {
          // open_id pengguna terlihat seperti: ou_xxx
          allowFrom: ["ou_user1", "ou_user2"],
        },
      },
    },
  },
}

Dapatkan ID grup/pengguna

ID grup (chat_id, format: oc_xxx)

Buka grup di Feishu/Lark, klik ikon menu di sudut kanan atas, lalu buka Settings. ID grup (chat_id) tercantum di halaman pengaturan. Get Group ID

ID pengguna (open_id, format: ou_xxx)

Mulai Gateway, kirim DM ke bot, lalu periksa log:
openclaw logs --follow
Cari open_id pada output log. Anda juga dapat memeriksa permintaan pairing yang tertunda:
openclaw pairing list feishu

Perintah umum

CommandDeskripsi
/statusTampilkan status bot
/resetReset sesi saat ini
/modelTampilkan atau ganti model AI
Feishu/Lark tidak mendukung menu slash-command bawaan, jadi kirim ini sebagai pesan teks biasa.

Pemecahan masalah

Bot tidak merespons di obrolan grup

  1. Pastikan bot telah ditambahkan ke grup
  2. Pastikan Anda @mention bot (diperlukan secara default)
  3. Verifikasi groupPolicy bukan "disabled"
  4. Periksa log: openclaw logs --follow

Bot tidak menerima pesan

  1. Pastikan bot telah dipublikasikan dan disetujui di Feishu Open Platform / Lark Developer
  2. Pastikan langganan event mencakup im.message.receive_v1
  3. Pastikan persistent connection (WebSocket) dipilih
  4. Pastikan semua cakupan izin yang diperlukan telah diberikan
  5. Pastikan Gateway sedang berjalan: openclaw gateway status
  6. Periksa log: openclaw logs --follow

App Secret bocor

  1. Reset App Secret di Feishu Open Platform / Lark Developer
  2. Perbarui nilainya di konfigurasi Anda
  3. Mulai ulang Gateway: openclaw gateway restart

Konfigurasi lanjutan

Beberapa akun

{
  channels: {
    feishu: {
      defaultAccount: "main",
      accounts: {
        main: {
          appId: "cli_xxx",
          appSecret: "xxx",
          name: "Bot utama",
        },
        backup: {
          appId: "cli_yyy",
          appSecret: "yyy",
          name: "Bot cadangan",
          enabled: false,
        },
      },
    },
  },
}
defaultAccount mengontrol akun mana yang digunakan saat API keluar tidak menentukan accountId.

Batas pesan

  • textChunkLimit — ukuran potongan teks keluar (default: 2000 karakter)
  • mediaMaxMb — batas unggah/unduh media (default: 30 MB)

Streaming

Feishu/Lark mendukung balasan streaming melalui kartu interaktif. Saat diaktifkan, bot memperbarui kartu secara real time saat menghasilkan teks.
{
  channels: {
    feishu: {
      streaming: true, // aktifkan output kartu streaming (default: true)
      blockStreaming: true, // aktifkan streaming tingkat blok (default: true)
    },
  },
}
Setel streaming: false untuk mengirim balasan lengkap dalam satu pesan.

Optimasi kuota

Kurangi jumlah panggilan API Feishu/Lark dengan dua flag opsional:
  • typingIndicator (default true): setel ke false untuk melewati panggilan reaksi mengetik
  • resolveSenderNames (default true): setel ke false untuk melewati lookup profil pengirim
{
  channels: {
    feishu: {
      typingIndicator: false,
      resolveSenderNames: false,
    },
  },
}

Sesi ACP

Feishu/Lark mendukung ACP untuk DM dan pesan thread grup. ACP Feishu/Lark digerakkan oleh perintah teks — tidak ada menu slash-command bawaan, jadi gunakan pesan /acp ... langsung di percakapan.

Binding ACP persisten

{
  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" },
    },
  ],
}

Spawn ACP dari obrolan

Di DM atau thread Feishu/Lark:
/acp spawn codex --thread here
--thread here berfungsi untuk DM dan pesan thread Feishu/Lark. Pesan lanjutan dalam percakapan yang dibinding akan diarahkan langsung ke sesi ACP tersebut.

Perutean multi-agent

Gunakan bindings untuk merutekan DM atau grup Feishu/Lark ke agent yang berbeda.
{
  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" },
      },
    },
  ],
}
Bidang perutean:
  • match.channel: "feishu"
  • match.peer.kind: "direct" (DM) atau "group" (obrolan grup)
  • match.peer.id: Open ID pengguna (ou_xxx) atau ID grup (oc_xxx)
Lihat Dapatkan ID grup/pengguna untuk tips pencarian.

Referensi konfigurasi

Konfigurasi lengkap: Konfigurasi Gateway
SettingDeskripsiDefault
channels.feishu.enabledAktifkan/nonaktifkan salurantrue
channels.feishu.domainDomain API (feishu atau lark)feishu
channels.feishu.connectionModeTransport event (websocket atau webhook)websocket
channels.feishu.defaultAccountAkun default untuk perutean keluardefault
channels.feishu.verificationTokenDiperlukan untuk mode webhook
channels.feishu.encryptKeyDiperlukan untuk mode webhook
channels.feishu.webhookPathJalur rute webhook/feishu/events
channels.feishu.webhookHostHost bind webhook127.0.0.1
channels.feishu.webhookPortPort bind webhook3000
channels.feishu.accounts.<id>.appIdApp ID
channels.feishu.accounts.<id>.appSecretApp Secret
channels.feishu.accounts.<id>.domainOverride domain per akunfeishu
channels.feishu.dmPolicyKebijakan DMallowlist
channels.feishu.allowFromAllowlist DM (daftar open_id)[BotOwnerId]
channels.feishu.groupPolicyKebijakan grupallowlist
channels.feishu.groupAllowFromAllowlist grup
channels.feishu.requireMentionMemerlukan @mention di gruptrue
channels.feishu.groups.<chat_id>.requireMentionOverride @mention per grupinherited
channels.feishu.groups.<chat_id>.enabledAktifkan/nonaktifkan grup tertentutrue
channels.feishu.textChunkLimitUkuran potongan pesan2000
channels.feishu.mediaMaxMbBatas ukuran media30
channels.feishu.streamingOutput kartu streamingtrue
channels.feishu.blockStreamingStreaming tingkat bloktrue
channels.feishu.typingIndicatorKirim reaksi mengetiktrue
channels.feishu.resolveSenderNamesResolve nama tampilan pengirimtrue

Jenis pesan yang didukung

Terima

  • ✅ Teks
  • ✅ Teks kaya (post)
  • ✅ Gambar
  • ✅ File
  • ✅ Audio
  • ✅ Video/media
  • ✅ Stiker

Kirim

  • ✅ Teks
  • ✅ Gambar
  • ✅ File
  • ✅ Audio
  • ✅ Video/media
  • ✅ Kartu interaktif (termasuk pembaruan streaming)
  • ⚠️ Teks kaya (pemformatan gaya post; tidak mendukung seluruh kemampuan authoring Feishu/Lark)

Thread dan balasan

  • ✅ Balasan inline
  • ✅ Balasan thread
  • ✅ Balasan media tetap sadar-thread saat membalas pesan thread

Terkait