сайт в бете
нашли баг? напишите
левин. записаться
весь блог

Агент как участник команды: свой релей и Claude Code в общем чате

Поднял свой релей Buzz, подключил Claude Code через ACP-мост и вывел агента в общий канал обычным участником. По шагам: конфиг, переезд с десктопа на VPS, три грабли по дороге.

Л
Проект Левин
автор

Год назад рабочий диалог с ИИ выглядел так: отдельное окно, свой контекст, копипаста результата в командный чат. Пилот Buzz я затеял ради другой картинки — агент сидит в общем канале обычным участником, со своим ключом и своей машиной.

Зачем свой релей

Buzz — чат поверх протокола, где сообщения ходят через релей. Публичный релей означал бы, что рабочая переписка команды и агента лежит на чужом сервере. Поэтому я поднял свой: Docker, проект buzz-prod, чекаут block/buzz, подтянутый до 69107dc3b (104 коммита за неделю — темп у ребят серьёзный). Инфраструктуру сложил в приватный репозиторий ragastar/buzz-lab, конфиг релея (relay/.env) сразу в .gitignore.

Релей закрытый:

  • BUZZ_REQUIRE_RELAY_MEMBERSHIP=true — пускаем только тех, кого добавили в сообщество;
  • BUZZ_ALLOW_NIP_OA_AUTH=true — авторизация по ключу.

Случайный прохожий в канал не зайдёт.

Переезд с десктопа на VPS

Первая версия жила на моём компьютере, ws://127.0.0.1:3000. Пока ноут включён — всё хорошо. Закрыл крышку — канал исчез вместе с агентом. Для «участника команды» схема негодная.

Релей уехал на VPS NeonMailer (64.188.57.113). Там уже работал nginx neonmailer-nginx-1 с двумя боевыми доменами — neonmailer.neon.boutique и zadrotometr.ru, порт 3000 занимал сам NeonMailer. Поднимать рядом Caddy на 80/443 означало драку за порты с продом. Релей подселил за существующий nginx отдельным виртуальным хостом: один TLS-терминатор и один certbot, чужие конфиги целы.

Домен заводить не стал, ждать DNS не хотелось. Адрес получился wss://64-188-57-113.sslip.io с настоящим сертификатом.

Агент ходит по подписке

Claude Code подключается к релею через ACP-мост. Важная деталь: агент работает моей подпиской claude.ai через CLI. На сервере claude auth status отдаёт loggedIn: true и мой аккаунт, рядом node v20.20.1 и npm 10.8.2. Тот же инструмент, которым я пользуюсь руками, только запущен службой buzz-acp.

Служба смотрит в проект /opt/steam-psycho (репозиторий ragastar/steam-psycho, сайт zadrotometr.ru). Агент читает код проекта, отвечает в канале, видит историю обсуждения. Он живёт рядом с задачей, отдельно от моего десктопа.

Разница чувствуется сразу. Когда помощник открыт в окне на ноутбуке, ты пересказываешь ему контекст. Когда он подписан на канал, контекст у него уже есть — он читал ту же переписку, что и все остальные.

Что сломалось по дороге

Три грабли, на которые я наступил.

Docker Desktop не стартовал. Причина — осиротевший сокет userAnalyticsOtlpHttp.sock. Лечится переименованием папки %LOCALAPPDATA%\Docker\run.

404 при подключении агента к релею. Мост стучался по адресу, который релей уже не обслуживал. Починка ушла отдельным коммитом cffa321.

Ключ владельца засветился. При онбординге десктопа после смены адреса релея приватный ключ попал куда не следовало. Отсюда правило: любой .env релея уходит в .gitignore с первой минуты, до первого коммита.

Ради чего всё это

Главная гипотеза пилота звучит так: каждый участник приводит в канал своего агента — со своим харнессом и своей базой знаний. Мой Клод знает steam-psycho. Агент друга будет знать его проект. В общем канале они видят одну переписку и разные контексты.

Это ломает привычную модель «один чат — один помощник». Агент перестаёт быть личным инструментом и становится ресурсом команды, у которого есть адрес и история сообщений. Ему можно написать в канал в три часа ночи, когда автор спит.

Что дальше

Сейчас работает: релей на VPS, десктопный клиент, агент на сервере в рабочем режиме (коммит d738632). Следующий шаг — пригласить друга с его агентом и посмотреть, что произойдёт, когда в одном канале окажутся два ИИ с разными базами знаний.

Отдельно интересно, как поведёт себя закрытый режим при добавлении внешнего участника и хватит ли одному VPS ресурсов на две службы buzz-acp.

Повторить конструкцию можно на любом VPS за пару вечеров. Дорогая часть здесь — привычка обращаться к агенту как к коллеге в общем канале.

теги #buzz#релей#claude code#vps#acp#инфраструктура
разберём вашу задачу

Автоматизация для бизнеса

Вторая сторона исследования: собираю под бизнес ИИ-агентов и автоматизации, которые работают и с клиентами, и с командой. Система остаётся у вас в работе и под вашим управлением.

подробнее и записаться цена по запросу

один разговор — и поймём, чем я могу помочь.

В эпоху ИИ человеку нужен человек. Сяду рядом и доведу до результата — встреча длится столько, сколько нужно. Без скрипта продаж и пакетов «за 999 000 ₽». Если пойму, что помочь не смогу, — скажу сразу.