lark-vc-agentбот для видеовстреч Lark
larksuite/cli
Бот присоединяется к видеовстречам Lark от вашего имени: мониторинг в реальном времени, выход по завершении. Укажите 9-значный номер встречи — бот подключится.
Установка
npx -y skills add larksuite/cli --skill lark-vc-agent --agent claude-codevc-agent (v1) — агент видеоконференций Lark
Скилл для «действий внутри встречи» в Feishu/Lark: позволяет боту реально войти в текущую встречу или покинуть её, а также читать события в реальном времени (вход/выход участников, речь, чат, демонстрация экрана). Используйте этот скилл, когда пользователь спрашивает о том, что происходит в идущей встрече.
Смежные скиллы
lark-shared— аутентификация, переключение удостоверений, управление разрешениямиlark-vc— базовые концепции видеоконференций (Meeting / Note / Minutes и др.), используются напрямую без переопределения
Бета-доступ
- Функционал находится на стадии бета-тестирования и доступен лишь ограниченному кругу пользователей.
- При ошибках
missing required scope(s)/permission_violations— не используйте стандартный процесс запроса разрешений; сначала уточните у пользователя, подключён ли он к бета-группе, затем проверьте разрешения приложения согласно разделу ниже. - При ошибке
error.code=20017/ErrNotInGray— предложите пользователю вступить в группу раннего доступа:https://go.larkoffice.com/join-chat/2f4nb0e1-fe00-4f67-bed7-25beaf533fbd
Разграничение зон ответственности
Данный скилл работает параллельно с lark-vc:
lark-vc— «запросы после встречи»: поиск прошедших встреч, список участников, конспекты / транскрипты / записи.lark-vc-agent— «действия во время встречи»: вход бота / чтение событий идущей встречи / выход бота.
| Намерение пользователя | Скилл |
|---|---|
| «Войди в встречу 123456789», «присоединись вместо меня», «пусть бот подключится» | Этот скилл +meeting-join |
| «Встреча идёт — кто только что вошёл?», «кто говорит?», «кто-то делится экраном?» | Этот скилл +meeting-events |
| «В какой встрече я/пользователь сейчас нахожусь?», «найди meeting_id текущей встречи» | Этот скилл +meeting-list-active |
| «Выйди из встречи», «пусть бот покинет» | Этот скилл +meeting-leave |
| «Кто был на вчерашней встрече?», «найди вчерашнюю встречу», «покажи конспект/запись» | lark-vc |
Маршрутизация по удостоверению
| Сценарий | Удостоверение | Правило |
|---|---|---|
| Запросить встречи текущего пользователя | --as user | Не передавать --user-id; для чтения событий продолжать использовать --as user |
| Запросить встречи целевого пользователя (бот уже в встрече) | --as bot --user-id <user_open_id> | --user-id должен быть ou_...; продолжать --as bot |
| Пользователь явно просит бота войти/прослушать/присутствовать | --as bot | Это операция записи; возвращённый meeting.id использовать в дальнейшем |
Жёсткое правило: удостоверение, от которого получен meeting_id, используется и для всех последующих вызовов +meeting-events.
Основные сценарии
1. Вход в идущую встречу (операция записи)
- Используйте
+meeting-joinтолько когда пользователь явно хочет «реального присутствия» бота. - Принимает только 9-значный номер встречи — не ссылку и не
meeting_id. meeting.idиз ответа нужно сохранить немедленно — он нужен для+meeting-events/+meeting-leave.- Вход виден всем участникам — уточните номер встречи перед выполнением.
2. Чтение событий встречи (операция чтения)
- Используйте
+meeting-eventsкогда нужно «что происходит сейчас» (участники, чат, транскрипция, демонстрация экрана). - Входной параметр —
meeting_id(длинное числовое ID), не 9-значный номер. - По умолчанию использовать
--page-all, если пользователь не просит «только одну страницу». - Предпочтительный формат:
--format pretty(удобная временная шкала). - Нельзя использовать для анализа завершённых встреч — это зона ответственности
lark-vc. - При наличии
has_more=trueилиpage_tokenв ответе — обязательно продолжить постраничную загрузку. - Всегда заново запрашивайте события при ответе на вопросы о текущем состоянии встречи — не переиспользуйте старые результаты.
3. Выход из встречи (операция записи)
- Выполняйте
+meeting-leave --as bot --meeting-id <длинный meeting_id>только при явном запросе пользователя. - Принимает только длинное числовое
meeting_id— не 9-значный номер. - Выход виден другим участникам немедленно.
4. Получение ID идущих встреч (операция чтения)
- Пользовательское удостоверение:
lark-cli vc +meeting-list-active --as user --format json— встречи текущего пользователя. - Удостоверение приложения:
lark-cli vc +meeting-list-active --as bot --user-id <open_id> --format json— встречи целевого пользователя, в которых бот уже находится. - При нескольких результатах — показать список по
meeting_title/meeting_noи дождаться выбора пользователя.
5. Пример работы агента
# 1. Войти в встречу, сохранить meeting.id
JOIN=$(lark-cli vc +meeting-join --as bot --meeting-number 123456789 --format json)
MID=$(echo "$JOIN" | jq -r '.data.meeting.id')
# 2. Читать события (интервал ~10-30 сек)
lark-cli vc +meeting-events --as bot --meeting-id "$MID" --page-all --format pretty
# 3. После встречи — получить данные о продуктах встречи
lark-cli vc +detail --meeting-ids "$MID"
Shortcuts
| Shortcut | Тип | Описание |
|---|---|---|
+meeting-join | запись | Войти в идущую встречу по 9-значному номеру |
+meeting-list-active | чтение | Список активных встреч и получение meeting_id |
+meeting-events | чтение | События встречи (участники, транскрипция, чат, демонстрация экрана) |
+meeting-leave | запись | Выйти из встречи по meeting_id |
Диагностика разрешений приложения
При ошибках no permission, missing required scope(s), ErrNotInGray (код 20017) для --as bot:
- Убедитесь, что нужные VC Agent-разрешения активированы в консоли разработчика.
- Приложение опубликовано и установлено в текущем тенанте.
- Настроена область данных «Открытая платформа».
- В настройке диапазона данных выбрано условие: владелец встречи включён в доступную область приложения.
- Если всё верно, но ошибка
ErrNotInGrayсохраняется — требуется подключение к бета-программе.
Связанные скиллы
- lark-vc — поиск прошедших встреч, список участников, конспекты/транскрипты/записи
- lark-minutes — продукты AI-конспекта (сводка / транскрипция / главы)
- lark-im — отправка результатов в группы или личные чаты
- lark-shared — аутентификация, переключение удостоверений, управление scope
Из того же репозитория
lark-doc — управление документами Lark/Feishu
larksuite/cli
Полное управление документами Lark: создание из Markdown, обновление (append/replace/delete), загрузка медиа, умная интеграция с интерактивными досками по семантике контента.
lark-base — многомерные таблицы Lark Base
larksuite/cli
Создание таблиц и полей в Lark Base, формулы, lookup-ссылки, кросс-табличные вычисления. Импорт Excel/CSV, дашборды, аналитика с группировкой и агрегацией.
lark-im — обмен сообщениями в Lark/Feishu
larksuite/cli
Полная интеграция Lark IM: отправка сообщений, поиск истории чатов, управление группами, скачивание файлов с chunking. Автоматическое разрешение P2P chat ID.
lark-shared — аутентификация и настройка Lark CLI
larksuite/cli
Базовая настройка Lark CLI: конфигурация приложения, двухуровневые разрешения, выбор между bot и user identity. Диагностика ошибок прав доступа и версий CLI.
lark-drive — облачное хранилище Lark Drive
larksuite/cli
Полное управление Lark Drive: загрузка Word/Excel/CSV с конвертацией в нативные Lark-документы, папки, права доступа, комментарии. Автоматическое разрешение wiki-токенов.
lark-whiteboard — интерактивные доски в Lark
larksuite/cli
Подключает Claude к доскам Lark: экспорт как изображение, извлечение PlantUML/Mermaid, обновление контента. Архитектурные схемы, оргчарты и таймлайны прямо в Lark.
