Присоединиться к звонку Google Meet, расшифровать его и отправить последующие сообщения
Когда пользователь просит агента присутствовать на встрече Google Meet, этот сценарий подключается к звонку, сохраняет живые субтитры в расшифровку, при явном выборе может говорить в режиме реального времени, а после встречи — подготовить резюме и запрошенные последующие сообщения.
Что понадобится
- Режим речи в реальном времени стоит денег (OpenAI Realtime тарифицируется поминутно по длительности аудио) и требует настроенного виртуального аудиоустройства на машине, где запущен бот.
Как применить
По умолчанию шлюзовая машина запускает бота Playwright локально. Для удалённого узла бот работает на другой машине с авторизованным Chrome; для режима реального времени там также должен быть настроен аудиомост — это полезно, если шлюз представляет собой головную Linux-машину, а авторизованный Chrome находится на Mac пользователя.
Выполните hermes meet setup, чтобы проверить локальные предварительные условия.
Все инструменты принимают node?: передайте имя зарегистрированного узла (или "auto" для единственного узла), чтобы управлять удалённым ботом вместо локального; не указывайте его для локальной работы.
Windows не поддерживается.
На удалённом узле расшифровка хранится на диске хоста узла; используйте meet_transcript(node=...), чтобы прочитать её через RPC.
Только URL-адреса вида https://meet.google.com/... соответствуют регулярному выражению.
Сканирование календаря и автоматический набор номера не предусмотрены.
Удалённые узлы используют аутентификацию по токену: токены генерируются на узле (32 символа шестнадцатеричного кода, сохраняются в $HERMES_HOME/workspace/meetings/node_token.json) и должны быть скопированы на шлюз через hermes meet node approve.
Речь через meet_say ограничена по скорости сессией OpenAI Realtime; защита от спама — задача бота, но всё же не отправляйте сотни строк подряд.
Режим реального времени выбирайте только тогда, когда пользователь действительно хочет, чтобы агент говорил.
Предварительные условия — это разовая настройка, которую должен выполнить пользователь; самый простой способ — запустить встроенный установщик.
Встроенный установщик обрабатывает зависимости pip и Chromium для режима расшифровки, а также дополнительные компоненты для режима речи в реальном времени, включая опциональную аутентификацию и проверку предварительных условий.
hermes plugins enable google_meet
hermes meet install # pip deps + Chromium (transcribe only)
hermes meet install --realtime # + pulseaudio-utils / brew blackhole+ffmpeg
hermes meet auth # optional; skips guest-lobby wait
hermes meet setup # preflight checks
hermes meet install --realtime запрашивает подтверждение перед запуском sudo apt-get (Linux) или brew install (macOS); передайте --yes, чтобы пропустить запрос. При этом настройки стандартного ввода macOS не изменятся — вам нужно самостоятельно выбрать BlackHole 2ch в настройках системы перед началом встречи в реальном времени.
Как вариант, можно настроить всё вручную.
pip install playwright websockets && python -m playwright install chromium
# For realtime mode, additionally:
# Linux: sudo apt install pulseaudio-utils
# macOS: brew install blackhole-2ch ffmpeg
# → System Settings → Sound → Input → BlackHole 2ch
# Then set OPENAI_API_KEY or HERMES_MEET_REALTIME_KEY in ~/.hermes/.env
Для удалённого узла установите зависимости и включите плагин на машине с авторизованным Chrome, запустите на ней сервер узла, затем разрешите доступ к узлу со стороны шлюза и убедитесь, что он доступен.
# on the user's Mac (where Chrome is signed in):
pip install playwright websockets && python -m playwright install chromium
hermes plugins enable google_meet
hermes meet node run --display-name my-mac # persistent server
# copy the printed token
# on the gateway:
hermes meet node approve my-mac ws://<mac-ip>:18789 <token>
hermes meet node ping my-mac # confirm reachable
Во время встреч в реальном времени meet_say(text="...") помещает текст в очередь для преобразования в речь; задержка речи составляет около 2 секунд, поэтому не стоит отправлять слишком много данных подряд.
Качество субтитров зависит от функции живых субтитров Google Meet, которая ориентирована на английский язык и даёт потери при перекрывающихся голосах.
В режиме гостя бот находится в лобби до тех пор, пока хозяин не впустит его; предупредите пользователя, так как hermes meet auth позволяет избежать этого.
Если хозяин не впустит бота в течение 5 минут (настраивается через переменную окружения HERMES_MEET_LOBBY_TIMEOUT), бот покинет встречу, и meet_status сообщит об этом в leaveReason: "lobby_timeout".
На одной установке в одном месте разрешается одна активная встреча; при попытке запустить второй экземпляр meet_join первая встреча будет прервана.
Режим реального времени требует виртуального аудиоустройства; если настройка аудиомоста завершится неудачно, бот переключится в режим транскрипции и отметит это в meet_status().error.
meet_say требует наличия mode='realtime' на исходящем meet_join; при вызове в рамках встречи в режиме транскрипции возникает явная ошибка.
Функция прерывания работы — это лишь попытка: когда подпись, относящаяся к реальному участнику, поступает во время генерации аудио ботом, бот отправляет response.cancel в OpenAI Realtime, но подписи появляются примерно через 500 мс, поэтому бот будет говорить поверх первой секунды человеческого прерывания.
Транскрипция встречи сохраняется в отдельном файле для каждой встречи в директории workspace meetings.
$HERMES_HOME/workspace/meetings/<meeting-id>/transcript.txt
Источник: nousresearch/hermes-agent и участники проекта. Лицензия: MIT.
Copyright (c) 2025 Nous Research
Перевод и редакционная адаптация: ClawCases.
>Ресурсы
>Похожие юзкейсы
Краткое изложение решения по правилу коммуникации 1-3-1
Составляет краткие изложения решений по правилу 1-3-1 для задач с несколькими приемлемыми вариантами, формулируя одно предложение, описывающее суть проблемы, три варианта с их плюсами и минусами, а также одну рекомендацию с определением готовности и планом реализации.
Трекер отчётности компаний на базе ИИ
Следите за сезоном корпоративной отчётности десятков технологических компаний без ручной проверки разных источников и запоминания дат каждого отчёта в сфере ИИ и технологий.
Отслеживание питания и симптомов
Агент ведёт журнал питания и симптомов, чтобы пользователь мог просматривать возможные связи в собственных записях. Временные метки и напоминания помогают вести журнал регулярно, не принимая корреляции за подтверждённые причины.