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

Thiết lập bất hòa

Hermes Agent tích hợp với Discord dưới dạng bot, cho phép bạn trò chuyện với trợ lý AI của mình thông qua tin nhắn trực tiếp hoặc kênh máy chủ. Bot nhận tin nhắn của bạn, xử lý chúng thông qua quy trình của Hermes Agent (bao gồm việc sử dụng công cụ, bộ nhớ và lý luận) rồi phản hồi theo thời gian thực. Nó hỗ trợ văn bản, tin nhắn thoại, tệp đính kèm và lệnh gạch chéo.

Trước khi thiết lập, đây là phần mà hầu hết mọi người muốn biết: Hermes hoạt động như thế nào khi nó ở trong máy chủ của bạn.

Cách Hermes cư xử

Bối cảnhHành vi
DMHermes trả lời mọi tin nhắn. Không cần @mention. Mỗi DM có phiên riêng.
Kênh máy chủTheo mặc định, Hermes chỉ phản hồi khi bạn @mention nó. Nếu bạn đăng bài trên một kênh mà không đề cập đến kênh đó, Hermes sẽ bỏ qua tin nhắn đó.
Kênh phản hồi miễn phíBạn có thể đặt các kênh cụ thể không được đề cập bằng DISCORD_FREE_RESPONSE_CHANNELS hoặc tắt tính năng đề cập trên toàn cầu bằng DISCORD_REQUIRE_MENTION=false .
Chủ đềHermes trả lời trong cùng một chủ đề. Quy tắc đề cập vẫn được áp dụng trừ khi chuỗi đó hoặc kênh chính của nó được định cấu hình là phản hồi miễn phí. Các chủ đề được tách biệt khỏi kênh chính đối với lịch sử phiên.
Kênh được chia sẻ với nhiều người dùngTheo mặc định, Hermes tách biệt lịch sử phiên của mỗi người dùng trong kênh để đảm bảo an toàn và rõ ràng. Hai người đang nói chuyện trong cùng một kênh sẽ không chia sẻ một bản ghi trừ khi bạn tắt tính năng đó một cách rõ ràng.
Tin nhắn đề cập đến người dùng khácKhi DISCORD_IGNORE_NO_MENTIONtrue (mặc định), Hermes sẽ giữ im lặng nếu một tin nhắn @đề cập đến người dùng khác nhưng không đề cập đến bot. Điều này ngăn bot nhảy vào cuộc trò chuyện hướng vào người khác. Đặt thành false nếu bạn muốn bot phản hồi tất cả tin nhắn bất kể ai được đề cập. Điều này chỉ áp dụng trong các kênh máy chủ, không phải DM.
mẹo

Nếu bạn muốn có một kênh trợ giúp bot thông thường, nơi mọi người có thể nói chuyện với Hermes mà không cần gắn thẻ kênh đó mọi lúc, hãy thêm kênh đó vào DISCORD_FREE_RESPONSE_CHANNELS .

Mô hình cổng Discord

Hermes trên Discord không phải là một webhook trả lời không trạng thái. Nó chạy qua cổng nhắn tin đầy đủ, có nghĩa là mỗi tin nhắn đến đều phải trải qua:

  1. ủy quyền ( DISCORD_ALLOWED_USERS )
  2. đề cập / kiểm tra phản hồi miễn phí
  3. tra cứu phiên
  4. tải bảng điểm phiên
  5. Thực thi tác nhân Hermes thông thường, bao gồm các công cụ, bộ nhớ và lệnh gạch chéo
  6. Gửi phản hồi trở lại Discord

Điều đó quan trọng vì hoạt động trong một máy chủ bận phụ thuộc vào cả chính sách định tuyến Discord và phiên Hermes.

Mô hình phiên trong Discord

Theo mặc định:

  • mỗi DM có phiên riêng
  • mỗi luồng máy chủ có không gian tên phiên riêng
  • mỗi người dùng trong kênh được chia sẻ sẽ có phiên riêng của họ trong kênh đó

Vì vậy, nếu cả Alice và Bob đều nói chuyện với Hermes trong #research thì Hermes coi đó là những cuộc trò chuyện riêng biệt theo mặc định mặc dù họ đang sử dụng cùng một kênh Discord hiển thị.

Điều này được kiểm soát bởi config.yaml :

group_sessions_per_user: true

```Chỉ đặt thành `false` nếu bạn rõ ràng muốn có một cuộc trò chuyện chung cho toàn bộ phòng:

```yaml
group_sessions_per_user: false

Phiên chia sẻ có thể hữu ích cho phòng cộng tác nhưng chúng cũng có nghĩa là:

  • người dùng chia sẻ mức tăng trưởng bối cảnh và chi phí mã thông báo
  • nhiệm vụ nặng nề và tốn nhiều công cụ của một người có thể làm bối rối bối cảnh của những người khác
  • việc chạy trên chuyến bay của một người có thể làm gián đoạn việc theo dõi của người khác trong cùng phòng

Ngắt và đồng thời

Hermes theo dõi các đại lý đang chạy bằng khóa phiên.

Với mặc định group_sessions_per_user: true :

  • Alice làm gián đoạn yêu cầu của mình trên chuyến bay chỉ ảnh hưởng đến phiên của Alice trên kênh đó
  • Bob có thể tiếp tục nói chuyện trên cùng một kênh mà không kế thừa lịch sử của Alice hoặc làm gián đoạn quá trình chạy của Alice

Với group_sessions_per_user: false :

  • toàn bộ phòng chia sẻ một khe cắm tác nhân đang chạy cho kênh/luồng đó
  • tin nhắn tiếp theo từ những người khác nhau có thể làm gián đoạn hoặc xếp hàng sau nhau

Hướng dẫn này sẽ hướng dẫn bạn toàn bộ quy trình thiết lập — từ việc tạo bot trên Cổng thông tin dành cho nhà phát triển của Discord đến gửi tin nhắn đầu tiên của bạn.

Bước 1: Tạo ứng dụng Discord

  1. Truy cập Cổng nhà phát triển Discord và đăng nhập bằng tài khoản Discord của bạn.
  2. Nhấp vào Ứng dụng mới ở góc trên bên phải.
  3. Nhập tên cho ứng dụng của bạn (ví dụ: "Hermes Agent") và chấp nhận Điều khoản dịch vụ dành cho nhà phát triển.
  4. Nhấp vào Tạo.

Bạn sẽ đến trang Thông tin chung. Lưu ý ID ứng dụng — sau này bạn sẽ cần nó để tạo URL lời mời.

Bước 2: Tạo Bot

  1. Ở thanh bên trái, nhấp vào Bot.
  2. Discord tự động tạo người dùng bot cho ứng dụng của bạn. Bạn sẽ thấy tên người dùng của bot mà bạn có thể tùy chỉnh.
  3. Trong Quy trình ủy quyền:
    • Đặt Public Bot thành BẬT — bắt buộc phải sử dụng liên kết mời do Discord cung cấp (được khuyến nghị). Điều này cho phép tab Cài đặt tạo URL ủy quyền mặc định.
    • Đặt Yêu cầu cấp mã OAuth2 thành TẮT.
mẹo

Bạn có thể đặt hình đại diện và biểu ngữ tùy chỉnh cho bot của mình trên trang này. Đây là những gì người dùng sẽ thấy trong Discord.

Giải pháp thay thế Bot riêng tư

Nếu bạn muốn giữ bot của mình ở chế độ riêng tư (Bot công cộng = TẮT), bạn phải sử dụng phương thức URL thủ công ở Bước 5 thay vì tab Cài đặt. Liên kết do Discord cung cấp yêu cầu bật Bot công cộng.

Bước 3: Kích hoạt Ý định cổng đặc quyền

Đây là bước quan trọng nhất trong toàn bộ quá trình thiết lập. Nếu không bật ý định chính xác, bot của bạn sẽ kết nối với Discord nhưng sẽ không thể đọc nội dung tin nhắn.

Trên trang Bot, cuộn xuống Ý định cổng đặc quyền. Bạn sẽ thấy ba nút chuyển đổi:

Ý địnhMục đíchYêu cầu?
Ý định hiện diệnXem trạng thái trực tuyến/ngoại tuyến của người dùngTùy chọn
Ý định của thành viên máy chủTruy cập danh sách thành viên, giải quyết tên người dùngBắt buộc
Ý định nội dung tin nhắnĐọc nội dung tin nhắnBắt buộc

Bật cả Ý định của Thành viên Máy chủ và Ý định Nội dung Thông báo bằng cách bật chúng BẬT.- Nếu không có Ý định nội dung tin nhắn, bot của bạn sẽ nhận được các sự kiện tin nhắn nhưng nội dung tin nhắn trống — bot thực sự không thể nhìn thấy những gì bạn đã nhập.

  • Nếu không có Ý định của thành viên máy chủ, bot không thể phân giải tên người dùng cho danh sách người dùng được phép và có thể không xác định được ai đang nhắn tin cho nó.
Đây là lý do số 1 khiến bot Discord không hoạt động

Nếu bot của bạn trực tuyến nhưng không bao giờ trả lời tin nhắn thì Ý định nội dung tin nhắn gần như chắc chắn bị vô hiệu hóa. Quay lại Cổng thông tin dành cho nhà phát triển, chọn ứng dụng của bạn → Bot → Ý định cổng đặc quyền và đảm bảo Ý định nội dung thông báo được BẬT. Nhấp vào Lưu thay đổi.

Về số lượng máy chủ:

  • Nếu bot của bạn ở dưới 100 máy chủ, bạn chỉ cần bật và tắt ý định một cách thoải mái.
  • Nếu bot của bạn ở 100 máy chủ trở lên, Discord yêu cầu bạn gửi đơn đăng ký xác minh để sử dụng các ý định đặc quyền. Đối với sử dụng cá nhân, đây không phải là một mối quan tâm.

Nhấp vào Lưu thay đổi ở cuối trang.

Bước 4: Lấy Bot Token

Mã thông báo bot là thông tin xác thực mà Hermes Agent sử dụng để đăng nhập với tư cách là bot của bạn. Vẫn ở trang Bot:

  1. Trong phần Mã thông báo, hãy nhấp vào Đặt lại mã thông báo.
  2. Nếu bạn đã bật xác thực hai yếu tố trên tài khoản Discord của mình, hãy nhập mã 2FA của bạn.
  3. Discord sẽ hiển thị mã thông báo mới của bạn. Sao chép nó ngay lập tức.
Mã thông báo chỉ hiển thị một lần

Mã thông báo chỉ được hiển thị một lần. Nếu mất nó, bạn cần phải đặt lại và tạo một cái mới. Không bao giờ chia sẻ công khai mã thông báo của bạn hoặc cam kết mã thông báo đó với Git - bất kỳ ai có mã thông báo này đều có toàn quyền kiểm soát bot của bạn.

Lưu trữ mã thông báo ở nơi an toàn (ví dụ: trình quản lý mật khẩu). Bạn sẽ cần nó ở Bước 8.

Bước 5: Tạo URL mời

Bạn cần có URL OAuth2 để mời bot vào máy chủ của mình. Có hai cách để làm điều này:

Tùy chọn A: Sử dụng tab Cài đặt (Được khuyến nghị)

Yêu cầu Bot công khai

Phương pháp này yêu cầu Public Bot được đặt thành BẬT ở Bước 2. Nếu bạn đặt Bot công khai thành TẮT, thay vào đó hãy sử dụng phương pháp URL thủ công bên dưới.

  1. Ở thanh bên trái, nhấp vào Cài đặt.
  2. Trong Bối cảnh cài đặt, bật Cài đặt bang hội.
  3. Đối với Liên kết cài đặt, chọn Liên kết được cung cấp từ Discord.
  4. Trong Cài đặt cài đặt mặc định cho Cài đặt Bang hội:
    • Phạm vi: chọn botapplications.commands
    • Quyền: chọn các quyền được liệt kê bên dưới.

Tùy chọn B: URL thủ công

Bạn có thể tạo URL lời mời trực tiếp bằng định dạng sau:

https://discord.com/oauth2/authorize?client_id=YOUR_APP_ID&scope=bot+applications.commands&permissions=274878286912

Thay thế YOUR_APP_ID bằng ID ứng dụng từ Bước 1.

Quyền cần thiết

Đây là những quyền tối thiểu mà bot của bạn cần:

  • Xem kênh — xem các kênh mà nó có quyền truy cập
  • Gửi tin nhắn — trả lời tin nhắn của bạn
  • Liên kết nhúng — phản hồi có định dạng phong phú
  • Đính kèm tệp — gửi hình ảnh, âm thanh và đầu ra tệp
  • Đọc lịch sử tin nhắn — duy trì bối cảnh cuộc trò chuyện

Quyền bổ sung được đề xuất- Gửi tin nhắn trong chuỗi — trả lời trong các cuộc hội thoại theo chuỗi

  • Thêm phản ứng — phản ứng với tin nhắn để xác nhận

Số nguyên quyền

Cấp độSố nguyên quyềnBao gồm những gì
Tối thiểu117760Xem kênh, gửi tin nhắn, đọc lịch sử tin nhắn, đính kèm tệp
Được đề xuất274878286912Tất cả những điều trên cộng với Liên kết nhúng, Gửi tin nhắn trong chủ đề, Thêm phản ứng

Bước 6: Mời vào máy chủ của bạn

  1. Mở URL mời trong trình duyệt của bạn (từ tab Cài đặt hoặc URL thủ công bạn đã tạo).
  2. Trong trình đơn thả xuống Thêm vào máy chủ, hãy chọn máy chủ của bạn.
  3. Nhấp vào Tiếp tục, sau đó nhấp vào Ủy quyền.
  4. Hoàn thành CAPTCHA nếu được nhắc.
thông tin

Bạn cần có quyền Quản lý máy chủ trên máy chủ Discord để mời bot. Nếu bạn không thấy máy chủ của mình trong danh sách thả xuống, hãy yêu cầu quản trị viên máy chủ sử dụng liên kết mời.

Sau khi ủy quyền, bot sẽ xuất hiện trong danh sách thành viên máy chủ của bạn (nó sẽ hiển thị ở trạng thái ngoại tuyến cho đến khi bạn khởi động cổng Hermes).

Bước 7: Tìm ID người dùng Discord của bạn

Hermes Agent sử dụng ID người dùng Discord của bạn để kiểm soát ai có thể tương tác với bot. Để tìm thấy nó:

  1. Mở Discord (máy tính để bàn hoặc ứng dụng web).
  2. Đi tới Cài đặtNâng cao → chuyển Chế độ nhà phát triển sang BẬT.
  3. Đóng cài đặt.
  4. Nhấp chuột phải vào tên người dùng của chính bạn (trong tin nhắn, danh sách thành viên hoặc hồ sơ của bạn) → Sao chép ID người dùng.

ID người dùng của bạn là một số dài như 284102345871466496 .

mẹo

Chế độ nhà phát triển cũng cho phép bạn sao chép ID kênhID máy chủ theo cách tương tự — nhấp chuột phải vào tên kênh hoặc tên máy chủ và chọn Sao chép ID. Bạn sẽ cần ID kênh nếu muốn đặt kênh chính theo cách thủ công.

Bước 8: Cấu hình Hermes Agent

Tùy chọn A: Thiết lập tương tác (Được khuyến nghị)

Chạy lệnh thiết lập được hướng dẫn:

hermes gateway setup

Chọn Discord khi được nhắc, sau đó dán mã thông báo bot và ID người dùng của bạn khi được hỏi.

Tùy chọn B: Cấu hình thủ công

Thêm phần sau vào tệp ~/.hermes/.env của bạn:

# Required
DISCORD_BOT_TOKEN=your-bot-token
DISCORD_ALLOWED_USERS=284102345871466496

# Multiple allowed users (comma-separated)
# DISCORD_ALLOWED_USERS=284102345871466496,198765432109876543

Sau đó khởi động cổng:

hermes gateway

Bot sẽ trực tuyến trong Discord trong vòng vài giây. Gửi cho nó một tin nhắn - DM hoặc trong một kênh mà nó có thể nhìn thấy - để kiểm tra.

mẹo

Bạn có thể chạy hermes gateway ở chế độ nền hoặc dưới dạng dịch vụ systemd để hoạt động liên tục. Xem tài liệu triển khai để biết chi tiết.

Tham khảo cấu hình

Hành vi của Discord được kiểm soát thông qua hai tệp: ** ~/.hermes/.env ** dành cho thông tin xác thực và chuyển đổi cấp độ env và ** ~/.hermes/config.yaml ** dành cho cài đặt có cấu trúc. Các biến môi trường luôn được ưu tiên hơn các giá trị config.yaml khi cả hai đều được đặt.

Biến môi trường ( .env )

| Biến | Bắt buộc | Mặc định

| Mô tả | |----------|----------|---------|-------------| | DISCORD_BOT_TOKEN | | — | Mã thông báo bot từ Cổng nhà phát triển Discord. | | DISCORD_ALLOWED_USERS | | — | ID người dùng Discord được phân tách bằng dấu phẩy được phép tương tác với bot. Không có điều này, cổng sẽ từ chối tất cả người dùng. | | DISCORD_HOME_CHANNEL | Không | — | ID kênh nơi bot gửi tin nhắn chủ động (đầu ra cron, lời nhắc, thông báo). | | DISCORD_HOME_CHANNEL_NAME | Không | "Home" | Hiển thị tên của kênh chính trong nhật ký và đầu ra trạng thái. | | DISCORD_REQUIRE_MENTION | Không | true | Khi true , bot chỉ phản hồi trong các kênh máy chủ khi @mentioned . Đặt thành false để trả lời tất cả tin nhắn ở mọi kênh. | | DISCORD_FREE_RESPONSE_CHANNELS | Không | — | ID kênh được phân tách bằng dấu phẩy trong đó bot phản hồi mà không yêu cầu @mention , ngay cả khi DISCORD_REQUIRE_MENTIONtrue . | | DISCORD_IGNORE_NO_MENTION | Không | true | Khi true , bot sẽ im lặng nếu có tin nhắn @mentions người dùng khác nhưng không đề cập đến bot. Ngăn chặn bot nhảy vào cuộc trò chuyện hướng vào người khác. Chỉ áp dụng ở kênh server, không áp dụng ở DM. | | DISCORD_AUTO_THREAD | Không | true | Khi true , tự động tạo một chuỗi mới cho mỗi @mention trong kênh văn bản, do đó, mỗi cuộc hội thoại đều được tách biệt (tương tự như hành vi của Slack). Các tin nhắn đã có trong chủ đề hoặc tin nhắn trực tiếp sẽ không bị ảnh hưởng. | | DISCORD_ALLOW_BOTS | Không | "none" | Kiểm soát cách bot xử lý tin nhắn từ các bot Discord khác. "none" — bỏ qua tất cả các bot khác. "mentions" — chỉ chấp nhận tin nhắn của bot @mention Hermes. "all" — chấp nhận tất cả tin nhắn của bot. | | DISCORD_REACTIONS | Không | true | Khi true , bot sẽ thêm các phản ứng biểu tượng cảm xúc vào tin nhắn trong quá trình xử lý (👀 khi bắt đầu, ✅ khi thành công, ❌ do lỗi). Đặt thành false để tắt hoàn toàn các phản ứng. | | DISCORD_IGNORED_CHANNELS | Không | — | ID kênh được phân tách bằng dấu phẩy trong đó bot không bao giờ phản hồi, ngay cả khi @mentioned . Được ưu tiên hơn tất cả các cài đặt kênh khác. | | DISCORD_NO_THREAD_CHANNELS | Không | — | ID kênh được phân tách bằng dấu phẩy trong đó bot phản hồi trực tiếp trong kênh thay vì tạo chuỗi. Chỉ phù hợp khi DISCORD_AUTO_THREADtrue . |

Tệp cấu hình ( config.yaml )

Phần discord trong ~/.hermes/config.yaml phản ánh các biến env ở trên. Cài đặt Config.yaml được áp dụng làm mặc định - nếu var env tương đương đã được đặt thì var env sẽ thắng.

# Discord-specific settings
discord:
require_mention: true

# Require @mention in server channels
free_response_channels: ""

# Comma-separated channel IDs (or YAML list)
auto_thread: true

# Auto-create threads on @mention
reactions: true

# Add emoji reactions during processing
ignored_channels: []

# Channel IDs where bot never responds
no_thread_channels: []

# Channel IDs where bot responds without threading

# Session isolation (applies to all gateway platforms, not just Discord)
group_sessions_per_user: true

# Isolate sessions per user in shared channels

discord.require_mention

Loại: boolean — Mặc định: true

Khi được bật, bot chỉ phản hồi trong các kênh máy chủ khi trực tiếp @mentioned . DM luôn nhận được phản hồi bất kể cài đặt này.

discord.free_response_channels

Loại: chuỗi hoặc danh sách — Mặc định: ""

ID kênh nơi bot phản hồi tất cả tin nhắn mà không cần @mention . Chấp nhận chuỗi được phân tách bằng dấu phẩy hoặc danh sách YAML:

# String format
discord:
free_response_channels: "1234567890,9876543210"

# List format
discord:
free_response_channels:
- 1234567890
- 9876543210

Nếu kênh chính của chủ đề nằm trong danh sách này thì chủ đề đó cũng sẽ không được đề cập.

discord.auto_thread

Loại: boolean — Mặc định: true

Khi được bật, mọi @mention trong kênh văn bản thông thường sẽ tự động tạo một chuỗi mới cho cuộc trò chuyện. Điều này giữ cho kênh chính luôn sạch sẽ và cung cấp cho mỗi cuộc trò chuyện lịch sử phiên riêng biệt. Khi một chuỗi được tạo, các tin nhắn tiếp theo trong chuỗi đó không yêu cầu @mention — bot biết rằng nó đã tham gia.

Tin nhắn được gửi trong chuỗi hoặc DM hiện có không bị ảnh hưởng bởi cài đặt này.

discord.reactions

Loại: boolean — Mặc định: true

Kiểm soát xem bot có thêm biểu tượng cảm xúc vào tin nhắn dưới dạng phản hồi trực quan hay không:

  • 👀 được thêm khi bot bắt đầu xử lý tin nhắn của bạn
  • ✅ được thêm khi phản hồi được gửi thành công
  • ❌ thêm nếu xảy ra lỗi trong quá trình xử lý

Tắt tính năng này nếu bạn thấy các phản ứng gây mất tập trung hoặc nếu vai trò của bot không có quyền Thêm phản ứng.

discord.ignored_channels

Loại: chuỗi hoặc danh sách — Mặc định: []

ID kênh mà bot không bao giờ phản hồi ngay cả khi trực tiếp @mentioned . Điều này có mức độ ưu tiên cao nhất — nếu một kênh nằm trong danh sách này thì bot sẽ âm thầm bỏ qua tất cả tin nhắn ở đó, bất kể require_mention , free_response_channels hoặc bất kỳ cài đặt nào khác.

# String format
discord:
ignored_channels: "1234567890,9876543210"

# List format
discord:
ignored_channels:
- 1234567890
- 9876543210

Nếu kênh chính của chuỗi có trong danh sách này thì các tin nhắn trong chuỗi đó cũng bị bỏ qua.

discord.no_thread_channels

Loại: chuỗi hoặc danh sách — Mặc định: []

ID kênh nơi bot phản hồi trực tiếp trong kênh thay vì tự động tạo chuỗi. Điều này chỉ có hiệu lực khi auto_threadtrue (mặc định). Trong các kênh này, bot phản hồi nội tuyến giống như một tin nhắn bình thường thay vì tạo ra một chuỗi mới.

discord:
no_thread_channels:
- 1234567890

# Bot responds inline here

Hữu ích cho các kênh dành riêng cho tương tác với bot, nơi các luồng sẽ tạo ra tiếng ồn không cần thiết.

group_sessions_per_user

Loại: boolean — Mặc định: true

Đây là cài đặt cổng chung (không dành riêng cho Discord) để kiểm soát xem người dùng trong cùng một kênh có lịch sử phiên riêng biệt hay không.

Khi true : Alice và Bob nói chuyện trong #research mỗi người có cuộc trò chuyện riêng với Hermes. Khi false : toàn bộ kênh chia sẻ một bản ghi cuộc hội thoại và một vị trí tác nhân đang chạy.

group_sessions_per_user: true

Xem phần Mô hình phiên ở trên để biết ý nghĩa đầy đủ của từng chế độ.

display.tool_progress

Loại: chuỗi — Mặc định: "all"Giá trị: off , new , all , verbose

Kiểm soát xem bot có gửi thông báo tiến trình trong cuộc trò chuyện trong khi xử lý hay không (ví dụ: "Đọc tệp...", "Đang chạy lệnh terminal..."). Đây là cài đặt cổng chung áp dụng cho tất cả các nền tảng.

display:
tool_progress: "all"

# off

| new | all | verbose

  • off — không có thông báo tiến trình
  • new — chỉ hiển thị lệnh gọi công cụ đầu tiên mỗi lượt
  • all — hiển thị tất cả lệnh gọi công cụ (cắt ngắn còn 40 ký tự trong thông báo cổng)
  • verbose — hiển thị đầy đủ chi tiết cuộc gọi công cụ (có thể tạo tin nhắn dài)

display.tool_progress_commandLoại: boolean — Mặc định: false

Khi được bật, lệnh gạch chéo /verbose có sẵn trong cổng, cho phép bạn chuyển qua các chế độ tiến trình của công cụ ( off → new → all → verbose → off ) mà không cần chỉnh sửa config.yaml.

display:
tool_progress_command: true

Bộ chọn mô hình tương tác

Gửi /model không có đối số trong kênh Discord để mở bộ chọn mô hình dựa trên danh sách thả xuống:

  1. Lựa chọn nhà cung cấp — menu thả xuống Chọn hiển thị các nhà cung cấp có sẵn (tối đa 25).
  2. Lựa chọn mô hình — menu thả xuống thứ hai chứa các mô hình cho nhà cung cấp đã chọn (tối đa 25).

Bộ chọn hết thời gian sau 120 giây. Chỉ những người dùng được ủy quyền (những người trong DISCORD_ALLOWED_USERS ) mới có thể tương tác với nó. Nếu bạn biết tên mẫu máy, hãy nhập trực tiếp /model <name>.

Lệnh gạch chéo gốc cho kỹ năng

Hermes tự động đăng ký các kỹ năng đã cài đặt dưới dạng Lệnh ứng dụng Discord gốc. Điều này có nghĩa là các kỹ năng sẽ xuất hiện trong menu / tự động hoàn thành của Discord cùng với các lệnh tích hợp.

  • Mỗi kỹ năng sẽ trở thành lệnh gạch chéo Discord (ví dụ: /code-review , /ascii-art )
  • Kỹ năng chấp nhận tham số chuỗi args tùy chọn
  • Discord có giới hạn 100 lệnh ứng dụng cho mỗi bot — nếu bạn có nhiều kỹ năng hơn số chỗ có sẵn, các kỹ năng bổ sung sẽ bị bỏ qua kèm theo cảnh báo trong nhật ký
  • Các kỹ năng được đăng ký trong quá trình khởi động bot cùng với các lệnh tích hợp như /model , /reset/background

Không cần cấu hình bổ sung — mọi kỹ năng được cài đặt qua hermes skills install sẽ tự động được đăng ký dưới dạng lệnh gạch chéo Discord trong lần khởi động lại cổng tiếp theo.

Kênh chủ

Bạn có thể chỉ định một "kênh chính" để bot gửi tin nhắn chủ động (chẳng hạn như đầu ra công việc định kỳ, lời nhắc và thông báo). Có hai cách để thiết lập nó:

Sử dụng lệnh gạch chéo

Nhập /sethome vào bất kỳ kênh Discord nào có bot. Kênh đó trở thành kênh chủ.

Cấu hình thủ công

Thêm những thứ này vào ~/.hermes/.env của bạn:

DISCORD_HOME_CHANNEL=123456789012345678
DISCORD_HOME_CHANNEL_NAME="#bot-updates"

Thay thế ID bằng ID kênh thực tế (nhấp chuột phải → Sao chép ID kênh khi bật Chế độ nhà phát triển).

Tin nhắn thoại

Hermes Agent hỗ trợ tin nhắn thoại Discord:

  • Tin nhắn thoại đến được chép lời tự động bằng cách sử dụng nhà cung cấp STT đã định cấu hình: faster-whisper cục bộ (không có khóa), Groq Whisper ( GROQ_API_KEY ) hoặc OpenAI Whisper ( VOICE_TOOLS_OPENAI_KEY ).
  • Chuyển văn bản thành giọng nói: Sử dụng /voice tts để yêu cầu bot gửi phản hồi bằng giọng nói cùng với trả lời bằng văn bản.
  • Kênh thoại Discord: Hermes cũng có thể tham gia kênh thoại, nghe người dùng nói và nói lại trong kênh.

Để biết hướng dẫn thiết lập và vận hành đầy đủ, hãy xem:

Khắc phục sự cố

Bot đang online nhưng không trả lời tin nhắn

Lý do: Ý định nội dung tin nhắn bị vô hiệu hóa.

Khắc phục: Đi tới Cổng thông tin dành cho nhà phát triển → ứng dụng của bạn → Bot → Ý định cổng đặc quyền → bật Ý định nội dung thông báo → Lưu thay đổi. Khởi động lại cổng.

Lỗi "Ý định không được phép" khi khởi độngLý do: Mã của bạn yêu cầu các ý định chưa được bật trong Cổng thông tin dành cho nhà phát triển.

Khắc phục: Kích hoạt cả ba Ý định cổng đặc quyền (Hiện diện, Thành viên máy chủ, Nội dung tin nhắn) trong cài đặt Bot, sau đó khởi động lại.

Bot không thể xem tin nhắn trong một kênh cụ thể

Lý do: Vai trò của bot không có quyền xem kênh đó.

Khắc phục: Trong Discord, hãy đi tới cài đặt của kênh → Quyền → thêm vai trò của bot với Xem kênhĐọc lịch sử tin nhắn được bật.

403 Lỗi bị cấm

Lý do: Bot thiếu các quyền cần thiết.

Khắc phục: Mời lại bot có quyền chính xác bằng cách sử dụng URL từ Bước 5 hoặc điều chỉnh thủ công quyền vai trò của bot trong Cài đặt máy chủ → Vai trò.

Bot đang ngoại tuyến

Nguyên nhân: Cổng Hermes không chạy hoặc mã thông báo không chính xác.

Khắc phục: Kiểm tra xem hermes gateway có đang chạy không. Xác minh DISCORD_BOT_TOKEN trong tệp .env của bạn. Nếu gần đây bạn đặt lại mã thông báo, hãy cập nhật mã thông báo đó.

"Người dùng không được phép" / Bot phớt lờ bạn

: ID người dùng của bạn không có trong DISCORD_ALLOWED_USERS .

Khắc phục: Thêm ID người dùng của bạn vào DISCORD_ALLOWED_USERS trong ~/.hermes/.env và khởi động lại cổng.

Mọi người trong cùng một kênh đang chia sẻ bối cảnh một cách bất ngờ

Lý do: group_sessions_per_user bị vô hiệu hóa hoặc nền tảng không thể cung cấp ID người dùng cho các tin nhắn trong ngữ cảnh đó.

Khắc phục: Đặt cái này trong ~/.hermes/config.yaml và khởi động lại cổng:

group_sessions_per_user: true

Nếu bạn cố tình muốn có một cuộc trò chuyện trong phòng chung, hãy tắt nó đi — chỉ cần chờ lịch sử bản chép lại được chia sẻ và hành vi gián đoạn được chia sẻ.

Bảo mật

cảnh báo

Luôn đặt DISCORD_ALLOWED_USERS để hạn chế người có thể tương tác với bot. 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. Chỉ thêm ID người dùng của những người bạn tin cậy — người dùng được ủy quyền có toàn quyền truy cập vào các khả năng của tổng đài viên, bao gồm cả việc sử dụng công cụ và quyền truy cập hệ thống.

Để biết thêm thông tin về việc đảm bảo triển khai Hermes Agent của bạn, hãy xem Hướng dẫn bảo mật.