Üretime hazır; grammY aracılığıyla bot DM’leri ve grupları destekler. Varsayılan mod uzun yoklamadır; Webhook modu isteğe bağlıdır.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Eşleştirme
Kanal sorun giderme
Gateway yapılandırması
Hızlı kurulum
Bot token'ını BotFather'da oluşturun
@BotFather olduğunu doğrulayın)./newbot komutunu çalıştırın, yönergeleri izleyin ve token’ı kaydedin.Token'ı ve DM ilkesini yapılandırın
TELEGRAM_BOT_TOKEN=... (yalnızca varsayılan hesap).
Telegram, openclaw channels login telegram kullanmaz; token’ı yapılandırmada/ortamda ayarlayın, ardından Gateway’i başlatın.Botu bir gruba ekleyin
allowFrom/groupAllowFromiçinde kullanılan Telegram kullanıcı kimliğinizchannels.telegram.groupsaltında anahtar olarak kullanılan Telegram grup sohbet kimliği
openclaw logs --follow, iletilmiş kimlik botu veya Bot API getUpdates ile alın. Grup izin verildikten sonra /whoami@<bot_username> kullanıcı ve grup kimliklerini doğrulayabilir.-100 ile başlayan negatif Telegram süper grup kimlikleri grup sohbet kimlikleridir. Bunları groupAllowFrom altına değil, channels.telegram.groups altına koyun.TELEGRAM_BOT_TOKEN yalnızca varsayılan hesaba uygulanır.Telegram tarafı ayarları
Gizlilik modu ve grup görünürlüğü
Gizlilik modu ve grup görünürlüğü
/setprivacyile gizlilik modunu devre dışı bırakın veya- botu grup yöneticisi yapın.
Grup izinleri
Grup izinleri
Yararlı BotFather geçişleri
Yararlı BotFather geçişleri
- Grup eklemelerine izin vermek/reddetmek için
/setjoingroups - Grup görünürlüğü davranışı için
/setprivacy
Erişim denetimi ve etkinleştirme
- DM ilkesi
- Grup ilkesi ve izin listeleri
- Bahsetme davranışı
channels.telegram.dmPolicy doğrudan mesaj erişimini denetler:pairing(varsayılan)allowlist(allowFromiçinde en az bir gönderen kimliği gerektirir)open(allowFromöğesinin"*"içermesini gerektirir)disabled
allowFrom: ["*"] ile dmPolicy: "open", bot kullanıcı adını bulan veya tahmin eden herhangi bir Telegram hesabının bota komut vermesine izin verir. Bunu yalnızca araçları sıkı biçimde kısıtlanmış, bilinçli olarak herkese açık botlar için kullanın; tek sahipli botlar sayısal kullanıcı kimlikleriyle allowlist kullanmalıdır.channels.telegram.allowFrom sayısal Telegram kullanıcı kimliklerini kabul eder. telegram: / tg: önekleri kabul edilir ve normalleştirilir.
Çok hesaplı yapılandırmalarda, kısıtlayıcı üst düzey bir channels.telegram.allowFrom güvenlik sınırı olarak ele alınır: hesap düzeyindeki allowFrom: ["*"] girdileri, birleştirmeden sonra etkin hesap izin listesi hâlâ açık bir joker karakter içermedikçe o hesabı herkese açık yapmaz.
Boş allowFrom ile dmPolicy: "allowlist" tüm DM’leri engeller ve yapılandırma doğrulaması tarafından reddedilir.
Kurulum yalnızca sayısal kullanıcı kimliklerini ister.
Yükseltme yaptıysanız ve yapılandırmanız @username izin listesi girdileri içeriyorsa, bunları çözümlemek için openclaw doctor --fix çalıştırın (en iyi çaba; Telegram bot token’ı gerektirir).
Daha önce eşleştirme deposu izin listesi dosyalarına güveniyorsanız, openclaw doctor --fix izin listesi akışlarında girdileri channels.telegram.allowFrom içine kurtarabilir (örneğin dmPolicy: "allowlist" henüz açık kimlik içermediğinde).Tek sahipli botlar için, erişim ilkesini önceki eşleştirme onaylarına bağlı kalmak yerine yapılandırmada kalıcı tutmak amacıyla açık sayısal allowFrom kimlikleriyle dmPolicy: "allowlist" tercih edin.Yaygın karışıklık: DM eşleştirme onayı, “bu gönderen her yerde yetkilidir” anlamına gelmez.
Eşleştirme DM erişimi verir. Henüz komut sahibi yoksa, ilk onaylanan eşleştirme ayrıca commands.ownerAllowFrom ayarlayarak yalnızca sahip komutları ve yürütme onayları için açık bir operatör hesabı belirler.
Grup gönderen yetkilendirmesi yine açık yapılandırma izin listelerinden gelir.
“Bir kez yetkilendirilmiş olayım ve hem DM’ler hem de grup komutları çalışsın” istiyorsanız, sayısal Telegram kullanıcı kimliğinizi channels.telegram.allowFrom içine koyun; yalnızca sahip komutları için commands.ownerAllowFrom öğesinin telegram:<your user id> içerdiğinden emin olun.Telegram kullanıcı kimliğinizi bulma
Daha güvenli (üçüncü taraf bot yok):- Botunuza DM gönderin.
openclaw logs --followçalıştırın.from.iddeğerini okuyun.
@userinfobot veya @getidsbot.Çalışma zamanı davranışı
- Telegram, Gateway süreci tarafından sahiplenilir.
- Yönlendirme deterministiktir: Telegram gelenleri Telegram’a yanıtlar (model kanal seçmez).
- Gelen mesajlar, yanıt meta verileri, medya yer tutucuları ve Gateway’in gözlemlediği Telegram yanıtları için kalıcı yanıt zinciri bağlamıyla paylaşılan kanal zarfına normalleştirilir.
- Grup oturumları grup kimliğine göre yalıtılır. Forum konuları, konuları yalıtılmış tutmak için
:topic:<threadId>ekler. - DM mesajları
message_thread_idtaşıyabilir; OpenClaw yanıtlar için iş parçacığı kimliğini korur, ancak varsayılan olarak DM’leri düz oturumda tutar. DM konu oturumu yalıtımını bilinçli olarak istediğinizdechannels.telegram.dm.threadReplies: "inbound",channels.telegram.direct.<chatId>.threadReplies: "inbound",requireTopic: trueveya eşleşen bir konu yapılandırması ayarlayın. - Uzun yoklama, sohbet başına/iş parçacığı başına sıralama ile grammY runner kullanır. Genel runner sink eşzamanlılığı
agents.defaults.maxConcurrentkullanır. - Uzun yoklama, her Gateway süreci içinde korunur; böylece aynı anda yalnızca bir etkin yoklayıcı bir bot token’ını kullanabilir. Hâlâ
getUpdates409 çakışmaları görüyorsanız, aynı token’ı büyük olasılıkla başka bir OpenClaw Gateway’i, betik veya harici yoklayıcı kullanıyordur. - Uzun yoklama izleyicisi yeniden başlatmaları varsayılan olarak 120 saniye boyunca tamamlanmış
getUpdatescanlılığı olmadığında tetiklenir.channels.telegram.pollingStallThresholdMsdeğerini yalnızca dağıtımınız uzun süren işler sırasında hâlâ yanlış yoklama durması yeniden başlatmaları görüyorsa artırın. Değer milisaniye cinsindendir ve30000ile600000arasında izin verilir; hesap başına geçersiz kılmalar desteklenir. - Telegram Bot API okundu bilgisi desteği sunmaz (
sendReadReceiptsuygulanmaz).
Özellik başvurusu
Canlı akış önizlemesi (mesaj düzenlemeleri)
Canlı akış önizlemesi (mesaj düzenlemeleri)
- doğrudan sohbetler: önizleme mesajı +
editMessageText - gruplar/konular: önizleme mesajı +
editMessageText
channels.telegram.streaming,off | partial | block | progressolur (varsayılan:partial)progress, araç ilerlemesi için düzenlenebilir tek bir durum taslağı tutar, tamamlandığında bunu temizler ve son yanıtı normal bir mesaj olarak gönderirstreaming.preview.toolProgress, araç/ilerleme güncellemelerinin aynı düzenlenmiş önizleme mesajını yeniden kullanıp kullanmayacağını denetler (varsayılan: önizleme akışı etkinkentrue)streaming.preview.commandText, bu araç ilerleme satırlarının içindeki komut/çalıştırma ayrıntısını denetler:raw(varsayılan, yayımlanmış davranışı korur) veyastatus(yalnızca araç etiketi)- eski
channels.telegram.streamModeve booleanstreamingdeğerleri algılanır; bunlarıchannels.telegram.streaming.modedeğerine taşımak içinopenclaw doctor --fixçalıştırın
v2026.4.22 ve sonrasındaki yayımlanmış OpenClaw davranışıyla eşleşmesi için bunları varsayılan olarak etkin tutar. Yanıt metni için düzenlenen önizlemeyi koruyup araç ilerleme satırlarını gizlemek için şunu ayarlayın:progress modunu kullanın. Komut metni politikasını streaming.progress altına koyun:streaming.mode: "off" değerini yalnızca sadece son yanıt teslimi istediğinizde kullanın: Telegram önizleme düzenlemeleri devre dışı bırakılır ve genel araç/ilerleme konuşmaları bağımsız durum mesajları olarak gönderilmek yerine bastırılır. Onay istemleri, medya yükleri ve hatalar yine de normal son teslim yolundan yönlendirilir. Yalnızca araç ilerleme durum satırlarını gizlerken yanıt önizleme düzenlemelerini korumak istediğinizde streaming.preview.toolProgress: false kullanın.replyToMode, "first", "all" veya "batched" olduğunda ve gelen mesaj seçili alıntı metni içerdiğinde, OpenClaw son yanıtı yanıt önizlemesini düzenlemek yerine Telegram’ın yerel alıntı yanıt yolundan gönderir; bu nedenle streaming.preview.toolProgress o tur için kısa durum satırlarını gösteremez. Seçili alıntı metni olmayan geçerli mesaj yanıtları önizleme akışını korur. Araç ilerleme görünürlüğü yerel alıntı yanıtlarından daha önemli olduğunda replyToMode: "off" ayarlayın veya bu ödünleşimi kabul etmek için streaming.preview.toolProgress: false ayarlayın.- kısa DM/grup/konu önizlemeleri: OpenClaw aynı önizleme mesajını tutar ve son düzenlemeyi yerinde yapar
- birden çok Telegram mesajına bölünen uzun metin son yanıtları, mümkün olduğunda mevcut önizlemeyi ilk son parça olarak yeniden kullanır, sonra yalnızca kalan parçaları gönderir
- ilerleme modu son yanıtları durum taslağını temizler ve taslağı yanıta düzenlemek yerine normal son teslimi kullanır
- tamamlanan metin doğrulanmadan önce son düzenleme başarısız olursa OpenClaw normal son teslimi kullanır ve bayat önizlemeyi temizler
/reasoning stream, oluşturma sırasında akıl yürütmeyi canlı önizlemeye gönderir- akıl yürütme önizlemesi son teslimden sonra silinir; akıl yürütmenin görünür kalması gerektiğinde
/reasoning onkullanın - son yanıt, akıl yürütme metni olmadan gönderilir
Biçimlendirme ve HTML geri dönüşü
Biçimlendirme ve HTML geri dönüşü
parse_mode: "HTML" kullanır.- Markdown benzeri metin, Telegram açısından güvenli HTML’ye işlenir.
- Desteklenen Telegram HTML etiketleri korunur; desteklenmeyen HTML kaçışlanır.
- Telegram ayrıştırılmış HTML’yi reddederse OpenClaw düz metin olarak yeniden dener.
channels.telegram.linkPreview: false ile devre dışı bırakılabilir.Yerel komutlar ve özel komutlar
Yerel komutlar ve özel komutlar
setMyCommands ile işlenir.Yerel komut varsayılanları:commands.native: "auto", Telegram için yerel komutları etkinleştirir
- adlar normalleştirilir (başındaki
/kaldırılır, küçük harfe çevrilir) - geçerli kalıp:
a-z,0-9,_, uzunluk1..32 - özel komutlar yerel komutları geçersiz kılamaz
- çakışmalar/çoğaltmalar atlanır ve günlüğe kaydedilir
- özel komutlar yalnızca menü girdileridir; davranışı otomatik olarak uygulamazlar
- Plugin/skill komutları, Telegram menüsünde gösterilmese bile yazıldığında çalışmaya devam edebilir
BOT_COMMANDS_TOO_MUCHilesetMyCommands failed, Telegram menüsünün kırpmadan sonra hâlâ taştığı anlamına gelir; Plugin/skill/özel komutları azaltın veyachannels.telegram.commands.nativeayarını devre dışı bırakın.- Doğrudan Bot API curl komutları çalışırken
deleteWebhook,deleteMyCommandsveyasetMyCommandsişlemlerinin404: Not Foundile başarısız olması,channels.telegram.apiRootdeğerinin tam/bot<TOKEN>uç noktasına ayarlandığı anlamına gelebilir.apiRootyalnızca Bot API kökü olmalıdır veopenclaw doctor --fixyanlışlıkla eklenmiş sondaki/bot<TOKEN>bölümünü kaldırır. getMe returned 401, Telegram’ın yapılandırılmış bot token’ını reddettiği anlamına gelir.botToken,tokenFileveyaTELEGRAM_BOT_TOKENdeğerini güncel BotFather token’ı ile güncelleyin; OpenClaw yoklamadan önce durur, bu nedenle bu bir Webhook temizleme hatası olarak bildirilmez.- Ağ/fetch hatalarıyla
setMyCommands failedgenellikleapi.telegram.orgadresine giden DNS/HTTPS’in engellendiği anlamına gelir.
Cihaz eşleştirme komutları (device-pair Plugin’i)
device-pair Plugin’i yüklü olduğunda:/pairkurulum kodu üretir- kodu iOS uygulamasına yapıştırın
/pair pendingbekleyen istekleri listeler (rol/kapsamlar dahil)- isteği onaylayın:
- açık onay için
/pair approve <requestId> - yalnızca bir bekleyen istek olduğunda
/pair approve - en yenisi için
/pair approve latest
- açık onay için
scopes: [] konumunda tutar; devredilen herhangi bir operatör token’ı operator.approvals, operator.read, operator.talk.secrets ve operator.write ile sınırlı kalır. Bootstrap kapsam denetimleri rol öneklidir; bu yüzden bu operatör izin listesi yalnızca operatör isteklerini karşılar; operatör olmayan rollerin hâlâ kendi rol önekleri altında kapsamlara ihtiyacı vardır.Bir cihaz değişmiş kimlik doğrulama ayrıntılarıyla yeniden denerse (örneğin rol/kapsamlar/açık anahtar), önceki bekleyen istek geçersiz kılınır ve yeni istek farklı bir requestId kullanır. Onaylamadan önce /pair pending komutunu yeniden çalıştırın.Daha fazla ayrıntı: Eşleştirme.Satır içi düğmeler
Satır içi düğmeler
offdmgroupallallowlist(varsayılan)
capabilities: ["inlineButtons"], inlineButtons: "all" değerine eşlenir.Mesaj eylemi örneği:callback_data: <value>Aracılar ve otomasyon için Telegram mesaj eylemleri
Aracılar ve otomasyon için Telegram mesaj eylemleri
sendMessage(to,content, isteğe bağlımediaUrl,replyToMessageId,messageThreadId)react(chatId,messageId,emoji)deleteMessage(chatId,messageId)editMessage(chatId,messageId,content)createForumTopic(chatId,name, isteğe bağlıiconColor,iconCustomEmojiId)
send, react, delete, edit, sticker, sticker-search, topic-create).Kapılama denetimleri:channels.telegram.actions.sendMessagechannels.telegram.actions.deleteMessagechannels.telegram.actions.reactionschannels.telegram.actions.sticker(varsayılan: devre dışı)
edit ve topic-create şu anda varsayılan olarak etkindir ve ayrı channels.telegram.actions.* anahtarları yoktur.
Çalışma zamanı gönderimleri etkin yapılandırma/gizli bilgiler anlık görüntüsünü kullanır (başlangıç/yeniden yükleme), bu yüzden eylem yolları gönderim başına anlık SecretRef yeniden çözümlemesi yapmaz.Tepki kaldırma semantiği: /tools/reactionsYanıt dizilimi etiketleri
Yanıt dizilimi etiketleri
[[reply_to_current]]tetikleyen mesaja yanıt verir[[reply_to:<id>]]belirli bir Telegram mesaj kimliğine yanıt verir
channels.telegram.replyToMode işlemeyi denetler:off(varsayılan)firstall
off, örtük yanıt dizilimini devre dışı bırakır. Açık [[reply_to_*]] etiketleri yine de dikkate alınır.Forum konuları ve ileti dizisi davranışı
Forum konuları ve ileti dizisi davranışı
- konu oturumu anahtarları
:topic:<threadId>ekler - yanıtlar ve yazıyor eylemi konu ileti dizisini hedefler
- konu yapılandırma yolu:
channels.telegram.groups.<chatId>.topics.<threadId>
threadId=1) özel durumu:- mesaj gönderimleri
message_thread_idöğesini çıkarır (TelegramsendMessage(...thread_id=1)çağrısını reddeder) - yazıyor eylemleri yine de
message_thread_idiçerir
requireMention, allowFrom, skills, systemPrompt, enabled, groupPolicy).
agentId yalnızca konuya özeldir ve grup varsayılanlarından devralınmaz.Konu başına aracı yönlendirme: Her konu, konu yapılandırmasında agentId ayarlanarak farklı bir aracıya yönlendirilebilir. Bu, her konuya kendi yalıtılmış çalışma alanını, belleğini ve oturumunu verir. Örnek:agent:zu:telegram:group:-1001234567890:topic:3Kalıcı ACP konu bağlama: Forum konuları, üst düzey türlendirilmiş ACP bağlamaları aracılığıyla ACP harness oturumlarını sabitleyebilir (type: "acp" ve match.channel: "telegram", peer.kind: "group" içeren bindings[] ve -1001234567890:topic:42 gibi konu nitelemeli bir kimlik). Şu anda gruplardaki/süper gruplardaki forum konularıyla sınırlıdır. Bkz. ACP Aracıları.Sohbetten iş parçacığına bağlı ACP başlatma: /acp spawn <agent> --thread here|auto mevcut konuyu yeni bir ACP oturumuna bağlar; devam iletileri doğrudan oraya yönlendirilir. OpenClaw başlatma onayını konu içinde sabitler. channels.telegram.threadBindings.spawnSessions etkin kalmalıdır (varsayılan: true).Şablon bağlamı MessageThreadId ve IsForum değerlerini açığa çıkarır. message_thread_id içeren DM sohbetleri varsayılan olarak DM yönlendirmesini ve yanıt meta verilerini düz oturumlarda tutar; iş parçacığına duyarlı oturum anahtarlarını yalnızca threadReplies: "inbound", threadReplies: "always", requireTopic: true veya eşleşen bir konu yapılandırmasıyla yapılandırıldıklarında kullanırlar. Hesap varsayılanı için üst düzey channels.telegram.dm.threadReplies değerini veya tek bir DM için direct.<chatId>.threadReplies değerini kullanın.Ses, video ve çıkartmalar
Ses, video ve çıkartmalar
Ses mesajları
Telegram, sesli notlar ile ses dosyalarını ayırt eder.- varsayılan: ses dosyası davranışı
- sesli not gönderimini zorlamak için aracı yanıtında
[[audio_as_voice]]etiketi - gelen sesli not dökümleri, aracı bağlamında makine tarafından üretilmiş, güvenilmeyen metin olarak çerçevelenir; bahsetme algılama yine de ham dökümü kullanır, böylece bahsetme kapılı sesli mesajlar çalışmaya devam eder.
Video mesajları
Telegram, video dosyaları ile video notlarını ayırt eder.Mesaj eylemi örneği:Çıkartmalar
Gelen çıkartma işleme:- statik WEBP: indirilir ve işlenir (yer tutucu
<media:sticker>) - animasyonlu TGS: atlanır
- video WEBM: atlanır
Sticker.emojiSticker.setNameSticker.fileIdSticker.fileUniqueIdSticker.cachedDescription
~/.openclaw/telegram/sticker-cache.json
Tepki bildirimleri
Tepki bildirimleri
message_reaction güncellemeleri olarak gelir (mesaj yüklerinden ayrıdır).Etkinleştirildiğinde OpenClaw şu tür sistem olaylarını kuyruğa alır:Telegram reaction added: 👍 by Alice (@alice) on msg 42
channels.telegram.reactionNotifications:off | own | all(varsayılan:own)channels.telegram.reactionLevel:off | ack | minimal | extensive(varsayılan:minimal)
own, yalnızca bot tarafından gönderilen mesajlara kullanıcı tepkileri anlamına gelir (gönderilen mesaj önbelleği üzerinden en iyi çaba).- Tepki olayları yine de Telegram erişim kontrollerine uyar (
dmPolicy,allowFrom,groupPolicy,groupAllowFrom); yetkisiz gönderenler düşürülür. - Telegram, tepki güncellemelerinde iş parçacığı kimlikleri sağlamaz.
- forum olmayan gruplar grup sohbeti oturumuna yönlendirilir
- forum grupları, tam kaynak konuya değil, grubun genel konu oturumuna (
:topic:1) yönlendirilir
allowed_updates otomatik olarak message_reaction içerir.Ack tepkileri
Ack tepkileri
ackReaction, OpenClaw gelen bir mesajı işlerken bir onay emojisi gönderir.Çözümleme sırası:channels.telegram.accounts.<accountId>.ackReactionchannels.telegram.ackReactionmessages.ackReaction- aracı kimliği emoji yedeği (
agents.list[].identity.emoji, aksi halde ”👀”)
- Telegram unicode emoji bekler (örneğin ”👀”).
- Bir kanal veya hesap için tepkiyi devre dışı bırakmak üzere
""kullanın.
Telegram olayları ve komutlarından yapılandırma yazımları
Telegram olayları ve komutlarından yapılandırma yazımları
configWrites !== false).Telegram tarafından tetiklenen yazımlar şunları içerir:channels.telegram.groupsdeğerini güncellemek için grup taşıma olayları (migrate_to_chat_id)/config setve/config unset(komut etkinleştirmesi gerektirir)
Uzun yoklama ve Webhook
Uzun yoklama ve Webhook
channels.telegram.webhookUrl ve channels.telegram.webhookSecret değerlerini ayarlayın; isteğe bağlı olarak webhookPath, webhookHost, webhookPort (varsayılanlar /telegram-webhook, 127.0.0.1, 8787).Uzun yoklama modunda OpenClaw, yeniden başlatma filigranını yalnızca bir güncelleme başarıyla dağıtıldıktan sonra kalıcı hale getirir. Bir işleyici başarısız olursa bu güncelleme aynı süreçte yeniden denenebilir durumda kalır ve yeniden başlatma tekilleştirmesi için tamamlanmış olarak yazılmaz.Yerel dinleyici 127.0.0.1:8787 adresine bağlanır. Genel giriş için yerel bağlantı noktasının önüne bir ters proxy koyun veya bilinçli olarak webhookHost: "0.0.0.0" ayarlayın.Webhook modu, Telegram’a 200 döndürmeden önce istek korumalarını, Telegram gizli belirtecini ve JSON gövdesini doğrular.
OpenClaw ardından güncellemeyi uzun yoklamanın kullandığı aynı sohbet başına/konu başına bot hatları üzerinden eşzamansız olarak işler; böylece yavaş aracı dönüşleri Telegram’ın teslim ACK değerini bekletmez.Sınırlar, yeniden deneme ve CLI hedefleri
Sınırlar, yeniden deneme ve CLI hedefleri
channels.telegram.textChunkLimitvarsayılanı 4000’dir.channels.telegram.chunkMode="newline", uzunluğa göre bölmeden önce paragraf sınırlarını (boş satırlar) tercih eder.channels.telegram.mediaMaxMb(varsayılan 100), gelen ve giden Telegram medya boyutunu sınırlar.channels.telegram.mediaGroupFlushMs(varsayılan 500), OpenClaw bunları tek bir gelen mesaj olarak dağıtmadan önce Telegram albümlerinin/medya gruplarının ne kadar süre arabelleğe alınacağını denetler. Albüm parçaları geç geliyorsa artırın; albüm yanıt gecikmesini azaltmak için düşürün.channels.telegram.timeoutSeconds, Telegram API istemcisi zaman aşımını geçersiz kılar (ayarlanmazsa grammY varsayılanı geçerlidir). Bot istemcileri, yapılandırılan değerleri 60 saniyelik giden metin/yazıyor isteği korumasının altına sıkıştırır; böylece grammY, OpenClaw’ın aktarım koruması ve yedeği çalışmadan önce görünür yanıt teslimini iptal etmez. Uzun yoklama yine de 45 saniyelikgetUpdatesisteği koruması kullanır, böylece boşta yoklamalar süresiz olarak terk edilmez.channels.telegram.pollingStallThresholdMsvarsayılan olarak120000değerindedir; yalnızca yanlış pozitif yoklama-durması yeniden başlatmaları için30000ile600000arasında ayarlayın.- grup bağlam geçmişi
channels.telegram.historyLimitveyamessages.groupChat.historyLimitkullanır (varsayılan 50);0devre dışı bırakır. - yanıt/alıntı/iletme ek bağlamı, Gateway üst mesajları gözlemlediğinde seçili tek bir konuşma bağlam penceresine normalleştirilir; gözlemlenen mesaj önbelleği oturum deposunun yanında kalıcı hale getirilir. Telegram güncellemelerde yalnızca tek bir sığ
reply_to_messageiçerir; bu nedenle önbellekten daha eski zincirler Telegram’ın mevcut güncelleme yüküyle sınırlıdır. - Telegram izin listeleri öncelikle aracıyı kimin tetikleyebileceğini kapılar; tam bir ek bağlam redaksiyon sınırı değildir.
- DM geçmiş denetimleri:
channels.telegram.dmHistoryLimitchannels.telegram.dms["<user_id>"].historyLimit
channels.telegram.retryyapılandırması, kurtarılabilir giden API hataları için Telegram gönderme yardımcılarına (CLI/araçlar/eylemler) uygulanır. Gelen son-yanıt teslimi de Telegram ön bağlantı hataları için sınırlı bir güvenli-gönder yeniden denemesi kullanır, ancak görünür mesajları çoğaltabilecek belirsiz gönderim sonrası ağ zarflarını yeniden denemez.
openclaw message poll kullanır ve forum konularını destekler:--poll-duration-seconds(5-600)--poll-anonymous--poll-public- forum konuları için
--thread-id(veya bir:topic:hedefi kullanın)
channels.telegram.capabilities.inlineButtonsizin verdiğinde satır içi klavyeler içinbuttonsbloklarıyla--presentation- bot o sohbette sabitleyebildiğinde sabitlenmiş teslim istemek için
--pinveya--delivery '{"pin":true}' - giden görüntüleri, GIF’leri ve videoları sıkıştırılmış fotoğraf, animasyonlu medya veya video yüklemeleri yerine belge olarak göndermek için
--force-document
channels.telegram.actions.sendMessage=false, yoklamalar dahil giden Telegram mesajlarını devre dışı bırakırchannels.telegram.actions.poll=false, normal gönderimleri etkin bırakarak Telegram yoklaması oluşturmayı devre dışı bırakır
Telegram'da exec onayları
Telegram'da exec onayları
channels.telegram.execApprovals.enabled(en az bir onaylayıcı çözümlenebilir olduğunda otomatik etkinleşir)channels.telegram.execApprovals.approvers(commands.ownerAllowFromiçindeki sayısal sahip kimliklerine geri döner)channels.telegram.execApprovals.target:dm(varsayılan) |channel|bothagentFilter,sessionFilter
channels.telegram.allowFrom, groupAllowFrom ve defaultTo, botla kimin konuşabileceğini ve normal yanıtları nereye göndereceğini denetler. Birini exec onaylayıcısı yapmazlar. Henüz komut sahibi yoksa ilk onaylanmış DM eşleştirmesi commands.ownerAllowFrom değerini önyükler; böylece tek sahipli kurulum, execApprovals.approvers altında kimlikleri çoğaltmadan çalışmaya devam eder.Kanal teslimi komut metnini sohbette gösterir; channel veya both değerlerini yalnızca güvenilen gruplarda/konularda etkinleştirin. İstem bir forum konusuna ulaştığında OpenClaw, onay istemi ve devam iletisi için konuyu korur. Exec onayları varsayılan olarak 30 dakika sonra sona erer.Satır içi onay düğmeleri ayrıca hedef yüzeye (dm, group veya all) izin vermesi için channels.telegram.capabilities.inlineButtons gerektirir. plugin: önekli onay kimlikleri Plugin onayları üzerinden çözümlenir; diğerleri önce exec onayları üzerinden çözümlenir.Bkz. Exec onayları.Hata yanıtı denetimleri
Aracı bir teslim veya sağlayıcı hatasıyla karşılaştığında, Telegram hata metniyle yanıt verebilir ya da bunu bastırabilir. Bu davranışı iki yapılandırma anahtarı denetler:| Anahtar | Değerler | Varsayılan | Açıklama |
|---|---|---|---|
channels.telegram.errorPolicy | reply, silent | reply | reply sohbete kullanıcı dostu bir hata mesajı gönderir. silent hata yanıtlarını tamamen bastırır. |
channels.telegram.errorCooldownMs | sayı (ms) | 60000 | Aynı sohbete hata yanıtları arasındaki minimum süre. Kesintiler sırasında hata spam’ini önler. |
Sorun giderme
Bot, etiketlenmeyen grup mesajlarına yanıt vermiyor
Bot, etiketlenmeyen grup mesajlarına yanıt vermiyor
requireMention=falseise Telegram gizlilik modu tam görünürlüğe izin vermelidir.- BotFather:
/setprivacy-> Devre dışı bırak - ardından botu gruptan kaldırıp yeniden ekleyin
- BotFather:
- Yapılandırma etiketsiz grup mesajları beklediğinde
openclaw channels statusuyarır. openclaw channels status --probeaçık sayısal grup kimliklerini denetleyebilir; joker karakter"*"için üyelik yoklaması yapılamaz.- hızlı oturum testi:
/activation always.
Bot grup mesajlarını hiç görmüyor
Bot grup mesajlarını hiç görmüyor
channels.telegram.groupsvarsa grup listelenmelidir (veya"*"dahil edilmelidir)- botun gruptaki üyeliğini doğrulayın
- atlama nedenleri için günlükleri inceleyin:
openclaw logs --follow
Komutlar kısmen çalışıyor veya hiç çalışmıyor
Komutlar kısmen çalışıyor veya hiç çalışmıyor
- gönderen kimliğinizi yetkilendirin (eşleştirme ve/veya sayısal
allowFrom) - grup ilkesi
openolsa bile komut yetkilendirmesi yine de geçerlidir BOT_COMMANDS_TOO_MUCHilesetMyCommands failed, yerel menüde çok fazla giriş olduğu anlamına gelir; Plugin/skill/özel komutlarını azaltın veya yerel menüleri devre dışı bırakın- Başlangıçtaki
deleteMyCommands/setMyCommandsçağrıları vesendChatActionyazıyor çağrıları sınırlandırılır ve istek zaman aşımında Telegram’ın aktarım yedeği üzerinden bir kez yeniden denenir. Kalıcı ağ/fetch hataları genellikleapi.telegram.orgiçin DNS/HTTPS erişilebilirliği sorunlarını gösterir
Başlangıç yetkisiz token bildiriyor
Başlangıç yetkisiz token bildiriyor
getMe returned 401, yapılandırılmış bot token’ı için bir Telegram kimlik doğrulama hatasıdır.- BotFather içinde bot token’ını yeniden kopyalayın veya yeniden oluşturun, ardından varsayılan hesap için
channels.telegram.botToken,channels.telegram.tokenFile,channels.telegram.accounts.<id>.botTokenveyaTELEGRAM_BOT_TOKENdeğerini güncelleyin. - Başlangıç sırasında
deleteWebhook 401 Unauthorizedda bir kimlik doğrulama hatasıdır; bunu “webhook yok” olarak ele almak, aynı hatalı token hatasını yalnızca sonraki API çağrılarına ertelemiş olur.
Polling veya ağ kararsızlığı
Polling veya ağ kararsızlığı
- Node 22+ + özel fetch/proxy, AbortSignal türleri uyuşmuyorsa anında abort davranışını tetikleyebilir.
- Bazı host’lar
api.telegram.orgadresini önce IPv6’ya çözer; bozuk IPv6 çıkışı aralıklı Telegram API hatalarına neden olabilir. - Günlüklerde
TypeError: fetch failedveyaNetwork request for 'getUpdates' failed!varsa OpenClaw artık bunları kurtarılabilir ağ hataları olarak yeniden dener. - Polling başlangıcı sırasında OpenClaw, başarılı başlangıç
getMeyoklamasını grammY için yeniden kullanır; böylece runner ilkgetUpdatesöncesinde ikinci birgetMeçağrısına ihtiyaç duymaz. - Polling başlangıcı sırasında
deleteWebhookgeçici bir ağ hatasıyla başarısız olursa OpenClaw başka bir polling öncesi kontrol düzlemi çağrısı yapmak yerine long polling’e devam eder. Hâlâ etkin olan bir webhook,getUpdatesçakışması olarak görünür; OpenClaw ardından Telegram aktarımını yeniden oluşturur ve webhook temizliğini yeniden dener. - Telegram soketleri kısa ve sabit bir aralıkla yenileniyorsa düşük bir
channels.telegram.timeoutSecondsdeğeri olup olmadığını kontrol edin; bot istemcileri, yapılandırılmış değerleri giden istek vegetUpdatesistek korumalarının altına düşmeyecek şekilde sınırlar, ancak eski sürümler bu değerler bu korumaların altındayken her polling veya yanıtı abort edebiliyordu. - Günlüklerde
Polling stall detectedvarsa OpenClaw varsayılan olarak 120 saniye boyunca tamamlanmış long-poll canlılığı olmadan polling’i yeniden başlatır ve Telegram aktarımını yeniden oluşturur. openclaw channels status --probeveopenclaw doctor, çalışan bir polling hesabı başlangıç toleransından sonragetUpdatestamamlamadığında, çalışan bir webhook hesabı başlangıç toleransından sonrasetWebhooktamamlamadığında veya son başarılı polling aktarım etkinliği bayatladığında uyarır.channels.telegram.pollingStallThresholdMsdeğerini yalnızca uzun sürengetUpdatesçağrıları sağlıklıyken ancak host’unuz hâlâ yanlış polling-stall yeniden başlatmaları bildiriyorsa artırın. Kalıcı takılmalar genellikle host ileapi.telegram.orgarasındaki proxy, DNS, IPv6 veya TLS çıkış sorunlarına işaret eder.- Telegram ayrıca Bot API aktarımı için
HTTP_PROXY,HTTPS_PROXY,ALL_PROXYve bunların küçük harfli varyantları dahil işlem proxy env değerlerini dikkate alır.NO_PROXY/no_proxyyine deapi.telegram.orgadresini atlayabilir. - OpenClaw yönetimli proxy bir hizmet ortamı için
OPENCLAW_PROXY_URLüzerinden yapılandırılmışsa ve standart proxy env yoksa Telegram da Bot API aktarımı için bu URL’yi kullanır. - Kararsız doğrudan çıkış/TLS bulunan VPS host’larında Telegram API çağrılarını
channels.telegram.proxyüzerinden yönlendirin:
- Node 22+ varsayılan olarak
autoSelectFamily=truekullanır (WSL2 hariç). Telegram DNS sonuç sırası önceOPENCLAW_TELEGRAM_DNS_RESULT_ORDER, sonrachannels.telegram.network.dnsResultOrder, sonraNODE_OPTIONS=--dns-result-order=ipv4firstgibi işlem varsayılanını izler; hiçbiri geçerli değilse Node 22+ipv4firstdeğerine geri döner. - Host’unuz WSL2 ise veya açıkça yalnızca IPv4 davranışıyla daha iyi çalışıyorsa aile seçimini zorlayın:
- RFC 2544 kıyaslama aralığı yanıtlarına (
198.18.0.0/15) Telegram medya indirmeleri için varsayılan olarak zaten izin verilir. Güvenilir bir fake-IP veya saydam proxy, medya indirmeleri sırasındaapi.telegram.orgadresini başka bir private/internal/special-use adrese yeniden yazıyorsa yalnızca Telegram için geçerli bypass’a katılabilirsiniz:
- Aynı katılım hesap başına
channels.telegram.accounts.<accountId>.network.dangerouslyAllowPrivateNetworkaltında da kullanılabilir. - Proxy’niz Telegram medya host’larını
198.18.x.xiçine çözüyorsa önce tehlikeli bayrağı kapalı bırakın. Telegram medyası zaten varsayılan olarak RFC 2544 kıyaslama aralığına izin verir.
- Ortam geçersiz kılmaları (geçici):
OPENCLAW_TELEGRAM_DISABLE_AUTO_SELECT_FAMILY=1OPENCLAW_TELEGRAM_ENABLE_AUTO_SELECT_FAMILY=1OPENCLAW_TELEGRAM_DNS_RESULT_ORDER=ipv4first
- DNS yanıtlarını doğrulayın:
Yapılandırma başvurusu
Birincil başvuru: Yapılandırma başvurusu - Telegram.Yüksek sinyalli Telegram alanları
Yüksek sinyalli Telegram alanları
- başlangıç/kimlik doğrulama:
enabled,botToken,tokenFile,accounts.*(tokenFilenormal bir dosyaya işaret etmelidir; symlink’ler reddedilir) - erişim denetimi:
dmPolicy,allowFrom,groupPolicy,groupAllowFrom,groups,groups.*.topics.*, üst düzeybindings[](type: "acp") - exec onayları:
execApprovals,accounts.*.execApprovals - komut/menü:
commands.native,commands.nativeSkills,customCommands - iş parçacığı/yanıtlar:
replyToMode,dm.threadReplies,direct.*.threadReplies - streaming:
streaming(önizleme),streaming.preview.toolProgress,blockStreaming - biçimlendirme/teslim:
textChunkLimit,chunkMode,linkPreview,responsePrefix - medya/ağ:
mediaMaxMb,mediaGroupFlushMs,timeoutSeconds,pollingStallThresholdMs,retry,network.autoSelectFamily,network.dangerouslyAllowPrivateNetwork,proxy - özel API kökü:
apiRoot(yalnızca Bot API kökü;/bot<TOKEN>eklemeyin) - webhook:
webhookUrl,webhookSecret,webhookPath,webhookHost - eylemler/yetenekler:
capabilities.inlineButtons,actions.sendMessage|editMessage|deleteMessage|reactions|sticker - tepkiler:
reactionNotifications,reactionLevel - hatalar:
errorPolicy,errorCooldownMs - yazmalar/geçmiş:
configWrites,historyLimit,dmHistoryLimit,dms.*.historyLimit
channels.telegram.defaultAccount ayarlayın (veya channels.telegram.accounts.default dahil edin). Aksi halde OpenClaw ilk normalize edilmiş hesap kimliğine geri döner ve openclaw doctor uyarır. Adlandırılmış hesaplar channels.telegram.allowFrom / groupAllowFrom değerlerini devralır, ancak accounts.default.* değerlerini devralmaz.