🤖HermesBlog
Hermes Messaging Platforms · Parte 88/9/2026

SMS — Ra Lệnh AI Qua Tin Nhắn

SMS — Command AI by Text — easy-to-understand guide based on official docs

messaging-sms

SMS — Ra Lệnh AI Qua Tin Nhắn

Còn nhớ thời trước smartphone, khi nhắn tin là cách nhanh nhất để liên lạc với ai đó không? Vâng, kênh cổ điển đó vẫn còn sống khỏe — và giờ nó đã trở thành một cách hoàn chỉnh để trò chuyện với trợ lý AI của bạn.

Hermes giờ đây kết nối với SMS thông qua Twilio, vì vậy bất kỳ ai có số điện thoại đều có thể nhắn tin cho bot của bạn và nhận phản hồi từ AI. Không cần cài đặt ứng dụng, không cần quét mã QR, không cần học cách dùng. Chỉ là những tin nhắn văn bản đơn giản như xưa.

Có Gì Mới Trong Bản Cập Nhật Này

Cổng SMS đã được nâng cấp nghiêm túc. Đây là những gì đã thay đổi:

  • SMS_WEBHOOK_URL giờ là bắt buộc — Hermes xác thực chữ ký webhook của Twilio để ngăn kẻ giả mạo. Cổng sẽ từ chối khởi động nếu thiếu nó.
  • Biến môi trường mớiSMS_WEBHOOK_HOST, SMS_WEBHOOK_PORT, SMS_INSECURE_NO_SIGNATURESMS_ALLOW_ALL_USERS cho bạn nhiều quyền kiểm soát hơn.
  • Mặc định bảo mật tốt hơn — Cổng từ chối tất cả người dùng theo mặc định. Bạn phải chủ động thêm số điện thoại vào danh sách cho phép.
  • Tách tin nhắn thông minh hơn — Các phản hồi dài giờ được tách tại các ranh giới tự nhiên (xuống dòng, rồi đến khoảng trắng) thay vì bị cắt giữa chừng một từ.

Bắt Đầu

Đầu tiên, bạn cần một tài khoản Twilio và một số điện thoại có khả năng SMS. Twilio có gói dùng thử miễn phí, vì vậy bạn có thể kiểm tra mọi thứ mà không tốn một xu.

Bạn cũng cần một máy chủ truy cập công khai. Twilio gửi webhook đến máy chủ của bạn khi ai đó nhắn tin đến số của bạn. Nếu bạn đang chạy Hermes cục bộ, các công cụ như cloudflared hoặc ngrok có thể phơi bày localhost của bạn ra internet.

Cài đặt gói mở rộng SMS bằng lệnh:

cd ~/.hermes/hermes-agent && uv pip install -e ".[sms]"

Bước 1: Lấy Thông Tin Twilio Của Bạn

Truy cập Twilio Console, sao chép Account SIDAuth Token từ bảng điều khiển, và ghi chú số điện thoại của bạn theo định dạng E.164 (như +15551234567).

Bước 2: Cấu Hình Hermes

Cách dễ nhất là dùng trình hướng dẫn tương tác:

hermes gateway setup

Chọn SMS (Twilio) và làm theo hướng dẫn.

Thích cấu hình thủ công? Thêm những dòng này vào ~/.hermes/.env:

TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TWILIO_AUTH_TOKEN=your_auth_token_here
TWILIO_PHONE_NUMBER=+15551234567

# Bảo mật: giới hạn chỉ cho phép các số điện thoại cụ thể (khuyến nghị)
SMS_ALLOWED_USERS=+15559876543,+15551112222

# Tùy chọn: đặt kênh mặc định để gửi tác vụ định kỳ (cron job)
SMS_HOME_CHANNEL=+15559876543

Bước 3: Thiết Lập Webhook Twilio

Trong Twilio Console, đi đến Phone Numbers → Manage → Active Numbers, nhấp vào số của bạn, và trong mục Messaging → A MESSAGE COMES IN, đặt webhook thành:

https://your-server:8080/webhooks/twilio

Đặt phương thức HTTP là POST.

Quan trọng: Đặt SMS_WEBHOOK_URL thành chính xác cùng URL bạn đã cấu hình trong Twilio. Điều này bắt buộc để xác thực chữ ký:

SMS_WEBHOOK_URL=https://your-server:8080/webhooks/twilio

Cổng webhook mặc định là 8080, nhưng bạn có thể ghi đè bằng SMS_WEBHOOK_PORT.

Bước 4: Khởi Động Cổng

hermes gateway

Bạn sẽ thấy thông báo tương tự như:

[sms] Twilio webhook server listening on 127.0.0.1:8080, from: +1555***4567

Giờ hãy nhắn tin đến số Twilio của bạn — Hermes sẽ phản hồi qua SMS.

Sự Khác Biệt Trong Hành Vi SMS

SMS là phương tiện văn bản thuần túy, vì vậy Hermes thích nghi:

  • Không Markdown — Tự động loại bỏ vì SMS hiển thị chúng như ký tự thô
  • Giới hạn 1600 ký tự — Các phản hồi dài hơn được tách thành nhiều tin nhắn tại ranh giới tự nhiên
  • Chống lặp — Tin nhắn từ chính số Twilio của bạn sẽ bị bỏ qua để tránh vòng lặp
  • Quyền riêng tư — Số điện thoại được che giấu trong nhật ký

Bảo Mật Là Quan Trọng

Hermes xác thực rằng các webhook đến thực sự từ Twilio bằng cách kiểm tra tiêu đề X-Twilio-Signature (HMAC-SHA1). Điều này chặn kẻ tấn công chèn tin nhắn giả.

Cổng từ chối tất cả người dùng theo mặc định. Bạn phải cấu hình danh sách cho phép:

SMS_ALLOWED_USERS=+15559876543,+15551112222

Hoặc, nếu bạn muốn liều lĩnh (đừng nhé):

SMS_ALLOW_ALL_USERS=true

Để phát triển cục bộ không cần URL công khai, bạn có thể tắt xác thực chữ ký:

SMS_INSECURE_NO_SIGNATURE=true

Nhưng hãy nhớ — chỉ dành cho phát triển cục bộ, không bao giờ dùng cho production.

Một Cảnh Báo Cuối

SMS không có mã hóa tích hợp. Đừng dùng nó cho các thao tác nhạy cảm. Với bất cứ điều gì bí mật, hãy dùng Signal hoặc Telegram.

Xử Lý Sự Cố

Tin nhắn không đến? Kiểm tra:

  1. URL webhook của bạn đúng và truy cập công khai được
  2. TWILIO_ACCOUNT_SIDTWILIO_AUTH_TOKEN của bạn chính xác
  3. Twilio Console → Monitor → Logs → Messaging để xem lỗi gửi tin
  4. Số điện thoại của bạn nằm trong SMS_ALLOWED_USERS

Vậy đó! Nhắn tin cho bot, nhận câu trả lời. Đơn giản vậy thôi.

📖 Tài liệu chính thức

この記事は Hermes Agent のTài liệu chính thứcに基づいています:Tài liệu chính thức › user-guide/messaging/sms