找回密码
 立即注册
首页 业界区 业界 AI Agent 跑完任务怎么通知你?我写了个微信推送服务 ...

AI Agent 跑完任务怎么通知你?我写了个微信推送服务

杭环 前天 20:10
凌晨两点,线上数据库磁盘满了。第二天早上打开邮箱才看到告警邮件,已经过去了 6 个小时,用户投诉早就堆满了客服群。
如果当时能立刻收到微信通知,5 分钟就能处理完。
这件事之后我就一直在想——有没有一种推送方式,能做到免费、实时到达、不用装额外的 App、锁屏也能弹窗提醒
答案其实很简单:微信。每个人手机上都有,消息实时到达,锁屏弹窗带声音。更关键的是,微信公众平台提供了测试号,不需要企业资质,个人开发者扫码就能申请,每天 10 万次推送额度,完全免费。
唯一的门槛是微信的模板消息接口用起来比较繁琐。所以我把这些都封装好了,用 C# 写了个开箱即用的推送服务。
CSharp-WXPush

GitHub:https://github.com/hueifeng/CSharp-WXPush
一个 HTTP 请求就能把消息推到你的微信:
  1. curl "http://你的服务器:5566/wxsend?title=磁盘告警&content=数据库服务器磁盘使用率已达95%25"
复制代码
几秒后,手机上就弹出了微信通知:
1.png

点开消息,跳转到自带的详情页,支持 Markdown 渲染:
2.png

技术上有什么特点?

项目基于 .NET 9 Minimal API 构建,整个核心逻辑就一个 Program.cs,不到 160 行:

  • 零第三方依赖 —— 只用了 ASP.NET Core 内置组件,没有引入任何 NuGet 包
  • 单文件架构 —— 路由、微信 API 调用、参数解析、模型定义全在一个文件里,风格类似 Go 的 main.go
  • 嵌入式资源 —— 详情页 HTML 通过 EmbeddedResource 编译进 DLL,部署时只需要一个可执行文件
  • 同时支持 GET 和 POST —— GET 方便浏览器和 curl 直接调用,POST 方便对接 Webhook
没有数据库,没有 Redis,没有消息队列。启动就能用。
3 分钟跑起来

第一步:拿到微信测试号的 4 个参数

打开 微信测试号申请页面,微信扫码登录。
登录后你需要拿到 4 样东西:
1) appID 和 appsecret —— 页面最上面就能看到
3.png

2) 你的 openid —— 用微信扫描页面上的测试号二维码关注,然后在"用户列表"里找到
4.png

3) template_id —— 在"模板消息接口"那里新增一个模板
模板内容这样填:
  1. 标题: {{title.DATA}}
  2. 内容: {{content.DATA}}
复制代码
5.png

有个坑要注意:模板内容不能只写 {{content.DATA}},前面必须加点文案(比如"内容:"),不然推送出来是空白的。
第二步:一行命令启动
  1. git clone https://github.com/hueifeng/CSharp-WXPush.git
  2. cd CSharp-WXPush
  3. dotnet run -- \
  4.   -appid "你的appID" \
  5.   -secret "你的appsecret" \
  6.   -userid "你的openid" \
  7.   -template_id "你的模板ID"
复制代码
看到这个输出就 OK 了:
  1. Server is running on: http://127.0.0.1:5566
复制代码
第三步:发一条试试

浏览器直接打开:
  1. http://localhost:5566/wxsend?title=Hello&content=我的第一条推送
复制代码
或者用 curl:
  1. curl "http://localhost:5566/wxsend?title=Hello&content=我的第一条推送"
复制代码
返回 {"errcode":0,"errmsg":"ok"} —— 去看微信,消息已经到了。
也支持 POST,方便对接 Webhook:
  1. curl -X POST http://localhost:5566/wxsend \
  2.   -H "Content-Type: application/json" \
  3.   -d '{"title":"构建通知","content":"main 分支构建成功"}'
复制代码
实战场景

用了一段时间,基本上能想到的通知需求都能覆盖,分享几个我自己在用的。
AI Agent 任务通知

现在越来越多的工作交给 AI Agent 去跑——代码生成、数据分析、文档整理、批量翻译... 这些任务丢出去之后,你不可能一直盯着等它跑完。接上推送服务,Agent 干完活自动通知你:
  1. import requests
  2. # AI Agent 完成任务后回调
  3. def on_task_complete(task_name, result_summary):
  4.     requests.get("http://your-server:5566/wxsend", params={
  5.         "title": f"Agent 任务完成:{task_name}",
  6.         "content": f"执行结果:{result_summary}\n耗时:3 分 28 秒"
  7.     })
  8. # 也可以在异常时告警
  9. def on_task_error(task_name, error):
  10.     requests.get("http://your-server:5566/wxsend", params={
  11.         "title": f"Agent 异常:{task_name}",
  12.         "content": f"错误信息:{error}"
  13.     })
复制代码
不管你在开会、吃饭还是遛弯,Agent 的工作进度随时掌握。
服务器监控告警

写个脚本丢到 crontab 里,每分钟检测一次,站点挂了立刻通知:
  1. #!/bin/bash
  2. if ! curl -sf http://yoursite.com > /dev/null 2>&1; then
  3.   curl "http://localhost:5566/wxsend?title=站点告警&content=yoursite.com 无法访问,请立即检查"
  4. fi
复制代码
CI/CD 构建通知

在 GitHub Actions 的 workflow 最后加一步:
  1. - name: 推送结果到微信
  2.   if: always()
  3.   run: |
  4.     curl "http://your-server:5566/wxsend?title=构建${{ job.status }}&content=${{ github.repository }} ${{ github.ref_name }}"
复制代码
数据库备份 / 长任务完成提醒
  1. # 备份完成通知
  2. pg_dump mydb > backup_$(date +%Y%m%d).sql && \
  3. curl "http://localhost:5566/wxsend?title=备份完成&content=mydb 数据库备份成功"
  4. # 模型训练完成通知
  5. python train.py && \
  6. curl "http://localhost:5566/wxsend?title=训练完成&content=模型训练结束,准确率98.5%25"
复制代码
不用一直盯着终端了,该干嘛干嘛,完了微信告诉你。
智能家居 / IoT

树莓派、ESP32 之类的设备,条件触发时推一条:
  1. curl "http://your-server:5566/wxsend?title=家庭告警&content=客厅烟雾传感器触发,请注意安全"
复制代码
参数一览

启动时设置默认值,请求时可以临时覆盖任意参数:
参数说明默认值-port服务端口5566-appid微信 AppID--secret微信 AppSecret--userid接收者 OpenID--template_id模板 ID--title默认标题--content默认内容--base_url详情页公网地址http://127.0.0.1:{port}-tz时区Asia/Shanghai比如启动时设好了默认的 userid,但某次想推给另一个人,请求时带上 userid=xxx 就行,不用重启服务。
Docker 一键部署

生产环境推荐用 Docker:
  1. docker build -t csharp-wxpush .
  2. docker run -d -p 5566:5566 --name wxpush --restart=always csharp-wxpush \
  3.   -appid "你的appID" \
  4.   -secret "你的appsecret" \
  5.   -userid "你的openid" \
  6.   -template_id "你的模板ID" \
  7.   -base_url "https://你的域名"
复制代码
配好 -base_url,微信里点消息就能跳到详情页看完整内容。
写在最后

这个项目的初衷很简单:用最少的代码,解决"第一时间知道"这个问题
一个文件、一行命令、一个 curl,搞定所有推送需求。无论是传统的运维告警,还是现在越来越多的 AI Agent 工作流,只要你需要"事情做完了通知我一声"——它都能帮到你。
如果你也有类似的需求,欢迎试试:
GitHub:https://github.com/hueifeng/CSharp-WXPush
觉得有用的话,欢迎 Star 和推荐,有问题随时提 Issue。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册