Telegram (Bot API)
Status: produktionsredo för bot DMs + grupper via grammY. Lång-polling som standard; webhook valfritt.Snabb konfigurering (nybörjare)
- Skapa en bot med @BotFather (direkt länk). Bekräfta att handtaget är exakt
@BotFather, sedan kopiera token. - Ange token:
- Env:
TELEGRAM_BOT_TOKEN=... - Eller konfig:
channels.telegram.botToken: "...". - Om båda är satta har konfig företräde (env‑fallback gäller endast standardkontot).
- Env:
- Starta gateway.
- DM‑åtkomst är parkoppling som standard; godkänn parkopplingskoden vid första kontakt.
Vad det är
- En Telegram Bot API‑kanal som ägs av Gateway.
- Deterministisk routning: svar går tillbaka till Telegram; modellen väljer aldrig kanaler.
- DM:er delar agentens huvudsession; grupper hålls isolerade (
agent:<agentId>:telegram:group:<chatId>).
Konfigurering (snabb väg)
1. Skapa en bot‑token (BotFather)
- Öppna Telegram och chatta med @BotFather (direkt länk). Bekräfta att handtaget är exakt
@BotFather. - Kör
/newbot, och följ sedan anvisningarna (namn + användarnamn som slutar påbot). - Kopiera token och lagra den säkert.
/setjoingroups— tillåt/förbjud att lägga till boten i grupper./setprivacy— styr om boten ser alla gruppmeddelanden.
2. Konfigurera token (env eller konfig)
Exempel:TELEGRAM_BOT_TOKEN=... (fungerar för standardkontot).
Om både env och konfig är satta har konfig företräde.
Stöd för flera konton: använd channels.telegram.accounts med per-konto-token och valfri name. Se gateway/configuration för det delade mönstret.
- Starta gatewayn. Telegram startar när en token är löst (config först, env fallback).
- DM åtkomststandard är att para. Godkänn koden när botten först kontaktas.
- För grupper: lägg till boten, bestäm sekretess/admin‑beteende (nedan) och sätt sedan
channels.telegram.groupsför att styra nämningskrav + tillåtelselistor.
Token + sekretess + behörigheter (Telegram‑sidan)
Token‑skapande (BotFather)
/newbotskapar boten och returnerar token (håll den hemlig).- Om en token läcker, återkalla/återskapa den via @BotFather och uppdatera din konfig.
Synlighet av gruppmeddelanden (Privacy Mode)
Telegram bottar standard till Sekretessläge, vilket begränsar vilka gruppmeddelanden de får. Om din bot måste se all gruppmeddelanden har du två alternativ:- Inaktivera sekretessläge med
/setprivacyeller - Lägg till boten som admin i gruppen (admin‑botar tar emot alla meddelanden).
Gruppbehörigheter (admin‑rättigheter)
Administratörsstatus är inställd i gruppen (Telegram UI). Admin-robotar får alltid alla gruppmeddelanden, så använd admin om du behöver full synlighet.Hur det fungerar (beteende)
- Inkommande meddelanden normaliseras till det delade kanalomslaget med svarskontext och medieplatshållare.
- Gruppsvar kräver nämning som standard (inbyggd @‑nämning eller
agents.list[].groupChat.mentionPatterns/messages.groupChat.mentionPatterns). - Multi‑agent‑override: sätt mönster per agent på
agents.list[].groupChat.mentionPatterns. - Svar routas alltid tillbaka till samma Telegram‑chatt.
- Long‑polling använder grammY‑runner med sekvensering per chatt; total samtidighet begränsas av
agents.defaults.maxConcurrent. - Telegram Bot API stöder inte läskvitton; det finns inget
sendReadReceipts‑alternativ.
Utkast‑streaming
OpenClaw kan strömma partiella svar i Telegram‑DM:er medsendMessageDraft.
Krav:
- Trådat läge aktiverat för boten i @BotFather (forum‑ämnesläge).
- Endast privata chatttrådar (Telegram inkluderar
message_thread_idi inkommande meddelanden). channels.telegram.streamModeinte satt till"off"(standard:"partial","block"aktiverar chunkade utkastuppdateringar).
Formatering (Telegram HTML)
- Utgående Telegram‑text använder
parse_mode: "HTML"(Telegram’s stödda tagg‑delmängd). - Markdown‑liknande indata renderas till Telegram‑säker HTML (fet/kursiv/genomstruken/kod/länkar); blockelement plattas till text med radbrytningar/punktlistor.
- Rå HTML från modeller escap:as för att undvika Telegram‑parsningfel.
- Om Telegram avvisar HTML‑payloaden försöker OpenClaw igen med samma meddelande som vanlig text.
Kommandon (inbyggda + egna)
OpenClaw registrerar infödda kommandon (som/status, /reset, /model) med Telegrams bot meny vid start.
Du kan lägga till anpassade kommandon till menyn via config:
Felsökning vid konfigurering (kommandon)
setMyCommands failedi loggarna betyder oftast att utgående HTTPS/DNS blockeras tillapi.telegram.org.- Om du ser
sendMessageellersendChatAction‑fel, kontrollera IPv6‑routning och DNS.
- Egna kommandon är endast menyval; OpenClaw implementerar dem inte om du inte hanterar dem någon annanstans.
- Some commands can be handled by plugins/skills without being registered in Telegram’s command menu. These still work when typed (they just won’t show up in
/commands/ the menu). - Kommandonamn normaliseras (inledande
/tas bort, gemener) och måste matchaa-z,0-9,_(1–32 tecken). - Anpassade kommandon kan inte åsidosätta infödda kommandon. Konflikter ignoreras och loggas.
- Om
commands.nativeär inaktiverat registreras endast egna kommandon (eller rensas om inga finns).
Device pairing commands (device-pair plugin)
If the device-pair plugin is installed, it adds a Telegram-first flow for pairing a new phone:
/pairgenerates a setup code (sent as a separate message for easy copy/paste).- Paste the setup code in the iOS app to connect.
/pair approveapproves the latest pending device request.
Begränsningar
- Utgående text delas upp till
channels.telegram.textChunkLimit(standard 4000). - Valfri radbrytnings‑chunkning: sätt
channels.telegram.chunkMode="newline"för att dela på tomrader (styckegränser) före längd‑chunkning. - Nedladdning/uppladdning av media begränsas av
channels.telegram.mediaMaxMb(standard 5). - Telegram Bot API begär tid ut efter
channels.telegram.timeoutSeconds(standard 500 via grammY). Ställ in lägre för att undvika långa hängningar. - Grupphistorik sammanhang använder
channels.telegram.historyLimit(ellerchannels.telegram.accounts.*.historyLimit), faller tillbaka tillmessages.groupChat.historyLimit. Sätt0till att inaktivera (standard 50). - DM historik kan begränsas med
channels.telegram.dmHistoryLimit(användarvänder). Åsidosättningar per användare:channels.telegram.dms["<user_id>"].historyLimit.
Gruppaktiveringslägen
Som standard svarar boten endast på omnämnanden i grupper (@botname eller mönster i agents.list[].groupChat.mentionPatterns). För att ändra detta beteende:
Via konfig (rekommenderas)
channels.telegram.groups skapar en allowlist - endast listade grupper (eller "*") kommer att accepteras.
Forumämnen ärver deras överordnade gruppkonfiguration (allowFrom, requireNämna, färdigheter, prompts) såvida du inte lägger till per-topic overrides under channels.telegram.groups.<groupId>.trådar.<topicId>.
För att tillåta alla grupper med alltid‑svara:
Via kommando (sessionsnivå)
Skicka i gruppen:/activation always– svara på alla meddelanden/activation mention– kräv nämningar (standard)
Hämta gruppens chatt‑ID
Vidarebefordra valfritt meddelande från gruppen till@userinfobot eller @getidsbot på Telegram för att se chatt‑ID (negativt tal som -1001234567890).
Tips: För ditt eget användar‑ID, DM:a boten så svarar den med ditt användar‑ID (parkopplingsmeddelande), eller använd /whoami när kommandon är aktiverade.
Sekretessanteckning: @userinfobot är en tredjepartsbot. Om du föredrar, lägg till boten till gruppen, skicka ett meddelande och använd openclaw loggar --follow för att läsa chat. d, eller använd Bot API getUpdates.
Konfigskrivningar
Som standard tillåts Telegram att skriva konfiguppdateringar som triggas av kanalhändelser eller/config set|unset.
Detta sker när:
- En grupp uppgraderas till en supergrupp och Telegram avger
migrate_to_chat_id(chatt ID ändringar). OpenClaw kan migrerachannels.telegram.groupsautomatiskt. - Du kör
/config seteller/config unseti en Telegram‑chatt (krävercommands.config: true).
Ämnen (forum‑supergrupper)
Telegram forumtrådar innehåller enmessage_thread_id per meddelande. OpenClaw:
- Lägger till
:topic:<threadId>till Telegram‑gruppens sessionsnyckel så att varje ämne isoleras. - Skickar skrivindikatorer och svar med
message_thread_idså att svaren stannar i ämnet. - Allmänt ämne (tråd‑ID
1) är speciellt: meddelandesändningar utelämnarmessage_thread_id(Telegram avvisar det), men skrivindikatorer inkluderar det fortfarande. - Exponerar
MessageThreadId+IsForumi mallkontext för routning/mallning. - Ämnesspecifik konfiguration finns under
channels.telegram.groups<chatId>.trådar.<threadId>(färdigheter, tillåtna listor, auto-svara, systemmeddelanden, inaktivera). - Ämneskonfig ärver gruppinställningar (requireMention, tillåtelselistor, skills, prompter, aktiverad) om de inte åsidosätts per ämne.
message_thread_id i vissa kantfall. OpenClaw håller DM-sessionsnyckeln oförändrad, men använder fortfarande tråd-id för svar/utkast-streaming när den är närvarande.
Inline‑knappar
Telegram stöder inline‑tangentbord med callback‑knappar.off— inline‑knappar inaktiveradedm— endast DM:er (gruppmål blockeras)group— endast grupper (DM‑mål blockeras)all— DM:er + grupperallowlist— DM:er + grupper, men endast avsändare som tillåts avallowFrom/groupAllowFrom(samma regler som kontrollkommandon)
allowlist.
Legacy: kapaciteter: ["inlineButtons"] = inlineButtons: "all".
Skicka knappar
Använd meddelandeverktyget med parameternbuttons:
callback_data: value
Konfigurationsalternativ
Telegram‑funktioner kan konfigureras på två nivåer (objektform visas ovan; äldre strängarrayer stöds fortfarande):channels.telegram.capabilities: Global standard‑kapabilitetskonfig som tillämpas på alla Telegram‑konton om inget åsidosätter.channels.telegram.accounts.<account>.capabilities: Per-account funktioner som åsidosätter de globala standardinställningarna för det specifika kontot.
Åtkomstkontroll (DM:er + grupper)
DM‑åtkomst
- Standard:
channels.telegram.dmPolicy = "pairing". Okända avsändare får en parningskod; meddelanden ignoreras tills de godkänts (koder upphör efter 1 timme). - Godkänn via:
openclaw pairing list telegramopenclaw pairing approve telegram <CODE>
- Parkoppling är standard token exchange används för Telegram DMs. Detaljer: Pairing
channels.telegram.allowFromaccepterar numeriska användar-ID (rekommenderas) eller@username-poster. Det är inte bot användarnamn; använd den mänskliga avsändarens ID. Guiden accepterar@usernameoch löser det till numeriskt ID när det är möjligt.
Hitta ditt Telegram‑användar‑ID
Säkrare (ingen tredjepartsbot):- Starta gateway och DM:a din bot.
- Kör
openclaw logs --followoch leta efterfrom.id.
- DM:a din bot.
-
Hämta uppdateringar med din bot‑token och läs
message.from.id:
- DM:a
@userinfoboteller@getidsbotoch använd det returnerade användar‑ID:t.
Gruppåtkomst
Två oberoende kontroller: 1. Vilka grupper är tillåtna (grupp tillåten lista viachannels.telegram.groups):
- Ingen
groups‑konfig = alla grupper tillåtna - Med
groups‑konfig = endast listade grupper eller"*"tillåts - Exempel:
"groups": { "-1001234567890": {}, "*": {} }tillåter alla grupper
channels.telegram.groupPolicy):
"open"= alla avsändare i tillåtna grupper kan skriva"allowlist"= endast avsändare ichannels.telegram.groupAllowFromkan skriva"disabled"= inga gruppmeddelanden accepteras alls Standard ärgroupPolicy: "allowlist"(blockerat om du inte lägger tillgroupAllowFrom).
groupPolicy: "allowlist" + groupAllowFrom + specifika grupper listade i channels.telegram.groups
För att tillåta alla gruppmedlemmar att prata i en specifik grupp (samtidigt som kontrollkommandon förblir begränsade till auktoriserade avsändare), sätt en per‑grupp‑överskrivning:
Long‑polling vs webhook
- Standard: long‑polling (ingen publik URL krävs).
- Webhook‑läge: sätt
channels.telegram.webhookUrlochchannels.telegram.webhookSecret(valfrittchannels.telegram.webhookPath).- Den lokala lyssnaren binder till
0.0.0.0:8787och serverarPOST /telegram-webhooksom standard. - Om din publika URL är annorlunda, använd en reverse proxy och peka
channels.telegram.webhookUrlmot den publika ändpunkten.
- Den lokala lyssnaren binder till
Svarstrådning
Telegram stöder valfri trådad svarning via taggar:[[reply_to_current]]— svara på det utlösande meddelandet.[[reply_to:<id>]]— svara på ett specifikt meddelande‑ID.
channels.telegram.replyToMode:
first(standard),all,off.
Ljudmeddelanden (röst vs fil)
Telegram särskiljer röstanteckningar (runda bubblor) från ljudfiler (metadatakort). OpenClaw standard är ljudfiler för bakåtkompatibilitet. För att tvinga röstanteckningsbubbla i agentsvar, inkludera denna tagg var som helst i svaret:[[audio_as_voice]]— skicka ljud som röstanteckning i stället för fil.
asVoice: true med en röstkompatibel ljud‑media‑URL
(message är valfri när media finns):
Video messages (video vs video note)
Telegram distinguishes video notes (round bubble) from video files (rectangular). OpenClaw defaults to video files. For message tool sends, setasVideoNote: true with a video media URL:
Klistermärken
OpenClaw stöder mottagning och sändning av Telegram‑klistermärken med intelligent cachelagring.Ta emot klistermärken
När en användare skickar ett klistermärke hanterar OpenClaw det baserat på typ:- Statiska klistermärken (WEBP): Nedladdade och bearbetade genom syn. Klistermärket visas som en
<media:sticker>platshållare i meddelandets innehåll. - Animerade klistermärken (TGS): Hoppas över (Lottie‑format stöds inte för bearbetning).
- Videoklistermärken (WEBM): Hoppas över (videoformat stöds inte för bearbetning).
Sticker— objekt med:emoji— emoji kopplad till klistermärketsetName— namn på klistermärkesetetfileId— Telegram‑fil‑ID (skicka samma klistermärke tillbaka)fileUniqueId— stabilt ID för cache‑uppslagcachedDescription— cachad visionsbeskrivning när tillgänglig
Klistermärkes‑cache
Klistermärken behandlas genom AI:s visionsförmåga för att generera beskrivningar. Eftersom samma klistermärken ofta skickas upprepade gånger cachelagrar OpenClaw dessa beskrivningar för att undvika överflödiga API-samtal. Så fungerar det:- Första träffen: Klistermärkesbilden skickas till AI för synanalys. AI genererar en beskrivning (t.ex., “En tecknad katt viftar entusiastiskt”).
- Cache‑lagring: Beskrivningen sparas tillsammans med klistermärkesfil‑ID, emoji och set‑namn.
- Efterföljande möten: När samma dekal ses igen används den cachade beskrivningen direkt. Bilden skickas inte till AI.
~/.openclaw/telegram/sticker-cache.json
Cache‑postformat:
- Minskar API‑kostnader genom att undvika upprepade visionsanrop för samma klistermärke
- Snabbare svarstider för cachade klistermärken (ingen visionsfördröjning)
- Möjliggör klistermärkesökning baserad på cachade beskrivningar
Skicka klistermärken
Agenten kan skicka och söka klistermärken med hjälp avsticker och sticker-search åtgärder. Dessa är inaktiverade som standard och måste aktiveras i konfigurationen:
fileId(obligatoriskt) — Telegram fil-ID för klistermärket. Få detta frånSticker.fileIdnär du tar emot en klistermärke, eller från ettsticker-search-resultat.replyTo(valfri) — meddelande‑ID att svara på.threadId(valfri) — meddelandetråd‑ID för forumämnen.
Streaming (utkast)
Telegram kan strömma utkast bubblor medan agenten genererar ett svar. OpenClaw använder Bot APIsendMessageDraft (inte riktiga meddelanden) och skickar sedan det
slutliga svaret som ett normalt meddelande.
Krav (Telegram Bot API 9.3+):
- Privata chattar med ämnen aktiverade (forum‑ämnesläge för boten).
- Inkommande meddelanden måste inkludera
message_thread_id(privat ämnestråd). - Streaming ignoreras för grupper/supergrupper/kanaler.
channels.telegram.streamMode: "off" | "partial" | "block"(standard:partial)partial: uppdatera utkastbubblan med den senaste strömningstexten.block: uppdatera utkastbubblan i större block (chunkat).off: inaktivera utkast‑streaming.
- Valfritt (endast för
streamMode: "block"):channels.telegram.draftChunk: { minChars?, maxChars?, breakPreference? }- standardvärden:
minChars: 200,maxChars: 800,breakPreference: "paragraph"(begränsat tillchannels.telegram.textChunkLimit).
- standardvärden:
channels.telegram.blockStreaming: true
om du vill ha tidiga Telegram meddelanden istället för utkast uppdateringar.
Resonemangsström (endast Telegram):
/reasoning streamströmmar resonemang till utkastbubblan medan svaret genereras, och skickar sedan det slutliga svaret utan resonemang.- Om
channels.telegram.streamModeäroff, är resonerande ström inaktiverad. Mer sammanhang: Streaming + chunking.
Policy för omförsök
Utgående Telegram API-anrop försök igen på flyktiga nätverk/429-fel med exponentiell backoff och jitter. Konfigurera viachannels.telegram.retry. Se Försök igen policy.
Agentverktyg (meddelanden + reaktioner)
- Verktyg:
telegrammed åtgärdensendMessage(to,content, valfrittmediaUrl,replyToMessageId,messageThreadId). - Verktyg:
telegrammed åtgärdenreact(chatId,messageId,emoji). - Verktyg:
telegrammed åtgärdendeleteMessage(chatId,messageId). - Semantik för borttagning av reaktioner: se /tools/reactions.
- Verktygsgating:
channels.telegram.actions.reactions,channels.telegram.actions.sendMessage,channels.telegram.actions.deleteMessage(standard: aktiverad) ochchannels.telegram.actions.sticker(standard: inaktiverad).
Reaktionsnotifieringar
Hur reaktioner fungerar: Telegram reaktioner anländer som separatamessage_reaktion-händelser, inte som egenskaper i meddelanden nyttolaster. När en användare lägger till en reaktion, OpenClaw:
- Tar emot
message_reaction‑uppdateringen från Telegram API - Konverterar den till en systemhändelse med format:
"Telegram reaction added: {emoji} by {user} on msg {id}" - Köar systemhändelsen med samma sessionsnyckel som vanliga meddelanden
- När nästa meddelande anländer i konversationen töms systemhändelserna och förhandsläggs i agentens kontext
-
channels.telegram.reactionNotifications: Styr vilka reaktioner som triggar notifieringar"off"— ignorera alla reaktioner"own"— notifiera när användare reagerar på botmeddelanden (best effort; i minnet) (standard)"all"— notifiera för alla reaktioner
-
channels.telegram.reactionLevel: Styr agentens reaktionsförmåga"off"— agenten kan inte reagera på meddelanden"ack"— boten skickar bekräftelsereaktioner (👀 under bearbetning) (standard)"minimal"— agenten kan reagera sparsamt (riktlinje: 1 per 5–10 utbyten)"extensive"— agenten kan reagera generöst när lämpligt
message_thread_id och använder sessionsnycklar som agent:main:telegram:group:{chatId}:topic:{threadId}. Detta säkerställer reaktioner och meddelanden i samma ämne hålla ihop.
Exempelkonfig:
- Telegram‑botar måste uttryckligen begära
message_reactioniallowed_updates(konfigureras automatiskt av OpenClaw) - I webhook‑läge inkluderas reaktioner i webhook‑
allowed_updates - I polling‑läge inkluderas reaktioner i
getUpdatesallowed_updates
Leveransmål (CLI/cron)
- Använd ett chatt‑ID (
123456789) eller ett användarnamn (@name) som mål. - Exempel:
openclaw message send --channel telegram --target 123456789 --message "hi".
Felsökning
Boten svarar inte på icke‑nämnda meddelanden i en grupp:- Om du satte
channels.telegram.groups.*.requireMention=falsemåste Telegrams Bot API sekretessläge vara inaktiverat.- BotFather:
/setprivacy→ Disable (ta sedan bort + lägg till boten i gruppen igen)
- BotFather:
openclaw channels statusvisar en varning när konfig förväntar sig onämnda gruppmeddelanden.openclaw channels status --probekan dessutom kontrollera medlemskap för explicita numeriska grupp‑ID:n (den kan inte granska wildcard‑regler som"*").- Snabbtest:
/activation always(endast session; använd konfig för beständighet)
- Om
channels.telegram.groupsär satt måste gruppen vara listad eller använda"*" - Kontrollera sekretessinställningar i @BotFather → ”Group Privacy” ska vara OFF
- Verifiera att boten faktiskt är medlem (inte bara admin utan läsåtkomst)
- Kontrollera gateway‑loggar:
openclaw logs --follow(leta efter ”skipping group message”)
/activation always:
- Kommandot
/activationuppdaterar sessionsstatus men sparar inte i konfig - För beständigt beteende, lägg till gruppen i
channels.telegram.groupsmedrequireMention: false
/status fungerar inte:
- Säkerställ att ditt Telegram‑användar‑ID är auktoriserat (via parkoppling eller
channels.telegram.allowFrom) - Kommandon kräver auktorisering även i grupper med
groupPolicy: "open"
- Node 22+ är striktare med
AbortSignal‑instanser; främmande signaler kan avbrytafetch‑anrop direkt. - Uppgradera till en OpenClaw‑build som normaliserar abort‑signaler, eller kör gateway på Node 20 tills du kan uppgradera.
HttpError: Nätverksförfrågan ... misslyckades):
- Vissa värdar löser
api.telegram.orgtill IPv6 först. Om din server inte har fungerande IPv6-egress, kan grammy fastna på IPv6-förfrågningar. - Åtgärda genom att aktivera IPv6‑utgående trafik eller tvinga IPv4‑upplösning för
api.telegram.org(t.ex. lägg till en/etc/hosts‑post med IPv4‑A‑posten, eller föredra IPv4 i OS:ets DNS‑stack), och starta sedan om gateway. - Snabbkontroll:
dig +short api.telegram.org Aochdig +short api.telegram.org AAAAför att bekräfta vad DNS returnerar.
Konfigurationsreferens (Telegram)
Fullständig konfiguration: Konfiguration Leverantörsalternativ:channels.telegram.enabled: aktivera/inaktivera kanalstart.channels.telegram.botToken: bot‑token (BotFather).channels.telegram.tokenFile: läs token från filsökväg.channels.telegram.dmPolicy:pairing | allowlist | open | disabled(standard: parkoppling).channels.telegram.allowFrom: DM allowlist (ids/användarnamn).openkräver"*".channels.telegram.groupPolicy:open | allowlist | disabled(standard: tillåtelselista).channels.telegram.groupAllowFrom: grupp‑avsändar‑tillåtelselista (ID:n/användarnamn).channels.telegram.groups: per‑grupp‑standarder + tillåtelselista (använd"*"för globala standarder).channels.telegram.groups.<id>.groupPolicy: åsidosätt per grupp för groupPolicy (open <unk> allowlist <unk> disabled).channels.telegram.groups.<id>.requireMention: nämna gating default.channels.telegram.groups.<id>.skills: färdighetsfilter (utelämna = alla Skills, tom = inga).channels.telegram.groups.<id>.allowFrom: Avsändare per grupp tillåten lista åsidosätt.channels.telegram.groups.<id>.systemPrompt: extra systemprompt för gruppen.channels.telegram.groups.<id>.enabled: inaktivera gruppen närfalse.channels.telegram.groups.<id>.trådar.<threadId>.*: åsidosättningar per ämne (samma fält som grupp).channels.telegram.groups.<id>.trådar.<threadId>.groupPolicy: åsidosätt per ämne för groupPolicy (open <unk> allowlist <unk> disabled).channels.telegram.groups.<id>.trådar.<threadId>.requireMention: per ämne nämner gating override.
channels.telegram.capabilities.inlineButtons:off | dm | group | all | allowlist(standard: tillåtelselista).channels.telegram.accounts.<account>.capabilities.inlineButtons: åsidosätter per konto.channels.telegram.replyToMode:off | first | all(standard:first).channels.telegram.textChunkLimit: utgående chunk‑storlek (tecken).channels.telegram.chunkMode:length(standard) ellernewlineför att dela på tomrader (styckegränser) före längd‑chunkning.channels.telegram.linkPreview: växla länkförhandsvisningar för utgående meddelanden (standard: true).channels.telegram.streamMode:off | partial | block(utkast‑streaming).channels.telegram.mediaMaxMb: gräns för inkommande/utgående media (MB).channels.telegram.retry: policy för omförsök för utgående Telegram API‑anrop (försök, minDelayMs, maxDelayMs, jitter).channels.telegram.network.autoSelectFamily: åsidosätta Noden autoSelectFamily (true=enable, false=disable). Standard är inaktiverat på Node 22 för att undvika tidsgräns för Happy Eyeball.channels.telegram.proxy: proxy‑URL för Bot API‑anrop (SOCKS/HTTP).channels.telegram.webhookUrl: aktivera webhook‑läge (kräverchannels.telegram.webhookSecret).channels.telegram.webhookSecret: webhook‑hemlighet (krävs när webhookUrl är satt).channels.telegram.webhookPath: lokal webhook‑sökväg (standard/telegram-webhook).channels.telegram.actions.reactions: gate Telegram‑verktygsreaktioner.channels.telegram.actions.sendMessage: gate Telegram‑verktygets meddelandesändningar.channels.telegram.actions.deleteMessage: gate Telegram‑verktygets borttagning av meddelanden.channels.telegram.actions.sticker: gate Telegram‑klistermärkesåtgärder — skicka och sök (standard: false).channels.telegram.reactionNotifications:off | own | all— styr vilka reaktioner som triggar systemhändelser (standard:ownnär ej satt).channels.telegram.reactionLevel:off | ack | minimal | extensive— styr agentens reaktionsförmåga (standard:minimalnär ej satt).
agents.list[].groupChat.mentionPatterns(nämningsmönster).messages.groupChat.mentionPatterns(global fallback).commands.native(standard är"auto"→ on för Telegram/Discord, off för Slack),commands.text,commands.useAccessGroups(kommandobeteende). Åsidosätt medchannels.telegram.commands.native.messages.responsePrefix,messages.ackReaction,messages.ackReactionScope,messages.removeAckAfterReply.