Wprowadzenie
Telegram to jeden z najpopularniejszych kanałów dla agentów OpenClaw. Dzięki bogatemu API, obsłudze mediów i grup, Telegram doskonale nadaje się zarówno do rozmów indywidualnych, jak i do obsługi społeczności. Ten przewodnik szczegółowo opisuje konfigurację integracji OpenClaw z Telegramem.
Tworzenie bota w BotFather
Każdy bot na Telegramie wymaga rejestracji przez oficjalnego BotFather.
- Otwórz Telegram i wyszukaj
@BotFather - Wyślij polecenie
/newbot - Podaj nazwę bota (wyświetlaną w rozmowach), np. Mój Asystent AI
- Podaj username bota (musi kończyć się na
bot), np. moj_asystent_ai_bot - BotFather zwróci token HTTP API — skopiuj go, będzie potrzebny do konfiguracji
Dodatkowo warto skonfigurować bota w BotFather:
/setdescription— opis widoczny przy pierwszym kontakcie z botem/setabouttext— krótki opis w profilu bota/setuserpic— zdjęcie profilowe bota/setcommands— lista poleceń bota (np. /start, /help)/setprivacy— ustaw na Disable, jeśli bot ma widzieć wszystkie wiadomości w grupie (nie tylko @mentions)
Konfiguracja w OpenClaw
Dodaj sekcję Telegram do pliku openclaw.json:
{
channels: {
telegram: {
enabled: true,
token: "${TELEGRAM_BOT_TOKEN}",
// Polityka wiadomości prywatnych
dm_policy: "pairing",
// Polityka grup
group_policy: "mention",
// Opcjonalne ustawienia
parse_mode: "Markdown", // Markdown | HTML | MarkdownV2
streaming: true, // aktualizowanie wiadomości na bieżąco
typing_indicator: true, // "pisze..." podczas generowania
max_message_length: 4096, // limit Telegrama
split_long_messages: true, // dziel długie odpowiedzi na części
}
}
}
Polityki dostępu
OpenClaw oferuje osobne polityki dla wiadomości prywatnych (DM) i grup.
Polityki DM
- pairing — użytkownik musi podać kod parowania (wygenerowany w Control UI lub CLI), aby rozpocząć rozmowę. Najbezpieczniejsza opcja.
- allowlist — tylko użytkownicy z listy
allowed_usersmogą pisać do bota. Lista zawiera Telegram User ID (numeryczne). - open — każdy może pisać do bota. Używaj ostrożnie — każda wiadomość generuje zapytanie do API providera AI i związane z tym koszty.
Polityki grup
- mention — bot odpowiada tylko, gdy zostanie wspomniany (@username) lub gdy wiadomość jest odpowiedzią na jego wiadomość. Zalecane dla aktywnych grup.
- always — bot odpowiada na każdą wiadomość w grupie. Może generować duże koszty API w aktywnych grupach.
- off — bot ignoruje wszystkie wiadomości grupowe. Przydatne, gdy bot obsługuje tylko DM.
Zaawansowana kontrola dostępu
{
channels: {
telegram: {
dm_policy: "allowlist",
allowed_users: [123456789, 987654321],
allowed_groups: [-1001234567890],
admin_users: [123456789], // mogą zarządzać botem
rate_limit: {
messages_per_hour: 30,
cooldown_seconds: 5,
}
}
}
}
Wątki i tematy (forum supergroups)
Telegram umożliwia tworzenie grup forumowych z tematami (topics). OpenClaw obsługuje tę funkcję natywnie:
{
channels: {
telegram: {
forum_support: true,
topic_bindings: {
"General": "default_agent",
"Support": "support_agent",
"Dev": "dev_agent",
},
auto_create_topics: false,
}
}
}
Możesz przypisać różnych agentów do różnych tematów w ramach jednej grupy. Na przykład temat „Support" obsługiwany jest przez agenta wsparcia, a „Dev" przez agenta technicznego.
Obsługa mediów
OpenClaw obsługuje pełny zakres mediów Telegrama:
- Zdjęcia — automatycznie przesyłane do modelu vision. Agent analizuje i opisuje obrazy.
- Wiadomości głosowe — transkrybowane przez Whisper/Deepgram. Tekst trafia do agenta.
- Dokumenty — PDF, DOCX, XLSX i inne pliki są parsowane i ich treść przekazywana agentowi.
- Stickery — traktowane jako obrazy, agent widzi grafikę stickera.
- Lokalizacja — współrzędne GPS przekazywane agentowi (np. do wyszukiwania pobliskich miejsc).
- Wideo — krótkie filmy i video notes (okrągłe wiadomości wideo) mogą być analizowane.
Agent może też wysyłać media w odpowiedziach — generowane obrazy, pliki audio (TTS) lub dokumenty.
Tryb dostarczania wiadomości
OpenClaw obsługuje dwa tryby odbierania wiadomości z Telegrama:
Polling (domyślny)
Gateway cyklicznie odpytuje serwery Telegrama o nowe wiadomości. Prostsze w konfiguracji, nie wymaga publicznego adresu IP.
{
channels: {
telegram: {
delivery: "polling",
poll_interval: 1000, // milisekundy
}
}
}
Webhook
Telegram wysyła wiadomości bezpośrednio do Twojego serwera. Szybsze i bardziej wydajne, ale wymaga publicznego adresu HTTPS:
{
channels: {
telegram: {
delivery: "webhook",
webhook_url: "https://twoja-domena.pl/webhook/telegram",
webhook_secret: "losowy_ciag_znakow",
}
}
}
Webhook jest zalecany dla produkcyjnych wdrożeń, ponieważ eliminuje opóźnienia pollingu i zmniejsza obciążenie sieci.
Proxy
Jeśli Twój serwer ma ograniczony dostęp do API Telegrama (np. w niektórych sieciach korporacyjnych), możesz skonfigurować proxy:
{
channels: {
telegram: {
proxy: {
type: "socks5", // http | socks5
host: "proxy.example.com",
port: 1080,
username: "user", // opcjonalne
password: "pass", // opcjonalne
}
}
}
}
Rozwiązywanie problemów
Najczęstsze problemy i ich rozwiązania:
- Bot nie odpowiada — sprawdź
openclaw gateway status. Upewnij się, że kanał Telegram jest podłączony. Zweryfikuj token bota. - Błąd 409 (Conflict) — inny proces używa tego samego tokena bota. Zatrzymaj inne instancje OpenClaw lub inne aplikacje korzystające z tego bota.
- Bot nie widzi wiadomości w grupie — ustaw privacy mode na Disable w BotFather (
/setprivacy). - Wiadomości są obcinane — Telegram ma limit 4096 znaków na wiadomość. Włącz
split_long_messages: true. - Brak mediów — sprawdź, czy model AI obsługuje vision (GPT-4o, Claude, Gemini). Modele tekstowe ignorują obrazy.
- Webhook nie działa — upewnij się, że URL jest publicznie dostępny i obsługuje HTTPS z ważnym certyfikatem SSL.
W razie dalszych problemów sprawdź logi: openclaw logs --channel telegram --tail 50