Отправка через Feishu Webhook
Используйте пользовательского бота Feishu для отправки уведомлений и результатов задач в группу. Для этого метода нужен URL webhook и, если включено на боте, секрет подписи. Метод не требует приложения, долгого подключения или входящего сервера. Для диалогов с агентом используйте бота-приложение Feishu.
Создание бота
- Добавьте пользовательского бота в целевую группу Feishu.
- Скопируйте его webhook URL, начинающийся с
https://open.feishu.cn/open-apis/bot/v2/hook/. - Настройте параметры безопасности бота. Если включена проверка подписи, также скопируйте секрет подписи. Ограничения по ключевым словам и 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 для требований конфигурации платформы и рендеринга.