微信 Gateway 接入 Hermes
本文记录如何让 Hermes Agent 接入微信 iLink Bot,实现「在微信里发消息,AI 在服务器上执行任务并回复」。
前置:Hermes Agent 已安装 → Hermes Agent 安装与踩坑实录
🔐 运行公网服务前,建议先做好服务器安全加固 → SSH 异常登录调查与安全加固实录
Gateway 是什么
Gateway 是 Hermes 的消息平台桥梁。它跑在服务器后台,监听微信消息,收到后转发给 Hermes Agent 处理,再把回复发回微信。
简单说:Gateway 让微信变成了 Hermes 的终端。
支持的平台不止微信:Telegram、Discord、Slack、WhatsApp 等 10+ 个平台都可以接。
配置 iLink Bot
在 ~/.hermes/.env 中添加:
WEIXIN_ACCOUNT_ID=你的account_id@im.bot
WEIXIN_TOKEN=你的token
WEIXIN_BASE_URL=https://ilinkai.weixin.qq.com
这三个值从微信 iLink Bot 后台获取:
- Account ID: Bot 的唯一标识
- Token: 认证密钥
- Base URL: API 地址(固定值)
三种启动方式的对比
| 方式 | 优点 | 缺点 |
|---|---|---|
ops gateway run |
最简单,前台可见日志 | SSH 关了就停 |
systemctl --user |
标准方案,开机自启 | headless 环境经常失败 |
| cron @reboot | 永远有效,不依赖 systemd | 略显 hack |
🕳 systemd --user 为什么失败?
Failed to start hermes-gateway.service: Unit hermes-gateway.service not found.
ops gateway install在 headless(无桌面)环境下可能不会正确创建 service 文件。 这是一个已知问题——没有桌面会话时,systemd --user的行为不稳定。解决方法:改用 cron @reboot。
最终方案:cron @reboot
创建启动脚本
mkdir -p ~/.hermes/scripts
cat > ~/.hermes/scripts/start-gateway.sh << 'EOF'
#!/bin/bash
export PATH="$HOME/.local/bin:$HOME/.hermes/hermes-agent/.venv/bin:$PATH"
export HERMES_HOME="$HOME/.hermes"
mkdir -p "$HERMES_HOME/logs"
exec ops gateway run >> "$HERMES_HOME/logs/gateway-cron.log" 2>&1
EOF
chmod +x ~/.hermes/scripts/start-gateway.sh
加入 cron
(crontab -l 2>/dev/null; echo "@reboot sleep 15 && $HOME/.hermes/scripts/start-gateway.sh") | crontab -
@reboot:系统启动时执行sleep 15:等系统完全就绪(网络、磁盘都挂载好了)- 日志写入
~/.hermes/logs/gateway-cron.log
验证
ops gateway status
# 应输出:✓ Gateway is running (PID: xxxxx)
配对授权
首次从微信发消息给 Hermes 时,Gateway 不会直接回复——它先要求授权。
你会收到类似这样的消息:
ops pairing approve weixin SQJY4FAK
在服务器上批准:
ops pairing approve weixin SQJY4FAK
为什么需要这一步? 安全机制。避免陌生人找到你的 Bot 就随便发消息、让 AI 执行命令。必须在服务器端手动批准一次,之后该用户永久有效。
双 Gateway 陷阱
🕳 如果你有两台机器都在跑 Gateway(比如家里一台 + 服务器一台),发一条微信会收到两个回复!
原因:iLink Bot 把消息推给了所有在线的 Gateway 实例。
解决:关掉旧的
pkill -f "ops gateway",只保留服务器上的。
日常运维
# 查看状态
ops gateway status
# 查看日志
tail -f ~/.hermes/logs/gateway-cron.log
# 查看进程
ps aux | grep "ops gateway"
# 重启
pkill -f "ops gateway"
sleep 2
~/.hermes/scripts/start-gateway.sh &
验证清单
- [ ]
ops gateway status显示 running - [ ] 微信发消息,收到配对请求
- [ ]
ops pairing approve之后正常对话 - [ ]
crontab -l确认 @reboot 任务存在 - [ ] 服务器重启后自动恢复
相关阅读:
- 服务器配置 → 从零购买并配置云服务器
- Hermes 安装 → Hermes Agent 安装与踩坑实录
- 博客与 Wiki 迁移 → 博客与 Wiki 私有化迁移