telegram-compose

✈️ 专业Telegram富文本消息编排

OpenClaw官方Telegram消息格式化技能,通过Bot API发送富文本HTML消息,支持自动分片与错误回退,适合需要结构化通知的自动化场景。

收藏
12k
安装
2.8k
版本
v1.0.4
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

telegram-compose 是一个声明式子代理技能,专为主会话代理自动调用而设计。当需要发送超过3行或包含结构化数据(列表、统计、章节、报告)的Telegram消息时,主代理会将其作为 Haiku 子代理启动。该技能负责将原始内容转换为视觉层次分明的 HTML 格式消息,通过 Telegram Bot API 直接投递。

使用流程遵循严格的决策规则:短回复(<3行)直接通过 OpenClaw 的 message 工具发送;实质性内容则通过 sessions_spawn 启动子代理,传入 bot 账户名、聊天ID、线程ID(可选)及原始内容。子代理读取 SKILL.md 中的格式化规则,应用 HTML 标签、转义特殊字符、检查长度限制(4096字符),必要时按章节边界分片发送,最终通过 curl 调用 api.telegram.org 完成投递。

显著优点

专业化消息呈现:内置完整的 HTML 格式化规范,包括粗体、斜体、下划线、删除线、代码块、可展开引用块、剧透标签等,使通知具备专业视觉层次。特别针对移动端优化,禁止使用 <pre>> 展示统计数据,改用 emoji + 粗体 + 分隔符的流动布局,确保在小屏幕上可读。

智能内容处理:自动处理消息长度超限(4096字符),按章节边界智能分片,添加 "(continued)" 续接标识,并插入1秒延迟避免频率限制。内置完善的错误处理机制,包括 HTML 解析失败时自动降级为纯文本、线程不存在时回退到 General 话题、速率限制时自动重试。

安全架构设计:Bot Token 从 OpenClaw 配置文件读取,绝不硬编码;账户名由调用者显式指定,禁止子代理自动选择或遍历账户,避免误发风险。权限声明精确匹配实际功能(仅 exec 执行 curl、Read 读取配置),网络访问限定单一域名。

零依赖轻量化:纯声明式配置,无 npm/pip 等第三方包依赖,仅依赖系统标准工具 jq 和 curl,部署简单可靠。

潜在缺点与局限性

平台绑定限制:专为 Telegram 设计,无法直接迁移至其他消息平台(如 Slack、Discord、企业微信)。若需多平台支持,需额外开发适配层。

配置前置要求:依赖 OpenClaw 生态的特定配置文件结构(~/.openclaw/openclaw.json~/.openclaw/clawdbot.json),且需预先配置 channels.telegram.accounts.<name>.botToken。对于非 OpenClaw 用户或配置管理不规范的环境,存在使用门槛。

HTML 转义复杂度:要求严格的三步转义顺序(&&lt;&gt;),内容中的特殊字符(如 "R&D"、"Q&A")若处理不当会导致消息发送失败。虽然具备降级机制,但格式化丢失会影响专业呈现效果。

子代理通信开销:每次实质性消息触发一次 Haiku 子代理启动,对于高频、低延迟场景(如实时告警流)可能引入不必要的延迟和资源消耗。短消息直接发送与长消息子代理化的分支逻辑增加了主代理的决策复杂度。

适合的目标群体

  • 运维与 SRE 团队:需要发送结构化的系统告警、状态报告、部署通知
  • 产品经理与项目管理者:定期推送项目进度简报、优先级列表、会议纪要
  • 数据分析师与研究员:分发数据摘要、统计洞察、研究报告的可视化摘要
  • 自动化工作流开发者:构建需要富文本通知的 CI/CD、监控、ETL 流水线
  • Telegram 社区运营者:管理大型群组/频道,需要专业格式的公告、活动通知

使用风险

配置文件安全:Bot Token 存储于本地 JSON 文件,需确保文件权限(建议 600)防止未授权读取。多账户场景下,调用者必须显式指定账户名,配置错误可能导致消息发送至错误聊天。

API 依赖与可用性:完全依赖 Telegram Bot API(api.telegram.org)的可用性。Telegram 服务中断、网络封锁或 API 变更将直接影响功能。建议关键场景配置备用通知渠道。

消息长度与频率:虽然内置分片和速率限制处理,但极端高频场景(如每秒数十条消息)仍可能触发 Telegram 的滥用检测。建议对非紧急通知实施批量聚合或延迟队列。

HTML 格式兼容性:Telegram 客户端对 HTML 标签的支持存在版本差异,老旧客户端可能无法正确渲染 <blockquote expandable>> 等新特性。关键消息建议测试目标用户群体的客户端版本分布。

安全解读

核心用法

telegram-compose 是一个纯 Markdown 文档型 Skill,专门用于将结构化内容格式化为 Telegram 富文本消息并通过官方 Bot API 发送。它不直接执行代码,而是作为子代理(sub-agent)被主会话调用,将原始内容转换为带 HTML 标签的格式化消息。

调用决策规则:主会话判断回复内容——若超过 3 行或包含列表、统计、章节、报告等结构化数据,则通过 sessions_spawn() 启动 Haiku 子代理执行本 Skill;短回复(<3 行)直接走 OpenClaw message 工具。

格式化能力:支持完整的 Telegram HTML 标签(<b>粗体、<i>斜体、<code>代码、<pre>代码块、<tg-spoiler>剧透、<blockquote>引用/可展开引用等),自动转义特殊字符(& < >),遵循移动优先的排版原则(禁用 <pre> 做布局,改用 emoji+粗体+分隔符),提供消息分割策略(按章节边界切分、4,096 字符限制处理)及错误回退机制(HTML 解析失败两次后转纯文本)。

发送流程:子代理读取 SKILL.md 规则 → 格式化内容 → 检查长度 → 从 OpenClaw 配置提取 bot token → curl 调用 api.telegram.org/bot${TOKEN}/sendMessage → 返回 message_id 或错误详情。

显著优点

1. 零代码执行风险:纯文档型 Skill,无实际可执行文件,所有"代码"均为文档示例,静态分析无危险函数或敏感信息泄露。
2. 移动优先设计:明确禁止用 <pre> 展示统计数据,提供 emoji+粗体的自然流式布局方案,解决手机端等宽字体换行错位问题。

3. 健壮的错误处理:内置 5 类 Telegram API 错误应对策略(HTML 解析失败、消息过长、线程不存在、限流、其他错误),两次失败后自动降级为纯文本发送,确保消息必达。

4. 配置灵活:支持多账号(channels.telegram.accounts.<name>.botToken)、自动检测配置文件路径、可选线程 ID(topic 消息)。

5. 隐私合规:无用户数据收集,符合 GDPR/CCPA 数据最小化原则。

潜在缺点与局限性

1. 依赖外部配置:必须预先在 ~/.openclaw/openclaw.jsonclawdbot.json 中配置 bot token,且调用方必须显式指定账号名,子代理不会自动选择。
2. 无动态/依赖审计:T-MD(文档型)分类跳过动态分析和依赖审计,实际运行时行为取决于调用方的子进程实现。

3. 长度硬限制:Telegram 单条消息 4,096 字符上限需手动分割,虽提供分割策略但增加了调用复杂度。

4. 无许可证声明:当前版本未声明开源许可证,商业使用需谨慎。

适合人群

  • 需要向 Telegram 频道/群组发送格式化报告、监控告警、状态更新的自动化工作流开发者
  • 使用 OpenClaw 框架构建 Telegram Bot 的多账号运营团队
  • 追求移动端阅读体验的运营人员(重视排版美观)

常规风险

1. HTML 注入风险:若调用方未对原始内容进行预转义,且 Skill 的自动转义逻辑被绕过,可能导致 Telegram 消息格式错乱或意外标签解析(虽无 XSS 风险,因 Telegram 客户端限制)。
2. Token 泄露风险:Bot token 存储在本地 JSON 配置文件,若文件权限设置不当(非 600)存在被其他进程读取的可能。

3. API 限流:Telegram Bot API 有速率限制,高频场景可能触发 Too Many Requests,需按建议等待重试。

4. 网络可达性:依赖 api.telegram.org 的网络连通性,部分地区可能需要代理配置。

来源可信度:T2(可信组织/GitHub 组织账号,维护者 tmchow 有多个版本发布历史)

安全评分:A 级(85 分),标准级可放心使用

telegram-compose 内容

手动下载zip · 4.6 kB
SKILL.mdtext/markdown
请选择文件