Cổng nhắn tin
Trò chuyện với Hermes từ Telegram, Discord, Slack, WhatsApp, Signal, SMS, Email, Home Assistant, Mattermost, Matrix, DingTalk, Feishu/Lark, WeCom hoặc trình duyệt của bạn. Cổng là một quy trình nền duy nhất kết nối với tất cả các nền tảng được định cấu hình của bạn, xử lý các phiên, chạy các công việc định kỳ và gửi tin nhắn thoại.
Để biết bộ tính năng giọng nói đầy đủ — bao gồm chế độ micrô CLI, trả lời bằng giọng nói trong tin nhắn và cuộc trò chuyện trên kênh thoại Discord — hãy xem Chế độ giọng nói và Sử dụng Chế độ giọng nói với Hermes.
So sánh nền tảng
| Nền tảng | Giọng nói | Hình ảnh | Tập tin | Chủ đề | Phản ứng | Đang gõ | Truyền phát |
|---|---|---|---|---|---|---|---|
| Telegram | ✅ | ✅ | ✅ | ✅ | — | ✅ | ✅ |
| Discord | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Slack | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| — | ✅ | ✅ | — | — | ✅ | ✅ | |
| Signal | — | ✅ | ✅ | — | — | ✅ | ✅ |
| SMS | — | — | — | — | — | — | — |
| — | ✅ | ✅ | ✅ | — | — | — | |
| Home Assistant | — | — | — | — | — | — | — |
| Mattermost | ✅ | ✅ | ✅ | ✅ | — | ✅ | ✅ |
| Matrix | ✅ | ✅ | ✅ | ✅ | — | ✅ | ✅ |
| DingTalk | — | — | — | — | — | ✅ | ✅ |
| Feishu/Lark | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| WeCom | ✅ | ✅ | ✅ | — | — | ✅ | ✅ |
Giọng nói = Trả lời bằng âm thanh TTS và/hoặc chép lại tin nhắn thoại. Hình ảnh = gửi/nhận hình ảnh. Tệp = gửi/nhận tệp đính kèm. Chủ đề = cuộc trò chuyện theo chuỗi. Phản ứng = biểu tượng cảm xúc trên tin nhắn. Đang gõ = chỉ báo đang gõ trong khi xử lý. Truyền phát = cập nhật tin nhắn liên tục thông qua chỉnh sửa.
Kiến trúc
Mỗi bộ điều hợp nền tảng nhận tin nhắn, định tuyến chúng qua kho lưu trữ phiên trên mỗi cuộc trò chuyện và gửi chúng đến AIAgent để xử lý. Cổng cũng chạy bộ lập lịch cron, đánh dấu 60 giây một lần để thực hiện mọi công việc đến hạn.
Thiết lập nhanh
Cách dễ nhất để định cấu hình nền tảng nhắn tin là trình hướng dẫn tương tác:
hermes gateway setup
# Thiết lập tương tác cho tất cả các nền tảng nhắn tin
Phần này hướng dẫn bạn cách định cấu hình từng nền tảng bằng lựa chọn phím mũi tên, hiển thị nền tảng nào đã được định cấu hình và đề xuất khởi động/khởi động lại cổng khi hoàn tất.
Lệnh cổng
hermes gateway
# Chạy ở foreground
hermes gateway setup
# Định cấu hình nền tảng nhắn tin tương tác
hermes gateway install
# Cài đặt dưới dạng dịch vụ người dùng (Linux) / dịch vụ launchd (macOS)
sudo hermes gateway install --system
# Chỉ Linux: cài đặt dịch vụ hệ thống khởi động cùng hệ thống
hermes gateway start
# Khởi động dịch vụ mặc định
hermes gateway stop
# Dừng dịch vụ mặc định
hermes gateway status
# Kiểm tra trạng thái dịch vụ mặc định
hermes gateway status --system
# Chỉ Linux: kiểm tra dịch vụ hệ thống một cách rõ ràng
Lệnh trò chuyện (Nhắn tin bên trong)
| Lệnh | Mô tả |
|---|---|
/new hoặc /reset | Bắt đầu một cuộc trò chuyện mới |
/model [provider:model] | Hiển thị hoặc thay đổi mô hình (hỗ trợ cú pháp provider:model) |
/provider | Hiển thị các nhà cung cấp có sẵn với trạng thái xác thực |
/personality [name] | Đặt tính cách |
/retry | Thử lại tin nhắn cuối cùng |
/undo | Xóa trao đổi cuối cùng |
/status | Hiển thị thông tin phiên |
/stop | Dừng tác nhân đang chạy |
/approve | Phê duyệt lệnh nguy hiểm đang chờ xử lý |
/deny | Từ chối lệnh nguy hiểm đang chờ xử lý |
/sethome | Đặt cuộc trò chuyện này làm kênh chính |
/compress | Nén ngữ cảnh hội thoại theo cách thủ công |
/title [name] | Đặt hoặc hiển thị tiêu đề phiên |
/resume [name] | Tiếp tục phiên được đặt tên trước đó |
/usage | Hiển thị mức sử dụng token cho phiên này |
/insights [days] | Hiển thị thông tin chi tiết và phân tích về cách sử dụng |
/reasoning [level|show|hide] | Thay đổi nỗ lực lập luận hoặc chuyển đổi hiển thị lý luận |
/voice [on|off|tts|join|leave|status] | Kiểm soát phản hồi bằng giọng nói trong tin nhắn và hoạt động của kênh thoại Discord |
/rollback [number] | Liệt kê hoặc khôi phục các điểm kiểm tra hệ thống tệp |
/background <prompt> | Chạy prompt trong phiên nền riêng biệt |
/reload-mcp | Tải lại máy chủ MCP từ config |
/update | Cập nhật Hermes Agent lên phiên bản mới nhất |
/help | Hiển thị các lệnh có sẵn |
/<skill-name> | Gọi bất kỳ kỹ năng nào đã cài đặt |
Quản lý phiên
Sự kiên trì của phiên
Các phiên vẫn tồn tại trên các tin nhắn cho đến khi chúng được đặt lại. Nhân viên ghi nhớ bối cảnh cuộc trò chuyện của bạn.
Đặt lại chính sách
Đặt lại phiên dựa trên các chính sách có thể định cấu hình:
| Chính sách | Mặc định | Mô tả |
|---|---|---|
| Hàng ngày | 4:00 sáng | Đặt lại vào một giờ cụ thể mỗi ngày |
| Nhàn rỗi | 1440 phút | Đặt lại sau N phút không hoạt động |
| Cả hai | (kết hợp) | Cái nào kích hoạt trước |
Định cấu hình ghi đè trên mỗi nền tảng trong ~/.hermes/gateway.json :
{
"reset_by_platform": {
"telegram": { "mode": "idle", "idle_minutes": 240 },
"discord": { "mode": "idle", "idle_minutes": 60 }
}
}
Bảo mật
Theo mặc định, cổng từ chối tất cả người dùng không nằm trong danh sách cho phép hoặc được ghép nối qua DM. Đây là chế độ mặc định an toàn cho bot có quyền truy cập terminal.
# Giới hạn cho người dùng cụ thể (khuyến nghị):
TELEGRAM_ALLOWED_USERS=123456789,987654321
DISCORD_ALLOWED_USERS=123456789012345678
SIGNAL_ALLOWED_USERS=+155****4567,+155****6543
SMS_ALLOWED_USERS=+155****4567,+155****6543
EMAIL_ALLOWED_USERS=trusted@example.com,colleague@work.com
MATTERMOST_ALLOWED_USERS=3uo8dkh1p7g1mfk49ear5fzs5c
MATRIX_ALLOWED_USERS=@alice:matrix.org
DINGTALK_ALLOWED_USERS=user-id-1
# Hoặc cho phép tất cả người dùng trong một biến:
GATEWAY_ALLOWED_USERS=123456789,987654321
# Hoặc cho phép rõ ràng tất cả người dùng (KHÔNG khuyến nghị cho bot có quyền truy cập terminal):
GATEWAY_ALLOW_ALL_USERS=true
Ghép nối DM (Thay thế cho danh sách cho phép)
Thay vì định cấu hình ID người dùng theo cách thủ công, những người dùng không xác định sẽ nhận được mã ghép nối một lần khi họ DM bot:
# Người dùng thấy: "Pairing code: XKGH5N7P"
# Bạn phê duyệt họ bằng:
hermes pairing approve telegram XKGH5N7P
# Các lệnh ghép nối khác:
hermes pairing list
# Xem người dùng đang chờ + đã phê duyệt
hermes pairing revoke telegram 123456789
# Thu hồi quyền truy cập
Mã ghép nối sẽ hết hạn sau 1 giờ, có giới hạn tốc độ và sử dụng tính ngẫu nhiên của mật mã.
Làm gián đoạn tác nhân
Gửi bất kỳ tin nhắn nào trong khi tác nhân đang làm việc để làm gián đoạn nó. Các hành vi chính:
- Các lệnh terminal đang thực hiện sẽ bị hủy ngay lập tức (SIGTERM, sau đó là SIGKILL sau 1 giây)
- Cuộc gọi công cụ bị hủy — chỉ lệnh hiện đang thực hiện chạy, phần còn lại bị bỏ qua
- Nhiều tin nhắn được kết hợp — các tin nhắn được gửi trong thời gian bị gián đoạn sẽ được nối vào một prompt
- Lệnh
/stop— ngắt mà không xếp hàng tin nhắn tiếp theo
Thông báo tiến độ công cụ
Kiểm soát lượng hoạt động của công cụ được hiển thị trong ~/.hermes/config.yaml :
display:
tool_progress: all
# off | new | all | verbose
tool_progress_command: false
# đặt thành true để bật /verbose trong nhắn tin
Khi được bật, bot sẽ gửi thông báo trạng thái khi hoạt động:
💻 `ls -la`...
🔍 web_search...
📄 web_extract...
🐍 execute_code...
Phiên nền
Chạy prompt trong một phiên nền riêng biệt để nhân viên hỗ trợ hoạt động độc lập trong khi cuộc trò chuyện chính của bạn vẫn phản hồi:
/background Kiểm tra tất cả các máy chủ trong cụm và báo cáo bất kỳ máy chủ nào ngừng hoạt động
Hermes xác nhận ngay:
🔄 Background task started: "Check all servers in the cluster..."
Task ID: bg_143022_a1b2c3
Cách thức hoạt động
Mỗi prompt /background sinh ra một phiên bản tác nhân riêng biệt chạy không đồng bộ:
- Phiên riêng biệt — tác nhân nền có phiên riêng với lịch sử hội thoại riêng. Nó không biết ngữ cảnh trò chuyện hiện tại của bạn và chỉ nhận được prompt bạn cung cấp.
- Cấu hình tương tự — kế thừa mô hình, nhà cung cấp, bộ công cụ, cài đặt lý luận và định tuyến của nhà cung cấp từ thiết lập cổng hiện tại.
- Không chặn — cuộc trò chuyện chính của bạn vẫn hoàn toàn tương tác. Gửi tin nhắn, chạy các lệnh khác hoặc bắt đầu nhiều tác vụ nền hơn trong khi nó hoạt động.
- Gửi kết quả — khi tác vụ kết thúc, kết quả sẽ được gửi trở lại cùng một cuộc trò chuyện hoặc kênh nơi bạn đã đưa ra lệnh, có tiền tố là "✅ Hoàn thành tác vụ trong nền". Nếu không thành công, bạn sẽ thấy thông báo "❌ Background task failed" kèm theo lỗi.
Thông báo quá trình nền
Khi tổng đài viên chạy phiên nền sử dụng terminal(background=true) để bắt đầu các quy trình chạy dài (máy chủ, bản dựng, v.v.), cổng có thể đẩy các cập nhật trạng thái vào cuộc trò chuyện của bạn. Kiểm soát điều này bằng display.background_process_notifications trong ~/.hermes/config.yaml :
display:
background_process_notifications: all
# all | result | error | off
| Chế độ | Những gì bạn nhận được |
|---|---|
all | Cập nhật đầu ra đang chạy và thông báo hoàn thành cuối cùng (mặc định) |
result | Chỉ thông báo hoàn thành cuối cùng (bất kể mã thoát) |
error | Chỉ có thông báo cuối cùng khi mã thoát khác 0 |
off | Không có thông báo theo dõi quá trình nào cả |
Bạn cũng có thể thiết lập điều này thông qua biến môi trường:
HERMES_BACKGROUND_NOTIFICATIONS=result
Trường hợp sử dụng
- Giám sát máy chủ — "/background Kiểm tra tình trạng của tất cả các dịch vụ và thông báo cho tôi nếu có sự cố"
- Bản dựng dài — "/background Xây dựng và triển khai môi trường chạy thử" trong khi bạn tiếp tục trò chuyện
- Nhiệm vụ nghiên cứu — "/background Nghiên cứu giá của đối thủ cạnh tranh và tóm tắt trong bảng"
- Thao tác tệp — "/background Sắp xếp ảnh trong ~/Tải xuống theo ngày vào các thư mục"
Các tác vụ nền trên nền tảng nhắn tin có thể thực hiện nhanh chóng — bạn không cần phải đợi hoặc kiểm tra chúng. Kết quả sẽ tự động đến trong cùng một cuộc trò chuyện khi nhiệm vụ kết thúc.
Quản lý dịch vụ
Linux (systemd)
hermes gateway install
# Cài đặt dưới dạng dịch vụ người dùng
hermes gateway start
# Khởi động dịch vụ
hermes gateway stop
# Dừng dịch vụ
hermes gateway status
# Kiểm tra trạng thái
journalctl --user -u hermes-gateway -f
# Xem nhật ký
# Bật lingering (giữ chạy sau khi đăng xuất)
sudo loginctl enable-linger $USER
# Hoặc cài đặt dịch vụ hệ thống khởi động cùng hệ thống vẫn chạy dưới quyền người dùng của bạn
sudo hermes gateway install --system
sudo hermes gateway start --system
sudo hermes gateway status --system
journalctl -u hermes-gateway -f
Sử dụng dịch vụ người dùng trên máy tính xách tay và hộp phát triển. Sử dụng dịch vụ hệ thống trên VPS hoặc máy chủ không đầu sẽ quay trở lại khi khởi động mà không cần dựa vào systemd lingering.
Tránh cài đặt cả dịch vụ cổng hệ thống và người dùng cùng một lúc trừ khi bạn thực sự có ý định đó. Hermes sẽ cảnh báo nếu phát hiện cả hai vì hành vi start/stop/status trở nên mơ hồ.
Nếu bạn chạy nhiều bản cài đặt Hermes trên cùng một máy (với các thư mục HERMES_HOME khác nhau), thì mỗi bản cài đặt sẽ có tên dịch vụ systemd riêng. ~/.hermes mặc định sử dụng hermes-gateway ; các cài đặt khác sử dụng hermes-gateway-<hash> . Các lệnh hermes gateway sẽ tự động nhắm mục tiêu đúng dịch vụ cho HERMES_HOME hiện tại của bạn.
macOS (launchd)
hermes gateway install
# Cài đặt dưới dạng launchd agent
hermes gateway start
# Khởi động dịch vụ
hermes gateway stop
# Dừng dịch vụ
hermes gateway status
# Kiểm tra trạng thái
tail -f ~/.hermes/logs/gateway.log
# Xem nhật ký
Plist được tạo tồn tại ở ~/Library/LaunchAgents/ai.hermes.gateway.plist . Nó bao gồm ba biến môi trường:
- PATH — shell PATH đầy đủ của bạn khi cài đặt, với venv
bin/vànode_modules/.binđược thêm vào trước. Điều này đảm bảo các công cụ do người dùng cài đặt (Node.js, ffmpeg, v.v.) có sẵn cho các quy trình con cổng như WhatsApp bridge. - VIRTUAL_ENV — trỏ đến virtualenv Python để các công cụ có thể phân giải các gói một cách chính xác.
- HERMES_HOME — xác định phạm vi cổng vào quá trình cài đặt Hermes của bạn.
Plist là tĩnh — nếu bạn cài đặt các công cụ mới (ví dụ: phiên bản Node.js mới qua nvm hoặc ffmpeg qua Homebrew) sau khi thiết lập cổng, hãy chạy lại hermes gateway install để nắm bắt PATH đã cập nhật. Cổng sẽ phát hiện plist cũ và tự động tải lại.
Giống như dịch vụ systemd của Linux, mỗi thư mục HERMES_HOME có nhãn launchd riêng. ~/.hermes mặc định sử dụng ai.hermes.gateway ; các cài đặt khác sử dụng ai.hermes.gateway-<suffix> .
Bộ công cụ dành riêng cho nền tảng
Mỗi nền tảng có bộ công cụ riêng:
| Nền tảng | Bộ công cụ | Khả năng |
|---|---|---|
| CLI | hermes-cli | Toàn quyền truy cập |
| Telegram | hermes-telegram | Công cụ đầy đủ bao gồm cả terminal |
| Discord | hermes-discord | Công cụ đầy đủ bao gồm cả terminal |
hermes-whatsapp | Công cụ đầy đủ bao gồm cả terminal | |
| Slack | hermes-slack | Công cụ đầy đủ bao gồm cả terminal |
| Signal | hermes-signal | Công cụ đầy đủ bao gồm cả terminal |
| SMS | hermes-sms | Công cụ đầy đủ bao gồm cả terminal |
hermes-email | Công cụ đầy đủ bao gồm cả terminal | |
| Home Assistant | hermes-homeassistant | Đầy đủ công cụ + điều khiển thiết bị HA (ha_list_entities, ha_get_state, ha_call_service, ha_list_services) |
| Mattermost | hermes-mattermost | Công cụ đầy đủ bao gồm cả terminal |
| Matrix | hermes-matrix | Công cụ đầy đủ bao gồm cả terminal |
| DingTalk | hermes-dingtalk | Công cụ đầy đủ bao gồm cả terminal |
| Feishu/Lark | hermes-feishu | Công cụ đầy đủ bao gồm cả terminal |
| WeCom | hermes-wecom | Công cụ đầy đủ bao gồm cả terminal |
| QQ Bot | QQ Bot (Tencent QQ) qua API chính thức v2 | |
| API Server | hermes (mặc định) | Công cụ đầy đủ bao gồm cả terminal |
| Webhooks | hermes-webhook | Công cụ đầy đủ bao gồm cả terminal |