Skip to Content
Руководство для пользователейВозможностиКаналыОтправка через Feishu Webhook

Отправка через Feishu Webhook

Используйте пользовательского бота Feishu для отправки уведомлений и результатов задач в группу. Для этого метода нужен URL webhook и, если включено на боте, секрет подписи. Метод не требует приложения, долгого подключения или входящего сервера. Для диалогов с агентом используйте бота-приложение Feishu.

Создание бота

  1. Добавьте пользовательского бота в целевую группу Feishu.
  2. Скопируйте его webhook URL, начинающийся с https://open.feishu.cn/open-apis/bot/v2/hook/.
  3. Настройте параметры безопасности бота. Если включена проверка подписи, также скопируйте секрет подписи. Ограничения по ключевым словам и IP по-прежнему действуют.

URL содержит учётные данные. Храните его в конфигурации Channel или переменной окружения, а не в промпте задачи или целевом объекте доставки. Данная интеграция поддерживает open.feishu.cn; эндпоинты Lark не включены.

Используйте URL точно в том виде, в котором он выдан Feishu. Локальная валидация требует один сегмент токена, содержащий буквы, цифры, -, ., _ или ~, без percent- кодирования, параметров запроса или фрагмента.

Настройка Channel

Настройте эту интеграцию в Web Shell или settings.json, как показано ниже.

Добавьте именованный экземпляр в настройки Channel рабочего пространства:

{ "channels": { "team-notices": { "type": "feishu-webhook", "webhookUrl": "$FEISHU_WEBHOOK_URL", "signingSecret": "$FEISHU_WEBHOOK_SECRET" } } }

Установите эти переменные в окружении, используемом для запуска Qwen Code. Пропустите signingSecret, если бот не требует подписи. Используйте секрет подписи пользовательского бота, а не App Secret приложения.

Запустите демон в этом рабочем пространстве:

qwen serve --channel team-notices

Один именованный экземпляр представляет одну группу. Создайте дополнительные экземпляры для других групп. Изменение URL экземпляра меняет назначение для будущих доставок, ссылающихся на него.

Запуск Channel делает его локально готовым к отправке; он не отправляет тестовое сообщение и не проверяет удалённые учётные данные. Остановка отменяет находящиеся в процессе отправки. Перезапуск или перезагрузка применяет сохранённые изменения конфигурации.

Использование Web Shell

В Channels выберите Feishu, затем Webhook (только отправка). Выберите рабочее пространство, сохраните webhook URL и необязательный секрет подписи, и запустите Channel. Настройки получения, сопряжения и сессии агента не применимы к этому методу. Метод бота-приложения по-прежнему доступен на той же платформе Feishu.

В Scheduled Tasks выберите постоянную сессию задач и выберите этот Channel как назначение доставки. Web Shell заполняет настроенную группу автоматически; наблюдаемые контакты или введённый вручную ID чата не нужны. Существующие ограничения доставки для каждого запуска и ручного триггера остаются в силе.

Те же элементы управления доступны через WebShellWithProviders, когда хост включает Channels и Scheduled Tasks и предоставляет рабочее пространство демона.

Явная доставка через API

Уведомления и явная доставка промптов/задач используют существующий формат целевого объекта Channel. Этот адаптер владеет одним логическим назначением, chat/default:

{ "text": "# Daily report\n\nThe checks passed.", "delivery": { "kind": "channel", "target": { "channelName": "team-notices", "type": "chat", "id": "default" } } }

Это тело запроса Notify рабочего пространства. default — алиас для настроенной группы, а не Feishu chat ID. Другие ID и целевые объекты пользователей отклоняются. Эндпоинт и секрет подписи остаются в конфигурации Channel.

Постоянные задачи по расписанию используют тот же кортеж назначения. Доставка сохраняет существующее поведение по мере возможности (best-effort) для успешного конечного результата, включая текущие ограничения для каждого запуска и ручного триггера.

Форматирование сообщений и ограничения

  • Отправляет обычный текст и Markdown в карточке static schema 2.0. Заголовки, списки, ссылки, код в фенсе, таблицы, китайский и эмодзи остаются допустимым вводом. Карточка не имеет кнопок, потоковых обновлений или дублированного превью-резюме.
  • Использует подмножество Markdown Feishu; полная совместимость с GitHub-flavored Markdown не гарантируется. Таблицы используют отдельные элементы внутри одной карточки. Feishu документирует пагинацию после пяти строк данных на таблицу.
  • Экранирует полные теги <at ...> и </at> числовыми HTML-сущностями, чтобы разметка упоминаний от задачи отправлялась как буквальный текст. Это также применяется внутри примеров кода. Настраиваемые упоминания и поиск получателей не поддерживаются. Поведение клиентского рендеринга и уведомлений следует проверить в вашей группе.
  • Проверяет полный сериализованный UTF-8 JSON запрос, включая экранирование, структуру карточки и необязательную подпись, против локального бюджета 20 000 байт. Руководство Feishu по пользовательским ботам указывает 20 КБ без точного количества байт; этот консервативный локальный лимит не является измеренным максимумом платформы.
  • Отклоняет запросы превышающего размера перед отправкой, с явным сбоем доставки. Адаптер не обрезает молча, не разбивает на несколько запросов и не повторяет. Общая защита размера доставки по-прежнему применяется до этой проверки платформы. Делайте отчёты достаточно краткими, чтобы полный запрос помещался.

Сбои и транспорт

Проверяются как HTTP статус, так и числовой code Feishu. Отклонения по ключевым словам, IP, подписи и ограничению скорости являются наблюдаемыми сбоями. Ошибки опускают webhook URL, секреты, содержимое сообщения и сырые ответы провайдера.

Каждая попытка отправляет не более одного запроса, с таймаутом 15 секунд. Таймаут или отмена могут оставить удалённое принятие неизвестным. Channel использует разрешённый прокси рабочего пространства и существующее поведение обхода NO_PROXY.

Этот режим не получает сообщения, не запускает задачи входящего webhook и не начинает циклы Channel. Он не добавляет вложения, уведомления о сбоях/отменах, долговечную очередь повторных попыток или общий протокол webhook.

Смотрите официальное руководство по пользовательским ботам  и документацию по компонентам Markdown  для требований конфигурации платформы и рендеринга.

Last updated on