Telegram (Bot API)
Durum: grammY aracılığıyla bot DM’leri ve gruplar için üretime hazır. Uzun yoklama varsayılan moddur; webhook modu isteğe bağlıdır.Eşleştirme
Kanal sorun giderme
Gateway yapılandırması
Hızlı kurulum
Bot token'ını BotFather içinde 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’ı config/env içinde yapılandırın, ardından gateway’i başlatın.TELEGRAM_BOT_TOKEN yalnızca varsayılan hesap için geçerlidir.Telegram tarafı ayarları
Gizlilik modu ve grup görünürlüğü
Gizlilik modu ve grup görünürlüğü
/setprivacyaracılığıyla gizlilik modunu devre dışı bırakın veya- botu grup yöneticisi yapın.
Grup izinleri
Grup izinleri
Yararlı BotFather anahtarları
Yararlı BotFather anahtarları
- grup eklemelerine izin vermek/engellemek için
/setjoingroups - grup görünürlük davranışı için
/setprivacy
Erişim denetimi ve etkinleştirme
- DM ilkesi
- Grup ilkesi ve allowlist'ler
- Bahsetme davranışı
channels.telegram.dmPolicy, doğrudan mesaj erişimini kontrol eder:pairing(varsayılan)allowlist(allowFromiçinde en az bir gönderen kimliği gerektirir)open(allowFromiçine"*"eklenmesini gerektirir)disabled
channels.telegram.allowFrom, sayısal Telegram kullanıcı kimliklerini kabul eder. telegram: / tg: önekleri kabul edilir ve normalize edilir.
Boş allowFrom ile dmPolicy: "allowlist" tüm DM’leri engeller ve config doğrulaması tarafından reddedilir.
Onboarding, @username girdisini kabul eder ve bunu sayısal kimliklere çözümler.
Yükseltme yaptıysanız ve config’iniz @username allowlist girdileri içeriyorsa, bunları çözümlemek için openclaw doctor --fix çalıştırın (en iyi çabayla; bir Telegram bot token’ı gerektirir).
Daha önce pairing-store allowlist dosyalarına güveniyorduysanız, openclaw doctor --fix allowlist akışlarında girdileri channels.telegram.allowFrom içine geri alabilir (örneğin dmPolicy: "allowlist" henüz açık kimlikler içermiyorsa).Tek sahipli botlar için, erişim ilkesini config içinde kalıcı tutmak amacıyla açık sayısal allowFrom kimlikleriyle dmPolicy: "allowlist" tercih edin (önceki eşleştirme onaylarına bağlı kalmak yerine).Sık görülen bir karışıklık: DM eşleştirme onayı, “bu gönderen her yerde yetkilidir” anlamına gelmez.
Eşleştirme yalnızca DM erişimi verir. Grup gönderen yetkilendirmesi yine açık config allowlist’lerinden gelir.
“Bir kez yetkileneyim 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.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 işlemi tarafından sahiplenilir.
- Yönlendirme deterministiktir: Telegram’dan gelen yanıtlar tekrar Telegram’a döner (model kanalları seçmez).
- Gelen mesajlar, yanıt meta verileri ve medya yer tutucuları ile paylaşılan kanal zarfına normalize edilir.
- 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 bunları iş parçacığı farkındalıklı oturum anahtarlarıyla yönlendirir ve yanıtlarda iş parçacığı kimliğini korur. - 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. - Telegram Bot API’de okundu bilgisi desteği yoktur (
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.streamingdeğerioff | partial | block | progressolmalıdır (varsayılan:partial)progress, Telegram’dapartialolarak eşlenir (kanallar arası adlandırma uyumluluğu)- eski
channels.telegram.streamModeve booleanstreamingdeğerleri otomatik olarak eşlenir
- DM: OpenClaw aynı önizleme mesajını korur ve yerinde son düzenlemeyi yapar (ikinci mesaj yok)
- grup/konu: OpenClaw aynı önizleme mesajını korur ve yerinde son düzenlemeyi yapar (ikinci mesaj yok)
sendMessage + editMessageText yöntemine geri döner.Yalnızca Telegram için akıl yürütme akışı:/reasoning stream, oluşturma sırasında akıl yürütmeyi canlı önizlemeye gönderir- 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 için güvenli HTML’ye dönüştürülür.
- Ham model HTML’si, Telegram ayrıştırma hatalarını azaltmak için escape edilir.
- 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 yapılır.Yerel komut varsayılanları:commands.native: "auto", Telegram için yerel komutları etkinleştirir
- adlar normalize edilir (baştaki
/kaldırılır, küçük harfe çevrilir) - geçerli desen:
a-z,0-9,_, uzunluk1..32 - özel komutlar yerel komutların üzerine yazamaz
- çakışmalar/tekrarlar 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 yine çalışabilir
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.nativedeğerini devre dışı bırakın.- ağ/fetch hatalarıyla
setMyCommands failed, genellikleapi.telegram.orgadresine giden DNS/HTTPS çıkışının engellendiği anlamına gelir.
Cihaz eşleştirme komutları (device-pair plugin)
device-pair plugin’i kurulduğunda:/pairkurulum kodu oluşturur- kodu iOS uygulamasına yapıştırın
/pair pending, bekleyen 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 son istek için
/pair approve latest
- açık onay için
scopes: [] olarak tutar; devredilen her operatör token’ı ise operator.approvals, operator.read, operator.talk.secrets ve operator.write ile sınırlı kalır. Bootstrap kapsam denetimleri rol öneklidir; bu nedenle operatör allowlist’i yalnızca operatör isteklerini karşılar; operatör olmayan roller kendi rol önekleri altında yine kapsamlara ihtiyaç duyar.Bir cihaz değişmiş kimlik doğrulama ayrıntılarıyla (örneğin rol/kapsamlar/açık anahtar) yeniden denerse, ö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" olarak eşlenir.Mesaj eylemi örneği:callback_data: <value>Ajanlar ve otomasyon için Telegram mesaj eylemleri
Ajanlar 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).Geçitleme 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ına sahip değildir.
Çalışma zamanı gönderimleri etkin config/secrets anlık görüntüsünü kullanır (başlangıç/yeniden yükleme), bu nedenle eylem yolları gönderim başına geçici SecretRef yeniden çözümlemesi yapmaz.Tepki kaldırma semantiği: /tools/reactionsYanıt iş parçacığı etiketleri
Yanıt iş parçacığı 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şleme davranışını kontrol eder:off(varsayılan)firstall
off, örtük yanıt iş parçacığını devre dışı bırakır. Açık [[reply_to_*]] etiketleri yine dikkate alınır.Forum konuları ve iş parçacığı davranışı
Forum konuları ve iş parçacığı davranışı
- konu oturum anahtarlarına
:topic:<threadId>eklenir - yanıtlar ve yazıyor durumu konu iş parçacığını hedefler
- konu config yolu:
channels.telegram.groups.<chatId>.topics.<threadId>
threadId=1) özel durumu:- mesaj gönderimleri
message_thread_idiçermez (TelegramsendMessage(...thread_id=1)çağrısını reddeder) - yazıyor eylemleri yine
message_thread_idiçerir
requireMention, allowFrom, skills, systemPrompt, enabled, groupPolicy).
agentId yalnızca konuya özgüdür ve grup varsayılanlarından devralınmaz.Konu başına ajan yönlendirmesi: Her konu, konu config’inde agentId ayarlanarak farklı bir ajana 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"vematch.channel: "telegram"içerenbindings[]
/acp spawn <agent> --thread here|auto, mevcut Telegram konusunu yeni bir ACP oturumuna bağlayabilir.- Sonraki konu mesajları doğrudan bağlı ACP oturumuna yönlendirilir (
/acp steergerekmez). - OpenClaw, başarılı bir bağlamadan sonra oluşturma onay mesajını konu içinde sabitler.
channels.telegram.threadBindings.spawnAcpSessions=truegerektirir.
MessageThreadIdIsForum
message_thread_idiçeren özel sohbetler DM yönlendirmesini korur ancak iş parçacığı farkındalıklı oturum anahtarları/yanıt hedefleri kullanır.
Ses, video ve sticker'lar
Ses, video ve sticker'lar
Sesli mesajlar
Telegram sesli notlar ile ses dosyalarını ayırt eder.- varsayılan: ses dosyası davranışı
- ajan yanıtına
[[audio_as_voice]]etiketi eklenirse sesli not olarak gönderimi zorlar
Video mesajları
Telegram video dosyaları ile video notlarını ayırt eder.Mesaj eylemi örneği:Sticker’lar
Gelen sticker 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önderilmiş mesajlara kullanıcı tepkileri anlamına gelir (gönderilmiş mesaj önbelleği aracılığıyla en iyi çabayla).- Tepki olayları yine Telegram erişim denetimlerine (
dmPolicy,allowFrom,groupPolicy,groupAllowFrom) uyar; 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, message_reaction öğesini otomatik olarak içerir.Onay tepkileri
Onay 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- ajan kimliği emoji geri dönüşü (
agents.list[].identity.emoji, aksi halde ”👀”)
- Telegram unicode emoji bekler (örneğin ”👀”).
- Kanal veya hesap için tepkiyi devre dışı bırakmak üzere
""kullanın.
Telegram olayları ve komutlarından config yazımları
Telegram olayları ve komutlarından config 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 gerekir)
Uzun yoklama ve webhook karşılaştırması
Uzun yoklama ve webhook karşılaştırması
channels.telegram.webhookUrlayarlayınchannels.telegram.webhookSecretayarlayın (webhookUrlayarlandığında gereklidir)- isteğe bağlı
channels.telegram.webhookPath(varsayılan/telegram-webhook) - isteğe bağlı
channels.telegram.webhookHost(varsayılan127.0.0.1) - isteğe bağlı
channels.telegram.webhookPort(varsayılan8787)
127.0.0.1:8787 adresine bağlanır.Genel uç noktanız farklıysa, önüne bir ters proxy koyun ve webhookUrl değerini genel URL’ye yönlendirin.
Dış girişe kasıtlı olarak ihtiyaç duyduğunuzda webhookHost değerini ayarlayın (örneğin 0.0.0.0).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.timeoutSeconds, Telegram API istemci zaman aşımını geçersiz kılar (ayarlanmazsa grammY varsayılanı uygulanır).- grup bağlam geçmişi
channels.telegram.historyLimitveyamessages.groupChat.historyLimitkullanır (varsayılan 50);0devre dışı bırakır. - yanıt/alıntı/yönlendirme ek bağlamı şu anda alındığı gibi geçirilir.
- Telegram allowlist’leri öncelikle tam bir ek bağlam sansürleme sınırı değil, ajanın kim tarafından tetiklenebileceğini geçitler.
- DM geçmişi denetimleri:
channels.telegram.dmHistoryLimitchannels.telegram.dms["<user_id>"].historyLimit
channels.telegram.retryconfig’i, kurtarılabilir giden API hataları için Telegram gönderim yardımcılarına (CLI/tools/actions) uygulanır.
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çin--buttons- giden görselleri ve GIF’leri sıkıştırılmış fotoğraf veya animasyonlu medya yüklemeleri yerine belge olarak göndermek için
--force-document
channels.telegram.actions.sendMessage=false, anketler dahil giden Telegram mesajlarını devre dışı bırakırchannels.telegram.actions.poll=false, normal gönderimleri etkin bırakırken Telegram anket oluşturmayı devre dışı bırakır
Telegram'da exec onayları
Telegram'da exec onayları
channels.telegram.execApprovals.enabledchannels.telegram.execApprovals.approvers(isteğe bağlıdır; mümkün olduğundaallowFromve doğrudandefaultTodeğerlerinden çıkarılan sayısal sahip kimliklerine geri döner)channels.telegram.execApprovals.target(dm|channel|both, varsayılan:dm)agentFilter,sessionFilter
enabled ayarlanmadığında veya "auto" olduğunda ve en az bir onaylayıcı çözümlenebildiğinde yerel exec onaylarını otomatik etkinleştirir; bu çözümleme execApprovals.approvers üzerinden veya hesabın sayısal sahip config’inden (allowFrom ve doğrudan mesaj defaultTo) yapılabilir. Telegram’ı yerel bir onay istemcisi olarak açıkça devre dışı bırakmak için enabled: false ayarlayın. Aksi halde onay istekleri diğer yapılandırılmış onay yollarına veya exec onay geri dönüş ilkesine geri döner.Telegram ayrıca diğer sohbet kanallarının kullandığı paylaşılan onay düğmelerini de işler. Yerel Telegram bağdaştırıcısı esas olarak teslimattan önce onaylayıcı DM yönlendirmesi, kanal/konu fanout’u ve yazıyor ipuçları ekler.
Bu düğmeler mevcut olduğunda, bunlar birincil onay UX’idir; OpenClaw
yalnızca araç sonucu sohbet onaylarının kullanılamadığını veya tek yolun
manuel onay olduğunu söylediğinde manuel /approve komutunu eklemelidir.Teslim kuralları:target: "dm", onay istemlerini yalnızca çözümlenen onaylayıcı DM’lerine gönderirtarget: "channel", istemi kaynak Telegram sohbetine/konusuna geri gönderirtarget: "both", istemleri onaylayıcı DM’lerine ve kaynak sohbet/konuya gönderir
/approve kullanamaz ve Telegram onay düğmelerini de kullanamaz.Onay çözümleme davranışı:plugin:öneki taşıyan kimlikler her zaman plugin onayları üzerinden çözümlenir.- Diğer onay kimlikleri önce
exec.approval.resolvedener. - Telegram aynı zamanda plugin onayları için yetkiliyse ve gateway
exec onayının bilinmediğini/süresinin dolduğunu söylerse, Telegram bir kez
plugin.approval.resolveüzerinden yeniden dener. - Gerçek exec onay reddi/hataları sessizce plugin onay çözümlemesine düşmez.
channel veya both yalnızca güvenilir gruplarda/konularda etkinleştirilmelidir. İstem bir forum konusuna ulaştığında, OpenClaw hem onay istemi hem de onay sonrası takip için konuyu korur. Exec onaylarının varsayılan süresi 30 dakikadır.Satır içi onay düğmeleri ayrıca channels.telegram.capabilities.inlineButtons değerinin hedef yüzeye (dm, group veya all) izin vermesine bağlıdır.İlgili belgeler: Exec onaylarıHata yanıtı denetimleri
Ajan bir teslimat veya sağlayıcı hatasıyla karşılaştığında, Telegram ya hata metniyle yanıt verebilir ya da bunu bastırabilir. Bu davranışı iki config anahtarı kontrol eder:| 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 | number (ms) | 60000 | Aynı sohbete hata yanıtları arasındaki minimum süre. Kesintiler sırasında hata spam’ini önler. |
Sorun giderme
Bot, bahsetme içermeyen grup mesajlarına yanıt vermiyor
Bot, bahsetme içermeyen 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:
openclaw channels status, config bahsedilmeyen grup mesajları beklediğinde uyarı verir.openclaw channels status --probe, açık sayısal grup kimliklerini denetleyebilir; joker"*"için üyelik denetimi 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 listelenmiş olmalıdır (veya"*"içermelidir)- botun gruba üyeliğini doğrulayın
- atlama nedenleri için günlükleri gözden geçirin:
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 geçerlidir BOT_COMMANDS_TOO_MUCHilesetMyCommands failed, yerel menüde çok fazla giriş olduğu anlamına gelir; plugin/skill/özel komutları azaltın veya yerel menüleri devre dışı bırakın- ağ/fetch hatalarıyla
setMyCommands failed, genellikleapi.telegram.orgadresine DNS/HTTPS erişilebilirliği sorunlarını gösterir
Yoklama veya ağ kararsızlığı
Yoklama veya ağ kararsızlığı
- Node 22+ + özel fetch/proxy, AbortSignal türleri uyuşmazsa anında iptal davranışını tetikleyebilir.
- Bazı ana bilgisayarlar
api.telegram.orgadresini önce IPv6’ya çözümler; bozuk IPv6 çıkışı aralıklı Telegram API hatalarına yol açabilir. - Günlüklerde
TypeError: fetch failedveyaNetwork request for 'getUpdates' failed!varsa, OpenClaw artık bunları kurtarılabilir ağ hataları olarak yeniden dener. - Doğrudan çıkışı/TLS’si kararsız VPS ana bilgisayarlarında, Telegram API çağrılarını
channels.telegram.proxyüzerinden yönlendirin:
- Node 22+, varsayılan olarak
autoSelectFamily=true(WSL2 hariç) vednsResultOrder=ipv4firstkullanır. - Ana bilgisayarınız WSL2 ise veya açıkça yalnızca IPv4 davranışıyla daha iyi çalışıyorsa, aile seçimini zorlayın:
- RFC 2544 benchmark aralığı yanıtlarına (
198.18.0.0/15) Telegram medya indirmeleri için zaten varsayılan olarak izin verilir. Güvenilir bir fake-IP veya saydam proxy medya indirmeleri sırasındaapi.telegram.orgadresini başka bir özel/dahili/özel kullanımlı adrese yeniden yazıyorsa, Telegram’a özel bu baypası etkinleştirebilirsiniz:
- Aynı isteğe bağlı etkinleştirme hesap başına da
channels.telegram.accounts.<accountId>.network.dangerouslyAllowPrivateNetworküzerinden kullanılabilir. - Proxy’niz Telegram medya ana bilgisayarlarını
198.18.x.xiçine çözümlüyorsa, önce tehlikeli bayrağı kapalı bırakın. Telegram medyası zaten RFC 2544 benchmark aralığına varsayılan olarak izin verir.
- Ortam değişkeni 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:
Telegram config başvuru işaretçileri
Birincil başvuru:-
channels.telegram.enabled: kanal başlatmayı etkinleştirir/devre dışı bırakır. -
channels.telegram.botToken: bot token’ı (BotFather). -
channels.telegram.tokenFile: token’ı normal bir dosya yolundan okur. Sembolik bağlantılar reddedilir. -
channels.telegram.dmPolicy:pairing | allowlist | open | disabled(varsayılan: pairing). -
channels.telegram.allowFrom: DM allowlist’i (sayısal Telegram kullanıcı kimlikleri).allowlist, en az bir gönderen kimliği gerektirir.open,"*"gerektirir.openclaw doctor --fix, eski@usernamegirdilerini kimliklere çözümleyebilir ve allowlist geçiş akışlarında pairing-store dosyalarından allowlist girdilerini geri alabilir. -
channels.telegram.actions.poll: Telegram anket oluşturmayı etkinleştirir veya devre dışı bırakır (varsayılan: etkin; yine desendMessagegerektirir). -
channels.telegram.defaultTo: açık bir--reply-toverilmediğinde CLI--deliveriçin kullanılan varsayılan Telegram hedefi. -
channels.telegram.groupPolicy:open | allowlist | disabled(varsayılan: allowlist). -
channels.telegram.groupAllowFrom: grup gönderen allowlist’i (sayısal Telegram kullanıcı kimlikleri).openclaw doctor --fix, eski@usernamegirdilerini kimliklere çözümleyebilir. Sayısal olmayan girdiler kimlik doğrulama sırasında yok sayılır. Grup kimlik doğrulaması DM pairing-store geri dönüşü kullanmaz (2026.2.25+). -
Çoklu hesap önceliği:
- İki veya daha fazla hesap kimliği yapılandırıldığında, varsayılan yönlendirmeyi açık hale getirmek için
channels.telegram.defaultAccountayarlayın (veyachannels.telegram.accounts.defaultekleyin). - İkisi de ayarlanmamışsa, OpenClaw ilk normalize edilmiş hesap kimliğine geri döner ve
openclaw doctoruyarı verir. channels.telegram.accounts.default.allowFromvechannels.telegram.accounts.default.groupAllowFromyalnızcadefaulthesabı için geçerlidir.- Adlandırılmış hesaplar, hesap düzeyi değerler ayarlanmadığında
channels.telegram.allowFromvechannels.telegram.groupAllowFromdeğerlerini devralır. - Adlandırılmış hesaplar,
channels.telegram.accounts.default.allowFrom/groupAllowFromdeğerlerini devralmaz.
- İki veya daha fazla hesap kimliği yapılandırıldığında, varsayılan yönlendirmeyi açık hale getirmek için
-
channels.telegram.groups: grup başına varsayılanlar + allowlist ("*"ile genel varsayılanlar kullanılır).channels.telegram.groups.<id>.groupPolicy: groupPolicy için grup başına geçersiz kılma (open | allowlist | disabled).channels.telegram.groups.<id>.requireMention: bahsetme geçitlemesi varsayılanı.channels.telegram.groups.<id>.skills: skill filtresi (atlanırsa = tüm Skills, boşsa = hiçbiri).channels.telegram.groups.<id>.allowFrom: grup başına gönderen allowlist’i geçersiz kılması.channels.telegram.groups.<id>.systemPrompt: grup için ek sistem istemi.channels.telegram.groups.<id>.enabled:falseolduğunda grubu devre dışı bırakır.channels.telegram.groups.<id>.topics.<threadId>.*: konu başına geçersiz kılmalar (grup alanları + konuya özelagentId).channels.telegram.groups.<id>.topics.<threadId>.agentId: bu konuyu belirli bir ajana yönlendirir (grup düzeyi ve bağlama yönlendirmesini geçersiz kılar).
-
channels.telegram.groups.<id>.topics.<threadId>.groupPolicy: groupPolicy için konu başına geçersiz kılma (open | allowlist | disabled). -
channels.telegram.groups.<id>.topics.<threadId>.requireMention: konu başına bahsetme geçitlemesi geçersiz kılması. -
type: "acp"vematch.peer.idiçinde kurallı konu kimliğichatId:topic:topicIdbulunan üst düzeybindings[]: kalıcı ACP konu bağlama alanları (bkz. ACP Ajanları). -
channels.telegram.direct.<id>.topics.<threadId>.agentId: DM konularını belirli bir ajana yönlendirir (forum konularıyla aynı davranış). -
channels.telegram.execApprovals.enabled: Telegram’ı bu hesap için sohbet tabanlı exec onay istemcisi olarak etkinleştirir. -
channels.telegram.execApprovals.approvers: exec isteklerini onaylamasına veya reddetmesine izin verilen Telegram kullanıcı kimlikleri.channels.telegram.allowFromveya doğrudanchannels.telegram.defaultTozaten sahibini tanımlıyorsa isteğe bağlıdır. -
channels.telegram.execApprovals.target:dm | channel | both(varsayılan:dm).channelveboth, mevcut olduğunda kaynak Telegram konusunu korur. -
channels.telegram.execApprovals.agentFilter: iletilen onay istemleri için isteğe bağlı ajan kimliği filtresi. -
channels.telegram.execApprovals.sessionFilter: iletilen onay istemleri için isteğe bağlı oturum anahtarı filtresi (alt dize veya regex). -
channels.telegram.accounts.<account>.execApprovals: Telegram exec onay yönlendirmesi ve onaylayıcı yetkilendirmesi için hesap başına geçersiz kılma. -
channels.telegram.capabilities.inlineButtons:off | dm | group | all | allowlist(varsayılan: allowlist). -
channels.telegram.accounts.<account>.capabilities.inlineButtons: hesap başına geçersiz kılma. -
channels.telegram.commands.nativeSkills: Telegram yerel skills komutlarını etkinleştirir/devre dışı bırakır. -
channels.telegram.replyToMode:off | first | all(varsayılan:off). -
channels.telegram.textChunkLimit: giden parça boyutu (karakter). -
channels.telegram.chunkMode: uzunluk parçalamadan önce boş satırlarda (paragraf sınırlarında) bölmek içinlength(varsayılan) veyanewline. -
channels.telegram.linkPreview: giden mesajlar için link önizlemelerini açıp kapatır (varsayılan: true). -
channels.telegram.streaming:off | partial | block | progress(canlı akış önizlemesi; varsayılan:partial;progress,partialolarak eşlenir;block, eski önizleme modu uyumluluğudur). Telegram önizleme akışı, yerinde düzenlenen tek bir önizleme mesajı kullanır. -
channels.telegram.mediaMaxMb: gelen/giden Telegram medya üst sınırı (MB, varsayılan: 100). -
channels.telegram.retry: kurtarılabilir giden API hatalarında Telegram gönderim yardımcıları (CLI/tools/actions) için yeniden deneme ilkesi (deneme sayısı, minDelayMs, maxDelayMs, jitter). -
channels.telegram.network.autoSelectFamily: Node autoSelectFamily’yi geçersiz kılar (true=etkin, false=devre dışı). Varsayılan olarak Node 22+ üzerinde etkindir, WSL2’de varsayılan olarak devre dışıdır. -
channels.telegram.network.dnsResultOrder: DNS sonuç sırasını geçersiz kılar (ipv4firstveyaverbatim). Varsayılan olarak Node 22+ üzerindeipv4firstkullanılır. -
channels.telegram.network.dangerouslyAllowPrivateNetwork: Telegram medya indirmelerininapi.telegram.orgadresini varsayılan RFC 2544 benchmark aralığı izni dışındaki özel/dahili/özel kullanımlı adreslere çözümlediği güvenilir fake-IP veya saydam proxy ortamları için tehlikeli isteğe bağlı etkinleştirme. -
channels.telegram.proxy: Bot API çağrıları için proxy URL’si (SOCKS/HTTP). -
channels.telegram.webhookUrl: webhook modunu etkinleştirir (channels.telegram.webhookSecretgerektirir). -
channels.telegram.webhookSecret: webhook gizli anahtarı (webhookUrlayarlandığında gereklidir). -
channels.telegram.webhookPath: yerel webhook yolu (varsayılan/telegram-webhook). -
channels.telegram.webhookHost: yerel webhook bağlama ana bilgisayarı (varsayılan127.0.0.1). -
channels.telegram.webhookPort: yerel webhook bağlama bağlantı noktası (varsayılan8787). -
channels.telegram.actions.reactions: Telegram araç tepkilerini geçitler. -
channels.telegram.actions.sendMessage: Telegram araç mesaj gönderimlerini geçitler. -
channels.telegram.actions.deleteMessage: Telegram araç mesaj silmelerini geçitler. -
channels.telegram.actions.sticker: Telegram sticker eylemlerini — gönderme ve arama — geçitler (varsayılan: false). -
channels.telegram.reactionNotifications:off | own | all— hangi tepkilerin sistem olaylarını tetiklediğini kontrol eder (ayarlanmadığında varsayılan:own). -
channels.telegram.reactionLevel:off | ack | minimal | extensive— ajanın tepki yeteneğini kontrol eder (ayarlanmadığında varsayılan:minimal). -
channels.telegram.errorPolicy:reply | silent— hata yanıtı davranışını kontrol eder (varsayılan:reply). Hesap/grup/konu başına geçersiz kılmalar desteklenir. -
channels.telegram.errorCooldownMs: aynı sohbete hata yanıtları arasındaki minimum ms (varsayılan:60000). Kesintiler sırasında hata spam’ini önler. - Yapılandırma başvurusu - Telegram
- başlangıç/kimlik doğrulama:
enabled,botToken,tokenFile,accounts.*(tokenFilenormal bir dosyayı işaret etmelidir; sembolik bağlantılar 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 - akış:
streaming(önizleme),blockStreaming - biçimlendirme/teslimat:
textChunkLimit,chunkMode,linkPreview,responsePrefix - medya/ağ:
mediaMaxMb,timeoutSeconds,retry,network.autoSelectFamily,network.dangerouslyAllowPrivateNetwork,proxy - webhook:
webhookUrl,webhookSecret,webhookPath,webhookHost - eylemler/yetenekler:
capabilities.inlineButtons,actions.sendMessage|editMessage|deleteMessage|reactions|sticker - tepkiler:
reactionNotifications,reactionLevel - hatalar:
errorPolicy,errorCooldownMs - yazımlar/geçmiş:
configWrites,historyLimit,dmHistoryLimit,dms.*.historyLimit