Regional platforms
Feishu
OpenClaw підключається до Feishu/Lark (універсальної платформи для спільної роботи) через офіційний Plugin @openclaw/feishu: особисті повідомлення бота, групові чати, потокові відповіді у вигляді карток та інструменти Feishu для документів, вікі, диска й Bitable.
Стан: готовий до використання у виробничому середовищі для особистих повідомлень бота та групових чатів. WebSocket є стандартним транспортом подій (публічна URL-адреса не потрібна); режим Webhook необов’язковий.
Швидкий початок
Запустіть майстер налаштування каналу
openclaw channels login --channel feishuЦя команда встановлює Plugin @openclaw/feishu, якщо його немає, а потім покроково виконує налаштування:
- Налаштування вручну: вставте App ID та App Secret із Feishu Open Platform (
https://open.feishu.cn) або Lark Developer (https://open.larksuite.com). - Налаштування за QR-кодом: відскануйте QR-код у застосунку Feishu, щоб автоматично створити бота. Цей процес обмежує особисті повідомлення вашим власним обліковим записом (
dmPolicy: "allowlist"із вашимopen_id).
Майстер також запитує домен API (Feishu або Lark) і політику груп. Якщо локальна версія мобільного застосунку Feishu не реагує на QR-код, повторно запустіть налаштування та виберіть налаштування вручну.
Після завершення налаштування перезапустіть Gateway, щоб застосувати зміни
openclaw gateway restartКерування доступом
Особисті повідомлення
Налаштуйте channels.feishu.dmPolicy (стандартне значення: pairing), щоб визначити, хто може надсилати боту особисті повідомлення:
| Значення | Поведінка |
|---|---|
"pairing" |
Невідомі користувачі отримують код сполучення; схваліть через CLI |
"allowlist" |
Спілкуватися можуть лише користувачі, зазначені в allowFrom |
"open" |
Публічні особисті повідомлення; для перевірки конфігурації allowFrom має містити "*". Записи без символу узагальнення й надалі обмежують доступ |
Схвалення запиту на сполучення:
openclaw pairing list feishuopenclaw pairing approve feishu <CODE>Групові чати
Політика груп (channels.feishu.groupPolicy, стандартне значення: allowlist):
| Значення | Поведінка |
|---|---|
"open" |
Відповідати на всі повідомлення в групах |
"allowlist" |
Відповідати лише в групах із groupAllowFrom або явно налаштованих у groups.<chat_id> |
"disabled" |
Вимкнути всі групові повідомлення; явні записи groups.<chat_id> не перевизначають це |
Вимога згадування (channels.feishu.requireMention):
- Стандартно: потрібне @згадування, крім випадків, коли чинна політика групи —
"open"; тоді стандартним значенням єfalse, щоб повідомлення, які не можуть містити згадування (наприклад, зображення), усе одно надходили агенту. - Явно встановіть
trueабоfalse, щоб перевизначити це; перевизначення для окремої групи:channels.feishu.groups.<chat_id>.requireMention. - Трансляційні згадування
@allі@_allне вважаються згадуваннями бота. Повідомлення, у якому одночасно згадано@allі безпосередньо бота, усе одно вважається згадуванням бота.
Приклади конфігурації груп
Дозволити всі групи без обов’язкового @згадування
{ channels: { feishu: { groupPolicy: "open", // для "open" стандартне значення requireMention — false }, },}Дозволити всі групи, але й надалі вимагати @згадування
{ channels: { feishu: { groupPolicy: "open", requireMention: true, }, },}Дозволити лише певні групи
{ channels: { feishu: { groupPolicy: "allowlist", // Ідентифікатори груп мають такий вигляд: oc_xxx groupAllowFrom: ["oc_xxx", "oc_yyy"], }, },}У режимі allowlist групу також можна допустити, додавши явний запис groups.<chat_id>. Явні записи не перевизначають groupPolicy: "disabled". Стандартні налаштування із символом узагальнення в groups.* налаштовують відповідні групи, але самі собою не допускають їх.
{ channels: { feishu: { groupPolicy: "allowlist", groups: { oc_xxx: { requireMention: false, }, }, }, },}Обмежити відправників у групі
{ channels: { feishu: { groupPolicy: "allowlist", groupAllowFrom: ["oc_xxx"], groups: { oc_xxx: { // Значення open_id користувачів мають такий вигляд: ou_xxx allowFrom: ["ou_user1", "ou_user2"], }, }, }, },}channels.feishu.groupSenderAllowFrom задає однаковий список дозволених відправників для всіх груп; значення allowFrom окремої групи має вищий пріоритет.
Отримання ідентифікаторів груп і користувачів
Ідентифікатори груп (chat_id, формат: oc_xxx)
Відкрийте групу у Feishu/Lark, натисніть піктограму меню у верхньому правому куті та перейдіть до Settings. Ідентифікатор групи (chat_id) указано на сторінці налаштувань.

Ідентифікатори користувачів (open_id, формат: ou_xxx)
Запустіть Gateway, надішліть боту особисте повідомлення, а потім перевірте журнали:
openclaw logs --followЗнайдіть open_id у виводі журналу. Також можна перевірити запити на сполучення, що очікують розгляду:
openclaw pairing list feishuПоширені команди
| Команда | Опис |
|---|---|
/status |
Показати стан бота |
/reset |
Скинути поточний сеанс |
/model |
Показати або змінити модель ШІ |
Усунення несправностей
Бот не відповідає в групових чатах
- Переконайтеся, що бота додано до групи
- Переконайтеся, що ви @згадали бота (стандартно це обов’язково)
- Переконайтеся, що
groupPolicyне має значення"disabled" - Перевірте журнали:
openclaw logs --follow
Бот не отримує повідомлення
- Переконайтеся, що бота опубліковано та схвалено у Feishu Open Platform / Lark Developer
- Переконайтеся, що підписка на події містить
im.message.receive_v1 - Переконайтеся, що вибрано persistent connection (WebSocket)
- Переконайтеся, що надано всі потрібні дозволи
- Переконайтеся, що Gateway працює:
openclaw gateway status - Перевірте журнали:
openclaw logs --follow
Налаштування за QR-кодом не реагує в мобільному застосунку Feishu
- Повторно запустіть налаштування:
openclaw channels login --channel feishu - Виберіть налаштування вручну
- У Feishu Open Platform створіть власний застосунок і скопіюйте його App ID та App Secret
- Вставте ці облікові дані в майстер налаштування
App Secret розкрито
- Скиньте App Secret у Feishu Open Platform / Lark Developer
- Оновіть значення у своїй конфігурації
- Перезапустіть Gateway:
openclaw gateway restart
Розширена конфігурація
Кілька облікових записів
{ channels: { feishu: { defaultAccount: "main", accounts: { main: { appId: "cli_xxx", appSecret: "xxx", name: "Основний бот", tts: { providers: { openai: { voice: "shimmer" }, }, }, }, backup: { appId: "cli_yyy", appSecret: "yyy", name: "Резервний бот", enabled: false, }, }, }, },}defaultAccount визначає, який обліковий запис використовується, коли вихідні API не вказують accountId. Записи облікових записів успадковують налаштування верхнього рівня; більшість ключів верхнього рівня можна перевизначити для окремого облікового запису.
accounts.<id>.tts має таку саму структуру, як messages.tts, і глибоко об’єднується з глобальною конфігурацією TTS, тому конфігурації Feishu з кількома ботами можуть зберігати спільні облікові дані провайдера глобально, перевизначаючи для кожного облікового запису лише голос, модель, персону або автоматичний режим.
Обмеження повідомлень
textChunkLimit— розмір фрагмента вихідного тексту (стандартне значення:4000символів)streaming.chunkMode—"length"(стандартне значення) розділяє текст на межі обмеження;"newline"віддає перевагу межам нових рядківmediaMaxMb— обмеження на завантаження та отримання медіафайлів (стандартне значення:30МБ)
Потокове передавання
Feishu/Lark підтримує потокові відповіді через інтерактивні картки (API потокового передавання Card Kit). Коли цю функцію ввімкнено, бот оновлює картку в реальному часі під час генерування тексту.
{ channels: { feishu: { streaming: { mode: "partial", // потокове виведення картки (стандартне значення: "partial") block: { enabled: true }, // увімкнення потокового передавання завершених блоків }, }, },}Установіть streaming.mode: "off", щоб надсилати повну відповідь одним повідомленням; renderMode: "raw" (звичайний текст замість карток) також вимикає потокові картки. streaming.block.enabled стандартно вимкнено; вмикайте його лише тоді, коли потрібно надсилати завершені блоки асистента до остаточної відповіді. Застаріле логічне значення streaming і плоскі ключі blockStreaming / blockStreamingCoalesce / chunkMode переносяться до цієї вкладеної структури за допомогою openclaw doctor --fix.
Оптимізація квоти
Зменште кількість викликів API Feishu/Lark за допомогою двох необов’язкових прапорців:
typingIndicator(стандартне значенняtrue): установітьfalse, щоб пропустити виклики реакції на введення текстуresolveSenderNames(стандартне значенняtrue): установітьfalse, щоб пропустити пошук профілів відправників
{ channels: { feishu: { typingIndicator: false, resolveSenderNames: false, }, },}Область групового сеансу та тематичні гілки
channels.feishu.groupSessionScope (на верхньому рівні, для окремого облікового запису або окремої групи) визначає, як групові повідомлення зіставляються із сеансами агента:
| Значення | Сеанс |
|---|---|
"group" (стандартне значення) |
Один сеанс на груповий чат |
"group_sender" |
Один сеанс на пару (група + відправник) |
"group_topic" |
Один сеанс на тематичну гілку; резервно використовується сеанс групи |
"group_topic_sender" |
Один сеанс на пару (тема + відправник); резервно використовується пара (група + відправник) |
Для тематичних областей вбудовані тематичні групи Feishu/Lark використовують подію thread_id (omt_*) як канонічний ключ тематичного сеансу. Якщо в події початку вбудованої теми немає thread_id, OpenClaw отримує його з Feishu перед маршрутизацією звернення. Звичайні відповіді в групах, які OpenClaw перетворює на гілки, і надалі використовують ідентифікатор кореневого повідомлення відповіді (om_*), щоб перше й наступні звернення залишалися в одному сеансі.
Установіть replyInThread: "enabled" (на верхньому рівні або для окремої групи), щоб відповіді бота створювали або продовжували тематичну гілку Feishu замість вбудованої відповіді. topicSessionMode є застарілим попередником groupSessionScope; віддавайте перевагу groupSessionScope.
Інструменти робочого простору Feishu
Plugin постачається з інструментами агента для документів Feishu, чатів, бази знань, хмарного сховища, дозволів і Bitable, а також відповідними Skills (feishu-doc, feishu-drive, feishu-perm, feishu-wiki). Сімейства інструментів контролюються параметром channels.feishu.tools:
| Ключ | Інструменти | Типове значення |
|---|---|---|
tools.doc |
операції з документами feishu_doc |
true |
tools.chat |
інформація про чат feishu_chat + запити щодо учасників |
true |
tools.wiki |
база знань feishu_wiki (потребує doc) |
true |
tools.drive |
хмарне сховище feishu_drive |
true |
tools.perm |
керування дозволами feishu_perm |
false (чутливе) |
tools.scopes |
діагностика областей доступу застосунку feishu_app_scopes |
true |
tools.bitable |
операції Bitable/Base feishu_bitable_* |
true |
tools.base — це псевдонім для tools.bitable; якщо задано обидва значення, пріоритет має явно вказане значення bitable. Обмеження для окремих облікових записів містяться в accounts.<id>.tools.
Надайте drive:drive.metadata:readonly для прямих пошуків feishu_drive info поза кореневим
каталогом, якщо застосунок ще не має повної області доступу drive:drive. Без жодної з цих областей доступу info
залишає доступним застарілий пошук у кореневому каталозі через drive:drive:readonly.
Сеанси ACP
Feishu/Lark підтримує ACP для приватних повідомлень і повідомлень у гілках груп. ACP у Feishu/Lark керується текстовими командами — вбудованих меню команд із косою рискою немає, тому використовуйте повідомлення /acp ... безпосередньо в розмові.
Постійне прив’язування ACP
{ 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 із чату
У приватному повідомленні або гілці Feishu/Lark:
/acp spawn codex --thread here--thread here працює для приватних повідомлень і повідомлень у гілках Feishu/Lark. Наступні повідомлення у прив’язаній розмові спрямовуються безпосередньо до цього сеансу ACP.
Маршрутизація між кількома агентами
Використовуйте bindings, щоб спрямовувати приватні повідомлення або групи Feishu/Lark до різних агентів.
{ 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" }, }, }, ],}Поля маршрутизації:
match.channel:"feishu"match.peer.kind:"direct"(приватне повідомлення) або"group"(груповий чат)match.peer.id: Open ID користувача (ou_xxx) або ідентифікатор групи (oc_xxx)
Поради щодо пошуку див. у розділі Отримання ідентифікаторів групи/користувача.
Ізоляція агента для кожного користувача (динамічне створення агентів)
Увімкніть dynamicAgentCreation, щоб автоматично створювати ізольовані екземпляри агентів для кожного користувача приватних повідомлень. Кожен користувач отримує власні:
- Незалежний каталог робочого простору
- Окремі
USER.md/SOUL.md/MEMORY.md - Приватну історію розмов
- Ізольовані навички та стан
Це необхідно для загальнодоступних ботів, якщо кожен користувач повинен мати власний приватний досвід взаємодії з ШІ-помічником.
Швидке налаштування
{ channels: { feishu: { dmPolicy: "open", allowFrom: ["*"], dynamicAgentCreation: { enabled: true, workspaceTemplate: "~/.openclaw/workspace-{agentId}", agentDirTemplate: "~/.openclaw/agents/{agentId}/agent", }, }, }, session: { // Критично важливо: робить приватні повідомлення кожного користувача його «основним сеансом» // Автоматично завантажує USER.md / SOUL.md / MEMORY.md // Для посиленої ізоляції натомість використовуйте "per-channel-peer" dmScope: "main", },}Як це працює
Коли новий користувач надсилає перше приватне повідомлення:
- Канал створює унікальний
agentId:feishu-{user_open_id}для типового облікового запису або обмежений дайджест ідентичності з префіксом облікового запису для іменованого облікового запису - Створюється новий робочий простір за шляхом
workspaceTemplate - Агент реєструється, і для цього користувача створюється прив’язування
- Допоміжний засіб робочого простору забезпечує наявність початкових файлів (
AGENTS.md,SOUL.md,USER.mdтощо) під час першого доступу - Усі майбутні повідомлення цього користувача спрямовуються до його виділеного агента
Параметри конфігурації
| Налаштування | Опис | Типове значення |
|---|---|---|
channels.feishu.dynamicAgentCreation.enabled |
Увімкнути автоматичне створення агента для кожного користувача | false |
channels.feishu.dynamicAgentCreation.workspaceTemplate |
Шаблон шляху для робочих просторів динамічних агентів | ~/.openclaw/workspace-{agentId} |
channels.feishu.dynamicAgentCreation.agentDirTemplate |
Шаблон назви каталогу агента | ~/.openclaw/agents/{agentId}/agent |
channels.feishu.dynamicAgentCreation.maxAgents |
Максимальна кількість динамічних агентів для створення | необмежено |
Змінні шаблону:
{agentId}— створений ідентифікатор агента (наприклад,feishu-ou_xxxxxxабоfeishu-support-<identity_digest>){userId}— Feishu open_id відправника (наприклад,ou_xxxxxx)
Область дії сеансу
session.dmScope визначає, як приватні повідомлення зіставляються із сеансами агентів. Це глобальне налаштування, яке впливає на всі канали.
| Значення | Поведінка | Найкраще підходить для |
|---|---|---|
"main" |
Приватні повідомлення кожного користувача зіставляються з основним сеансом його агента | Однокористувацькі боти, для яких потрібно автоматично завантажувати USER.md / SOUL.md |
"per-peer" |
Кожен співрозмовник отримує окремий сеанс (незалежно від каналу) | Ізоляція лише за ідентичністю відправника |
"per-channel-peer" |
Кожна комбінація (канал + користувач) отримує окремий сеанс | Загальнодоступні багатокористувацькі боти, яким потрібна посилена ізоляція |
"per-account-channel-peer" |
Кожна комбінація (обліковий запис + канал + користувач) отримує окремий сеанс | Боти з кількома обліковими записами, яким потрібна ізоляція сеансів на рівні облікового запису |
Компроміс: використання "main" вмикає автоматичне завантаження початкових файлів (USER.md, SOUL.md, MEMORY.md), але означає, що всі приватні повідомлення в усіх каналах використовують однаковий шаблон ключа сеансу. Для загальнодоступних багатокористувацьких ботів, де ізоляція важливіша за автоматичне завантаження початкових файлів, розгляньте "per-channel-peer" і керуйте початковими файлами вручну.
Типове багатокористувацьке розгортання
{ channels: { feishu: { appId: "cli_xxx", appSecret: "xxx", dmPolicy: "open", allowFrom: ["*"], groupPolicy: "open", requireMention: true, dynamicAgentCreation: { enabled: true, workspaceTemplate: "~/.openclaw/workspace-{agentId}", agentDirTemplate: "~/.openclaw/agents/{agentId}/agent", }, }, }, session: { // Виберіть dmScope відповідно до потреб в ізоляції: // "main" для автоматичного завантаження початкових файлів, "per-channel-peer" для посиленої ізоляції dmScope: "main", }, bindings: [], // Порожній масив — динамічні агенти прив’язуються автоматично}Перевірка
Перевірте журнали Gateway, щоб переконатися, що динамічне створення працює:
feishu: створення динамічного агента "feishu-ou_xxxxxx" для користувача ou_xxxxxx робочий простір: /home/user/.openclaw/workspace-feishu-ou_xxxxxx каталог агента: /home/user/.openclaw/agents/feishu-ou_xxxxxx/agentПерелічіть усі створені робочі простори:
ls -la ~/.openclaw/workspace-*Примітки
- Ізоляція робочого простору: кожен користувач отримує власний каталог робочого простору й екземпляр агента. У межах звичайного обміну повідомленнями користувачі не можуть бачити історію розмов або файли один одного.
- Межа безпеки: це механізм ізоляції контексту обміну повідомленнями, а не межа безпеки для недовірених співорендарів. Процес агента й середовище хоста є спільними.
- Запис конфігурації має залишатися ввімкненим: динамічне створення агентів записує агентів і прив’язування до конфігурації; воно пропускається, коли
channels.feishu.configWritesмає значенняfalse(типово: увімкнено). bindingsмає бути порожнім: динамічні агенти автоматично реєструють власні прив’язування- Шлях оновлення: наявні прив’язування, створені вручну, продовжують працювати разом із динамічними агентами
session.dmScopeє глобальним: це впливає на всі канали, а не лише на Feishu
Довідник із конфігурації
Повна конфігурація: Конфігурація Gateway
| Налаштування | Опис | Типове значення |
|---|---|---|
channels.feishu.enabled |
Увімкнути/вимкнути канал | true |
channels.feishu.domain |
Домен API (feishu, lark або базова URL-адреса https://) |
feishu |
channels.feishu.connectionMode |
Транспорт подій (websocket або webhook) |
websocket |
channels.feishu.defaultAccount |
Обліковий запис за замовчуванням для вихідної маршрутизації | default |
channels.feishu.verificationToken |
Обов’язковий для режиму Webhook | - |
channels.feishu.encryptKey |
Обов’язковий для режиму Webhook | - |
channels.feishu.webhookPath |
Шлях маршруту Webhook | /feishu/events |
channels.feishu.webhookHost |
Хост прив’язки Webhook | 127.0.0.1 |
channels.feishu.webhookPort |
Порт прив’язки Webhook | 3000 |
channels.feishu.accounts.<id>.appId |
Ідентифікатор застосунку | - |
channels.feishu.accounts.<id>.appSecret |
Секрет застосунку | - |
channels.feishu.accounts.<id>.domain |
Перевизначення домену для окремого облікового запису | feishu |
channels.feishu.accounts.<id>.tts |
Перевизначення TTS для окремого облікового запису | messages.tts |
channels.feishu.dmPolicy |
Політика приватних повідомлень (pairing, allowlist, open) |
pairing |
channels.feishu.allowFrom |
Список дозволених приватних повідомлень (список open_id) | - |
channels.feishu.groupPolicy |
Політика груп (open, allowlist, disabled) |
allowlist |
channels.feishu.groupAllowFrom |
Список дозволених груп | - |
channels.feishu.groupSenderAllowFrom |
Список дозволених відправників, застосовуваний до всіх груп | - |
channels.feishu.requireMention |
Вимагати @згадку в групах | true (false, коли політика — open) |
channels.feishu.groups.<chat_id>.requireMention |
Перевизначення @згадки для окремої групи; явні ідентифікатори також допускають групу в режимі списку дозволених | успадковано |
channels.feishu.groups.<chat_id>.enabled |
Увімкнути/вимкнути певну групу | true |
channels.feishu.groups.<chat_id>.allowFrom |
Список дозволених відправників для окремої групи (перевизначає groupSenderAllowFrom) |
- |
channels.feishu.groupSessionScope |
Зіставлення групових сеансів (group, group_sender, group_topic, group_topic_sender) |
group |
channels.feishu.replyInThread |
Відповіді бота створюють або продовжують тематичні гілки (disabled, enabled) |
disabled |
channels.feishu.reactionNotifications |
Вхідні події реакцій (off, own, all) |
own |
channels.feishu.dynamicAgentCreation.enabled |
Увімкнути автоматичне створення агента для кожного користувача | false |
channels.feishu.dynamicAgentCreation.workspaceTemplate |
Шаблон шляху для робочих просторів динамічних агентів | ~/.openclaw/workspace-{agentId} |
channels.feishu.dynamicAgentCreation.agentDirTemplate |
Шаблон назви каталогу агента | ~/.openclaw/agents/{agentId}/agent |
channels.feishu.dynamicAgentCreation.maxAgents |
Максимальна кількість динамічних агентів для створення | необмежено |
channels.feishu.textChunkLimit |
Розмір фрагмента повідомлення | 4000 |
channels.feishu.streaming.chunkMode |
Поділ на фрагменти (length або newline) |
length |
channels.feishu.mediaMaxMb |
Обмеження розміру медіафайлів | 30 |
channels.feishu.renderMode |
Відтворення відповідей (auto, raw, card) |
auto |
channels.feishu.streaming.mode |
Потокове виведення карток (partial або off) |
partial |
channels.feishu.streaming.block.enabled |
Потокове надсилання відповідей завершеними блоками | false |
channels.feishu.typingIndicator |
Надсилати реакції набору тексту | true |
channels.feishu.resolveSenderNames |
Визначати відображувані імена відправників | true |
channels.feishu.configWrites |
Дозволити ініційований каналом запис конфігурації (потрібно для динамічних агентів) | true |
channels.feishu.tools.doc |
Увімкнути інструменти документів | true |
channels.feishu.tools.chat |
Увімкнути інструменти інформації про чат | true |
channels.feishu.tools.wiki |
Увімкнути інструменти бази знань (потрібен doc) |
true |
channels.feishu.tools.drive |
Увімкнути інструменти хмарного сховища | true |
channels.feishu.tools.perm |
Увімкнути інструменти керування дозволами | false |
channels.feishu.tools.scopes |
Увімкнути діагностичний інструмент областей доступу застосунку | true |
channels.feishu.tools.bitable |
Увімкнути інструменти Bitable/Base | true |
channels.feishu.tools.base |
Псевдонім для channels.feishu.tools.bitable; якщо задано обидва, перевагу має явне значення bitable |
true |
channels.feishu.accounts.<id>.tools.bitable |
Доступ до інструментів Bitable/Base для окремого облікового запису | успадковано |
channels.feishu.accounts.<id>.tools.base |
Псевдонім для tools.bitable на рівні окремого облікового запису |
успадковано |
Підтримувані типи повідомлень
Отримання
- ✅ Текст
- ✅ Форматований текст (допис)
- ✅ Зображення
- ✅ Файли
- ✅ Аудіо
- ✅ Відео/медіа
- ✅ Наліпки
Вхідні аудіоповідомлення Feishu/Lark нормалізуються як заповнювачі медіафайлів, а не
як необроблений JSON file_key. Коли налаштовано tools.media.audio, OpenClaw
завантажує ресурс голосової нотатки й запускає спільне транскрибування аудіо перед
ходом агента, тож агент отримує транскрипт мовлення. Якщо Feishu додає
текст транскрипту безпосередньо до аудіоданих, цей текст використовується без додаткового
виклику ASR. Без постачальника транскрибування аудіо агент усе одно отримує
заповнювач <media:audio> разом зі збереженим вкладенням, а не необроблені дані
ресурсу Feishu.
Надсилання
- ✅ Текст
- ✅ Зображення
- ✅ Файли
- ✅ Аудіо
- ✅ Відео/медіа
- ✅ Інтерактивні картки (зокрема потокові оновлення)
- ⚠️ Форматований текст (форматування в стилі допису; не підтримує всіх можливостей створення вмісту Feishu/Lark)
Власні аудіобульбашки Feishu/Lark використовують тип повідомлення Feishu audio і потребують
завантаження медіафайлів Ogg/Opus (file_type: "opus"). Наявні медіафайли .opus і .ogg
надсилаються безпосередньо як власне аудіо. MP3/WAV/M4A та інші ймовірні аудіоформати
перекодовуються у формат Ogg/Opus із частотою 48kHz за допомогою ffmpeg лише тоді, коли відповідь запитує голосове
доставлення (audioAsVoice / інструмент повідомлень asVoice, зокрема відповіді TTS у вигляді голосових нотаток).
Звичайні вкладення MP3 залишаються звичайними файлами. Якщо ffmpeg відсутній або
перетворення не вдається, OpenClaw повертається до вкладення файлу та записує причину в журнал.
Гілки та відповіді
- ✅ Вбудовані відповіді
- ✅ Відповіді в гілках
- ✅ Медіавідповіді зберігають прив’язку до гілки під час відповіді на повідомлення в гілці
Маршрутизацію сеансів тематичних груп описано в розділі Область групового сеансу та тематичні гілки.
Пов’язані матеріали
- Огляд каналів - усі підтримувані канали
- Сполучення - автентифікація приватних повідомлень і процес сполучення
- Групи - поведінка групового чату та обмеження за згадками
- Маршрутизація каналів - маршрутизація сеансів для повідомлень
- Безпека - модель доступу та посилення захисту