Mulai cepat
Memerlukan OpenClaw 2026.5.29 atau lebih baru. Jalankan
openclaw --version untuk memeriksa. Tingkatkan dengan openclaw update.Jalankan wizard penyiapan channel
Kontrol akses
Pesan langsung
KonfigurasikandmPolicy untuk mengontrol siapa yang dapat mengirim DM ke bot:
"pairing"- pengguna tidak dikenal menerima kode pairing; setujui melalui CLI"allowlist"- hanya pengguna yang tercantum diallowFromyang dapat mengobrol"open"- izinkan DM publik hanya ketikaallowFrommenyertakan"*"; dengan entri yang membatasi, hanya pengguna yang cocok yang dapat mengobrol
Obrolan grup
Kebijakan grup (channels.feishu.groupPolicy):
| Nilai | Perilaku |
|---|---|
"open" | Merespons semua pesan di grup |
"allowlist" | Hanya merespons grup di groupAllowFrom atau yang dikonfigurasi secara eksplisit di bawah groups.<chat_id> |
"disabled" | Menonaktifkan semua pesan grup; entri eksplisit groups.<chat_id> tidak menimpa ini |
allowlist
Persyaratan mention (channels.feishu.requireMention):
true- mewajibkan @mention (default)false- merespons tanpa @mention- Override per grup:
channels.feishu.groups.<chat_id>.requireMention @alldan@_allyang hanya untuk siaran tidak diperlakukan sebagai mention bot. Pesan yang menyebut@alldan bot secara langsung tetap dihitung sebagai mention bot.
Contoh konfigurasi grup
Izinkan semua grup, tidak perlu @mention
Izinkan semua grup, tetap wajibkan @mention
Izinkan hanya grup tertentu
allowlist, Anda juga dapat mengizinkan grup dengan menambahkan entri eksplisit groups.<chat_id>. Entri eksplisit tidak menimpa groupPolicy: "disabled". Default wildcard di bawah groups.* mengonfigurasi grup yang cocok, tetapi tidak mengizinkan grup dengan sendirinya.
Batasi pengirim dalam grup
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.

ID pengguna (open_id, format: ou_xxx)
Mulai gateway, kirim DM ke bot, lalu periksa log:
open_id dalam keluaran log. Anda juga dapat memeriksa permintaan pairing yang tertunda:
Perintah umum
| Perintah | Deskripsi |
|---|---|
/status | Menampilkan status bot |
/reset | Mereset sesi saat ini |
/model | Menampilkan atau mengganti model AI |
Feishu/Lark tidak mendukung menu slash-command native, jadi kirim ini sebagai pesan teks biasa.
Pemecahan masalah
Bot tidak merespons dalam obrolan grup
- Pastikan bot ditambahkan ke grup
- Pastikan Anda @mention bot (wajib secara default)
- Verifikasi
groupPolicybukan"disabled" - Periksa log:
openclaw logs --follow
Bot tidak menerima pesan
- Pastikan bot dipublikasikan dan disetujui di Feishu Open Platform / Lark Developer
- Pastikan langganan event menyertakan
im.message.receive_v1 - Pastikan persistent connection (WebSocket) dipilih
- Pastikan semua cakupan izin yang diperlukan diberikan
- Pastikan gateway berjalan:
openclaw gateway status - Periksa log:
openclaw logs --follow
Penyiapan QR tidak bereaksi di aplikasi seluler Feishu
- Jalankan ulang penyiapan:
openclaw channels login --channel feishu - Pilih penyiapan manual
- Di Feishu Open Platform, buat aplikasi self-built dan salin App ID serta App Secret-nya
- Tempelkan kredensial tersebut ke wizard penyiapan
App Secret bocor
- Reset App Secret di Feishu Open Platform / Lark Developer
- Perbarui nilai dalam config Anda
- Mulai ulang gateway:
openclaw gateway restart
Konfigurasi lanjutan
Beberapa akun
defaultAccount mengontrol akun mana yang digunakan ketika API keluar tidak menentukan accountId.
accounts.<id>.tts menggunakan bentuk yang sama seperti messages.tts dan melakukan deep-merge di atas
config TTS global, sehingga penyiapan Feishu multi-bot dapat mempertahankan kredensial
provider bersama secara global sambil hanya menimpa voice, model, persona, atau mode otomatis
per akun.
Batas pesan
textChunkLimit- ukuran chunk teks keluar (default:2000karakter)mediaMaxMb- batas unggah/unduh media (default:30MB)
Streaming
Feishu/Lark mendukung balasan streaming melalui kartu interaktif. Saat diaktifkan, bot memperbarui kartu secara real time saat menghasilkan teks.streaming: false untuk mengirim balasan lengkap dalam satu pesan. blockStreaming nonaktif secara default; aktifkan hanya ketika Anda ingin blok asisten yang selesai dikirim sebelum balasan final.
Optimisasi kuota
Kurangi jumlah panggilan API Feishu/Lark dengan dua flag opsional:typingIndicator(defaulttrue): tetapkanfalseuntuk melewati panggilan reaksi mengetikresolveSenderNames(defaulttrue): tetapkanfalseuntuk melewati pencarian profil pengirim
Sesi ACP
Feishu/Lark mendukung ACP untuk DM dan pesan thread grup. ACP Feishu/Lark digerakkan oleh perintah teks - tidak ada menu slash-command native, jadi gunakan pesan/acp ... langsung dalam percakapan.
Binding ACP persisten
Spawn ACP dari obrolan
Dalam DM atau thread Feishu/Lark:--thread here berfungsi untuk DM dan pesan thread Feishu/Lark. Pesan lanjutan dalam percakapan yang terikat diarahkan langsung ke sesi ACP tersebut.
Routing multi-agen
Gunakanbindings untuk merutekan DM atau grup Feishu/Lark ke agen yang berbeda.
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)
Isolasi agen per pengguna (Pembuatan Agen Dinamis)
AktifkandynamicAgentCreation untuk membuat instance agen terisolasi secara otomatis bagi setiap pengguna DM. Setiap pengguna mendapatkan miliknya sendiri:
- Direktori workspace independen
USER.md/SOUL.md/MEMORY.mdterpisah- Riwayat percakapan pribadi
- Skills dan state terisolasi
Binding dinamis menyertakan
accountId Feishu yang dinormalisasi, sehingga akun default dan bernama merutekan setiap pengirim ke agen dinamis yang benar.Jika akun bernama membuat agen dinamis tanpa cakupan pada rilis lama, agen legacy tersebut tetap dihitung dalam maxAgents. Pastikan agen itu tidak digunakan oleh akun default sebelum menghapusnya, atau tingkatkan maxAgents sementara; OpenClaw tidak dapat menyimpulkan dengan aman akun mana yang memiliki state legacy yang ambigu.Penyiapan cepat
Cara kerjanya
Ketika pengguna baru mengirim DM pertama mereka:- Channel menghasilkan
agentIdunik:feishu-{user_open_id}untuk akun default, atau digest identitas dengan awalan akun dan berbatas untuk akun bernama - Membuat workspace baru di jalur
workspaceTemplate - Mendaftarkan agen dan membuat binding untuk pengguna ini
- Helper workspace memastikan file bootstrap (
AGENTS.md,SOUL.md,USER.md, dll.) pada akses pertama - Merutekan semua pesan mendatang dari pengguna ini ke agen khusus mereka
Opsi konfigurasi
| Pengaturan | Deskripsi | Bawaan |
|---|---|---|
channels.feishu.dynamicAgentCreation.enabled | Aktifkan pembuatan agen otomatis per pengguna | false |
channels.feishu.dynamicAgentCreation.workspaceTemplate | Templat path untuk workspace agen dinamis | ~/.openclaw/workspace-{agentId} |
channels.feishu.dynamicAgentCreation.agentDirTemplate | Templat nama direktori agen | ~/.openclaw/agents/{agentId}/agent |
channels.feishu.dynamicAgentCreation.maxAgents | Jumlah maksimum agen dinamis yang dibuat | tidak terbatas |
{agentId}- ID agen yang dibuat (misalnya,feishu-ou_xxxxxxataufeishu-support-<identity_digest>){userId}- open_id Feishu pengirim (misalnya,ou_xxxxxx)
Cakupan sesi
session.dmScope mengontrol bagaimana pesan langsung dipetakan ke sesi agen. Ini adalah pengaturan global yang memengaruhi semua channel.
| Nilai | Perilaku | Paling cocok untuk |
|---|---|---|
"main" | DM setiap pengguna dipetakan ke sesi utama agennya | Bot satu pengguna ketika Anda ingin USER.md / SOUL.md dimuat otomatis |
"per-channel-peer" | Setiap kombinasi (channel + pengguna) mendapatkan sesi terpisah | Bot publik multi-pengguna yang membutuhkan isolasi lebih kuat |
"per-account-channel-peer" | Setiap kombinasi (akun + channel + pengguna) mendapatkan sesi terpisah | Bot multi-akun yang membutuhkan isolasi sesi tingkat akun |
"main" mengaktifkan pemuatan file bootstrap otomatis (USER.md, SOUL.md, MEMORY.md), tetapi berarti semua DM di semua channel berbagi pola kunci sesi yang sama. Untuk bot publik multi-pengguna ketika isolasi lebih penting daripada pemuatan otomatis bootstrap, pertimbangkan "per-channel-peer" dan kelola file bootstrap secara manual.
Gunakan
"per-account-channel-peer" ketika akun Feishu bernama harus mempertahankan sesi terpisah untuk pengirim yang sama. Binding dinamis mempertahankan cakupan akun.Deployment multi-pengguna umum
Verifikasi
Periksa log gateway untuk memastikan pembuatan dinamis berfungsi:Catatan
- Isolasi workspace: Setiap pengguna mendapatkan direktori workspace dan instans agen sendiri. Pengguna tidak dapat melihat riwayat percakapan atau file pengguna lain dalam alur perpesanan normal.
- Batas keamanan: Ini adalah mekanisme isolasi konteks perpesanan, bukan batas keamanan untuk penyewa bersama yang bermusuhan. Proses agen dan lingkungan host digunakan bersama.
bindingsharus kosong: Agen dinamis mendaftarkan binding mereka sendiri secara otomatis- Jalur upgrade: Binding manual yang ada tetap berfungsi bersama agen dinamis
session.dmScopebersifat global: Ini memengaruhi semua channel, bukan hanya Feishu
Referensi konfigurasi
Konfigurasi lengkap: Konfigurasi Gateway| Pengaturan | Deskripsi | Bawaan |
|---|---|---|
channels.feishu.enabled | Aktifkan/nonaktifkan channel | true |
channels.feishu.domain | Domain API (feishu atau lark) | feishu |
channels.feishu.connectionMode | Transport event (websocket atau webhook) | websocket |
channels.feishu.defaultAccount | Akun bawaan untuk routing keluar | default |
channels.feishu.verificationToken | Diperlukan untuk mode webhook | - |
channels.feishu.encryptKey | Diperlukan untuk mode webhook | - |
channels.feishu.webhookPath | Path rute Webhook | /feishu/events |
channels.feishu.webhookHost | Host bind Webhook | 127.0.0.1 |
channels.feishu.webhookPort | Port bind Webhook | 3000 |
channels.feishu.accounts.<id>.appId | ID aplikasi | - |
channels.feishu.accounts.<id>.appSecret | Rahasia aplikasi | - |
channels.feishu.accounts.<id>.domain | Override domain per akun | feishu |
channels.feishu.accounts.<id>.tts | Override TTS per akun | messages.tts |
channels.feishu.dmPolicy | Kebijakan DM | pairing |
channels.feishu.allowFrom | Allowlist DM (daftar open_id) | - |
channels.feishu.groupPolicy | Kebijakan grup | allowlist |
channels.feishu.groupAllowFrom | Allowlist grup | - |
channels.feishu.requireMention | Wajibkan @mention di grup | true |
channels.feishu.groups.<chat_id>.requireMention | Override @mention per grup; ID eksplisit juga menerima grup dalam mode allowlist | diwariskan |
channels.feishu.groups.<chat_id>.enabled | Aktifkan/nonaktifkan grup tertentu | true |
channels.feishu.dynamicAgentCreation.enabled | Aktifkan pembuatan agen otomatis per pengguna | false |
channels.feishu.dynamicAgentCreation.workspaceTemplate | Templat path untuk workspace agen dinamis | ~/.openclaw/workspace-{agentId} |
channels.feishu.dynamicAgentCreation.agentDirTemplate | Templat nama direktori agen | ~/.openclaw/agents/{agentId}/agent |
channels.feishu.dynamicAgentCreation.maxAgents | Jumlah maksimum agen dinamis yang dibuat | tidak terbatas |
channels.feishu.textChunkLimit | Ukuran potongan pesan | 2000 |
channels.feishu.mediaMaxMb | Batas ukuran media | 30 |
channels.feishu.streaming | Output kartu streaming | true |
channels.feishu.blockStreaming | Streaming balasan blok selesai | false |
channels.feishu.typingIndicator | Kirim reaksi mengetik | true |
channels.feishu.resolveSenderNames | Resolusi nama tampilan pengirim | true |
channels.feishu.tools.bitable | Aktifkan alat Bitable/Base | true |
channels.feishu.tools.base | Alias untuk channels.feishu.tools.bitable; bitable eksplisit menang ketika keduanya diatur | true |
channels.feishu.accounts.<id>.tools.bitable | Gerbang alat Bitable/Base per akun | diwariskan |
channels.feishu.accounts.<id>.tools.base | Alias per akun untuk tools.bitable | diwariskan |
Jenis pesan yang didukung
Terima
- ✅ Teks
- ✅ Teks kaya (post)
- ✅ Gambar
- ✅ File
- ✅ Audio
- ✅ Video/media
- ✅ Stiker
file_key mentah. Ketika tools.media.audio dikonfigurasi, OpenClaw
mengunduh resource catatan suara dan menjalankan transkripsi audio bersama sebelum
giliran agen, sehingga agen menerima transkrip ucapan. Jika Feishu menyertakan
teks transkrip langsung dalam payload audio, teks tersebut digunakan tanpa
panggilan ASR lain. Tanpa penyedia transkripsi audio, agen tetap menerima
placeholder <media:audio> ditambah lampiran yang disimpan, bukan payload
resource Feishu mentah.
Kirim
- ✅ Teks
- ✅ Gambar
- ✅ File
- ✅ Audio
- ✅ Video/media
- ✅ Kartu interaktif (termasuk pembaruan streaming)
- ⚠️ Teks kaya (pemformatan gaya posting; tidak mendukung kemampuan penulisan Feishu/Lark penuh)
audio dan memerlukan
media unggahan Ogg/Opus (file_type: "opus"). Media .opus dan .ogg yang sudah ada
dikirim langsung sebagai audio native. MP3/WAV/M4A dan format lain yang kemungkinan audio
ditranskode ke Ogg/Opus 48kHz dengan ffmpeg hanya ketika balasan meminta pengiriman
suara (audioAsVoice / alat pesan asVoice, termasuk balasan catatan suara TTS).
Lampiran MP3 biasa tetap menjadi file reguler. Jika ffmpeg tidak ada atau
konversi gagal, OpenClaw beralih ke lampiran file dan mencatat alasannya.
Utas dan balasan
- ✅ Balasan inline
- ✅ Balasan utas
- ✅ Balasan media tetap sadar utas saat membalas pesan utas
groupSessionScope: "group_topic" dan "group_topic_sender", grup topik
native Feishu/Lark menggunakan event thread_id (omt_*) sebagai kunci sesi
topik kanonis. Jika event pembuka topik native menghilangkan thread_id, OpenClaw
menghidrasinya dari Feishu sebelum merutekan giliran. Balasan grup normal yang
diubah OpenClaw menjadi utas tetap menggunakan ID pesan akar balasan (om_*) agar
giliran pertama dan giliran lanjutan tetap berada dalam sesi yang sama.
Terkait
- Ringkasan Channel - semua channel yang didukung
- Penyandingan - autentikasi DM dan alur penyandingan
- Grup - perilaku obrolan grup dan gating penyebutan
- Perutean Channel - perutean sesi untuk pesan
- Keamanan - model akses dan pengerasan