Telegram Ops
Manage Telegram forum topics and Bot API operations.
Prerequisites
- - Bot must be admin in the group with
can_manage_topics permission - Get the bot token from OpenClaw config:
CODEBLOCK0
Creating a Topic
When creating a topic, follow all of these steps:
- 1. Create the topic via Telegram Bot API (returns
message_thread_id) - Set the icon -- pick one that matches the topic's purpose (see Icon Reference)
- Choose relevant skills -- run
openclaw skills list, pick only ready skills that fit the topic's purpose - Write a system prompt -- give the agent context for what this topic is about
- Patch the OpenClaw config -- register the topic with its skills and system prompt
Step 1: Create via Bot API
CODEBLOCK1
Returns message_thread_id (the topic ID) -- you need this for all subsequent steps.
Step 2: Set the Icon
CODEBLOCK2
Step 3-5: Configure OpenClaw
Patch the config to register the topic with a system prompt:
CODEBLOCK3
Topic configs inherit from the parent group -- only specify overrides.
Do NOT add a skills key -- omitting it means all skills are available. Only restrict skills if you have a specific reason to limit the topic's capabilities.
Session Keys
Each topic gets its own isolated OpenClaw session:
CODEBLOCK4
Each session has independent conversation history, context window, and compaction.
Topic Icons
| Emoji | ID | Use Case |
|---|
| ⚡ | INLINECODE6 | Ops, speed, alerts |
| 💡 |
5312536423851630001 | Ideas, suggestions |
| 📰 |
5434144690511290129 | News, announcements |
| 🔥 |
5312241539987020022 | Hot topics, urgent |
| ❤️ |
5312138559556164615 | Community, love |
| 📝 |
5373251851074415873 | Notes, documentation |
| 🤖 |
5309832892262654231 | Bots, automation |
| 💬 |
5417915203100613993 | Chat, discussion |
| 📊 |
5350305691942788490 | Stats, analytics |
| 🎯 |
5418085807791545980 | Goals, targets |
See references/emoji-ids.md for complete list.
To fetch all valid icon sticker IDs:
CODEBLOCK5
Archiving a Topic
Archive workflow: rename with [ARCHIVED] prefix, set folder icon, close topic, then handle the OpenClaw session.
Step 1: Archive in Telegram
Use the archive script:
CODEBLOCK6
This will:
- - Rename to INLINECODE18
- Set the 📁 folder icon (
5357315181649076022) - Close the topic (locks it from new messages)
Step 2: Export and Delete OpenClaw Session
CODEBLOCK7
Step 3: Clean Up Config (Optional)
Remove the topic from OpenClaw config if it had custom settings:
CODEBLOCK8
Limitations
No getForumTopicInfo method exists. Cannot query topic name by thread ID.
Workarounds:
- 1. Cache names from
forum_topic_created events - Store mapping in local config
- Monitor topic creation service messages
Telegram 运维
管理 Telegram 论坛主题和 Bot API 操作。
前置条件
- - 机器人必须是群组管理员,并拥有 canmanagetopics 权限
- 从 OpenClaw 配置中获取机器人令牌:
bash
gateway action=config.get | jq -r .result.parsed.channels.telegram.botToken
创建主题
创建主题时,请遵循以下所有步骤:
- 1. 通过 Telegram Bot API 创建主题(返回 messagethreadid)
- 设置图标 -- 选择一个与主题用途匹配的图标(参见图标参考)
- 选择相关技能 -- 运行 openclaw skills list,仅选择与主题用途匹配的 ready 技能
- 编写系统提示 -- 为代理提供该主题的上下文说明
- 修补 OpenClaw 配置 -- 将主题及其技能和系统提示注册到配置中
步骤 1:通过 Bot API 创建
bash
curl -X POST https://api.telegram.org/bot/createForumTopic \
-H Content-Type: application/json \
-d {
chatid: ID>,
name: 主题名称
}
返回 messagethreadid(主题 ID)-- 后续所有步骤都需要此 ID。
步骤 2:设置图标
bash
curl -X POST https://api.telegram.org/bot/editForumTopic \
-H Content-Type: application/json \
-d {
chatid: ID>,
messagethreadid: ,
name: 主题名称,
iconcustomemojiid: ID>
}
步骤 3-5:配置 OpenClaw
修补配置以注册主题及其系统提示:
bash
gateway action=config.patch raw={channels:{telegram:{groups:{ID>:{topics:{ID>:{systemPrompt:主题特定指令}}}}}}}
主题配置继承自父级群组 -- 仅指定需要覆盖的项。
不要添加 skills 键 -- 省略该键表示所有技能均可用。仅在你有特定理由限制主题能力时才限制技能。
会话密钥
每个主题拥有独立的 OpenClaw 会话:
agent:main:telegram:group:ID>:topic:ID>
每个会话具有独立的对话历史、上下文窗口和压缩机制。
主题图标
| 表情符号 | ID | 用途 |
|---|
| ⚡ | 5312016608254762256 | 运维、速度、告警 |
| 💡 |
5312536423851630001 | 创意、建议 |
| 📰 | 5434144690511290129 | 新闻、公告 |
| 🔥 | 5312241539987020022 | 热门话题、紧急事项 |
| ❤️ | 5312138559556164615 | 社区、关爱 |
| 📝 | 5373251851074415873 | 笔记、文档 |
| 🤖 | 5309832892262654231 | 机器人、自动化 |
| 💬 | 5417915203100613993 | 聊天、讨论 |
| 📊 | 5350305691942788490 | 统计、分析 |
| 🎯 | 5418085807791545980 | 目标、指标 |
完整列表请参见 references/emoji-ids.md。
获取所有有效图标贴纸 ID:
bash
curl -X POST https://api.telegram.org/bot/getForumTopicIconStickers
归档主题
归档流程:以 [ARCHIVED] 前缀重命名、设置文件夹图标、关闭主题,然后处理 OpenClaw 会话。
步骤 1:在 Telegram 中归档
使用归档脚本:
bash
scripts/archivetopic.sh ID> 当前主题名称
该脚本将:
- - 重命名为 [ARCHIVED] 当前主题名称
- 设置 📁 文件夹图标(5357315181649076022)
- 关闭主题(锁定新消息)
步骤 2:导出并删除 OpenClaw 会话
bash
将会话历史导出到会话归档文件夹
openclaw sessions history agent:main:telegram:group:
ID>:topic:ID> > ~/.openclaw/agents/main/sessions/archive/<主题名称>-<日期>.md
删除会话(手动操作 - 从 sessions.json 中移除并删除记录文件)
会话密钥:agent:main:telegram:group:ID>:topic:ID>
步骤 3:清理配置(可选)
如果主题有自定义设置,从 OpenClaw 配置中移除该主题:
bash
gateway action=config.patch raw={channels:{telegram:{groups:{ID>:{topics:{ID>:null}}}}}}
限制
不存在 getForumTopicInfo 方法。 无法通过线程 ID 查询主题名称。
解决方案:
- 1. 从 forumtopiccreated 事件中缓存名称
- 在本地配置中存储映射关系
- 监控主题创建服务消息