Chuyển tới nội dung chính

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óiSử dụng Chế độ giọng nói với Hermes.

So sánh nền tảng

Nền tảngGiọng nóiHình ảnhTập tinChủ đềPhản ứngĐang gõTruyền phát
Telegram
Discord
Slack
WhatsApp
Signal
SMS
Email
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ệnhMô tả
/new hoặc /resetBắ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)
/providerHiể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
/retryThử lại tin nhắn cuối cùng
/undoXóa trao đổi cuối cùng
/statusHiển thị thông tin phiên
/stopDừng tác nhân đang chạy
/approvePhê duyệt lệnh nguy hiểm đang chờ xử lý
/denyTừ 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
/compressNé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 đó
/usageHiể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-mcpTải lại máy chủ MCP từ config
/updateCập nhật Hermes Agent lên phiên bản mới nhất
/helpHiể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áchMặc địnhMô tả
Hàng ngày4:00 sángĐặt lại vào một giờ cụ thể mỗi ngày
Nhàn rỗi1440 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
allCập nhật đầu ra đang chạy thông báo hoàn thành cuối cùng (mặc định)
resultChỉ thông báo hoàn thành cuối cùng (bất kể mã thoát)
errorChỉ có thông báo cuối cùng khi mã thoát khác 0
offKhô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"
mẹo

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ồ.

Nhiều cài đặt

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/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.
PATH thay đổi sau khi cài đặt

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.

Nhiều cài đặt

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ảngBộ công cụKhả năng
CLIhermes-cliToàn quyền truy cập
Telegramhermes-telegramCông cụ đầy đủ bao gồm cả terminal
Discordhermes-discordCông cụ đầy đủ bao gồm cả terminal
WhatsApphermes-whatsappCông cụ đầy đủ bao gồm cả terminal
Slackhermes-slackCông cụ đầy đủ bao gồm cả terminal
Signalhermes-signalCông cụ đầy đủ bao gồm cả terminal
SMShermes-smsCông cụ đầy đủ bao gồm cả terminal
Emailhermes-emailCông cụ đầy đủ bao gồm cả terminal
Home Assistanthermes-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)
Mattermosthermes-mattermostCông cụ đầy đủ bao gồm cả terminal
Matrixhermes-matrixCông cụ đầy đủ bao gồm cả terminal
DingTalkhermes-dingtalkCông cụ đầy đủ bao gồm cả terminal
Feishu/Larkhermes-feishuCông cụ đầy đủ bao gồm cả terminal
WeComhermes-wecomCông cụ đầy đủ bao gồm cả terminal
QQ BotQQ Bot (Tencent QQ) qua API chính thức v2
API Serverhermes (mặc định)Công cụ đầy đủ bao gồm cả terminal
Webhookshermes-webhookCông cụ đầy đủ bao gồm cả terminal

Các bước tiếp theo