Regional platforms
Feishu
Feishu/Lark, ekiplerin sohbet ettiği, belge paylaştığı, takvimleri yönettiği ve işleri birlikte tamamladığı hepsi bir arada bir işbirliği platformudur.
Durum: bot DM'leri + grup sohbetleri için üretime hazır. WebSocket varsayılan moddur; Webhook modu isteğe bağlıdır.
Hızlı başlangıç
Kanal kurulum sihirbazını çalıştırın
openclaw channels login --channel feishu
Otomatik olarak bir Feishu/Lark botu oluşturmak için QR kodunu Feishu/Lark mobil uygulamanızla tarayın.
Kurulum tamamlandıktan sonra değişiklikleri uygulamak için Gateway'i yeniden başlatın
openclaw gateway restart
Erişim denetimi
Doğrudan mesajlar
Bota kimlerin DM gönderebileceğini denetlemek için dmPolicy yapılandırın:
"pairing"- bilinmeyen kullanıcılar bir eşleştirme kodu alır; CLI üzerinden onaylayın"allowlist"- yalnızcaallowFromiçinde listelenen kullanıcılar sohbet edebilir (varsayılan: yalnızca bot sahibi)"open"- yalnızcaallowFrom,"*"içerdiğinde herkese açık DM'lere izin ver; kısıtlayıcı girdilerle yalnızca eşleşen kullanıcılar sohbet edebilir"disabled"- tüm DM'leri devre dışı bırak
Bir eşleştirme isteğini onaylayın:
openclaw pairing list feishu
openclaw pairing approve feishu <CODE>
Grup sohbetleri
Grup ilkesi (channels.feishu.groupPolicy):
| Değer | Davranış |
|---|---|
"open" |
Gruplardaki tüm mesajlara yanıt ver |
"allowlist" |
Yalnızca groupAllowFrom içindeki veya groups.<chat_id> altında açıkça yapılandırılmış gruplara yanıt ver |
"disabled" |
Tüm grup mesajlarını devre dışı bırak; açık groups.<chat_id> girdileri bunu geçersiz kılmaz |
Varsayılan: allowlist
Bahsetme gereksinimi (channels.feishu.requireMention):
true- @mention gerektir (varsayılan)false- @mention olmadan yanıt ver- Grup bazında geçersiz kılma:
channels.feishu.groups.<chat_id>.requireMention - Yalnızca yayın amaçlı
@allve@_all, bot bahsetmeleri olarak değerlendirilmez. Hem@allhem de doğrudan botu bahseden bir mesaj yine bot bahsetmesi sayılır.
Grup yapılandırma örnekleri
Tüm gruplara izin ver, @mention gerekli değil
{
channels: {
feishu: {
groupPolicy: "open",
},
},
}
Tüm gruplara izin ver, yine de @mention gerektir
{
channels: {
feishu: {
groupPolicy: "open",
requireMention: true,
},
},
}
Yalnızca belirli gruplara izin ver
{
channels: {
feishu: {
groupPolicy: "allowlist",
// Group IDs look like: oc_xxx
groupAllowFrom: ["oc_xxx", "oc_yyy"],
},
},
}
allowlist modunda, açık bir groups.<chat_id> girdisi ekleyerek bir grubu da kabul edebilirsiniz. Açık girdiler groupPolicy: "disabled" değerini geçersiz kılmaz. groups.* altındaki joker karakter varsayılanları eşleşen grupları yapılandırır, ancak grupları tek başlarına kabul etmez.
{
channels: {
feishu: {
groupPolicy: "allowlist",
groups: {
oc_xxx: {
requireMention: false,
},
},
},
},
}
Grup içinde gönderenleri kısıtla
{
channels: {
feishu: {
groupPolicy: "allowlist",
groupAllowFrom: ["oc_xxx"],
groups: {
oc_xxx: {
// User open_ids look like: ou_xxx
allowFrom: ["ou_user1", "ou_user2"],
},
},
},
},
}
Grup/kullanıcı kimliklerini alma
Grup kimlikleri (chat_id, biçim: oc_xxx)
Grubu Feishu/Lark içinde açın, sağ üst köşedeki menü simgesine tıklayın ve Ayarlar bölümüne gidin. Grup kimliği (chat_id) ayarlar sayfasında listelenir.

Kullanıcı kimlikleri (open_id, biçim: ou_xxx)
Gateway'i başlatın, bota bir DM gönderin, ardından günlükleri kontrol edin:
openclaw logs --follow
Günlük çıktısında open_id arayın. Bekleyen eşleştirme isteklerini de kontrol edebilirsiniz:
openclaw pairing list feishu
Yaygın komutlar
| Komut | Açıklama |
|---|---|
/status |
Bot durumunu göster |
/reset |
Geçerli oturumu sıfırla |
/model |
AI modelini göster veya değiştir |
Sorun giderme
Bot grup sohbetlerinde yanıt vermiyor
- Botun gruba eklendiğinden emin olun
- Botu @mention ettiğinizden emin olun (varsayılan olarak gereklidir)
groupPolicydeğerinin"disabled"olmadığını doğrulayın- Günlükleri kontrol edin:
openclaw logs --follow
Bot mesaj almıyor
- Botun Feishu Open Platform / Lark Developer içinde yayımlandığından ve onaylandığından emin olun
- Olay aboneliğinin
im.message.receive_v1içerdiğinden emin olun - Kalıcı bağlantı (WebSocket) seçildiğinden emin olun
- Gerekli tüm izin kapsamlarının verildiğinden emin olun
- Gateway'in çalıştığından emin olun:
openclaw gateway status - Günlükleri kontrol edin:
openclaw logs --follow
App Secret sızdı
- App Secret değerini Feishu Open Platform / Lark Developer içinde sıfırlayın
- Yapılandırmanızdaki değeri güncelleyin
- Gateway'i yeniden başlatın:
openclaw gateway restart
Gelişmiş yapılandırma
Birden fazla hesap
{
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, giden API'ler bir accountId belirtmediğinde hangi hesabın kullanılacağını denetler.
accounts.<id>.tts, messages.tts ile aynı şekli kullanır ve genel TTS yapılandırmasının üzerine derin birleştirme uygular; böylece çok botlu Feishu kurulumları, hesap başına yalnızca ses, model, persona veya otomatik modu geçersiz kılarken paylaşılan sağlayıcı kimlik bilgilerini genel olarak tutabilir.
Mesaj sınırları
textChunkLimit- giden metin parçası boyutu (varsayılan:2000karakter)mediaMaxMb- medya yükleme/indirme sınırı (varsayılan:30MB)
Akış
Feishu/Lark etkileşimli kartlar aracılığıyla akış yanıtlarını destekler. Etkinleştirildiğinde bot, metin oluştururken kartı gerçek zamanlı olarak günceller.
{
channels: {
feishu: {
streaming: true, // enable streaming card output (default: true)
blockStreaming: true, // opt into completed-block streaming
},
},
}
Tam yanıtı tek mesajda göndermek için streaming: false ayarlayın. blockStreaming varsayılan olarak kapalıdır; yalnızca tamamlanmış asistan bloklarının son yanıttan önce gönderilmesini istediğinizde etkinleştirin.
Kota optimizasyonu
İki isteğe bağlı bayrakla Feishu/Lark API çağrılarının sayısını azaltın:
typingIndicator(varsayılantrue): yazıyor tepkisi çağrılarını atlamak içinfalseayarlayınresolveSenderNames(varsayılantrue): gönderen profil aramalarını atlamak içinfalseayarlayın
{
channels: {
feishu: {
typingIndicator: false,
resolveSenderNames: false,
},
},
}
ACP oturumları
Feishu/Lark, DM'ler ve grup iş parçacığı mesajları için ACP'yi destekler. Feishu/Lark ACP metin komutuyla yönlendirilir - yerel eğik çizgi komutu menüleri yoktur, bu yüzden /acp ... mesajlarını doğrudan konuşmada kullanın.
Kalıcı ACP bağlaması
{
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" },
},
],
}
Sohbetten ACP başlatma
Bir Feishu/Lark DM'inde veya iş parçacığında:
/acp spawn codex --thread here
--thread here, DM'ler ve Feishu/Lark iş parçacığı mesajları için çalışır. Bağlı konuşmadaki takip mesajları doğrudan bu ACP oturumuna yönlendirilir.
Çok aracılı yönlendirme
Feishu/Lark DM'lerini veya gruplarını farklı aracılara yönlendirmek için bindings kullanın.
{
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" },
},
},
],
}
Yönlendirme alanları:
match.channel:"feishu"match.peer.kind:"direct"(DM) veya"group"(grup sohbeti)match.peer.id: kullanıcı Open ID'si (ou_xxx) veya grup kimliği (oc_xxx)
Arama ipuçları için Grup/kullanıcı kimliklerini alma bölümüne bakın.
Yapılandırma referansı
Tam yapılandırma: Gateway yapılandırması
| Ayar | Açıklama | Varsayılan |
|---|---|---|
channels.feishu.enabled |
Kanalı etkinleştir/devre dışı bırak | true |
channels.feishu.domain |
API alan adı (feishu veya lark) |
feishu |
channels.feishu.connectionMode |
Olay aktarımı (websocket veya webhook) |
websocket |
channels.feishu.defaultAccount |
Giden yönlendirme için varsayılan hesap | default |
channels.feishu.verificationToken |
Webhook modu için gereklidir | - |
channels.feishu.encryptKey |
Webhook modu için gereklidir | - |
channels.feishu.webhookPath |
Webhook rota yolu | /feishu/events |
channels.feishu.webhookHost |
Webhook bağlama ana makinesi | 127.0.0.1 |
channels.feishu.webhookPort |
Webhook bağlama bağlantı noktası | 3000 |
channels.feishu.accounts.<id>.appId |
Uygulama ID'si | - |
channels.feishu.accounts.<id>.appSecret |
Uygulama gizli anahtarı | - |
channels.feishu.accounts.<id>.domain |
Hesap başına alan adı geçersiz kılması | feishu |
channels.feishu.accounts.<id>.tts |
Hesap başına TTS geçersiz kılması | messages.tts |
channels.feishu.dmPolicy |
DM ilkesi | allowlist |
channels.feishu.allowFrom |
DM izin verilenler listesi (open_id listesi) | [BotOwnerId] |
channels.feishu.groupPolicy |
Grup ilkesi | allowlist |
channels.feishu.groupAllowFrom |
Grup izin verilenler listesi | - |
channels.feishu.requireMention |
Gruplarda @bahsetme gerektir | true |
channels.feishu.groups.<chat_id>.requireMention |
Grup başına @bahsetme geçersiz kılması; açık ID'ler de izin verilenler listesi modunda grubu kabul eder | devralınan |
channels.feishu.groups.<chat_id>.enabled |
Belirli bir grubu etkinleştir/devre dışı bırak | true |
channels.feishu.textChunkLimit |
İleti parçası boyutu | 2000 |
channels.feishu.mediaMaxMb |
Medya boyutu sınırı | 30 |
channels.feishu.streaming |
Akışlı kart çıktısı | true |
channels.feishu.blockStreaming |
Tamamlanmış blok yanıt akışı | false |
channels.feishu.typingIndicator |
Yazıyor tepkileri gönder | true |
channels.feishu.resolveSenderNames |
Gönderen görünen adlarını çözümle | true |
Desteklenen ileti türleri
Alma
- ✅ Metin
- ✅ Zengin metin (gönderi)
- ✅ Görseller
- ✅ Dosyalar
- ✅ Ses
- ✅ Video/medya
- ✅ Çıkartmalar
Gelen Feishu/Lark ses iletileri ham file_key JSON yerine medya yer tutucuları
olarak normalleştirilir. tools.media.audio yapılandırıldığında OpenClaw
sesli not kaynağını indirir ve ajan turundan önce paylaşılan ses transkripsiyonunu
çalıştırır; böylece ajan konuşma transkriptini alır. Feishu, ses yükünde
transkript metnini doğrudan içeriyorsa bu metin başka bir ASR çağrısı yapılmadan
kullanılır. Ses transkripsiyonu sağlayıcısı olmadan ajan yine de ham Feishu
kaynak yükü yerine bir <media:audio> yer tutucusu ve kaydedilmiş eki alır.
Gönderme
- ✅ Metin
- ✅ Görseller
- ✅ Dosyalar
- ✅ Ses
- ✅ Video/medya
- ✅ Etkileşimli kartlar (akış güncellemeleri dahil)
- ⚠️ Zengin metin (gönderi tarzı biçimlendirme; tam Feishu/Lark yazma yeteneklerini desteklemez)
Yerel Feishu/Lark ses baloncukları Feishu audio ileti türünü kullanır ve
Ogg/Opus yükleme medyası (file_type: "opus") gerektirir. Mevcut .opus ve .ogg medya
doğrudan yerel ses olarak gönderilir. MP3/WAV/M4A ve diğer olası ses formatları
yalnızca yanıt sesli teslimat istediğinde (audioAsVoice / ileti aracı asVoice, TTS sesli not
yanıtları dahil) ffmpeg ile 48kHz Ogg/Opus'a dönüştürülür. Sıradan MP3 ekleri
normal dosyalar olarak kalır. ffmpeg eksikse veya dönüştürme başarısız olursa
OpenClaw bir dosya ekine geri döner ve nedeni günlüğe kaydeder.
Konular ve yanıtlar
- ✅ Satır içi yanıtlar
- ✅ Konu yanıtları
- ✅ Bir konu iletisine yanıt verirken medya yanıtları konu farkındalığını korur
groupSessionScope: "group_topic" ve "group_topic_sender" için yerel
Feishu/Lark konu grupları, olay thread_id değerini (omt_*) kanonik
konu oturumu anahtarı olarak kullanır. Yerel bir konu başlatıcı olayı thread_id değerini atlıyorsa
OpenClaw turu yönlendirmeden önce bunu Feishu'dan doldurur. OpenClaw'ın konulara
dönüştürdüğü normal grup yanıtları, ilk tur ve takip turu aynı oturumda kalsın diye
yanıt kök ileti ID'sini (om_*) kullanmaya devam eder.
İlgili
- Kanallara Genel Bakış - desteklenen tüm kanallar
- Eşleştirme - DM kimlik doğrulaması ve eşleştirme akışı
- Gruplar - grup sohbeti davranışı ve bahsetme denetimi
- Kanal Yönlendirme - iletiler için oturum yönlendirme
- Güvenlik - erişim modeli ve sağlamlaştırma