🤖HermesBlog
Hermes 消息平台接入 · 第8篇2026/8/9· Easy Understand Hermes Agent

短信接入——手机号直接指挥 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“钥匙”

  1. 登录 Twilio 控制台
  2. 在首页复制 Account SID(账号 ID)和 Auth Token(认证令牌)——这两串字符就是你的“钥匙”
  3. 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 控制台:

  1. 进入 Phone Numbers → Manage → Active Numbers
  2. 点击你的号码
  3. Messaging → A MESSAGE COMES IN 里,设置:
    • Webhookhttps://你的服务器地址:8080/webhooks/twilio
    • HTTP MethodPOST

💡 本地测试小技巧:如果 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