短信接入——手机号直接指挥 AI
Hermes 消息平台接入第8篇:SMS。用手机短信和 Hermes 通信。
这篇教程将手把手教你如何用手机号直接指挥 Hermes Agent,让 AI 通过普通短信与你对话。
你有没有想过,不装任何 App,直接用手机自带的短信功能就能指挥 AI 干活?今天我们就来实现这个操作。Hermes Agent 通过一个叫 Twilio 的短信服务平台,把你的手机号变成 AI 的“电话线”——别人发短信到这个号码,AI 就会自动回复,和微信聊天一样方便。
第 1 步:准备材料
- Twilio 账号:去 twilio.com 免费注册一个(有免费试用额度)
- 一个支持短信的 Twilio 电话号码(注册后可以在后台购买,约 1 美元/月)
- 一台能上网的服务器(Twilio 收到短信后,需要通知你的服务器来处理)
- 安装短信组件:在终端运行下面命令:
cd ~/.hermes/hermes-agent && uv pip install -e ".[sms]"
💡 生活化比喻:Twilio 就像一个“电话中转站”。别人发短信给中转站,中转站打电话通知你家的“接线员”(Hermes),接线员处理完再让中转站把回复发回去。
第 2 步:拿到你的 Twilio“钥匙”
- 登录 Twilio 控制台
- 在首页复制 Account SID(账号 ID)和 Auth Token(认证令牌)——这两串字符就是你的“钥匙”
- 在 Phone Numbers → Manage → Active Numbers 里找到你的电话号码(格式像
+15551234567)
第 3 步:把“钥匙”告诉 Hermes
推荐用交互式设置,运行:
hermes gateway setup
选择 SMS (Twilio),按提示粘贴刚才复制的两串“钥匙”和电话号码。
或者手动编辑 ~/.hermes/.env 文件,加入:
TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TWILIO_AUTH_TOKEN=你的认证令牌
TWILIO_PHONE_NUMBER=+15551234567
# 安全设置:只允许特定手机号使用(强烈推荐)
SMS_ALLOWED_USERS=+15559876543,+15551112222
第 4 步:告诉 Twilio 你的服务器地址
这一步相当于给中转站留一个“回拨电话”。在 Twilio 控制台:
- 进入 Phone Numbers → Manage → Active Numbers
- 点击你的号码
- 在 Messaging → A MESSAGE COMES IN 里,设置:
- Webhook:
https://你的服务器地址:8080/webhooks/twilio - HTTP Method:
POST
- Webhook:
💡 本地测试小技巧:如果 Hermes 跑在自己电脑上,可以用隧道工具把本地地址暴露到公网:
cloudflared tunnel --url http://localhost:8080 # 或 ngrok http 8080然后把生成的公网地址填到 Twilio 里。
重要:还要在 .env 里设置 SMS_WEBHOOK_URL,必须和 Twilio 后台填的地址完全一致,否则 Hermes 会拒绝启动:
SMS_WEBHOOK_URL=https://你的服务器地址:8080/webhooks/twilio
第 5 步:启动并测试
hermes gateway
看到类似 [sms] Twilio webhook server listening on 127.0.0.1:8080 的日志就成功了。现在给你的 Twilio 号码发条短信试试——AI 会立刻回复!
几个贴心提醒
- 短信只有纯文字:Markdown 格式会被自动去掉,别发复杂排版
- 单条最长 1600 字符:超长回复会自动拆成多条发送
- 安全第一:短信没有加密,别用它处理敏感信息(比如密码、转账)。重要操作建议用 Telegram 或 Signal
- 默认拒绝所有人:必须设置
SMS_ALLOWED_USERS白名单,否则别人发短信也不会理
遇到问题?
- 收不到短信:检查 Webhook 地址是否公网可访问、
TWILIO_AUTH_TOKEN是否正确 - 发不出回复:确认
TWILIO_PHONE_NUMBER格式带+号,且账号有短信额度 - 端口被占用:改
SMS_WEBHOOK_PORT=3001,并同步更新 Twilio 后台的 Webhook 地址
小结
到这里,你已经成功让 Hermes 通过短信“接客”了!整个过程就像给 AI 装了一部老式电话——Twilio 是总机,Hermes 是接线员,你的手机号就是分机号。虽然短信功能简单,但胜在人人会用、无需安装。
下篇预告:短信太朴素?下一篇我们聊聊如何给 AI 接入语音通话——让 Hermes 直接“开口说话”,敬请期待!
📖 官方文档
本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/messaging/sms