SuperAPI AI 工具集

telegram-send

办公与效率

查看项目

更新于 10-22 16:15

技能介绍

telegram-send 是一个面向 AI 智能体的技能,用于向 Telegram 群组或频道发送消息。当用户要求发送、发布或广播消息时,智能体可借助该技能,通过自身配置的 Telegram 机器人,向机器人此前交互过的群组或频道推送内容。

主要能力

该技能提供三组命令能力。第一,列出已知群组:python3 "$SKILL_DIR/scripts/list_groups.py",返回机器人交互过的群聊 JSON 数组,包含 chat_id、name、type 字段;若尚无已知群组或后端不可达,则返回空数组。第二,向指定会话发送消息:python3 "$SKILL_DIR/scripts/send.py" <chat_id> "<message>",成功时在标准输出打印一条 JSON 结果并以退出码 0 结束,失败时退出码为 1,诊断信息输出到标准错误。第三,按关键字群发:python3 "$SKILL_DIR/scripts/send.py" --keyword <substr> "<message>",会获取所有已知群组,按名称做不区分大小写的子串匹配,向每个匹配群组发送消息,并返回包含各群组成功或错误记录的 JSON;全部成功退出码为 0,任一失败为 1。

配置与环境变量

必需变量 TELEGRAM_BOT_TOKEN 为 Telegram 机器人令牌;若环境中未设置,会自动从 ~/.nanobot/config.json 的 channels.telegram.token 发现,配置路径可通过 NANOBOT_CONFIG 覆盖。可选变量用于 YouAI 运行时:YOUAI_API_URL 为 YouAI 后端地址,在本地无会话时用于回退发现群组;YOUAI_TWIN_ID 为 Twin ID,需与 YOUAI_API_URL 一起使用。命令中的 $SKILL_DIR 指该技能安装目录,若智能体未自动设置,需替换为 telegram-send 目录的实际路径。

使用方式

当用户要求向特定群组发送消息时,应先运行 list_groups.py 发现可用群组,并将目标群组名称解析为 chat_id;若目标群组不在列表中,应告知用户机器人尚未收到该群组的任何消息(机器人需被加入群组并至少收到一条消息才会出现)。随后用解析出的 chat_id 和消息文本运行 send.py。严禁猜测或编造 chat_id。当用户要求向匹配某关键字的多个群组发送(例如“发送给所有 crypto 群组”)时,应使用 send.py --keyword <substr> "<message>",由脚本内部完成查找与分发。

适用场景与限制

适用于团队通知、营销群发、按名称批量广播等场景。限制包括:仅能发现曾向该机器人发送过至少一条消息的群组;群组名称通过 Telegram Bot API 的 getChat 接口解析,若机器人已被移出群组,名称可能为 null,但 chat_id 在机器人被重新加入后仍可用于发送;发送成功的前提是机器人仍为该群组成员。消息支持标准 Markdown 格式,包括 粗体、斜体、斜体、代码、代码块、删除线;代码片段按字面保留,正文则转换为 Telegram HTML。相关资料还提到相关技能 list-telegram-chats,可在决定发送目的地前列出所有已知会话。