返回 Skill 列表
extension
分类: 开发与工程无需 API Key

wechatPush公众号消息推送

opencode-skill-wechatPush

person作者: MerlinShiehhubgithub

Pushplus 推送 Skill

通过 pushplus(推送加) API 发送消息到微信(公众号)等渠道。

前置条件:注册与申请 Token(用户必读)

使用本 skill 前,需先完成一次性的配置:

  1. 打开 pushplus 官网:https://www.pushplus.plus/

  2. 点击右上角「登录」,使用微信扫码注册并登录

  3. 登录后进入首页,在「一对一推送」页面复制你的 token

  4. 关注 pushplus 官方微信公众号(用于接收推送消息),token 页面上有二维码

  5. 将 token 配置到本地(二选一):

    方式 A:环境变量(推荐)

    setx PUSHPLUS_TOKEN "你的token"   # 设置后需重启终端生效
    

    方式 B:本地配置文件 编辑 %USERPROFILE%\.config\opencode\api_keys.json,加入 pushplus 字段:

    {
      "dashscope": "你的阿里云key",
      "pushplus": "你的pushplus token"
    }
    

安全说明:token 与识图服务、阿里千问模型 API key 一样,不硬编码在 skill 文件中,统一通过环境变量 PUSHPLUS_TOKEN 或本地配置文件 api_keys.jsonpushplus 字段读取(读取优先级:命令行 --token > 环境变量 > 本地配置文件)。

自动推送触发规则(核心)

这是本 skill 最重要的规则。作为 orchestrator,你必须在以下时机主动调用 pushplus 推送消息:

必须推送的场景

  1. 任务执行完成 — 所有 todo 项标记 completed,或用户的多步骤任务全部完成时,推送"任务完成"通知,包含任务摘要。
  2. 任务执行失败/异常 — 遇到无法自动恢复的错误、用户需要介入时,推送"任务异常"告警。
  3. 长时间任务阶段性汇报 — 如果任务超过 3 个步骤,每完成一个关键里程碑推送进度。
  4. 用户明确要求 — 用户说"通知我"、"推送结果"、"发到微信"等。

推送内容格式

使用 markdown 模板,内容结构:

## {任务状态}

- **任务**: {简要描述用户原始需求}
- **结果**: {成功/失败/进行中,关键数据}
- **耗时/步骤**: {如有}
- **备注**: {有需要用户关注的事项时填写}

推送调用方式

python "C:\Users\Mulin\.config\opencode\skills\pushplus\scripts\pushplus.py" \
  --title "{简短标题}" \
  --content "{markdown格式正文}" \
  --template markdown

token 由脚本自动从环境变量 PUSHPLUS_TOKEN~/.config/opencode/api_keys.jsonpushplus 字段读取,调用时无需传 --token

不要推送的场景

  • 用户刚发出请求、任务还未开始执行时
  • 单步简单操作(如"读这个文件"、"搜索一下")
  • 推送频率过高:同一会话中,至少间隔 3 个步骤以上才再次推送

手动调用

基本用法

python scripts/pushplus.py --title "消息标题" --content "消息内容"

从文件发送

python scripts/pushplus.py --title "版本更新日志" --template markdown --file "CHANGELOG.md"

临时指定 token

python scripts/pushplus.py --token "your_token" --title "标题" --content "内容"

参数说明

| 参数 | 必填 | 默认值 | 说明 | |------|------|--------|------| | --token | 否 | 环境变量/配置文件 | 用户 token(省略时自动读取) | | --content | 是 | - | 消息内容(与 --file 二选一) | | --title | 否 | 无 | 消息标题 | | --template | 否 | html | 模板:html / txt / json / markdown | | --channel | 否 | wechat | 渠道:wechat / webhook / cp / mail / sms / extension / app | | --topic | 否 | 无 | 群组编码 | | --file | 否 | 无 | 从文件读取内容 | | --option | 否 | 无 | 渠道配置参数 | | --to | 否 | 无 | 好友令牌 |


渠道枚举

| 渠道 | 说明 | |------|------| | wechat | 微信公众号(免费,默认) | | webhook | 第三方 webhook | | cp | 企业微信应用 | | mail | 邮件 | | sms | 短信(收费) | | extension | 浏览器插件/桌面应用 | | app | App 渠道 |

模板枚举

| 模板 | 说明 | |------|------| | html | 支持 HTML | | txt | 纯文本 | | json | JSON 展示 | | markdown | Markdown 渲染 |


返回结果

成功时返回 JSON:

{ "code": 200, "msg": "执行成功", "data": "消息流水号" }

注意事项

  • code: 200 仅表示服务端已接收,消息异步推送
  • 同一会话中控制推送频率,避免骚扰用户
  • 推送内容控制在 500 字以内,大段内容用 --file 方式

依赖服务与触发信号说明

本 skill 的运作依赖以下外部条件,需了解其边界:

| 依赖项 | 说明 | |--------|------| | 触发信号 | 无后台钩子。唯一触发来源是 orchestrator(本 Agent)依据上述规则自行判断:用户显式要求 / todo 全部完成 / 任务异常 / 长任务里程碑。不会因"任务结束"这类系统事件被自动调用 | | pushplus 服务 | 依赖其公开 API(http://www.pushplus.plus/send)。若服务不可用或 token 失效,返回 code: 200 之外的错误码 | | 微信接收端 | 用户必须已关注 pushplus 官方公众号,否则推送无法送达(服务端仍可能返回成功) | | 本地配置 | token 依赖环境变量 PUSHPLUS_TOKENapi_keys.jsonpushplus 字段,缺失时脚本报错退出 | | 网络 | 需可访问 pushplus 服务器(国内直连,无 GFW 问题) |

总结:本 skill 无硬编码密钥、无后台事件订阅,是纯"被 Agent 主动调用"的工具型 skill;其可用性完全取决于「token 已配置 + pushplus 服务在线 + 用户已关注公众号」三要素。