通过Telegram直接API发送富文本HTML格式消息。由主会话自动调用,适用于实质性Telegram输出。规则:回复超过3行或包含结构化数据(列表、统计、段落、报告)时,派生Haiku子代理处理格式发送;短回复(<3行)直接通过OpenClaw工具发送。适用场景:研究报告、警报、状态更新、报告、简报、通知等需要视觉层次的输出。
Telegram 编译
功能概述
Telegram 编译是一项面向实际任务的技能,主要用于Format 并通过 HTML 格式化的直线API 发送丰富且可扫描的Telegram 消息;此技能是如何被使用的;
核心要点
- 此技能由主会话代理自动启动。
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
使用与执行
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
Telegram Compose
通过 Telegram 直接 API,以 HTML 格式构建并发送富文本、高可读性的消息。
该技能的调用方式
本技能由主会话代理(main session agent)自动调用。 其他技能无需感知或依赖此技能。
决策规则(供主会话代理使用)
在向 Telegram 发送消息前,请检查:
- 简短回复(少于 3 行,无结构): 直接通过 OpenClaw 的
message工具发送。完成。 - 实质性内容(超过 3 行,或含列表/统计/章节/报告等结构): 将本技能作为子代理(sub-agent)启动。
子代理的启动方式
主会话代理调用 sessions_spawn,参数如下:
sessions_spawn( model: "claude-haiku-4-5", task: "<任务内容 — 见下方模板>" )
任务模板:
阅读 {baseDir}/SKILL.md 中的 telegram-compose 技能文档,了解格式规范,然后将以下内容格式化并发送至 Telegram。
Bot 账户:(例如 "main";必须与 channels.telegram.accounts 中的键名完全匹配)
Chat ID:
Thread ID:(如非论坛/主题类聊天,请省略此行)
待格式化内容:
---
<原始内容在此>
---
发送成功后,仅返回 message_id;失败则返回错误详情。请勿在响应中包含已格式化的消息正文——它已被直接发送至 Telegram。
重要: 调用方必须明确指定所用 Bot 账户。子代理不得自行选择或遍历账户。
关键: 子代理的启动声明(announcement)将回传至主会话代理,而非 Telegram。因此,主会话代理在启动子代理后应立即回复 NO_REPLY,以防重复发送。子代理实际通过 curl 请求完成 Telegram 消息投递。
子代理接收的输入
- 技能路径(Skill path) —— 用于读取格式规范
- Bot 账户名(Bot account name) —— 指定使用的 Telegram Bot 账户(必须由调用方显式提供,禁止自动选择)
- Chat ID —— 消息目标聊天 ID
- Thread ID —— 如为论坛/主题类聊天,则提供对应话题 ID
- 原始内容(Raw content) —— 待转换为富文本消息的未格式化文本或数据
凭证(Credentials)
Bot Token: 存储于 OpenClaw 配置文件中,路径为 channels.telegram.accounts.。
账户名始终由调用方提供。 禁止自动选择或遍历账户。
# 自动检测配置路径 CONFIG=$([ -f ~/.openclaw/openclaw.json ] && echo ~/.openclaw/openclaw.json || echo ~/.openclaw/clawdbot.json) # ACCOUNT 由调用方提供(例如 "main") # 在提取 token 前,需先验证账户是否存在 ACCOUNT="" BOT_TOKEN=$(jq -r ".channels.telegram.accounts.$ACCOUNT.botToken" "$CONFIG") if [ "$BOT_TOKEN" = "null" ] || [ -z "$BOT_TOKEN" ]; then echo "ERROR: 配置中未找到账户 '$ACCOUNT',或其 botToken 字段为空" exit 1 fi
发送流程
CONFIG=$([ -f ~/.openclaw/openclaw.json ] && echo ~/.openclaw/openclaw.json || echo ~/.openclaw/clawdbot.json)
# ACCOUNT 由调用方提供 —— 禁止自动选择
BOT_TOKEN=$(jq -r ".channels.telegram.accounts.$ACCOUNT.botToken" "$CONFIG")
# 不含话题线程(普通聊天)
curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage"
-H "Content-Type: application/json"
-d "$(jq -n
--arg chat "$CHAT_ID"
--arg text "$MESSAGE"
'{
chat_id: $chat,
text: $text,
parse_mode: "HTML",
link_preview_options: { is_disabled: true }
}')"
# 含话题线程(forum/topic 聊天)
curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage"
-H "Content-Type: application/json"
-d "$(jq -n
--arg chat "$CHAT_ID"
--arg text "$MESSAGE"
--argjson thread $THREAD_ID
'{
chat_id: $chat,
text: $text,
parse_mode: "HTML",
message_thread_id: $thread,
link_preview_options: { is_disabled: true }
}')"
格式规范
支持的 HTML 标签
粗体 斜体 下划线删除线等宽字体代码块点击展开隐藏内容 引用块默认折叠的引用块超链接 通过 ID 提及用户
转义规则
仅对纯文本内容(不包括 HTML 标签内部)中的下列字符进行转义:
&→&(务必最先执行,避免双重转义)<→<>→>
常见陷阱:含 & 的文本(如 “R&D”、“Q&A”)若未转义,将导致 HTML 解析失败。
结构模式
EMOJI 全大写标题 标签: 值 标签: 值 章节标题 • 列表项 • 另一项关键引述或摘要详细信息 此处为隐藏内容... 长篇细节请置于 expandable 引用块中。操作链接 →
样式规范
- 伪标题(Faux headings): 使用
EMOJI CAPS TITLE格式,并在其后插入空行 - Emoji 使用: 每条消息限用 1–3 个 emoji,作为视觉锚点,非装饰用途
- 空白行: 各逻辑区块之间必须用空行分隔
- 长内容处理: 使用
折叠展示 - 链接排版: 单独成行,末尾加箭头:
链接文字 →
示例
状态更新:
📋 任务已完成 任务: 部署 v2.3 状态: ✅ 已完成 耗时: 12 分钟所有健康检查均已通过。
告警:
⚠️ 需立即关注 问题: API 调用频率已达限额的 90% 建议操作: 审查当前用量 查看控制台 →
列表:
✅ 优先事项 •审核 PR #234— 已完成 • 完成文档 — 进行中 • 部署预发布环境 共 3 项,已完成 2 项
移动端友好的数据展示
切勿对统计信息、摘要或可视化布局使用 标签。 使用等宽字体且在移动端严重换行,破坏对齐和树形符号渲染。仅将 用于真实代码或命令输出。
结构化数据推荐使用 emoji + bold + 分隔符组合:
❌ BAD(移动端换行错乱):├─ 🟠 Reddit 32 threads │ 1,658 pts └─ 🌐 Web 8 pages✅ GOOD(自然流式排版): 🟠 Reddit: 32 threads · 1,658 pts · 625 comments 🔵 X: 22 posts · 10,695 likes · 1,137 reposts 🌐 Web: 8 pages (supplementary) 🗣️ 热门声量来源: @handle1 · @handle2 · r/subreddit
其他常用模式:
记录卡片(Record cards):
Ruby 生日:6 月 16 日 · 年龄:11 Rhodes 生日:10 月 1 日 · 年龄:8
项目符号列表(Bullet lists):
• hzl-cli: 1.12.0 • skill: 1.0.6
长度限制与分片策略
- 消息最大长度: 4,096 字符
- 媒体 caption 最大长度: 1,024 字符
若格式化后消息超出 4,096 字符:
- 按逻辑章节边界拆分(即
HEADING块之间的空行处) - 每一片段必须是合法 HTML(严禁在 HTML 标签内部截断)
- 按顺序逐片发送,片间间隔 1 秒
- 首片保留完整标题;后续片段开头添加延续标识:
(continued)
错误处理
若 Telegram API 返回错误:
| 错误类型 | 应对措施 |
|---|---|
Bad Request: can't parse entities |
HTML 格式非法。移除全部 HTML 标签,以纯文本重发。 |
Bad Request: message is too long |
按上述分片规则拆分后重试。 |
Bad Request: message thread not found |
移除 message_thread_id 参数重试(消息将发送至 General 频道)。 |
Too Many Requests: retry after X |
等待 X 秒后重试一次。 |
| 其他任意错误 | 原样上报错误详情;不再重试。 |
降级规则(Fallback rule): 若 HTML 格式化连续失败两次,则改以纯文本发送,确保送达优先于格式美观。
子代理执行核对清单
作为子代理运行时,请严格遵循以下步骤:
- 解析任务 —— 提取 Bot 账户名、Chat ID、Thread ID(如有)、技能路径及原始内容
- 读取本 SKILL.md —— 加载全部格式规范
- 格式化内容 —— 应用 HTML 标签、结构模式、样式规范及移动端友好数据排版
- 转义特殊字符 —— 仅对文本内容执行:先
&,再<,最后>(HTML 标签内不转义) - 检查长度 —— 若超过 4,096 字符,按章节边界进行分片
- 获取 Bot Token —— 自动探测配置路径,按指定账户名提取 token(若未找到则报错退出)
- 发起 curl 请求 —— 根据是否含 Thread ID 选用对应模板
- 校验响应 —— 解析 curl 输出,确认
"ok": true - 错误处理 —— 严格依照上表定义的错误响应策略执行
- 结果上报 —— 成功则返回 message_id;失败则返回完整错误详情
热门AI工具
相关专题
本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。
0
2026.11.12
本专题围绕Go-Zero的安装与工具链配置展开,讲清Go版本要求、goctl安装方式、代理镜像、protoc依赖与环境变量设置,说明多版本共存、升级回退与CI流水线安装的做法,并整理安装阶段的常见报错与验证步骤。
0
2026.11.12
本专题整理Go-Zero的入门知识,从框架定位、环境准备到跑通第一个API服务,讲清目录分层、配置加载、日志与中间件的基本用法,并对比Gin、Kratos的差异,帮助Go开发者建立整体认知,判断它是否适合当前项目。
0
2026.11.12
本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。
0
2026.11.06
围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。
0
2026.11.06
详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。
0
2026.11.06
DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。
0
2026.11.05
DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。
0
2026.11.05
本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。
0
2026.11.04
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.8万人学习
共6课时 | 54.7万人学习
最新文章