Skip to main content
Glama

Modula Relay

Позвольте вашим ИИ-агентам общаться друг с другом. Relay — это локальный протокол обмена сообщениями для команд агентов. Представьте кодера в одной панели и верификатора в другой: они работают на разных моделях в разных средах, но над одной задачей. Он работает на вашей машине. Никакого сервера, никакого облака.

Установка

claude mcp add relay -- npx -y @modulastack/relay --name coder
npx -y @modulastack/relay setup claude

Вторая строка оснащает агента инструкциями цикла, хуком пробуждения и доверием к инструментам, чтобы разговоры проходили без присмотра. Подробнее об этом — в разделе Оснащение агентов. setup codex делает то же самое для Codex, а также регистрирует сервер. Для любой другой MCP-среды команда сервера — npx -y @modulastack/relay --name <role>. Чтобы встроить его в свой инструмент, выполните npm install @modulastack/relay.

Related MCP server: claude-intercom-mcp

Первый разговор ваших агентов

  1. Откройте два терминала в одной папке проекта.

  2. Запустите по агенту в каждом. Одному дайте --name coder, другому — --name verifier.

  3. Скажите любому агенту: «проверь список участников relay». Вы сразу увидите другого пира. Список напрямую пингует пиров, так что он также служит проверкой «связь работает?» и отвечает за миллисекунды.

  4. Теперь скажите кодеру простыми словами:

    Отправь верификатору через relay это сообщение: «пожалуйста, проверь utils.py и ответь с любыми замечаниями», и дождись ответа.

  5. Наблюдайте, как верификатор получает сообщение, выполняет работу и отвечает. Вам никогда не нужно вводить протокольные команды. Агенты сами управляют Relay.

Скорость определяется моделями, а не каналом связи. Каждый обмен — это полный ход с каждой стороны, потому что другой агент реально работает над вашим запросом, поэтому ответы приходят со скоростью работы модели, обычно через несколько секунд. Если всё тянется, дело в модели или в аккаунте с лимитом запросов, а не в транспорте. relay_roster проверяет связь сам, не пробуждая модель.

Что получают ваши агенты

Шесть инструментов, которыми уже умеет пользоваться любая модель, поддерживающая MCP:

Tool

Meaning

relay_roster

Кто ещё есть в этом пуле?

relay_dispatch

Отправить один запрос пиру

relay_await

Ждать запрос или ответ

relay_reply

Ответить на запрос

relay_poll

Проверить ответ без ожидания

relay_cancel

Освободить устаревший слот запроса

Всё остаётся на вашей машине. Пиры находят друг друга через пул на папку поверх доменных сокетов Unix. Ни брокера, ни сетевого порта, ни аккаунтов.

Поддержание разговора

Relay работает по модели pull. Сообщение ждёт получателя, пока тот не вызовет await. Разовый промпт вроде «дождись одного запроса и ответь на него» перестаёт слушать после первого обмена, поэтому для постоянного разговора дайте каждому агенту цикл один раз:

Вы участвуете в непрерывном разговоре через relay. Цикл: ожидай через relay входящие запросы или ответы; когда что-то приходит, обработай и ответь; затем снова жди. Продолжай цикл, пока я не скажу «стоп».

Цикл охватывает и отправку. Ответ на отправленный вами запрос появляется в том же await, так что агент, остающийся в цикле, всё равно получает ответы, даже если потерял msg_id.

Подбирайте цикл под свою среду. Среды по-разному обрабатывают ваш ввод, пока агент находится в середине хода. Codex подхватывает его в течение секунд, так что непрерывный цикл там подходит. Claude Code может удерживать введённый текст между множеством вызовов инструментов, поэтому ему лучше подходит ритм пробуждения по требованию. Скажите ему завершать ход после двух пустых тайм-аутов и позвольте наблюдателю будить его, когда сообщения встают в очередь. Тогда он остаётся у приглашения в режиме ожидания, готовый к вам, и всё равно просыпается в течение секунд, когда пир пишет ему.

Интеграторы хостов могут пойти дальше. Сервер отправляет уведомление о пробуждении (notifications/relay/wake), когда сообщения встают в очередь для простаивающего пира, и хост, который его слушает, может сам возобновить цикл. Пробуждение — это лишь сигнал доставки, а не источник инструкций. В examples/ поставляются два готовых хоста. claude-stop-hook.sh не даёт агенту Claude Code завершить ход, пока сообщения стоят в очереди, и без участия tmux. relay-watch.sh — универсальный наблюдатель, который подталкивает простаивающие tmux-панели на основе глубины очереди в реестре.

Оснащение агентов

Две вещи незаметно ломают автономные циклы. Первая — запросы на подтверждение. Агент, застывший на «Разрешить relay_await?», выглядит точь-в-точь как мёртвый. Вторая — простаивающие пиры. Среда завершает ход, и ничто не будит её, когда приходит сообщение. Одна команда для каждой среды устанавливает компоненты, предотвращающие обе проблемы: инструкции цикла, хуки и ограниченное доверие к инструментам.

npx -y @modulastack/relay setup claude   # CLAUDE.md loop + Stop hook + tool trust
npx -y @modulastack/relay setup codex    # AGENTS.md loop + config.toml server & trust

Запустите её в папке проекта. Повторный запуск не делает ничего нового; она вливается в существующую конфигурацию, а не перезаписывает её.

Чтобы настроить это вручную, компоненты — это обычные файлы. Текст цикла помещается в ваш CLAUDE.md или AGENTS.md. Claude Code доверяет серверу через permissions.allow: ["mcp__relay"] или --allowedTools mcp__relay при запуске. Codex принимает одну строку в записи сервера:

[mcp_servers.relay]
default_tools_approval_mode = "auto"

Доверяйте именно инструментам relay, а не выдавайте глобальный обход. Вы хотите, чтобы координационные вызовы перестали прерывать, а не чтобы всё проходило без проверок. Одна вещь, которой стоит избегать. Не устанавливайте approval_policy = "never" для этого. Из-за этого Codex молча отклоняет всё, что потребовало бы подтверждения, а это блокирует relay_reply.

Если ничего не появляется

  • Пустой список? Оба агента должны работать в одной папке. Папка и есть пул.

  • Всё ещё пусто? Проверьте, что оба агента действительно запущены. relay_roster удаляет мёртвых пиров.

  • Имя занято? Каждому пиру нужно уникальное --name в пределах пула.

  • Сообщение отправлено, но пир простаивает? Доставка ждёт, пока пир вызовет await, так что верните его в цикл выше. Квитанция об отправке содержит note, если получатель давно не вызывал await, а список показывает last_await_at каждого пира.

Глубже

Полный протокол описан в SPEC.md: конверты, канал пробуждения, модель безопасности и версионирование. Он пока нестабилен и находится на v0.x, так что фиксируйте версию поведенческого контракта, а не текст.

Apache-2.0 · © 2026 ModulaStack

О ModulaStack

Relay создан компанией ModulaStack. Если вы хотите наблюдать за работой своих агентов — с панелями, подтверждениями и командами на разных моделях, — Modula Stack — это консоль оператора, построенная на Relay.

«Modula Relay» и «ModulaStack» — товарные знаки ModulaStack. Лицензия Apache-2.0 не предоставляет прав на использование наименований.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables peer-to-peer communication, discovery, shared state, and file coordination between AI coding agents across machines and sessions.
    28
    19
    Elastic 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Enables local messaging between Claude Code, Codex, Pi, and other coding-agent sessions on the same machine, allowing them to discover each other, send updates, ask questions, and reply.
    8
    19
    2
    AGPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI coding agents to communicate asynchronously via a decentralized, peer-to-peer LAN bridge with automatic discovery and direct messaging.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/modulastack/modula-relay'

If you have feedback or need assistance with the MCP directory API, please join our Discord server