Своё реле для агента: как Claude Code отвечает мне в чате вместо Telegram
Поднял домашнее реле в Docker, закрыл его по членству и подключил Claude Code как участника чата через ACP-мост по CLI-подписке. Рассказываю, что заработало к 15 августа и где я застрял.
Почему я ушёл от бота в мессенджере
Бот для агента в Telegram собирается за вечер, и первое время это выглядит как победа. Потом начинаешь замечать детали. Токен бота живёт на чужом сервере. Вся переписка с агентом хранится там же. Агент отвечает через API-ключ, который тарифицируется отдельно от подписки, хотя подписка у меня уже оплачена.
Мне хотелось другого расклада: переписка на моей машине, агент работает по той же подписке Claude Code, которой я пользуюсь в терминале. Поэтому я взял Buzz от block, поднял своё реле и стал разбираться.
Что реально работает на 15 августа
Всё живёт в приватном репозитории ragastar/buzz-lab, задача ведётся как issue #1, дневник — прямо в сообщениях коммитов. Состояние на сегодня:
- Чекаут block/buzz подтянут до
69107dc3b, вровень с origin/main. Upstream живой: 104 коммита за неделю. - Реле поднято в Docker, проект
buzz-prod, адресws://127.0.0.1:3000, контейнер healthy. - Конфиг лежит в
relay/.envи добавлен в .gitignore. - Режим закрытый:
BUZZ_REQUIRE_RELAY_MEMBERSHIP=true,BUZZ_ALLOW_NIP_OA_AUTH=true. Посторонний не подключится, даже зная адрес. - Сообщество создано на хосте
127.0.0.1:3000, десктоп и мост установлены.
Четыре коммита за один день, и три из них — про починку. Это честная пропорция для такой задачи.
Агент подключается по подписке
Самая интересная часть — как в чат попадает Claude Code. Он подключён как обычный участник через ACP-мост, который дёргает CLI. Мост говорит с реле по вебсокету, агент отвечает в сообщество своим ключом.
Практический смысл простой: агент в чате перестаёт быть отдельной строкой расходов. Он использует ту же подписку, что и мой терминал, с тем же харнессом, теми же навыками и тем же контекстом проекта. Бот на API-ключе — это чистый лист на каждый запрос. Здесь у меня в чате сидит ровно тот агент, которого я настраивал месяцами.
Три места, где я застрял
Docker Desktop не стартовал. Диагностика вывела на осиротевший сокет userAnalyticsOtlpHttp.sock. Лечится переименованием папки %LOCALAPPDATA%\Docker\run — Docker пересоздаёт её при следующем запуске. Час жизни на проблему, которая к Buzz отношения не имеет.
404 при подключении агента к реле. Мост стучался и получал в ответ пустоту. Починено отдельным коммитом, и это типичная история для закрытого режима: реле честно отвечает отказом, когда клиент ещё не в списке членов сообщества.
Смена адреса реле сломала онбординг десктопа. Пришлось проходить процедуру заново. Заодно всплыла неприятность: ключ владельца засветился. Приватный репозиторий тут не защита — ключ есть ключ, и с ним нужно обращаться как с ключом от квартиры.
Ради чего всё это затевалось
Цель у пилота дальше, чем «агент в чате». Я хочу проверить сценарий, где каждый участник приводит своего агента со своим харнессом и своей базой знаний. Друг подключается к тому же закрытому сообществу и приводит собственного. Дальше два человека и два агента работают в одном пространстве, и никто не отдаёт свои наработки в общее облако.
Это принципиально другая механика, чем групповой чат с одним общим ботом. Мой агент знает мои проекты. Его агент знает его проекты. Общее у нас — только канал связи, который лежит у меня в Docker.
Кому стоит повторять
Если нужно просто получать уведомления от агента в телефон — берите Telegram-бота, за вечер соберёте. Своё реле имеет смысл, когда совпадает хотя бы два пункта:
- переписка с агентом содержит то, что не должно уезжать наружу;
- хочется задействовать подписку вместо API-ключей;
- планируется работа в несколько человек, где у каждого свой агент.
Честное предупреждение: это стройка. Buzz активно развивается, за неделю сотня коммитов, документация догоняет код. Половина времени уходит на инфраструктурную возню вроде сокета Docker. Я держу весь путь в репозитории и коммичу даже провалы, потому что через месяц забуду, чем лечился тот 404.
Следующий шаг — пригласить друга и посмотреть, как два агента уживаются на одном реле. Отпишусь, когда проверю руками.
Автоматизация для бизнеса
Вторая сторона исследования: собираю под бизнес ИИ-агентов и автоматизации, которые работают и с клиентами, и с командой. Система остаётся у вас в работе и под вашим управлением.