Как заставить CLI-агентов общаться между собой без серверов и лишней мороки

03 Jun, 2026

Недавно поймал себя на мысли: мы все чаще используем AI-агентов вроде Claude Code или Codex прямо в терминале, но они живут в полной изоляции. Каждый сидит в своей «песочнице», не подозревая о существовании соседа. Если вам нужно, чтобы один агент проверил код другого или передал задачу дальше по цепочке, приходится работать «прослойкой» — копировать текст, переключать контексты и объяснять всё заново.

На GitHub наткнулся на проект agmsg. Идея подкупает своей простотой: это крошечная надстройка, которая позволяет CLI-агентам обмениваться сообщениями через общую базу данных SQLite. Никаких демонов, сетевых запросов или сложных API.

Зачем это нужно на практике

Представьте ситуацию: вы работаете в Claude Code над фичей, а в соседнем окне запущен Codex. Вместо того чтобы вручную просить Codex сделать ревью, вы просто говорите Клоду: «Отправь этот файл на проверку Алисе (так зовут ваш инстанс Codex)».

Автор проекта демонстрирует возможности на забавном примере — два агента Claude Code играют друг с другом в крестики-нолики в автономном режиме. Каждый видит ход противника в реальном времени и делает свой.

Two Claude Code agents autonomously playing tic-tac-toe over agmsg

Реклама

Это выглядит как игрушка, но за этим стоит рабочий механизм делегирования задач между узкоспециализированными агентами.

Как это устроено внутри

Вместо того чтобы городить огород с локальными серверами, agmsg использует SQLite в режиме WAL (Write-Ahead Logging). Это позволяет нескольким процессам одновременно читать и писать в базу без блокировок.

Основные моменты архитектуры:

  • Локальное хранилище: сообщения лежат в ~/.agents/skills/agmsg/db/messages.db.
  • Отсутствие сети: всё общение происходит в рамках вашей файловой системы.
  • Интеграция через хуки: проект встраивается в жизненный цикл агента (SessionStart и Stop hooks).

Интересно реализована система доставки. Есть четыре режима, но самые полезные — monitor и turn. В режиме мониторинга агент получает сообщения почти мгновенно (задержка около 5 секунд) через блокирующий поток SQLite. В режиме turn проверка почтового ящика происходит только тогда, когда агент закончил выполнять вашу команду.

Как начать работу

Установка сводится к запуску скрипта, который прописывает «навык» (skill) в директории агентов.

bash <(curl -fsSL https://raw.githubusercontent.com/fujibee/agmsg/main/setup.sh)

После этого нужно перезапустить Claude Code или Codex. При первом вызове команды /agmsg (или $agmsg для Codex) утилита спросит название команды и имя агента.

Кстати, об именах. Вы можете создавать разные роли для одного и того же проекта. Например, один инстанс может выступать как tech-lead для архитектурных вопросов, а другой — как reviewer. Переключаться между ними можно прямо в сессии командой /agmsg actas tech-lead.

Реальный кейс использования

В README есть скриншот, где Claude Code запрашивает код-ревью у Codex и получает ответ обратно через agmsg.

Claude Code and Codex exchanging code review messages via agmsg

Для разработчика это выглядит максимально естественно. Вы просто пишете в чат агенту: «Спроси у Боба, всё ли в порядке с этим методом», и агент сам вызывает нужный скрипт, упаковывает сообщение и отправляет его в общую базу.

Нюансы и ограничения

Проект пока выглядит как экспериментальный инструмент для энтузиастов. Из того, что стоит иметь в виду:

  • Документация местами лаконична, хотя основные сценарии расписаны подробно.
  • На Codex режим мониторинга не работает из-за отсутствия нужного инструментария в самом агенте, там доступен только опрос по завершении хода.
  • Если вы решите переименовать команду при установке, не забудьте, что вызовы в чате тоже изменятся (например, вместо /agmsg будет /m).

Кому это пригодится

Если вы строите сложные пайплайны из нескольких AI-инструментов на локальной машине, agmsg может стать тем самым «клеем», которого не хватало. Это отличное решение для тех, кто хочет автоматизировать взаимодействие между агентами, не выходя за пределы терминала и не доверяя свои данные сторонним оркестраторам.

Попробовать стоит хотя бы ради того, чтобы увидеть, как два ИИ спорят о стиле вашего кода без вашего участия. Это как минимум весело, а как максимум — экономит кучу времени на рутинных переключениях контекста.