Cài đặt điện tín
Hermes Agent tích hợp với Telegram dưới dạng bot đàm thoại đầy đủ tính năng. Sau khi kết nối, bạn có thể trò chuyện với nhân viên hỗ trợ của mình từ bất kỳ thiết bị nào, gửi bản ghi nhớ giọng nói được chép lời tự động, nhận kết quả nhiệm vụ theo lịch trình và sử dụng nhân viên hỗ trợ trong các cuộc trò chuyện nhóm. Việc tích hợp được xây dựng trên python-telegram-bot và hỗ trợ văn bản, giọng nói, hình ảnh và tệp đính kèm.
Bước 1: Tạo Bot thông qua BotFather
Mọi bot Telegram đều yêu cầu mã thông báo API do @BotFather, công cụ quản lý bot chính thức của Telegram cấp.
- Mở Telegram và tìm kiếm @BotFather hoặc truy cập t.me/BotFather
- Gửi
/newbot - Chọn tên hiển thị (ví dụ: "Đặc vụ Hermes") — đây có thể là bất kỳ tên nào
- Chọn tên người dùng — tên này phải là duy nhất và kết thúc bằng
bot(ví dụ:my_hermes_bot) - BotFather trả lời bằng mã thông báo API của bạn. Nó trông như thế này:
123456789:ABCdefGHIjklMNOpqrSTUvwxYZ
Giữ bí mật mã thông báo bot của bạn. Bất kỳ ai có mã thông báo này đều có thể điều khiển bot của bạn. Nếu nó bị rò rỉ, hãy thu hồi nó ngay lập tức thông qua /revoke trong BotFather.
Bước 2: Tùy chỉnh Bot của bạn (Tùy chọn)
Các lệnh BotFather này cải thiện trải nghiệm người dùng. Nhắn tin @BotFather và sử dụng:
| Lệnh | Mục đích |
|---|---|
/setdescription | Câu hỏi "Bot này có thể làm gì?" văn bản hiển thị trước khi người dùng bắt đầu trò chuyện |
/setabouttext | Văn bản ngắn trên trang hồ sơ của bot |
/setuserpic | Tải lên hình đại diện cho bot của bạn |
/setcommands | Xác định menu lệnh (nút / trong trò chuyện) |
/setprivacy | Kiểm soát xem bot có nhìn thấy tất cả tin nhắn nhóm hay không (xem Bước 3) |
Đối với /setcommands , bộ khởi đầu hữu ích:
help - Show help information
new - Start a new conversation
sethome - Set this chat as the home channel
Bước 3: Chế độ riêng tư (Quan trọng đối với nhóm)
Các bot Telegram có chế độ riêng tư được bật theo mặc định. Đây là nguyên nhân gây nhầm lẫn phổ biến nhất khi sử dụng bot theo nhóm.
Khi BẬT chế độ quyền riêng tư, bot của bạn chỉ có thể thấy:
- Tin nhắn bắt đầu bằng lệnh
/ - Trả lời trực tiếp tin nhắn của bot
- Tin nhắn dịch vụ (thành viên tham gia/rời đi, tin nhắn được ghim, v.v.)
- Tin nhắn trong các kênh mà bot là quản trị viên
Khi TẮT chế độ riêng tư, bot sẽ nhận được mọi tin nhắn trong nhóm.
Cách tắt chế độ riêng tư
- Tin nhắn @BotFather
- Gửi
/mybots - Chọn bot của bạn
- Đi tới Cài đặt Bot → Quyền riêng tư của nhóm → Tắt
Bạn phải xóa và thêm lại bot vào bất kỳ nhóm nào sau khi thay đổi cài đặt quyền riêng tư. Telegram lưu trữ trạng thái quyền riêng tư khi bot tham gia một nhóm và nó sẽ không cập nhật cho đến khi bot bị xóa và thêm lại.
Một giải pháp thay thế cho việc tắt chế độ quyền riêng tư: thăng cấp bot lên quản trị viên nhóm. Các bot quản trị luôn nhận được tất cả tin nhắn bất kể cài đặt quyền riêng tư và điều này tránh việc phải chuyển đổi chế độ quyền riêng tư chung.
Bước 4: Tìm ID người dùng của bạn
Hermes Agent sử dụng ID người dùng Telegram bằng số để kiểm soát quyền truy cập. ID người dùng không phải tên người dùng của bạn — đó là một số như 123456789 .Phương pháp 1 (được khuyến nghị): Tin nhắn @userinfobot — nó sẽ trả lời ngay lập tức bằng ID người dùng của bạn.
Phương pháp 2: Tin nhắn @get_id_bot — một tùy chọn đáng tin cậy khác.
Lưu số này; bạn sẽ cần nó cho bước tiếp theo.
Bước 5: Cấu hình Hermes
Tùy chọn A: Thiết lập tương tác (Được khuyến nghị)
hermes gateway setup
Chọn Telegram khi được nhắc. Trình hướng dẫn sẽ yêu cầu mã thông báo bot và ID người dùng được phép của bạn, sau đó viết cấu hình cho bạn.
Tùy chọn B: Cấu hình thủ công
Thêm phần sau vào ~/.hermes/.env :
TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrSTUvwxYZ
TELEGRAM_ALLOWED_USERS=123456789
# Comma-separated for multiple users
Khởi động cổng
hermes gateway
Bot sẽ trực tuyến trong vòng vài giây. Gửi tin nhắn trên Telegram để xác minh.
Chế độ Webhook
Theo mặc định, Hermes kết nối với Telegram bằng cách bỏ phiếu dài — cổng gửi yêu cầu gửi đi tới máy chủ của Telegram để tìm nạp các bản cập nhật mới. Điều này hoạt động tốt cho việc triển khai cục bộ và luôn luôn.
Đối với triển khai trên đám mây (Fly.io, Railway, Render, v.v.), chế độ webhook sẽ tiết kiệm chi phí hơn. Các nền tảng này có thể tự động đánh thức các máy bị treo trên lưu lượng HTTP gửi đến, nhưng không tự động đánh thức các kết nối gửi đi. Vì cuộc bỏ phiếu được gửi đi nên bot bỏ phiếu không bao giờ có thể ngủ. Chế độ Webhook thay đổi hướng — Telegram đẩy các bản cập nhật lên URL HTTPS của bot của bạn, cho phép triển khai ở chế độ ngủ khi không hoạt động.
| Bỏ phiếu (mặc định) | Webhook | |
|---|---|---|
| Hướng | Cổng → Telegram (gửi đi) | Telegram → Cổng (vào) |
| Tốt nhất cho | Máy chủ cục bộ, luôn hoạt động | Nền tảng đám mây có tính năng tự động đánh thức |
| Thiết lập | Không có cấu hình bổ sung | Đặt TELEGRAM_WEBHOOK_URL |
| Chi phí nhàn rỗi | Máy phải tiếp tục chạy | Máy có thể ngủ giữa các tin nhắn |
Cấu hình
Thêm phần sau vào ~/.hermes/.env :
TELEGRAM_WEBHOOK_URL=https://my-app.fly.dev/telegram
# TELEGRAM_WEBHOOK_PORT=8443
# optional, default 8443
# TELEGRAM_WEBHOOK_SECRET=mysecret
# optional, recommended
| Biến | Bắt buộc | Mô tả |
|---|---|---|
TELEGRAM_WEBHOOK_URL | Có | URL HTTPS công khai nơi Telegram sẽ gửi thông tin cập nhật. Đường dẫn URL được trích xuất tự động (ví dụ: /telegram từ ví dụ trên). |
TELEGRAM_WEBHOOK_PORT | Không | Cổng cục bộ mà máy chủ webhook lắng nghe (mặc định: 8443 ). |
TELEGRAM_WEBHOOK_SECRET | Không | Mã thông báo bí mật để xác minh rằng các bản cập nhật thực sự đến từ Telegram. Rất khuyến khích cho việc triển khai sản xuất. |
Khi TELEGRAM_WEBHOOK_URL được đặt, cổng sẽ khởi động máy chủ webhook HTTP thay vì bỏ phiếu. Khi không được đặt, chế độ thăm dò ý kiến sẽ được sử dụng — không có thay đổi nào về hành vi so với các phiên bản trước.
Ví dụ triển khai đám mây (Fly.io)
- Thêm các biến env vào bí mật ứng dụng Fly.io của bạn:
fly secrets set TELEGRAM_WEBHOOK_URL=https://my-app.fly.dev/telegram
fly secrets set TELEGRAM_WEBHOOK_SECRET=$(openssl rand -hex 32)
- Hiển thị cổng webhook trong
fly.toml:
[[services]]
internal_port = 8443
protocol = "tcp"
[[services.ports]]
handlers = ["tls", "http"]
port = 443
- Triển khai:
fly deploy
Nhật ký cổng sẽ hiển thị: [telegram] Connected to Telegram (webhook mode) .
Kênh chủ
Sử dụng lệnh /sethome trong bất kỳ cuộc trò chuyện Telegram (DM hoặc nhóm) nào để chỉ định kênh đó làm kênh chính. Các tác vụ đã lên lịch (cron jobs) phân phối kết quả của chúng tới kênh này.
Bạn cũng có thể đặt thủ công trong ~/.hermes/.env :
TELEGRAM_HOME_CHANNEL=-1001234567890
TELEGRAM_HOME_CHANNEL_NAME="My Notes"
ID trò chuyện nhóm là số âm (ví dụ: -1001234567890 ). ID trò chuyện DM cá nhân của bạn giống với ID người dùng của bạn.
Tin nhắn thoại
Giọng nói đến (Chuyển giọng nói thành văn bản)Tin nhắn thoại bạn gửi trên Telegram được nhà cung cấp STT đã định cấu hình của Hermes tự động phiên âm và đưa dưới dạng văn bản vào cuộc trò chuyện.
localsử dụngfaster-whispertrên máy chạy Hermes — không cần khóa APIgroqsử dụng Groq Whisper và yêu cầuGROQ_API_KEYopenaisử dụng OpenAI Whisper và yêu cầuVOICE_TOOLS_OPENAI_KEY
Giọng nói đi (Chuyển văn bản thành giọng nói)
Khi tác nhân tạo âm thanh qua TTS, âm thanh đó sẽ được phân phối dưới dạng Telegram gốc bong bóng thoại — loại tròn, có thể phát nội tuyến.
- OpenAI và ElevenLabs sản xuất Opus nguyên bản — không cần thiết lập thêm
- Edge TTS (nhà cung cấp miễn phí mặc định) xuất MP3 và yêu cầu ffmpeg để chuyển đổi sang Opus:
# Ubuntu/Debian
sudo apt install ffmpeg
# macOS
brew install ffmpeg
Nếu không có ffmpeg, âm thanh Edge TTS sẽ được gửi dưới dạng tệp âm thanh thông thường (vẫn có thể phát nhưng sử dụng trình phát hình chữ nhật thay vì bong bóng thoại).
Định cấu hình nhà cung cấp TTS trong config.yaml của bạn dưới khóa tts.provider.
Cách sử dụng trò chuyện nhóm
Hermes Agent hoạt động trong cuộc trò chuyện nhóm Telegram với một số điều cần cân nhắc:
- Chế độ bảo mật xác định những thông báo mà bot có thể nhìn thấy (xem Bước 3)
TELEGRAM_ALLOWED_USERSvẫn được áp dụng — chỉ những người dùng được ủy quyền mới có thể kích hoạt bot, ngay cả trong nhóm- Bạn có thể ngăn bot phản hồi cuộc trò chuyện nhóm thông thường bằng
telegram.require_mention: true - Với
telegram.require_mention: true, tin nhắn nhóm được chấp nhận khi chúng:- lệnh gạch chéo
- trả lời một trong các tin nhắn của bot
@botusernameđề cập- khớp với một trong các từ đánh thức biểu thức chính quy được định cấu hình của bạn trong
telegram.mention_patterns
- Nếu
telegram.require_mentionkhông được đặt hoặc sai, Hermes sẽ giữ nguyên hành vi nhóm mở trước đó và phản hồi các tin nhắn nhóm bình thường mà nó có thể thấy
Ví dụ về cấu hình kích hoạt nhóm
Thêm phần này vào ~/.hermes/config.yaml :
telegram:
require_mention: true
mention_patterns:
- "^\\s*chompy\\b"
Ví dụ này cho phép tất cả các trình kích hoạt trực tiếp thông thường cộng với các tin nhắn bắt đầu bằng chompy , ngay cả khi chúng không sử dụng @mention .
Ghi chú về mention_patterns
- Các mẫu sử dụng biểu thức chính quy Python
- So khớp không phân biệt chữ hoa chữ thường
- Các mẫu được kiểm tra đối với cả tin nhắn văn bản và chú thích phương tiện
- Các mẫu biểu thức chính quy không hợp lệ sẽ bị bỏ qua kèm theo cảnh báo trong nhật ký cổng thay vì làm hỏng bot
- Nếu bạn muốn một mẫu chỉ khớp ở đầu tin nhắn, hãy neo mẫu đó bằng
^
Chủ đề trò chuyện riêng tư (Bot API 9.4)
Telegram Bot API 9.4 (tháng 2 năm 2026) đã giới thiệu Chủ đề trò chuyện riêng tư - bot có thể tạo chủ đề theo kiểu diễn đàn trực tiếp trong cuộc trò chuyện DM 1-1, không cần siêu nhóm. Điều này cho phép bạn chạy nhiều không gian làm việc biệt lập trong DM hiện có của mình với Hermes.
Trường hợp sử dụng
Nếu bạn làm việc trên một số dự án dài hạn, các chủ đề sẽ tách biệt bối cảnh của chúng:
- Chủ đề "Trang web" — làm việc trên dịch vụ web sản xuất của bạn
- Chủ đề "Nghiên cứu" — xem xét tài liệu và khám phá tài liệu
- Chủ đề "Chung" — các nhiệm vụ linh tinh và câu hỏi nhanh
Mỗi chủ đề có phiên trò chuyện, lịch sử và bối cảnh riêng - hoàn toàn tách biệt với các chủ đề khác.
Cấu hình
Thêm chủ đề dưới platforms.telegram.extra.dm_topics trong ~/.hermes/config.yaml :
platforms:
telegram:
extra:
dm_topics:
- chat_id: 123456789
# Your Telegram user ID
topics:
- name: General
icon_color: 7322096
- name: Website
icon_color: 9367192
- name: Research
icon_color: 16766590
skill: arxiv
# Auto-load a skill in this topic
Các trường:
| Lĩnh vực | Bắt buộc | Mô tả |
|---|---|---|
name | Có | Tên hiển thị chủ đề |
icon_color | Không | Mã màu biểu tượng Telegram (số nguyên) |
icon_custom_emoji_id | Không | ID biểu tượng cảm xúc tùy chỉnh cho biểu tượng chủ đề |
skill | Không | Kỹ năng tự động tải các phiên mới trong chủ đề này |
thread_id | Không | Tự động điền sau khi tạo chủ đề - không đặt thủ công |
Cách thức hoạt động
- Khi khởi động cổng, Hermes gọi
createForumTopiccho mỗi chủ đề chưa cóthread_id thread_idđược tự động lưu trở lạiconfig.yaml— những lần khởi động lại tiếp theo sẽ bỏ qua lệnh gọi API- Mỗi chủ đề ánh xạ tới một khóa phiên riêng biệt:
agent:main:telegram:dm:{chat_id}:{thread_id} - Tin nhắn trong mỗi chủ đề có lịch sử hội thoại, bộ nhớ xóa và cửa sổ ngữ cảnh riêng
Ràng buộc kỹ năng
Các chủ đề có trường skill sẽ tự động tải kỹ năng đó khi phiên mới bắt đầu trong chủ đề. Điều này hoạt động giống hệt như việc nhập /skill-name khi bắt đầu cuộc trò chuyện — nội dung kỹ năng được đưa vào tin nhắn đầu tiên và các tin nhắn tiếp theo sẽ thấy nội dung đó trong lịch sử cuộc trò chuyện.
Ví dụ: một chủ đề có skill: arxiv sẽ được tải sẵn kỹ năng arxiv bất cứ khi nào phiên của nó được đặt lại (do hết thời gian chờ, đặt lại hàng ngày hoặc thủ công /reset ).
Các chủ đề được tạo bên ngoài cấu hình (ví dụ: bằng cách gọi API Telegram theo cách thủ công) sẽ tự động được phát hiện khi có thông báo dịch vụ forum_topic_created đến. Bạn cũng có thể thêm chủ đề vào cấu hình trong khi cổng đang chạy — chúng sẽ được chọn trong lần bỏ lỡ bộ nhớ đệm tiếp theo.
Liên kết kỹ năng chủ đề diễn đàn nhóm
Siêu nhóm đã bật Chế độ chủ đề (còn gọi là "chủ đề diễn đàn") đã có phiên cách ly cho mỗi chủ đề — mỗi thread_id ánh xạ tới cuộc trò chuyện riêng của mình. Nhưng bạn có thể muốn tự động tải một kỹ năng khi tin nhắn đến một chủ đề nhóm cụ thể, giống như cách hoạt động của tính năng liên kết kỹ năng chủ đề DM.
Trường hợp sử dụng
Một nhóm siêu nhóm với các chủ đề diễn đàn dành cho các luồng công việc khác nhau:
- Chủ đề Kỹ thuật → tự động tải kỹ năng
software-development - Chủ đề Nghiên cứu → tự động tải kỹ năng
arxiv - Chủ đề chung → không có kỹ năng, trợ lý đa năng
Cấu hình
Thêm các ràng buộc chủ đề dưới platforms.telegram.extra.group_topics trong ~/.hermes/config.yaml :
platforms:
telegram:
extra:
group_topics:
- chat_id: -1001234567890
# Supergroup ID
topics:
- name: Engineering
thread_id: 5
skill: software-development
- name: Research
thread_id: 12
skill: arxiv
- name: General
thread_id: 1
# No skill — general purpose
Các trường:
| Lĩnh vực | Bắt buộc | Mô tả |
|---|---|---|
chat_id | Có | ID số của siêu nhóm (số âm bắt đầu bằng -100 ) |
name | Không | Nhãn mà con người có thể đọc được cho chủ đề (chỉ mang tính thông tin) |
thread_id | Có | ID chủ đề diễn đàn Telegram — hiển thị trong liên kết t.me/c/<group_id>/<thread_id> |
skill | Không | Kỹ năng tự động tải các phiên mới trong chủ đề này |
Cách thức hoạt động1. Khi có tin nhắn đến trong chủ đề nhóm được ánh xạ, Hermes tra cứu chat_id và thread_id trong cấu hình group_topics
- Nếu mục nhập phù hợp có trường
skill, thì kỹ năng đó sẽ được tải tự động cho phiên — giống với ràng buộc kỹ năng chủ đề DM - Các chủ đề không có khóa
skillchỉ bị cô lập phiên (hành vi hiện tại, không thay đổi) - Giá trị
thread_idchưa được ánh xạ hoặc giá trịchat_idrơi vào âm thầm — không có lỗi, không có kỹ năng
Sự khác biệt so với chủ đề DM
| Chủ đề DM | Chủ đề nhóm | |
|---|---|---|
| Phím cấu hình | extra.dm_topics | extra.group_topics |
| Tạo chủ đề | Hermes tạo chủ đề qua API nếu thiếu thread_id | Quản trị viên tạo chủ đề trong giao diện người dùng Telegram |
thread_id | Tự động điền sau khi tạo | Phải được đặt thủ công |
icon_color / icon_custom_emoji_id | Được hỗ trợ | Không áp dụng (quản trị viên kiểm soát giao diện) |
| Ràng buộc kỹ năng | ✓ | ✓ |
| Cách ly phiên | ✓ | ✓ (đã được tích hợp sẵn cho các chủ đề diễn đàn) |
Để tìm thread_id của một chủ đề, hãy mở chủ đề đó trên Telegram Web hoặc Desktop và xem URL: https://t.me/c/1234567890/5 — số cuối cùng ( 5 ) là thread_id . chat_id cho siêu nhóm là ID nhóm có tiền tố -100 (ví dụ: nhóm 1234567890 trở thành -1001234567890 ).
Tính năng API Bot gần đây
- Bot API 9.4 (Tháng 2 năm 2026): Chủ đề trò chuyện riêng tư — bot có thể tạo chủ đề diễn đàn trong cuộc trò chuyện trực tiếp 1-1 thông qua
createForumTopic. Xem Chủ đề trò chuyện riêng tư ở trên. - Chính sách quyền riêng tư: Telegram hiện yêu cầu bot phải có chính sách quyền riêng tư. Đặt một cái qua BotFather với
/setprivacy_policyhoặc Telegram có thể tự động tạo trình giữ chỗ. Điều này đặc biệt quan trọng nếu bot của bạn được công khai. - Truyền phát tin nhắn: Bot API 9.x đã bổ sung tính năng hỗ trợ truyền phát các phản hồi dài, có thể cải thiện độ trễ nhận thấy đối với các phản hồi dài của tổng đài viên.
Bộ chọn mô hình tương tác
Khi bạn gửi /model mà không có đối số trong cuộc trò chuyện Telegram, Hermes sẽ hiển thị bàn phím nội tuyến tương tác để chuyển đổi mô hình:
- Lựa chọn nhà cung cấp — các nút hiển thị từng nhà cung cấp có sẵn cùng với số lượng mô hình (ví dụ: "OpenAI (15)", " ✓ Anthropic (12)" cho nhà cung cấp hiện tại).
- Lựa chọn mô hình — danh sách mô hình được phân trang với điều hướng Trước/Tiếp theo, nút Quay lại để quay lại nhà cung cấp và Hủy.
Mô hình và nhà cung cấp hiện tại được hiển thị ở trên cùng. Tất cả điều hướng diễn ra bằng cách chỉnh sửa cùng một tin nhắn tại chỗ (không có sự lộn xộn trong cuộc trò chuyện).
Nếu bạn biết tên mẫu chính xác, hãy nhập trực tiếp /model <name> để bỏ qua bộ chọn. Bạn cũng có thể nhập /model <name> --global để duy trì thay đổi qua các phiên.
Chế độ Webhook
Theo mặc định, bộ điều hợp Telegram kết nối thông qua bỏ phiếu dài — cổng tạo các kết nối gửi đi tới máy chủ của Telegram. Điều này hoạt động ở mọi nơi nhưng vẫn giữ kết nối liên tục mở.Chế độ Webhook là một giải pháp thay thế trong đó Telegram đẩy các bản cập nhật lên máy chủ của bạn qua HTTPS. Điều này lý tưởng cho triển khai trên nền tảng đám mây và không có máy chủ (Fly.io, Railway, v.v.), trong đó HTTP gửi đến có thể đánh thức một máy bị treo.
Cấu hình
Đặt biến môi trường TELEGRAM_WEBHOOK_URL để bật chế độ webhook:
# Required — your public HTTPS endpoint
TELEGRAM_WEBHOOK_URL=https://app.fly.dev/telegram
# Optional — local listen port (default: 8443)
TELEGRAM_WEBHOOK_PORT=8443
# Optional — secret token for update verification (auto-generated if not set)
TELEGRAM_WEBHOOK_SECRET=my-secret-token
Hoặc trong ~/.hermes/config.yaml :
telegram:
webhook_mode: true
Khi TELEGRAM_WEBHOOK_URL được đặt, cổng sẽ khởi động máy chủ HTTP đang lắng nghe 0.0.0.0:<port> và đăng ký URL webhook với Telegram. Đường dẫn URL được trích xuất từ URL webhook (mặc định là /telegram ).
Telegram yêu cầu chứng chỉ TLS hợp lệ trên điểm cuối webhook. Chứng chỉ tự ký sẽ bị từ chối. Sử dụng proxy ngược (nginx, Caddy) hoặc nền tảng cung cấp tính năng chấm dứt TLS (Fly.io, Railway, Cloudflare Tunnel).
IP dự phòng DNS qua HTTPS
Trong một số mạng bị hạn chế, api.telegram.org có thể phân giải thành IP không thể truy cập được. Bộ điều hợp Telegram bao gồm cơ chế IP dự phòng giúp thử lại các kết nối một cách minh bạch với các IP thay thế trong khi vẫn giữ nguyên tên máy chủ TLS và SNI chính xác.
Cách thức hoạt động
- Nếu
TELEGRAM_FALLBACK_IPSđược đặt, các IP đó sẽ được sử dụng trực tiếp. - Nếu không, bộ điều hợp sẽ tự động truy vấn Google DNS và Cloudflare DNS thông qua DNS-over-HTTPS (DoH) để khám phá các IP thay thế cho
api.telegram.org. - IP do DoH trả về khác với kết quả DNS của hệ thống sẽ được sử dụng làm dự phòng.
- Nếu DoH cũng bị chặn, IP hạt giống được mã hóa cứng (
149.154.167.220) sẽ được sử dụng như là phương sách cuối cùng. - Sau khi IP dự phòng thành công, nó sẽ trở nên "dính" — các yêu cầu tiếp theo sẽ sử dụng trực tiếp IP đó mà không cần thử lại đường dẫn chính trước.
Cấu hình
# Explicit fallback IPs (comma-separated)
TELEGRAM_FALLBACK_IPS=149.154.167.220,149.154.167.221
Hoặc trong ~/.hermes/config.yaml :
platforms:
telegram:
extra:
fallback_ips:
- "149.154.167.220"
Bạn thường không cần phải cấu hình thủ công. Tính năng tự động phát hiện thông qua DoH xử lý hầu hết các tình huống mạng bị hạn chế. TELEGRAM_FALLBACK_IPS env var chỉ cần thiết nếu DoH cũng bị chặn trên mạng của bạn.
Hỗ trợ proxy
Nếu mạng của bạn yêu cầu proxy HTTP để truy cập internet (phổ biến trong môi trường công ty), bộ điều hợp Telegram sẽ tự động đọc các biến môi trường proxy tiêu chuẩn và định tuyến tất cả các kết nối thông qua proxy.
Các biến được hỗ trợ
Bộ điều hợp sẽ kiểm tra các biến môi trường này theo thứ tự, sử dụng biến môi trường đầu tiên được đặt:
HTTPS_PROXYHTTP_PROXYALL_PROXYhttps_proxy/http_proxy/all_proxy(các biến thể chữ thường)
Cấu hình
Đặt proxy trong môi trường của bạn trước khi khởi động cổng:
export HTTPS_PROXY=http://proxy.example.com:8080
hermes gateway
Hoặc thêm nó vào ~/.hermes/.env :
HTTPS_PROXY=http://proxy.example.com:8080
Proxy áp dụng cho cả truyền tải chính và tất cả các truyền tải IP dự phòng. Không cần cấu hình Hermes bổ sung — nếu biến môi trường được đặt, biến đó sẽ tự động được sử dụng.
Điều này bao gồm lớp truyền tải dự phòng tùy chỉnh mà Hermes sử dụng cho các kết nối Telegram. Ứng dụng khách httpx tiêu chuẩn được sử dụng ở nơi khác vốn đã tôn trọng các biến env proxy.
Phản hồi về tin nhắnBot có thể thêm phản ứng biểu tượng cảm xúc vào tin nhắn dưới dạng phản hồi xử lý hình ảnh:
- 👀 khi bot bắt đầu xử lý tin nhắn của bạn
- ✅ khi phản hồi được gửi thành công
- ❌ nếu xảy ra lỗi trong quá trình xử lý
Phản ứng được tắt theo mặc định. Kích hoạt chúng trong config.yaml :
telegram:
reactions: true
Hoặc thông qua biến môi trường:
TELEGRAM_REACTIONS=true
Không giống như Discord (trong đó các phản ứng được bổ sung), API Bot của Telegram thay thế tất cả các phản ứng của bot trong một cuộc gọi duy nhất. Quá trình chuyển đổi từ 👀 sang ✅/❌ xảy ra một cách nguyên tử — bạn sẽ không nhìn thấy cả hai cùng một lúc.
Nếu bot không có quyền thêm phản ứng vào nhóm thì cuộc gọi phản ứng sẽ không thành công và quá trình xử lý tin nhắn vẫn tiếp tục bình thường.
Khắc phục sự cố
| Vấn đề | Giải pháp |
|---|---|
| Bot không phản hồi gì cả | Xác minh TELEGRAM_BOT_TOKEN là chính xác. Kiểm tra nhật ký hermes gateway để tìm lỗi. |
| Bot phản hồi bằng "trái phép" | ID người dùng của bạn không có trong TELEGRAM_ALLOWED_USERS . Kiểm tra kỹ với @userinfobot. |
| Bot bỏ qua tin nhắn nhóm | Chế độ bảo mật có thể đang bật. Tắt nó (Bước 3) hoặc đặt bot làm quản trị viên nhóm. Hãy nhớ xóa và thêm lại bot sau khi thay đổi quyền riêng tư. |
| Tin nhắn thoại không được phiên âm | Xác minh STT có sẵn: cài đặt faster-whisper để phiên âm cục bộ hoặc đặt GROQ_API_KEY / VOICE_TOOLS_OPENAI_KEY trong ~/.hermes/.env . |
| Trả lời bằng giọng nói là tập tin, không phải bong bóng | Cài đặt ffmpeg (cần thiết để chuyển đổi Edge TTS Opus). |
| Mã thông báo bot bị thu hồi/không hợp lệ | Tạo mã thông báo mới qua /revoke sau đó /newbot hoặc /token trong BotFather. Cập nhật tệp .env của bạn. |
| Webhook không nhận được cập nhật | Xác minh TELEGRAM_WEBHOOK_URL có thể truy cập công khai (kiểm tra với curl ). Đảm bảo nền tảng/proxy ngược của bạn định tuyến lưu lượng HTTPS gửi đến từ cổng của URL đến cổng nghe cục bộ được định cấu hình bởi TELEGRAM_WEBHOOK_PORT (chúng không cần phải có cùng số). Đảm bảo SSL/TLS đang hoạt động — Telegram chỉ gửi tới URL HTTPS. Kiểm tra các quy tắc tường lửa. |
Phê duyệt của người điều hành
Khi tác nhân cố gắng chạy một lệnh tiềm ẩn nguy hiểm, nó sẽ yêu cầu bạn phê duyệt trong cuộc trò chuyện:
⚠️ Lệnh này có khả năng nguy hiểm (xóa đệ quy). Trả lời "có" để phê duyệt.
Trả lời “có”/”y” để đồng ý hoặc “không”/”n” để từ chối.
Bảo mật
Luôn đặt TELEGRAM_ALLOWED_USERS để hạn chế người có thể tương tác với bot của bạn. Nếu không có nó, cổng mặc định sẽ từ chối tất cả người dùng như một biện pháp an toàn.
Không bao giờ chia sẻ mã thông báo bot của bạn một cách công khai. Nếu bị xâm phạm, hãy thu hồi nó ngay lập tức thông qua lệnh /revoke của BotFather.
Để biết thêm chi tiết, hãy xem Tài liệu bảo mật. Bạn cũng có thể sử dụng ghép nối DM để có cách tiếp cận năng động hơn trong việc ủy quyền người dùng.