30 分钟,零 Python 代码,搭出一个每天早上 9 点把 GitHub Trending 推送到你微信的机器人。顺带把 Hermes 的 Skill、Gateway、Cron 四个招牌能力全用上。
一、目标长什么样
明天早上 9 点,你的微信收到:
📰 GitHub Trending 今日热门(中文摘要)
1. xxx/yyy ⭐ 1.2k
一句话摘要:xxx 是一个 ……
2. aaa/bbb ⭐ 980
一句话摘要:……
……
每天自动跑,你出门关电脑也不影响。如果你还不熟 Hermes 的设计,可以先看 框架详解篇 再回来。
二、步骤 1:装好 Hermes(5 分钟)
# macOS / Linux / WSL2
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
# 跟着向导走完
hermes setup
hermes setup 会问你选哪个 LLM 提供商。新手建议:
推荐选 OpenRouter:
✓ 一个 Key 用 200+ 模型,方便对比
✓ 充值 $5 起,按用量扣
✓ 可以选便宜的 Llama / Qwen 模型先跑通流程
注册:https://openrouter.ai
拿到 Key 后填到 hermes setup 向导里
三、步骤 2:把微信接上(10 分钟)
微信通道基于腾讯 iLink Bot API,采用长轮询(Long Polling)通信,不需要公网地址、不需要 Webhook,在国内网络环境下开箱即用。
注意:这是个人微信通道(iLink Bot 身份),不是企业微信(WeCom)。企业微信请使用 WeCom 适配器。
3.1 安装依赖
pip install aiohttp cryptography
# 可选:终端二维码渲染支持
pip install hermes-agent[messaging]
3.2 扫码绑定微信
hermes gateway setup
向导会列出可用平台,选择 Weixin。接下来:
1. 向导从 iLink API 申请一个二维码
2. 二维码显示在终端(或打印一个 URL 供你扫码)
3. 打开手机微信 → 扫一扫 → 确认登录
4. 向导自动保存凭据到 ~/.hermes/weixin/accounts/
看到 "微信连接成功,account_id=xxxxx" 就通了。
3.3 配置环境变量
扫码完成后,编辑 ~/.hermes/.env:
# 必填:扫码后自动获得的 account_id
WEIXIN_ACCOUNT_ID=your-account-id
# Token 通常由扫码自动保存,一般不用手动填
# WEIXIN_TOKEN=your-bot-token
# 访问策略(可选)
WEIXIN_DM_POLICY=open
# WEIXIN_ALLOWED_USERS=user_id_1,user_id_2
# 首页频道(可选,用于 cron 定时推送的目标)
WEIXIN_HOME_CHANNEL=chat_id
WEIXIN_HOME_CHANNEL_NAME=Home
3.4 启动网关
hermes gateway
适配器会恢复已保存的凭据,连接 iLink API,开始长轮询接收消息。
测试一下:在微信里找到你的 iLink Bot,给它发"你好"。能回应就算通了。
⚠️ 常见坑与注意:
• iLink Bot 身份(xxx@im.bot)≠ 普通微信账号,
通常无法被邀请进普通微信群,群消息功能受限
• 主要使用场景是 DM(私聊),这是最稳定可靠的
• Token 别提交到 Git
• 如果报 "Another local Hermes gateway is already using this Weixin token",
说明已经有一个实例在跑,先停掉再启动
• Session 过期(errcode=-14)时需要重新扫码:
hermes gateway setup
四、步骤 3:让 Agent 自学一个 Skill(10 分钟)
这是 Hermes 最有意思的地方——你不写代码,你只是和它对话。
打开 hermes 进入 CLI,告诉它:
你:帮我写一个流程,包含 4 步:
1) 用 curl 抓 https://github.com/trending
2) 从 HTML 里提取前 5 个仓库:名字、简介、星数
3) 把每个仓库的简介翻译成中文,写一句话摘要
4) 把结果整理成 Markdown 输出,每个仓库一段
现在跑一遍给我看看效果。
Agent 会自己:
1. 调 shell 工具:curl + grep/awk 把 HTML 处理出来
2. 调 LLM:翻译 + 写摘要
3. 整理 Markdown
4. 把结果打印出来给你
看一下效果对不对。可能第一遍格式不太合心意,比如星数没显示、摘要太长。直接告诉它:
你:摘要再短一点,每个仓库一句话就够。
星数用 ⭐ 表情显示。
Agent 改完再给你看。反复几次直到你满意。然后说:
你:完美。把这整个流程存成一个 Skill,命名为 "github-trending-zh"。
Agent:✓ Skill "github-trending-zh" 已保存到 ~/.hermes/skills/
触发方式:自然语言提到"GitHub trending 摘要"或直接 /skill github-trending-zh
这一步发生了什么?Hermes 把刚才对话里你认可的整套动作(命令序列、Prompt、格式偏好)打包成了一个可重复调用的 Skill。下次你说一句"跑一下 trending",它就会照着这个 Skill 干,不用再教。
五、步骤 4:让它每天 9 点自动跑(5 分钟)
Hermes 自带 cron 调度,还是用自然语言:
你:每天早上 9 点(北京时间),跑一次 github-trending-zh,
结果通过微信发给我。
Agent:✓ 已加入定时任务
Cron 表达式:0 9 * * * (Asia/Shanghai)
投递目标:微信(iLink Bot)
下次执行:明天 09:00:00 (CST)
完事。关机也不影响——只要 hermes gateway 进程在运行(建议跑在你的 $5 VPS 上),任务到点就会自动执行。
微信通道支持 WEIXIN_HOME_CHANNEL 配置,cron 推送会自动发到这个频道。你也可以在对话中指定具体的聊天目标。
想确认一下?
你:列一下我现在的所有定时任务。
Agent:当前定时任务(1 个):
├── github-trending-zh
│ 时间:0 9 * * * (Asia/Shanghai)
│ 投递:微信
│ 状态:✓ 已启用
六、微信通道的技术细节(了解即可)
如果你好奇微信通道底层做了什么,这里简要说明:
📡 长轮询通信
不需要公网 IP / Webhook / WebSocket
Hermes 主动轮询 iLink API,35 秒超时
断线自动重连 + 指数退避
🔐 AES-128-ECB 加密 CDN
微信媒体文件走加密 CDN
上传/下载自动加解密,你不需要管
📝 Markdown 原生支持
微信客户端直接渲染 Markdown
标题、表格、代码块保持原格式
✂️ 智能分片
4000 字符以内的消息保持单条
超长消息在段落/代码块边界自动切分
分片间隔 0.3s,防止限流
⌨️ 输入状态
Agent 处理消息时自动显示"正在输入…"
🔒 安全特性
SSRF 防护:出站 URL 校验
5 分钟滑动窗口去重
Token 锁:同一 Token 只允许一个网关实例
七、这个例子用到了 Hermes 的哪些招牌能力
✅ Skill 自动沉淀
第一次教会它做这件事,永久存下来变成"能力"。
下次你说一句话就能复用。
✅ 网关分发
同一个 Agent,结果可以送微信、Telegram、Discord、Slack 任何平台。
想换平台?改一行不用重写。
✅ 内置 cron
自然语言 → 定时任务,不用碰 crontab、不用搞 systemd timer。
✅ 多后端(如果你愿意)
想让它跑在 Modal/Daytona 上、关电脑也不影响?换一下 hermes tools 配置。
整个过程没写一行 Python。这是 Hermes 区别于 LangChain / CrewAI 的地方——它假设 Agent 自己会写代码,你只需要描述目标。
八、想再玩深一点?
试试这些改造:
→ 把 GitHub Trending 换成 HackerNews / Product Hunt
(改 Skill 的提示词就行)
→ 加一个"只推送 AI / Web 相关"的过滤
(让 Agent 在 Skill 里加判断)
→ 早上 9 点推 Trending,
晚上 9 点推一份"今日你在 GitHub 上的活动总结"
(加一个 Skill,加一条 cron)
→ 把推送同时发到微信 + 自己的邮箱
(网关支持多平台并行)
→ 让家人也能用:WEIXIN_DM_POLICY=open
任何人私聊你的 Bot 都能得到播报
每个改造都是和 Agent 对话,不是改代码。这就是 Hermes 的玩法。
九、什么时候这套方案不合适
❌ 别用 Hermes 做这些:
• 给客户的生产产品
(Skill 自我修改 → 行为不可预测 → 出锅没法回滚)
• 多用户共享的服务
(记忆是单用户深度建模,多人会互相污染)
• 严要求确定性的任务(金融对账、医疗)
(概率系统不适合)
• 需要进普通微信群自动回复的场景
(iLink Bot 身份通常收不到普通群消息)
✅ 但这些场景闭眼用:
• 个人助手 / 信息聚合
• Hobby 项目 / 自动化你自己的工作流
• 内部小工具(自己用 + 信得过 Skill 漂移)
• 通过微信 DM 做个人播报、提醒、问答
声明:本博客内容素材来源于网络,文章由AI技术辅助生成。如有侵权或不当引用,请联系作者进行下架或删除处理。
参考
- NousResearch/hermes-agent (GitHub) —— 项目仓库与 README
- Hermes Agent 官方文档 —— 安装、配置、Skill、Gateway 全文档
- Hermes 微信通道文档 —— 微信适配器配置详解
- OpenRouter —— 一个 Key 调 200+ 模型,新手推荐