Discord (Bot API)
Trạng thái: sẵn sàng cho tin nhắn trực tiếp (DM) và kênh guild thông qua gateway chính thức của Discord.Ghép nối
Lệnh Slash
Khắc phục sự cố kênh
Thiết lập nhanh
Cần tạo một ứng dụng mới với bot, thêm bot vào máy chủ của bạn và ghép nối với OpenClaw. Khuyến nghị thêm bot vào máy chủ riêng tư của bạn. Nếu chưa có, tạo một cái trước (chọn Create My Own > For me and my friends).Tạo ứng dụng và bot Discord
Kích hoạt các ý định đặc quyền
- Message Content Intent (bắt buộc)
- Server Members Intent (khuyến nghị; cần thiết cho danh sách cho phép vai trò và khớp tên với ID)
- Presence Intent (tùy chọn; chỉ cần cho cập nhật trạng thái)
Sao chép token bot của bạn
Tạo URL mời và thêm bot vào máy chủ của bạn
botapplications.commands
- Xem Kênh
- Gửi Tin nhắn
- Đọc Lịch sử Tin nhắn
- Nhúng Liên kết
- Đính kèm Tệp
- Thêm Phản ứng (tùy chọn)
Kích hoạt Chế độ Nhà phát triển và thu thập ID của bạn
- Nhấp User Settings (biểu tượng bánh răng bên cạnh avatar) → Advanced → bật Developer Mode
- Nhấp chuột phải vào biểu tượng máy chủ của bạn trong thanh bên → Copy Server ID
- Nhấp chuột phải vào avatar của bạn → Copy User ID
Cho phép DMs từ thành viên máy chủ
Bước 0: Đặt token bot của bạn một cách an toàn (không gửi trong chat)
openclaw gateway restart thay thế.Cấu hình OpenClaw và ghép nối
- Hỏi agent của bạn
- CLI / config
“Tôi đã đặt token bot Discord trong config. Vui lòng hoàn tất thiết lập Discord với User ID<user_id>và Server ID<server_id>.”
Phê duyệt ghép nối DM đầu tiên
- Hỏi agent của bạn
- CLI
“Phê duyệt mã ghép nối Discord này: <CODE>”
DISCORD_BOT_TOKEN chỉ được sử dụng cho tài khoản mặc định.
Đối với các cuộc gọi outbound nâng cao (công cụ tin nhắn/hành động kênh), một token rõ ràng cho mỗi cuộc gọi được sử dụng cho cuộc gọi đó. Điều này áp dụng cho các hành động gửi và đọc/kiểm tra kiểu (ví dụ: đọc/tìm kiếm/lấy/chủ đề/ghim/quyền). Cài đặt chính sách tài khoản/lặp lại vẫn đến từ tài khoản đã chọn trong snapshot runtime hiện hoạt.Khuyến nghị: Thiết lập workspace guild
Khi DMs hoạt động, bạn có thể thiết lập máy chủ Discord của mình như một workspace đầy đủ, nơi mỗi kênh có phiên agent riêng với ngữ cảnh riêng. Điều này được khuyến nghị cho các máy chủ riêng tư nơi chỉ có bạn và bot của bạn.Thêm máy chủ của bạn vào danh sách cho phép guild
- Hỏi agent của bạn
- Config
“Thêm Server ID Discord của tôi <server_id> vào danh sách cho phép guild”
Cho phép phản hồi mà không cần @mention
- Hỏi agent của bạn
- Config
“Cho phép agent của tôi phản hồi trên máy chủ này mà không cần phải được @mention”
Lên kế hoạch cho bộ nhớ trong các kênh guild
- Hỏi agent của bạn
- Thủ công
“Khi tôi hỏi câu hỏi trong các kênh Discord, sử dụng memory_search hoặc memory_get nếu bạn cần ngữ cảnh dài hạn từ MEMORY.md.”
#coding, #home, #research, hoặc bất kỳ thứ gì phù hợp với quy trình làm việc của bạn.
Mô hình runtime
- Gateway sở hữu kết nối Discord.
- Định tuyến phản hồi là xác định: Discord inbound phản hồi lại Discord.
- Theo mặc định (
session.dmScope=main), các cuộc trò chuyện trực tiếp chia sẻ phiên chính của agent (agent:main:main). - Các kênh guild là khóa phiên riêng biệt (
agent:<agentId>:discord:channel:<channelId>). - Group DMs bị bỏ qua theo mặc định (
channels.discord.dm.groupEnabled=false). - Lệnh slash gốc chạy trong các phiên lệnh riêng biệt (
agent:<agentId>:discord:slash:<userId>), trong khi vẫn mangCommandTargetSessionKeyđến phiên trò chuyện được định tuyến.
Kênh diễn đàn
Kênh diễn đàn và phương tiện Discord chỉ chấp nhận bài đăng chủ đề. OpenClaw hỗ trợ hai cách để tạo chúng:- Gửi tin nhắn đến cha diễn đàn (
channel:<forumId>) để tự động tạo chủ đề. Tiêu đề chủ đề sử dụng dòng không rỗng đầu tiên của tin nhắn của bạn. - Sử dụng
openclaw message thread createđể tạo chủ đề trực tiếp. Không truyền--message-idcho các kênh diễn đàn.
channel:<threadId>).
Thành phần tương tác
OpenClaw hỗ trợ các container thành phần v2 của Discord cho các tin nhắn agent. Sử dụng công cụ tin nhắn với payloadcomponents. Kết quả tương tác được định tuyến lại cho agent như các tin nhắn inbound bình thường và tuân theo cài đặt replyToMode hiện có của Discord.
Các khối được hỗ trợ:
text,section,separator,actions,media-gallery,file- Hàng hành động cho phép tối đa 5 nút hoặc một menu chọn đơn
- Các loại chọn:
string,user,role,mentionable,channel
components.reusable=true để cho phép các nút, chọn và biểu mẫu được sử dụng nhiều lần cho đến khi hết hạn.
Để hạn chế ai có thể nhấp vào nút, đặt allowedUsers trên nút đó (ID người dùng Discord, thẻ hoặc *). Khi được cấu hình, người dùng không khớp sẽ nhận được từ chối tạm thời.
Lệnh slash /model và /models mở một bộ chọn mô hình tương tác với dropdown nhà cung cấp và mô hình cùng với bước Gửi. Phản hồi bộ chọn là tạm thời và chỉ người dùng gọi mới có thể sử dụng nó.
Đính kèm tệp:
- Các khối
filephải trỏ đến tham chiếu đính kèm (attachment://<filename>) - Cung cấp đính kèm qua
media/path/filePath(tệp đơn); sử dụngmedia-gallerycho nhiều tệp - Sử dụng
filenameđể ghi đè tên tải lên khi nó nên khớp với tham chiếu đính kèm
- Thêm
components.modalvới tối đa 5 trường - Các loại trường:
text,checkbox,radio,select,role-select,user-select - OpenClaw tự động thêm nút kích hoạt
Kiểm soát truy cập và định tuyến
- Chính sách DM
- Chính sách Guild
- Mentions và group DMs
channels.discord.dmPolicy kiểm soát truy cập DM (cũ: channels.discord.dm.policy):pairing(mặc định)allowlistopen(yêu cầuchannels.discord.allowFrombao gồm"*"; cũ:channels.discord.dm.allowFrom)disabled
pairing).Ưu tiên đa tài khoản:channels.discord.accounts.default.allowFromchỉ áp dụng cho tài khoảndefault.- Các tài khoản được đặt tên thừa hưởng
channels.discord.allowFromkhiallowFromcủa riêng chúng chưa được đặt. - Các tài khoản được đặt tên không thừa hưởng
channels.discord.accounts.default.allowFrom.
user:<id><@id>mention
Định tuyến agent dựa trên vai trò
Sử dụngbindings[].match.roles để định tuyến thành viên guild Discord đến các agent khác nhau theo ID vai trò. Các ràng buộc dựa trên vai trò chỉ chấp nhận ID vai trò và được đánh giá sau các ràng buộc peer hoặc parent-peer và trước các ràng buộc chỉ guild. Nếu một ràng buộc cũng đặt các trường khớp khác (ví dụ: peer + guildId + roles), tất cả các trường được cấu hình phải khớp.
Thiết lập Developer Portal
Tạo ứng dụng và bot
Tạo ứng dụng và bot
- Discord Developer Portal -> Applications -> New Application
- Bot -> Add Bot
- Sao chép token bot
Ý định đặc quyền
Ý định đặc quyền
- Message Content Intent
- Server Members Intent (khuyến nghị)
setPresence) không yêu cầu kích hoạt cập nhật hiện diện cho thành viên.Phạm vi OAuth và quyền cơ bản
Phạm vi OAuth và quyền cơ bản
- phạm vi:
bot,applications.commands
- Xem Kênh
- Gửi Tin nhắn
- Đọc Lịch sử Tin nhắn
- Nhúng Liên kết
- Đính kèm Tệp
- Thêm Phản ứng (tùy chọn)
Administrator trừ khi cần thiết rõ ràng.Sao chép ID
Sao chép ID
- ID máy chủ
- ID kênh
- ID người dùng
Lệnh gốc và xác thực lệnh
commands.nativemặc định là"auto"và được kích hoạt cho Discord.- Ghi đè theo kênh:
channels.discord.commands.native. commands.native=falserõ ràng xóa các lệnh gốc Discord đã đăng ký trước đó.- Xác thực lệnh gốc sử dụng cùng danh sách cho phép/chính sách Discord như xử lý tin nhắn bình thường.
- Lệnh có thể vẫn hiển thị trong giao diện Discord cho người dùng không được ủy quyền; thực thi vẫn thực thi xác thực OpenClaw và trả về “không được ủy quyền”.
ephemeral: true
Chi tiết tính năng
Thẻ trả lời và trả lời gốc
Thẻ trả lời và trả lời gốc
[[reply_to_current]][[reply_to:<id>]]
channels.discord.replyToMode:off(mặc định)firstall
off vô hiệu hóa luồng trả lời ngầm. Thẻ [[reply_to_*]] rõ ràng vẫn được tôn trọng.ID tin nhắn được hiển thị trong ngữ cảnh/lịch sử để các agent có thể nhắm mục tiêu các tin nhắn cụ thể.Xem trước luồng trực tiếp
Xem trước luồng trực tiếp
channels.discord.streamingkiểm soát phát trực tiếp xem trước (off|partial|block|progress, mặc định:off).progressđược chấp nhận để đảm bảo tính nhất quán giữa các kênh và ánh xạ tớipartialtrên Discord.channels.discord.streamModelà một bí danh cũ và được tự động di chuyển.partialchỉnh sửa một tin nhắn xem trước duy nhất khi các token đến.blockphát ra các khối kích thước bản nháp (sử dụngdraftChunkđể điều chỉnh kích thước và điểm ngắt).
block (bị giới hạn bởi channels.discord.textChunkLimit):Lịch sử, ngữ cảnh và hành vi chủ đề
Lịch sử, ngữ cảnh và hành vi chủ đề
channels.discord.historyLimitmặc định20- fallback:
messages.groupChat.historyLimit 0vô hiệu hóa
channels.discord.dmHistoryLimitchannels.discord.dms["<user_id>"].historyLimit
- Chủ đề Discord được định tuyến như các phiên kênh
- metadata chủ đề cha có thể được sử dụng cho liên kết phiên cha
- cấu hình chủ đề thừa hưởng cấu hình kênh cha trừ khi có một mục cụ thể cho chủ đề
Phiên ràng buộc chủ đề cho các subagent
Phiên ràng buộc chủ đề cho các subagent
/focus <target>ràng buộc chủ đề hiện tại/mới với một mục tiêu subagent/phiên/unfocusloại bỏ ràng buộc chủ đề hiện tại/agentshiển thị các lần chạy hoạt động và trạng thái ràng buộc/session idle <duration|off>kiểm tra/cập nhật tự động bỏ ràng buộc không hoạt động cho các ràng buộc tập trung/session max-age <duration|off>kiểm tra/cập nhật tuổi tối đa cứng cho các ràng buộc tập trung
session.threadBindings.*đặt mặc định toàn cầu.channels.discord.threadBindings.*ghi đè hành vi Discord.spawnSubagentSessionsphải là true để tự động tạo/ràng buộc chủ đề chosessions_spawn({ thread: true }).spawnAcpSessionsphải là true để tự động tạo/ràng buộc chủ đề cho ACP (/acp spawn ... --thread ...hoặcsessions_spawn({ runtime: "acp", thread: true })).- Nếu ràng buộc chủ đề bị vô hiệu hóa cho một tài khoản,
/focusvà các hoạt động ràng buộc chủ đề liên quan không khả dụng.
Ràng buộc kênh ACP liên tục
Ràng buộc kênh ACP liên tục
bindings[]vớitype: "acp"vàmatch.channel: "discord"
- Tin nhắn chủ đề có thể thừa hưởng ràng buộc kênh cha ACP.
- Trong một kênh hoặc chủ đề được ràng buộc,
/newvà/resetđặt lại cùng một phiên ACP tại chỗ. - Ràng buộc chủ đề tạm thời vẫn hoạt động và có thể ghi đè độ phân giải mục tiêu khi hoạt động.
Thông báo phản ứng
Thông báo phản ứng
offown(mặc định)allallowlist(sử dụngguilds.<id>.users)
Phản ứng Ack
Phản ứng Ack
ackReaction gửi một emoji xác nhận trong khi OpenClaw đang xử lý một tin nhắn inbound.Thứ tự giải quyết:channels.discord.accounts.<accountId>.ackReactionchannels.discord.ackReactionmessages.ackReaction- fallback emoji danh tính agent (
agents.list[].identity.emoji, nếu không có thì ”👀”)
- Discord chấp nhận emoji unicode hoặc tên emoji tùy chỉnh.
- Sử dụng
""để vô hiệu hóa phản ứng cho một kênh hoặc tài khoản.
Ghi cấu hình
Ghi cấu hình
/config set|unset (khi các tính năng lệnh được bật).Vô hiệu hóa:Proxy gateway
Proxy gateway
channels.discord.proxy.Hỗ trợ PluralKit
Hỗ trợ PluralKit
- danh sách cho phép có thể sử dụng
pk:<memberId> - tên hiển thị thành viên được khớp theo tên/slug chỉ khi
channels.discord.dangerouslyAllowNameMatching: true - tra cứu sử dụng ID tin nhắn gốc và bị giới hạn thời gian
- nếu tra cứu thất bại, các tin nhắn proxy được coi là tin nhắn bot và bị loại trừ trừ khi
allowBots=true
Cấu hình hiện diện
Cấu hình hiện diện
- 0: Chơi
- 1: Phát trực tiếp (yêu cầu
activityUrl) - 2: Nghe
- 3: Xem
- 4: Tùy chỉnh (sử dụng văn bản hoạt động làm trạng thái; emoji là tùy chọn)
- 5: Cạnh tranh
autoPresence.healthyTextautoPresence.degradedTextautoPresence.exhaustedText(hỗ trợ{reason}placeholder)
Phê duyệt exec trong Discord
Phê duyệt exec trong Discord
channels.discord.execApprovals.enabledchannels.discord.execApprovals.approverschannels.discord.execApprovals.target(dm|channel|both, mặc định:dm)agentFilter,sessionFilter,cleanupAfterResolve
target là channel hoặc both, lời nhắc phê duyệt hiển thị trong kênh. Chỉ những người phê duyệt được cấu hình mới có thể sử dụng các nút; người dùng khác nhận được từ chối tạm thời. Lời nhắc phê duyệt bao gồm văn bản lệnh, vì vậy chỉ bật giao hàng kênh trong các kênh đáng tin cậy. Nếu ID kênh không thể được suy ra từ khóa phiên, OpenClaw quay lại giao hàng DM.Xác thực gateway cho trình xử lý này sử dụng cùng hợp đồng giải quyết thông tin xác thực chia sẻ như các khách hàng Gateway khác:- xác thực cục bộ ưu tiên env (
OPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORDsau đógateway.auth.*) - trong chế độ cục bộ,
gateway.remote.*có thể được sử dụng như fallback chỉ khigateway.auth.*chưa được đặt; SecretRefs cục bộ được cấu hình nhưng không được giải quyết thất bại đóng - hỗ trợ chế độ từ xa qua
gateway.remote.*khi áp dụng - ghi đè URL là an toàn ghi đè: ghi đè CLI không tái sử dụng thông tin xác thực ngầm định, và ghi đè env chỉ sử dụng thông tin xác thực env
Công cụ và cổng hành động
Hành động tin nhắn Discord bao gồm nhắn tin, quản trị kênh, kiểm duyệt, hiện diện và hành động metadata. Ví dụ cốt lõi:- nhắn tin:
sendMessage,readMessages,editMessage,deleteMessage,threadReply - phản ứng:
react,reactions,emojiList - kiểm duyệt:
timeout,kick,ban - hiện diện:
setPresence
channels.discord.actions.*.
Hành vi cổng mặc định:
| Nhóm hành động | Mặc định |
|---|---|
| phản ứng, tin nhắn, chủ đề, ghim, thăm dò ý kiến, tìm kiếm, thông tin thành viên, thông tin vai trò, thông tin kênh, kênh, trạng thái giọng nói, sự kiện, nhãn dán, tải lên emoji, tải lên nhãn dán, quyền | bật |
| vai trò | tắt |
| kiểm duyệt | tắt |
| hiện diện | tắt |
Giao diện Components v2
OpenClaw sử dụng các thành phần v2 của Discord cho phê duyệt exec và đánh dấu chéo ngữ cảnh. Hành động tin nhắn Discord cũng có thể chấp nhậncomponents cho giao diện tùy chỉnh (nâng cao; yêu cầu các instance thành phần Carbon), trong khi embeds cũ vẫn có sẵn nhưng không được khuyến nghị.
channels.discord.ui.components.accentColorđặt màu nhấn được sử dụng bởi các container thành phần Discord (hex).- Đặt theo tài khoản với
channels.discord.accounts.<id>.ui.components.accentColor. embedsbị bỏ qua khi các thành phần v2 có mặt.
Kênh giọng nói
OpenClaw có thể tham gia các kênh giọng nói Discord để trò chuyện liên tục, thời gian thực. Điều này tách biệt với các tệp đính kèm tin nhắn giọng nói. Yêu cầu:- Kích hoạt lệnh gốc (
commands.nativehoặcchannels.discord.commands.native). - Cấu hình
channels.discord.voice. - Bot cần quyền Kết nối + Nói trong kênh giọng nói mục tiêu.
/vc join|leave|status để kiểm soát các phiên. Lệnh sử dụng agent mặc định của tài khoản và tuân theo cùng danh sách cho phép và quy tắc chính sách nhóm như các lệnh Discord khác.
Ví dụ tự động tham gia:
voice.ttsghi đèmessages.ttschỉ cho phát lại giọng nói.- Bản ghi giọng nói xác định trạng thái chủ sở hữu từ Discord
allowFrom(hoặcdm.allowFrom); người nói không phải chủ sở hữu không thể truy cập các công cụ chỉ dành cho chủ sở hữu (ví dụ:gatewayvàcron). - Giọng nói được bật theo mặc định; đặt
channels.discord.voice.enabled=falseđể vô hiệu hóa nó. voice.daveEncryptionvàvoice.decryptionFailureTolerancetruyền qua các tùy chọn tham gia@discordjs/voice.- Mặc định của
@discordjs/voicelàdaveEncryption=truevàdecryptionFailureTolerance=24nếu không được đặt. - OpenClaw cũng theo dõi các lỗi giải mã nhận và tự động khôi phục bằng cách rời khỏi/tham gia lại kênh giọng nói sau khi gặp lỗi lặp lại trong một khoảng thời gian ngắn.
- Nếu nhật ký nhận liên tục hiển thị
DecryptionFailed(UnencryptedWhenPassthroughDisabled), đây có thể là lỗi nhận@discordjs/voiceupstream được theo dõi trong discord.js #11419.
Tin nhắn giọng nói
Tin nhắn giọng nói Discord hiển thị xem trước dạng sóng và yêu cầu âm thanh OGG/Opus cùng với metadata. OpenClaw tự động tạo dạng sóng, nhưng cầnffmpeg và ffprobe có sẵn trên máy chủ gateway để kiểm tra và chuyển đổi tệp âm thanh.
Yêu cầu và hạn chế:
- Cung cấp đường dẫn tệp cục bộ (URL bị từ chối).
- Bỏ qua nội dung văn bản (Discord không cho phép văn bản + tin nhắn giọng nói trong cùng một payload).
- Bất kỳ định dạng âm thanh nào đều được chấp nhận; OpenClaw chuyển đổi sang OGG/Opus khi cần.
Khắc phục sự cố
Sử dụng các ý định không được phép hoặc bot không thấy tin nhắn guild
Sử dụng các ý định không được phép hoặc bot không thấy tin nhắn guild
- kích hoạt Message Content Intent
- kích hoạt Server Members Intent khi bạn phụ thuộc vào giải quyết người dùng/thành viên
- khởi động lại gateway sau khi thay đổi ý định
Tin nhắn guild bị chặn không mong muốn
Tin nhắn guild bị chặn không mong muốn
- xác minh
groupPolicy - xác minh danh sách cho phép guild dưới
channels.discord.guilds - nếu bản đồ
channelsguild tồn tại, chỉ các kênh được liệt kê mới được phép - xác minh hành vi
requireMentionvà mẫu mention
Yêu cầu mention sai nhưng vẫn bị chặn
Yêu cầu mention sai nhưng vẫn bị chặn
groupPolicy="allowlist"mà không có danh sách cho phép guild/kênh khớprequireMentionđược cấu hình sai vị trí (phải nằm dướichannels.discord.guildshoặc mục kênh)- người gửi bị chặn bởi danh sách cho phép
usersguild/kênh
Trình xử lý chạy lâu bị hết thời gian hoặc trùng lặp phản hồi
Trình xử lý chạy lâu bị hết thời gian hoặc trùng lặp phản hồi
Listener DiscordMessageListener timed out after 30000ms for event MESSAGE_CREATESlow listener detected ...discord inbound worker timed out after ...
- tài khoản đơn:
channels.discord.eventQueue.listenerTimeout - đa tài khoản:
channels.discord.accounts.<accountId>.eventQueue.listenerTimeout
- tài khoản đơn:
channels.discord.inboundWorker.runTimeoutMs - đa tài khoản:
channels.discord.accounts.<accountId>.inboundWorker.runTimeoutMs - mặc định:
1800000(30 phút); đặt0để vô hiệu hóa
eventQueue.listenerTimeout cho thiết lập listener chậm và inboundWorker.runTimeoutMs
chỉ nếu bạn muốn một van an toàn riêng cho các lượt agent xếp hàng.Kiểm toán quyền không khớp
Kiểm toán quyền không khớp
channels status --probe chỉ hoạt động cho ID kênh số.Nếu bạn sử dụng khóa slug, khớp runtime vẫn có thể hoạt động, nhưng kiểm tra không thể xác minh đầy đủ quyền.Vấn đề DM và ghép nối
Vấn đề DM và ghép nối
- DM bị vô hiệu hóa:
channels.discord.dm.enabled=false - Chính sách DM bị vô hiệu hóa:
channels.discord.dmPolicy="disabled"(cũ:channels.discord.dm.policy) - đang chờ phê duyệt ghép nối trong chế độ
pairing
Vòng lặp bot-to-bot
Vòng lặp bot-to-bot
channels.discord.allowBots=true, sử dụng các quy tắc mention và danh sách cho phép nghiêm ngặt để tránh hành vi vòng lặp.
Ưu tiên channels.discord.allowBots="mentions" để chỉ chấp nhận các tin nhắn bot đề cập đến bot.Giảm STT giọng nói với DecryptionFailed(...)
Giảm STT giọng nói với DecryptionFailed(...)
- giữ OpenClaw hiện tại (
openclaw update) để logic khôi phục nhận giọng nói Discord có mặt - xác nhận
channels.discord.voice.daveEncryption=true(mặc định) - bắt đầu từ
channels.discord.voice.decryptionFailureTolerance=24(mặc định upstream) và điều chỉnh chỉ khi cần - theo dõi nhật ký cho:
discord voice: DAVE decrypt failures detecteddiscord voice: repeated decrypt failures; attempting rejoin
- nếu lỗi tiếp tục sau khi tự động tham gia lại, thu thập nhật ký và so sánh với discord.js #11419
Tham chiếu cấu hình
Tham chiếu chính: Các trường Discord có tín hiệu cao:- khởi động/xác thực:
enabled,token,accounts.*,allowBots - chính sách:
groupPolicy,dm.*,guilds.*,guilds.*.channels.* - lệnh:
commands.native,commands.useAccessGroups,configWrites,slashCommand.* - hàng đợi sự kiện:
eventQueue.listenerTimeout(ngân sách listener),eventQueue.maxQueueSize,eventQueue.maxConcurrency - worker inbound:
inboundWorker.runTimeoutMs - trả lời/lịch sử:
replyToMode,historyLimit,dmHistoryLimit,dms.*.historyLimit - giao hàng:
textChunkLimit,chunkMode,maxLinesPerMessage - phát trực tiếp:
streaming(bí danh cũ:streamMode),draftChunk,blockStreaming,blockStreamingCoalesce - phương tiện/lặp lại:
mediaMaxMb,retrymediaMaxMbgiới hạn tải lên Discord outbound (mặc định:8MB)
- hành động:
actions.* - hiện diện:
activity,status,activityType,activityUrl - giao diện người dùng:
ui.components.accentColor - tính năng:
threadBindings,bindings[]cấp cao nhất (type: "acp"),pluralkit,execApprovals,intents,agentComponents,heartbeat,responsePrefix
An toàn và hoạt động
- Xem token bot như bí mật (
DISCORD_BOT_TOKENđược ưu tiên trong môi trường giám sát). - Cấp quyền Discord ít nhất.
- Nếu triển khai/trạng thái lệnh bị lỗi thời, khởi động lại gateway và kiểm tra lại với
openclaw channels status --probe.