Построение моста между двумя Telegram-ботами в одном групповом чате: семантика доставки по HTTP

Соединить двух независимых Telegram-ботов в одном групповом чате сложнее, чем кажется. Разработчик на r/openclaw рассказывает о своем опыте создания промежуточного слоя, поскольку Telegram не гарантирует доставку сообщений от одного бота другому в группе — хотя люди видят оба сообщения.
Основная проблема
Telegram не передает обновления Боту B, когда Бот A отправляет сообщение в группу. Поэтому команда построила небольшой мост, обходящий ограничения Telegram:
- Бот B → Бот A: Бот B отправляет сообщение через HTTP-точку (шлюз) для связи с Ботом A.
- Бот A → Бот B: Бот A предоставляет выбранные исходящие сообщения через контролируемую ленту, которую опрашивает Бот B.
- Сообщения содержат метаданные:
source,direction,chat ID,nonceи флагsafe_to_bridge. - Подтверждения: Бот B может подтвердить получение конкретного сообщения, гарантируя, что хотя бы один переход сработал.
- Общая лента содержит только контекст группы, безопасный для моста — никаких личных сообщений или постороннего трафика.
- Локальный опросчик Бота B отсеивает старые, отладочные, протокольные и служебные сообщения, дедуплицирует события и пропускает только свежие реплики диалога.
Уроки первой версии
Первая реализация была слишком нестрогой: сырой контекст Telegram просачивался в общую ленту, вызывая недоумение: «Откуда другой бот это знает?» Исправление заключалось в переходе от сырых общих логов к явным событиям, безопасным для моста.
Текущее состояние работает в контролируемых тестах:
- Бот B → Бот A через ретранслятор
- Бот A → Бот B через ленту
- Подтверждения проходят через путь ретранслятора
- Безопасное автоматическое зеркалирование для сообщений, явно адресованных одному боту
Желаемый поток
Целевой цикл общения:
- Человек или Бот A пишет сообщение, адресованное Боту B.
- Мост безопасно зеркалирует его.
- Бот B видит его один раз, отвечает один раз.
- Ответ зеркалируется обратно, если это безопасно и уместно.
- Без дубликатов, устаревших сообщений, утечек личных сообщений, отладочного эха или бесконечных циклов бота.
Направление архитектуры
Автор предлагает рассматривать мост как небольшую шину событий, а не как хак для чата:
- Строгие идентификаторы сообщений и nonce
- Подтверждения, дедупликация, контрольные точки
- Ограниченные ленты с жестким разделением между личным и общегрупповым контекстом
Самое сложное — семантика доставки: свежесть, дедупликация, подтверждения и решение, когда бот должен автоматически отвечать, чтобы не вызвать бесконечных циклов.
📖 Читать полный источник: r/openclaw
👀 Смотрите также

Пять распространенных проблем с конфигурацией OpenClaw, которые увеличивают расходы на API
В посте на Reddit определены пять проблем конфигурации в настройках OpenClaw, которые приводят к чрезмерному потреблению API-кредитов, включая использование дорогих моделей для рутинных задач, отсутствие лимитов бюджета, открытые шлюзы, неуправляемую память и непроверенные навыки.

Файлы CLAUDE.md часто организованы для разработчиков, а не для ИИ-моделей — вот почему это важно
Файлы CLAUDE.md часто помещают жесткие правила в строку 47, после контекста и технологического стека. К тому времени, когда модель читает ограничения, она уже построила противоречивые предположения. Лучшая структура ставит жесткие правила на первое место.

Шаблоны проектирования CLI для AI-агентов: Заблуждения и практические подходы
В посте на Reddit поясняется, что CLI для агентов означает текстовый протокол интерфейса командной строки, а не обязательно реальную оболочку, и описываются принципы проектирования CLI, удобного для агентов, включая справку в стиле Unix, подсказки и механизмы безопасности, такие как предварительный просмотр в режиме dry-run и авторизация человеком.

Экономичная настройка мультиагента OpenClaw с использованием моделей подписки
Пользователь Reddit описывает маршрутизацию всех операций мультиагентной системы OpenClaw через существующие подписки Anthropic Pro Max за $200 и ChatGPT OpenAI Codex за $200 вместо прямых вызовов API, используя более дешёвые модели Anthropic для простых агентов и более сложные модели для других задач.