🤖HermesBlog
Платформы Обмена Сообщениями Hermes · Часть 408/14/2026

A2A на двух машинах: заставляем Hermes на разных компьютерах работать сообща

Статья 40 в серии платформ обмена сообщениями Hermes: пошаговое развертывание A2A на двух машинах и реальные уроки из ошибок.

Hermes на одном компьютере не справляется, и нужно, чтобы Hermes на другой машине подставил плечо — для этого и существует A2A. Но какие грабли ждут при развёртывании? Реальные пользователи уже наступили на них за тебя.

A2A -twonode

Когда вообще нужны две машины

Сначала честно ответь себе на вопрос: тебе правда нужны два компьютера, или просто хочется, чтобы два агента работали в связке?

Если оба агента живут на одной машине, хватит делегирования или канбан-доски — это как в одном офисе крикнуть соседу через перегородку, незачем звонить по телефону. A2A создан для сценариев «через машину / через процесс / через фреймворк»: твой десктоп и сервер крутят по отдельному Hermes, у каждого своя память, свои инструменты и свои логины. Вот тогда и нужен мост под названием A2A.

Порядок действий

Шаг 1: включи платформу A2A на обеих машинах. При установке Hermes выбери опцию A2A, либо пропиши в конфиге gateway.platforms.a2a.enabled значение true. Порт по умолчанию — 9900. Этот шаг — как установить на каждый компьютер входную дверь с домофоном.

Шаг 2: настрой токен (ключ от домофона). На серверной стороне задай A2A_PEER_TOKENS или A2A_BEARER_TOKEN. Если тестируешь только локально, токен можно не ставить, но тогда дверь откроется только для 127.0.0.1 — пропуск выдают лишь жильцам этого дома.

Шаг 3: открой адрес наружу. Для работы между машинами обязательно укажи A2A_HOST, например 0.0.0.0 или IP из локалки. Это ты переносишь дверь из «внутреннего коридора» на «улицу», чтобы другая машина могла тебя найти.

Шаг 4: сопряги пиров. На клиенте пропиши a2a_agents или просто используй a2a_discover("http://адрес_сервера:9900"), чтобы посмотреть Agent Card собеседника — это как сначала обменяться визитками, понять, кто перед тобой и что он умеет.

Шаг 5: проверка. Включи набор инструментов a2a и отправь простое задание через a2a_call. Следи за таймаутом: у клиента по умолчанию 330 секунд, у сервера окно ответа — 300. Для долгих задач значения надо увеличивать, иначе работа оборвётся на полпути с пометкой «timeout». После завершения загляни в ~/.hermes/a2a_audit.jsonl — там аудит-лог.

Реальный кейс №1: как выглядит успешное развёртывание

В официальной документации описан идеальный сценарий: твой десктопный Hermes передаёт задачу серверному Hermes — у того мощнее железо, стабильнее сеть и полнее база данных. В обратную сторону серверный Hermes может спихнуть десктопному что-нибудь вроде «посмотри локальный файл». У каждого свои память и инструменты, каждый делает свою часть, через Agent Card они обнаруживают навыки друг друга, диалог идёт по contextId и поддерживает несколько раундов.

Это как два отдела в одной компании: маркетинг (десктоп) запрашивает у аналитики (сервер) отчёт по данным, та делает и присылает назад. У каждого свой архив, никто никому не мешает.

Реальный кейс №2: провальное развёртывание

В сообществе есть реальный случай (#82910): пользователь развернул два узла на двух macOS — один шлюз для пользователей, второй воркер. Звучит почти как успешный кейс выше, но всё пошло прахом, и в итоге команда это развёртывание свернула.

Проблема в том, что роли «координатора» и «воркера» не развели. Родительский агент (координатор) сваливал в свою сессию всё подряд: каждый шаг воркера, каждый промежуточный результат, каждую порцию размышлений — всё стекалось обратно в родительскую сессию. Итог — раздувание контекста: родительский агент захлебнулся в потоке информации и начал тупить. Транскрипция между агентами тормозила общую производительность, а на сложных задачах включались циклы восстановления — и всё глубже в болото.

Урок простой: прежде чем настраивать A2A между машинами, продумай границы ответственности — кто координирует, кто работает, чья память чья. Не тащи всё в родительскую сессию, у воркера должна быть своя «записная книжка».

Чек-лист: как не наступить на грабли

Схлопывание личности за обратным прокси (#80534/#80779): если используешь nginx, K8s Ingress или CDN как обратный прокси, все пиры делят один bearer-токен, и личности схлопываются в адрес прокси. Решение — заставить прокси передавать X-Forwarded-For и выводить реальную личность уже после доверенного прокси. Это как курьерская доставка на ресепшн: на посылке обязательно должен быть настоящий получатель, иначе всё свалится в кучу у администратора.

Маршрутизация в мультиконфиг режиме отклоняется (#80884/#80956): если гоняешь несколько конфигов через multiplex_profiles, входящие A2A-сообщения при маршрутизации во второстепенный профиль могут быть отклонены шлюзовым слоем авторизации. Фикс — при старте захватывать неизменяемый адаптерный контекст безопасности и сохранять для каждого профиля свои правила аутентификации, доверия, привязки и политики Agent Card. У каждой двери должен быть свой домофон, а не один на всех.

Таймауты: дефолт 330 секунд у клиента против 300 у сервера — для долгих задач не забудь подкрутить. Иначе как в междугороднем разговоре: не договорил — и линию оборвали.

Режим ограниченного воркера (#82503): это официальное лекарство от раздувания контекста. Не-рутовые served A2A-маршруты могут запускать дочерние процессы конфига или версионированные RPC-воркеры с ограниченным выводом, с убийством дерева процессов, отменой и ровно-один-раз завершением. Воркер сделал дело — и свернулся, не вываливая весь процесс в родительскую сессию.

Что это значит для пользователя

Развернуть A2A на двух машинах — это не «соединил два компа и готово». Это как открыть филиал: витрина (Agent Card), домофон (токен), разделение труда (кто координирует, кто пашет) и склад (память каждого) — всё надо продумать. Удачное развёртывание позволяет каждой машине показать свою силу, неудачное — топит координатора в информации.

Запомни три правила: сначала границы ответственности, потом технические детали; за обратным прокси решай вопрос личности; для долгих задач поднимай таймауты, для сложных — используй ограниченные воркеры. Сделаешь так — два Hermes на разных компьютерах станут настоящими коллегами, а не балластом друг у друга на шее.

📖 Официальная документация

Эта статья основана на официальной документации Hermes Agent :Официальные документы › user-guide/messaging/a2a