Install
openclaw skills install @thcjp/agent-telegramopenclaw skills install @thcjp/agent-telegram所有 Agent 向用户(Legend)发送 Telegram 消息时必须遵循此规范。规范定义了 8 类 Agent 角色的账号映射、消息格式、汇报时机与消息模板,确保多 Agent 协作时消息统一路由到用户 Telegram 账号 5440561025.
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | Agent Telegram处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
| 能力 | 免费版 | 付费版 |
|---|---|---|
| 基础功能 | 支持 | 支持 |
| Agent Telegram类角色消息发送 | 不支持 | 支持 |
| 多渠道消息批量发送 | 不支持 | 支持 |
| 消息模板与变量注入 | 不支持 | 支持 |
| 送达状态实时回调 | 不支持 | 支持 |
| 通信记录归档与检索 | 不支持 | 支持 |
accountId 与 emoji 标识,消息前缀带 emoji 便于用户快速识别来源
default → 🤖 主控 Agent,负责任务分发与汇总architect → 🏗️ 架构师,负责系统设计与技术选型backend → 🔧 后端工程师,负责 API 与服务端开发frontend → 🎨 前端工程师,负责界面与交互开发sproduct → 🟡 产品经理,负责需求文档与优先级content → ✍️ 内容运营,负责文案与素材crawler → 🕷️ 爬虫工程师,负责数据采集qa → 🧪 测试工程师,负责质量验证message 工具发送,必填字段 action: "send"、channel: "telegram"、accountId、target: "5440561025"、message~/.skill-platform/skill-platform.json 的 channels.telegram.accounts 节点详细的输入输出格式请参考下方章节说明。
| 场景 | 输入 | 输出 |
|---|---|---|
| 多 Agent 协作开发 | main 分发需求给 product+backend+frontend | 三位 Agent 分别以 🟡🔧🎨 前缀向用户 Telegram 发送任务接收与完成消息 |
| 自动化工作流通知 | crawler 完成数据采集任务 | 🕷️ 前缀消息汇报采集结果,含输出文件路径 ~/Desktop/project/data/output.json |
| 团队任务进度同步 | backend 完成 API 开发子任务 | 🔧 前缀消息汇报接口文档路径,main 汇总后转发用户 |
| 问题上报决策 | qa 测试发现阻塞性 bug | 🧪 前缀消息汇报问题描述与建议方案,请求用户决策 |
不适用于:垃圾信息群发、非 Telegram 渠道的消息推送、需要端到端加密的敏感通信、跨团队的大规模广播.
accountId 与 emoji(如后端工程师用 backend / 🔧)。不确定时回退为 default / 🤖message({action: "send", channel: "telegram", accountId: "<你的accountId>", target: "5440561025", message: "<emoji> <内容>"})sproduct(非 product),其余角色 accountId 与角色名一致5440561025,不得使用其他用户 IDmessage({
action: "send",
channel: "telegram",
accountId: "<你的accountId>",
target: "5440561025",
message: "<你的emoji> <内容>"
})
任务开始模板:
<emoji> 收到任务:<任务名>
📝 开始执行...
任务完成模板:
<emoji> <任务名> 完成
✅ 已完成: <子任务>
📁 输出: <文件路径>
遇到问题模板:
<emoji> <任务名> 遇到问题
❌ 问题: <描述>
💡 建议: <解决方案或请求决策>
| Agent | 负责人 | accountId | Emoji | 职责 |
|---|---|---|---|---|
| main | 9527 | default | 🤖 | 任务分发与结果汇总 |
| architect | 亮亮 | architect | 🏗️ | 系统设计与技术选型 |
| backend | 老崔 | backend | 🔧 | API 与服务端开发 |
| frontend | 小白 | frontend | 🎨 | 界面与交互开发 |
| product | 小黄 | sproduct | 🟡 | 需求文档与优先级 |
| content | 世龙 | content | ✍️ | 文案与素材 |
| crawler | 湘君 | crawler | 🕷️ | 数据采集 |
| qa | 赵飞 | qa | 🧪 | 质量验证 |
用户 Telegram ID:5440561025(固定值,所有消息 target 字段均用此值)
触发:product 完成 PRD 撰写
发送内容:
message({
action: "send",
channel: "telegram",
accountId: "sproduct",
target: "5440561025",
message: "🟡 需求文档已完成,请查看:~/Desktop/project/docs/product/001-prd.md"
})
用户收到:Telegram 收到一条 🟡 需求文档已完成,请查看:~/Desktop/project/docs/product/001-prd.md
触发:backend 完成 API 接口开发
发送内容:
message({
action: "send",
channel: "telegram",
accountId: "backend",
target: "5440561025",
message: "🔧 API 接口开发完成,接口文档:~/Desktop/project/docs/backend/api.md"
})
用户收到:Telegram 收到 🔧 API 接口开发完成,接口文档:~/Desktop/project/docs/backend/api.md
触发:qa 测试发现登录接口返回 500
发送内容:
message({
action: "send",
channel: "telegram",
accountId: "qa",
target: "5440561025",
message: "🧪 登录接口测试遇到问题\n❌ 问题: POST /api/login 返回 500,数据库连接池耗尽\n💡 建议: 后端检查连接池配置,建议将 max_connections 从 10 提升至 50"
})
用户收到:Telegram 收到带问题描述与建议方案的决策请求消息
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 消息发不出去,无任何响应 | 忘记填写 accountId 字段 | 必须指定你的 accountId,参照账号映射表(如 backend 用 backend) |
| 消息未送达 Telegram | 误用 sessions_send 等其他工具 | 必须使用 message 工具,channel 固定为 telegram |
| product 角色报"账号不存在" | product 误用 accountId: "product" | product 的正确 accountId 是 sproduct(带 s 前缀),非 product |
| 消息发给错误用户 | target 字段写错或用了其他用户 ID | target 固定为 5440561025,不得使用其他值 |
| message 工具未找到 | Agent 平台未配置 message 工具或未启用 | 检查 ~/.json 中 channels.telegram 配置 |
| Telegram 账号未绑定 Bot | accounts 节点缺少对应 accountId 的 Bot Token | 在配置文件 channels.telegram.accounts 下补充该角色的 Bot Token |
| 消息内容含非法字符 | message 含未转义引号或换行符异常 | 对引号转义,换行用 \n,避免直接粘贴未格式化文本 |
| 消息超长被截断 | Telegram 单条消息上限 4096 字符 | 拆分为多条消息发送,或附件形式上传长文本 |
sproduct 而不是 product?A:product 是 JavaScript 保留字,作为 accountId 会引发语法冲突。因此 product 角色统一使用 sproduct(safe product 缩写)。这是历史遗留约定,所有 product 角色消息必须用 sproduct.
sessions_send 工具发 Telegram 消息吗?A:不可以。sessions_send 是 Agent 会话内部通信工具,不会将消息路由到 Telegram。必须使用 message 工具并指定 channel: "telegram",消息才会通过 Telegram Bot 发送给用户.
A:不可以。本规范约定所有 Agent 消息统一发送给用户 5440561025。若需向其他用户发送消息,需另行配置多用户路由,不在本规范范围内.
A:在 ~/.json 的 channels.telegram.accounts 下新增一个账号节点,配置 Bot Token 与 accountId,然后在本文档账号映射表追加一行。新角色的 emoji 自选,建议与职责语义相关.
A:可以。在 message 内容中包含文件路径(如 ~/Desktop/project/docs/api.md),用户可点击路径查看。如需直接发送文件附件,需使用 message 工具的 attachment 字段(若平台支持)或单独的文件上传工具.
A:不会。每个 Agent 使用独立 accountId 与 Bot Token,消息通过各自的 Bot 发送,互不干扰。用户会在 Telegram 中看到不同 Bot 账号发来的消息,前缀 emoji 进一步区分来源.
5440561025,不支持向其他用户发送消息sproduct 而非 product,易混淆需特别注意~/.json 的 channels.telegram.accounts 节点~/.skill-platform/workspace/skills/agent-telegram/SKILL.md核心口诀:发送 Telegram 消息 = message 工具 + accountId + target: "5440561025"
https://api.telegram.org)| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| message 工具 | Agent 平台工具 | 必需 | Agent 平台内置或插件提供 |
| Telegram Bot Token | 凭证 | 必需 | 通过 @BotFather 创建 Bot 获取 |
| skill-platform.json | 配置文件 | 必需 | ~/.json 中配置 accounts |
| LLM API | API | 必需 | 由 Agent 内置 LLM 提供决策能力 |
~/.json 的 channels.telegram.accounts.<accountId>.token 字段{
"success": true,
"data": {
"result": "Agent Telegram处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "agent-telegram"
}
},
"execution_log": [
"解析输入参数",
"执行核心处理",
"格式化输出结果"
],
"error": null
}
| 操作步骤 | 手动耗时 | 自动化耗时 | 时间节约 | 准确率提升 |
|---|---|---|---|---|
| 消息发送 | 30分钟/条 | 10秒/条 | 29分50秒 | 10% |
| 消息格式校验 | 5分钟/条 | 2秒/条 | 4分58秒 | 5% |
| 任务分发 | 15分钟/条 | 5秒/条 | 14分55秒 | 3% |
| 问题汇报 | 10分钟/条 | 3秒/条 | 9分57秒 | 2% |
| 结果汇总 | 20分钟/条 | 7秒/条 | 19分53秒 | 4% |
| 对比维度 | 本技能 | 手动操作 | Python脚本 | 专业软件 |
|---|---|---|---|---|
| 消息发送效率 | 高效 | 低效 | 较高效 | 高效 |
| 消息格式统一性 | 高 | 低 | 中 | 高 |
| 角色协作流程 | 优化 | 依赖人工 | 简化 | 优化 |
| 安全性 | 高 | 低 | 中 | 高 |
| 易用性 | 高 | 低 | 中 | 高 |
| 痛点 | 描述 | 影响范围 | 解决方案 | 量化效果 |
|---|---|---|---|---|
| 消息发送错误 | 消息发送格式不统一,导致用户理解困难 | 整个团队沟通效率 | 采用统一消息格式,提高消息准确率 | 10% |
| 任务分配不明确 | 任务分配不清晰,导致角色职责混淆 | 项目进度和团队协作 | 实施多角色协作流程,明确任务分配 | 15% |
| 信息孤岛 | 不同角色间信息不流通,影响决策效率 | 项目决策和执行 | 建立标准化消息模板,促进信息共享 | 20% |
| 错误现象 | 可能原因 | 诊断步骤 | 解决方案 |
|---|---|---|---|
| 消息发送失败 | 网络连接问题或Telegram账号问题 | 检查网络连接,确认Telegram账号状态 | 修复网络连接,验证账号状态 |
| 消息格式错误 | 输入数据格式不正确 | 检查输入数据格式,确保符合规范 | 修正输入数据格式 |
| 任务未分配 | 任务分发逻辑错误 | 检查任务分发逻辑,确认角色配置 | 修正任务分发逻辑,更新角色配置 |
| 汇报信息缺失 | 消息模板错误或数据不完整 | 检查消息模板和数据完整性 | 修正消息模板,补全数据 |
| 回调通知失败 | 回调URL配置错误或网络问题 | 检查回调URL配置,确认网络连接 | 修正回调URL,确保网络连接 |
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| API密钥泄露 | 高 | 通过环境变量配置,禁止硬编码 | 定期检查代码和配置文件 |
| 命令执行风险 | 高 | 仅执行白名单命令,避免拼接用户输入 | 使用沙箱环境测试 |
| 网络通信安全 | 中 | 使用HTTPS协议,验证SSL证书 | 定期检查证书有效期 |
| 敏感数据暴露 | 高 | 输出结果中不包含密钥、令牌等敏感信息 | 日志脱敏审查 |
| 未授权访问 | 中 | 限制访问权限,实施认证机制 | 定期审计访问日志 |
针对智能体Telegram使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |