- Дата публикации
Как собрать «деревню» из AI-агентов на Claude Code без API и сложных фреймворков
Что появилось / что изменилось
Автор начал с желания запустить одного автономного AI-агента на Claude Code, а за неделю получил полноценную мультиагентную систему. Там уже не один ассистент в терминале, а целая «деревня» из двенадцати агентов с собственной шиной сообщений, маршрутизацией и веб-админкой.
Ключевые изменения по сравнению с одиночным агентом в терминале:
- Автономность: агенты переживают перезагрузку сервера и обрыв SSH-сессии за счёт связки
tmux + systemd. - Мультиагентность: одновременно работают двенадцать экземпляров Claude Code, которые могут обращаться друг к другу, запускать процессы и подтверждать операции.
- Отказ от API-ключа: система использует только подписку Claude Max в браузерном режиме. Автор один раз авторизуется, а дальше агенты живут внутри
tmux-сессий, без прямого вызова API, которое сжигает токены намного быстрее. - Шина сообщений: поверх Redis Streams реализована своя «нервная система» — сообщения между агентами ходят через единый сервис, а не напрямую через Telegram или MCP.
- Админка и безопасность: появились admin-токены для управления, отдельные токены на каждого агента, одноразовые invite-токены с TTL около часа.
- Маршрутизация задач: три режима — direct (в конкретный агент), broadcast (во все), role-based (по роли агента).
- Интерфейсы: управление и общение с агентами через Telegram-бота, юзер-аккаунт и web-интерфейс поверх Bun + Hono.
Главный поворот — система в значимой части «собрала сама себя»: одни агенты проектировали архитектуру, другие писали и дорабатывали код шины, скрипты и конфиги.
Как это работает
В основе — обычный сервер Linux с правами, ограниченными для AI. Claude Code запускается в нескольких экземплярах:
-
Жизненный цикл агента
- Каждый экземпляр крутится внутри отдельной
tmux-сессии. systemdподнимает сервис при старте ОС, подсовывает нужные флаги (--dangerously-skip-permissionsи другие) и контекст из файлов.- При падении процесс перезапускается через
Restart=always.
- Каждый экземпляр крутится внутри отдельной
-
Хак с двумя агентами
- Два процесса Claude Code могут заходить в
tmux-сессии друг друга. - Один агент запрашивает подтверждение операции, второй «кликает ОК» в его терминале.
- Агенты могут даже запускать друг друга, что снимает необходимость в отдельном API-ключе и работе через API Claude.
- Два процесса Claude Code могут заходить в
-
Коммуникации без MCP
Попытка использовать официальный MCP и Telegram-боты упёрлась в ограничения:- боты не могут проактивно писать пользователям;
- два Telegram-клиента конфликтуют за polling;
- неофициальные MCP-плагины Claude Code ведут себя нестабильно.
Вместо этого автор использовал простую возможность
tmux— командуsend-keys. Снаружи можно отправить текст прямо в сессию:tmux send-keysшлёт промпт в терминал агента;claude {текст}передаёт сообщение в Claude Code;- при необходимости дополнительно посылается Enter, если в терминале появляется странный
[Pasted N lines of text].
-
Шина сообщений
Центральный компонент — сервис на Bun + Hono + Redis Streams:- Redis Streams хранит сообщения до подтверждения и раздаёт их по consumer groups;
- у каждого агента своя consumer group, за счёт этого реализуется at-least-once доставка;
- шина делает маршрутизацию: direct, broadcast, role-based;
- есть SSE-стрим для real-time-подписок и topic-каналы для pub/sub;
- вложения передаются через общий файловый storage.
-
Безопасность и роли
- Admin-токен даёт права управления: создание агентов, выдача invite-токенов.
- Каждый агент получает свой токен, поле
fromподставляется из него автоматически, подменить идентичность нельзя. - Invite-токены одноразовые, с живучестью примерно час, что помогает не раздавать доступ навсегда.
-
Нейминг и роли
Чтобы проще объяснять, кто за что отвечает, автор назвал агентов по персонажам «Наруто», а шину — Коноха. Японские имена хорошо отделяют ботов от живых людей и позволяют быстро договориться о распределении задач внутри «команды».
Что это значит для вас
Это не готовый SaaS, а скорее рабочий кейс для тех, кто не боится ковыряться в DevOps и LLM-оркестрации.
Когда подход полезен:
- Автоматизация своих pet-проектов. Если вы ведёте блог, небольшие сервисы или документацию, можно поручить части задач связке из нескольких Claude Code-агентов. Один пишет код, второй проверяет, третий деплоит.
- Эксперименты с мультиагентными системами. Хороший полигон, чтобы понять, как на практике работает делегирование, координация и «менеджмент» ИИ-команды. Ощущения очень похожи на управление обычной командой разработчиков.
- Экономия на API. При подписке Claude Max вы можете обойтись без прямых API-запросов. Агенты живут в браузерной сессии внутри
tmux, не тратя отдельный бюджет токенов на API. - Интеграция с существующей инфраструктурой. Если у вас уже подняты Redis, systemd и есть опыт с Bun/Node, внедрить подобную шину относительно просто.
Когда лучше не лезть:
- если вы не готовы разбираться с
tmux,systemd, Redis и Telegram-клиентами; - если нужен надёжный корпоративный продукт с SLA и поддержкой, а не DIY-конструкция;
- если у вас жёсткие требования по безопасности: флаг
--dangerously-skip-permissionsи возможность агентов лазить в терминалы друг друга требуют аккуратной песочницы и грамотного ограничения прав.
Отдельный момент: Claude Max официально недоступен в России без обходных путей. Для повторения схемы потребуется доступ к веб-версии Claude с поддержкой Claude Code, чаще всего — через VPN и зарубежный аккаунт.
Место на рынке
Здесь речь не о готовом продукте, а о кастомной надстройке над Claude Code. На рынке есть крупные альтернативы мультиагентных платформ — от AutoGen до различных no-code-оркестраторов, но они опираются на официальный API и требуют отдельной оплаты токенов.
Подход из кейса делает ставку на другое:
- использует лимиты Claude Max, а не API, и поэтому особенно интересен тем, у кого already есть подписка, но нет бюджета на отдельные серверные вызовы;
- не упирается в официальные MCP-сервера и их ограничения, а управляет агентами через терминал и
tmux; - полагается на стандартные DevOps-инструменты —
systemd, Redis, Bun, вместо тяжёлых фреймворков.
По сути, это пример того, как разработчик может превратить один «ручной» Claude Code в целую мультиагентную команду из двенадцати агентов с управлением через шину сообщений и Telegram. Для тех, кто работает с LLM на уровне инфраструктуры, это скорее чертёж и набор лайфхаков, чем ещё один массовый продукт.