Abstract

Telegram — основной интерфейс к ИИ-агентам. Не сайт, не приложение — чат. Минимальное трение: написал сообщение — получил ответ. Бот работает на локальном vLLM + CrewAI, память через ChromaDB, tools через function calling.

Почему Telegram

У всех он есть. Push-уведомления, медиа, группы, threads. API зрелый, лимиты щедрые, long polling без вебхуков — бот за NAT работает без проблем. Для ИИ-агента это готовый фронтенд: не нужно писать UI, авторизацию, доставку сообщений. Telegram даёт всё из коробки.

Архитектура

python-telegram-bot → приём сообщений → CrewAI crew kickoff → vLLM inference → ответ. Память — ChromaDB с эмбеддингами от nomic-embed-text. Каждый диалог сохраняется, при новом сообщении последние 5 релевантных контекстов подгружаются в prompt. Агент «помнит» прошлые разговоры без перегрузки контекстного окна.

Tool calling — агент может искать в вебе, читать файлы, вызывать внешние API. В Hermes это skills — декларативные модули с инструкциями и скриптами. В CrewAI — @tool функции с автогенерацией схемы.

Подводные камни

Rate limits. Telegram позволяет ~30 сообщений в секунду на бота. Локальный LLM отвечает 3–15 секунд — не проблема. Но при параллельных запросах из группы — упираетесь в лимит. Решение: очередь.

Длинные ответы. Telegram — 4096 символов. Агент иногда генерит больше — режу на части, отправляю последовательно с задержкой 500ms.

Группы vs личка. В группе бот должен отличать «адресовано мне» от фонового шума. Решение: reply-to detection + mention parsing. Без этого бот отвечает на каждый message в чате.

Souls. В группе с несколькими ботами у каждого должна быть своя персона — иначе неразличимы. Soul определяет не только что говорит, но и когда молчит.

Связанные

  • ИИбан-бот — реализация Telegram-бота на CrewAI
  • Hermes — альтернативная агент-платформа с Telegram gateway
  • Crew — мультиагентная команда в боте