---
read_when:
    - Вы хотите подключить бота Feishu/Lark
    - Вы настраиваете канал Feishu
summary: Обзор, возможности и настройка бота Feishu
title: Feishu
x-i18n:
    generated_at: "2026-07-13T19:30:12Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 24
    provider: openai
    source_hash: 007f3db63fe70b9e7f0267043e47555af7dd55e73c8fd78156b1c9190360b858
    source_path: channels/feishu.md
    workflow: 16
---

OpenClaw подключается к Feishu/Lark (универсальной платформе для совместной работы) через официальный плагин `@openclaw/feishu`: личные сообщения боту, групповые чаты, потоковые ответы в карточках и инструменты для документов, вики, диска и Bitable в Feishu.

**Статус:** готово к промышленной эксплуатации для личных сообщений боту и групповых чатов. WebSocket — транспорт событий по умолчанию (публичный URL не требуется); режим webhook доступен по желанию.

## Быстрый старт

<Note>
Требуется OpenClaw 2026.5.29 или новее. Для проверки выполните `openclaw --version`. Для обновления используйте `openclaw update`.
</Note>

<Steps>
  <Step title="Запустите мастер настройки канала">
  ```bash
  openclaw channels login --channel feishu
  ```
  Эта команда устанавливает плагин `@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-код, повторно запустите настройку и выберите ручной вариант.
</Step>

  <Step title="После завершения настройки перезапустите Gateway, чтобы применить изменения">
  ```bash
  openclaw gateway restart
  ```
  </Step>
</Steps>

## Управление доступом

### Личные сообщения

Настройте `channels.feishu.dmPolicy` (по умолчанию: `pairing`), чтобы определить, кто может отправлять боту личные сообщения:

| Значение         | Поведение                                                                                                      |
| ------------- | ------------------------------------------------------------------------------------------------------------- |
| `"pairing"`   | Неизвестные пользователи получают код сопряжения; подтвердите его через CLI                                                         |
| `"allowlist"` | Общаться могут только пользователи, перечисленные в `allowFrom`                                                                     |
| `"open"`      | Открытые личные сообщения; для проверки конфигурации `allowFrom` должен содержать `"*"`. Записи без подстановочного знака по-прежнему ограничивают доступ |

**Подтвердить запрос на сопряжение:**

```bash
openclaw pairing list feishu
openclaw 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` и непосредственно бот, всё равно считается упоминанием бота.

## Примеры настройки групп

### Разрешить все группы без обязательного @упоминания

```json5
{
  channels: {
    feishu: {
      groupPolicy: "open", // при "open" requireMention по умолчанию равно false
    },
  },
}
```

### Разрешить все группы, но по-прежнему требовать @упоминание

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

### Разрешить только определённые группы

```json5
{
  channels: {
    feishu: {
      groupPolicy: "allowlist",
      // Идентификаторы групп выглядят так: oc_xxx
      groupAllowFrom: ["oc_xxx", "oc_yyy"],
    },
  },
}
```

В режиме `allowlist` группу также можно разрешить, добавив явную запись `groups.<chat_id>`. Явные записи не переопределяют `groupPolicy: "disabled"`. Настройки с подстановочным знаком в `groups.*` применяются к соответствующим группам, но сами по себе не разрешают эти группы.

```json5
{
  channels: {
    feishu: {
      groupPolicy: "allowlist",
      groups: {
        oc_xxx: {
          requireMention: false,
        },
      },
    },
  },
}
```

### Ограничить отправителей внутри группы

```json5
{
  channels: {
    feishu: {
      groupPolicy: "allowlist",
      groupAllowFrom: ["oc_xxx"],
      groups: {
        oc_xxx: {
          // Значения open_id пользователей выглядят так: ou_xxx
          allowFrom: ["ou_user1", "ou_user2"],
        },
      },
    },
  },
}
```

`channels.feishu.groupSenderAllowFrom` задаёт единый список разрешённых отправителей для всех групп; значение `allowFrom` для отдельной группы имеет приоритет.

<a id="get-groupuser-ids"></a>

## Получение идентификаторов групп и пользователей

### Идентификаторы групп (`chat_id`, формат: `oc_xxx`)

Откройте группу в Feishu/Lark, нажмите значок меню в правом верхнем углу и перейдите в **Settings**. Идентификатор группы (`chat_id`) указан на странице настроек.

![Получение идентификатора группы](/images/feishu-get-group-id.png)

### Идентификаторы пользователей (`open_id`, формат: `ou_xxx`)

Запустите Gateway, отправьте боту личное сообщение, затем проверьте журналы:

```bash
openclaw logs --follow
```

Найдите `open_id` в выводе журнала. Также можно проверить ожидающие запросы на сопряжение:

```bash
openclaw pairing list feishu
```

## Распространённые команды

| Команда   | Описание                 |
| --------- | --------------------------- |
| `/status` | Показать состояние бота             |
| `/reset`  | Сбросить текущий сеанс   |
| `/model`  | Показать или сменить модель ИИ |

<Note>
Feishu/Lark не поддерживает встроенные меню команд с косой чертой, поэтому отправляйте эти команды как обычные текстовые сообщения.
</Note>

## Устранение неполадок

### Бот не отвечает в групповых чатах

1. Убедитесь, что бот добавлен в группу
2. Убедитесь, что вы @упомянули бота (по умолчанию это обязательно)
3. Убедитесь, что `groupPolicy` не равно `"disabled"`
4. Проверьте журналы: `openclaw logs --follow`

### Бот не получает сообщения

1. Убедитесь, что бот опубликован и одобрен в Feishu Open Platform / Lark Developer
2. Убедитесь, что подписка на события включает `im.message.receive_v1`
3. Убедитесь, что выбрано **постоянное подключение** (WebSocket)
4. Убедитесь, что предоставлены все необходимые разрешения
5. Убедитесь, что Gateway запущен: `openclaw gateway status`
6. Проверьте журналы: `openclaw logs --follow`

### Настройка по QR-коду не работает в мобильном приложении Feishu

1. Повторно запустите настройку: `openclaw channels login --channel feishu`
2. Выберите ручную настройку
3. В Feishu Open Platform создайте собственное приложение и скопируйте его App ID и App Secret
4. Вставьте эти учётные данные в мастер настройки

### Утечка App Secret

1. Сбросьте App Secret в Feishu Open Platform / Lark Developer
2. Обновите значение в конфигурации
3. Перезапустите Gateway: `openclaw gateway restart`

## Расширенная настройка

### Несколько учётных записей

```json5
{
  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` определяет, какая учётная запись используется, если исходящие API не указывают `accountId`. Записи учётных записей наследуют настройки верхнего уровня; большинство ключей верхнего уровня можно переопределить для отдельной учётной записи.
`accounts.<id>.tts` имеет ту же структуру, что и `messages.tts`, и глубоко объединяется с глобальной конфигурацией TTS, поэтому в конфигурациях Feishu с несколькими ботами можно хранить общие учётные данные провайдера глобально, переопределяя для каждой учётной записи только голос, модель, персону или автоматический режим.

### Ограничения сообщений

- `textChunkLimit` — размер фрагмента исходящего текста (по умолчанию: `4000` символов)
- `streaming.chunkMode` — `"length"` (по умолчанию) разделяет текст по достижении ограничения; `"newline"` предпочитает границы строк
- `mediaMaxMb` — ограничение на отправку и скачивание медиафайлов (по умолчанию: `30` МБ)

### Потоковая передача

Feishu/Lark поддерживает потоковые ответы через интерактивные карточки (API потоковой передачи Card Kit). Когда эта функция включена, бот обновляет карточку в реальном времени по мере генерации текста.

```json5
{
  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`, чтобы не запрашивать профили отправителей

```json5
{
  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

Плагин включает инструменты агента для документов, чатов, базы знаний, облачного хранилища, разрешений и Bitable в Feishu, а также соответствующие 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

```json5
{
  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:

```text
/acp spawn codex --thread here
```

`--thread here` работает для личных сообщений и сообщений в ветках Feishu/Lark. Последующие сообщения в привязанной беседе направляются непосредственно в этот сеанс ACP.

### Маршрутизация между несколькими агентами

Используйте `bindings`, чтобы направлять личные сообщения или группы Feishu/Lark разным агентам.

```json5
{
  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`)

Советы по поиску см. в разделе [Получение идентификаторов группы и пользователя](#get-groupuser-ids).

## Изоляция агентов по пользователям (динамическое создание агентов)

Включите `dynamicAgentCreation`, чтобы автоматически создавать **изолированные экземпляры агентов** для каждого пользователя личных сообщений. Каждый пользователь получает собственные:

- Независимый каталог рабочего пространства
- Отдельные `USER.md` / `SOUL.md` / `MEMORY.md`
- Личную историю бесед
- Изолированные навыки и состояние

Это необходимо для общедоступных ботов, если каждому пользователю требуется собственный персональный ИИ-помощник.

<Note>
Динамические привязки включают нормализованный `accountId` Feishu, поэтому учётные записи по умолчанию и именованные учётные записи направляют каждого отправителя правильному динамическому агенту.

Если в более старой версии именованная учётная запись создала динамического агента без области действия, этот устаревший агент по-прежнему учитывается в `maxAgents`. Прежде чем удалять его, убедитесь, что он не используется учётной записью по умолчанию, либо временно увеличьте `maxAgents`; OpenClaw не может безопасно определить, какой учётной записи принадлежит неоднозначное устаревшее состояние.
</Note>

### Быстрая настройка

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

### Как это работает

Когда новый пользователь отправляет первое личное сообщение:

1. Канал создаёт уникальный `agentId`: `feishu-{user_open_id}` для учётной записи по умолчанию либо ограниченный дайджест идентификатора с префиксом учётной записи для именованной учётной записи
2. Создаёт новое рабочее пространство по пути `workspaceTemplate`
3. Регистрирует агента и создаёт привязку для этого пользователя
4. При первом обращении вспомогательный компонент рабочего пространства обеспечивает наличие файлов начальной настройки (`AGENTS.md`, `SOUL.md`, `USER.md` и т. д.)
5. Направляет все последующие сообщения этого пользователя его выделенному агенту

### Параметры конфигурации

| Настройка                                                | Описание                                           | По умолчанию                         |
| -------------------------------------------------------- | -------------------------------------------------- | ------------------------------------ |
| `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"` и управляйте файлами начальной настройки вручную.

<Note>
Используйте `"per-account-channel-peer"`, если именованные учётные записи Feishu должны хранить отдельные сеансы для одного и того же отправителя. Динамические привязки сохраняют область действия учётной записи.
</Note>

### Типичное многопользовательское развёртывание

```json5
{
  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, чтобы убедиться, что динамическое создание работает:

```text
feishu: создание динамического агента "feishu-ou_xxxxxx" для пользователя ou_xxxxxx
  рабочее пространство: /home/user/.openclaw/workspace-feishu-ou_xxxxxx
  каталог агента: /home/user/.openclaw/agents/feishu-ou_xxxxxx/agent
```

Выведите список всех созданных рабочих пространств:

```bash
ls -la ~/.openclaw/workspace-*
```

### Примечания

- **Изоляция рабочих пространств**: каждый пользователь получает собственный каталог рабочего пространства и экземпляр агента. В рамках обычного обмена сообщениями пользователи не могут видеть историю бесед или файлы друг друга.
- **Граница безопасности**: это механизм изоляции контекста сообщений, а не граница безопасности между недоверенными совладельцами среды. Процесс агента и среда хоста являются общими.
- **Запись конфигурации должна оставаться включённой**: динамическое создание агентов записывает агентов и привязки в конфигурацию; оно пропускается, когда `channels.feishu.configWrites` имеет значение `false` (по умолчанию включено).
- **`bindings` должен быть пустым**: динамические агенты автоматически регистрируют собственные привязки
- **Путь обновления**: существующие ручные привязки продолжают работать вместе с динамическими агентами
- **`session.dmScope` является глобальным**: это влияет на все каналы, а не только на Feishu

## Справочник по конфигурации

Полная конфигурация: [Конфигурация Gateway](/ru/gateway/configuration)

| Настройка                                                  | Описание                                                                          | По умолчанию                              |
| -------------------------------------------------------- | ------------------------------------------------------------------------------------ | ------------------------------------ |
| `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 с частотой 48 кГц с помощью `ffmpeg` только тогда, когда в ответе запрошена
голосовая доставка (`audioAsVoice` / `asVoice` инструмента сообщений, включая ответы TTS
в виде голосовых сообщений). Обычные вложения MP3 остаются обычными файлами. Если `ffmpeg` отсутствует или
преобразование завершается с ошибкой, OpenClaw использует файловое вложение и записывает причину в журнал.

### Ветки и ответы

- ✅ Встроенные ответы
- ✅ Ответы в ветках
- ✅ Ответы с медиафайлами сохраняют привязку к ветке при ответе на сообщение в ветке

Маршрутизация сеансов групп по темам описана в разделе
[Область группового сеанса и ветки тем](#group-session-scope-and-topic-threads).

## Связанные материалы

- [Обзор каналов](/ru/channels) — все поддерживаемые каналы
- [Сопряжение](/ru/channels/pairing) — аутентификация в личных сообщениях и процесс сопряжения
- [Группы](/ru/channels/groups) — поведение групповых чатов и фильтрация по упоминаниям
- [Маршрутизация каналов](/ru/channels/channel-routing) — маршрутизация сеансов для сообщений
- [Безопасность](/ru/gateway/security) — модель доступа и усиление защиты
