telegram-group-summary 是一个用于汇总 Telegram 群组近期消息的技能。它负责抓取群组消息并生成结构化摘要,适合需要快速了解群内讨论内容的场景。
用途 当用户要求总结某个 Telegram 群组、回顾讨论内容或生成摘要时使用本技能。
主要能力
- 解析群组:借助 telegram-send 技能中的 list_groups.py 列出可用群组,按用户提供的群组名称做不区分大小写的模糊匹配,取得 chat_id。
- 抓取消息:运行 fetch_messages.py <chat_id>,支持 --limit N(默认 100)限制消息数量和 --since-hours N 限定时间窗口(如 168 表示最近 7 天)。
- 双数据源:优先扫描 OPENCLAW_STATE_DIR 下的 .json 与 .jsonl 原始 Telegram 历史文件;若本地无数据,回退到 Bot API 的 getUpdates 获取待处理更新。
- 结构化摘要:由当前智能体基于原始消息生成,包含概览(消息总数、时间范围、参与者列表)、主要议题(3–7 条)、关键公告或决定、未解决问题或进行中的讨论、行动项以及一句话语气评估,并以 markdown 输出便于快速浏览。
使用方式 需要设置环境变量 TELEGRAM_BOT_TOKEN;OPENCLAW_STATE_DIR 为可选,默认 /twin-data/state,用于存放原始 Telegram JSON/JSONL 历史导出。命令中的 $SKILL_DIR 指本技能安装目录,若智能体未自动设置需手动替换为实际路径。典型流程为:先用 list_groups.py 解析群组,再用 fetch_messages.py 抓取消息,最后生成摘要。本地记录需包含数字型 chat.id(或 chat_id)、以秒为单位的日期,以及 text 或 caption 字段;message_id 与 from 可选。JSON 可将记录包裹在对象或数组中,JSONL 每行一个 JSON 值。不支持原生 OpenClaw 会话封装、sessions.json 索引和 SQLite 存储。
适用场景 需要回顾群组近期讨论、整理公告与决定、提取待办事项或评估讨论气氛时使用。
限制
- 机器人隐私模式:默认情况下群内机器人只收到发给它的消息(命令或回复)。要汇总普通群聊,需在 BotFather 中关闭隐私模式(/mybots → Bot Settings → Group Privacy → Turn off)或让机器人成为群管理员,否则两类数据源都只有针对机器人的消息。
- 仅捕获普通消息和频道帖子的 text 与 caption 字段;无说明文字的图片或文件消息会被跳过。
- 摘要由当前智能体生成,不调用外部摘要 API。
- getUpdates 回退不会推进 offset 或修改 allowed_updates,仅限待处理更新,不是完整历史导出。
- 若输出中 source 为 none,需提示用户未找到消息,并建议核验群组、检查本地历史结构、注意 webhook 模式或扩大时间窗口。
相关技能 telegram-send 用于向群组发送后续消息;list-telegram-chats 用于列出已知聊天及其 ID。