OpenClaw xử lý trò chuyện nhóm nhất quán trên các bề mặt: Discord, iMessage, Matrix, Microsoft Teams, Signal, Slack, Telegram, WhatsApp, Zalo.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Giới thiệu cho người mới bắt đầu (2 phút)
OpenClaw “sống” trên chính các tài khoản nhắn tin của bạn. Không có người dùng bot WhatsApp riêng biệt. Nếu bạn ở trong một nhóm, OpenClaw có thể thấy nhóm đó và phản hồi ở đó. Hành vi mặc định:- Nhóm bị hạn chế (
groupPolicy: "allowlist"). - Phản hồi yêu cầu nhắc đến, trừ khi bạn tắt rõ ràng cơ chế chặn theo nhắc đến.
- Phản hồi cuối thông thường trong nhóm/kênh là riêng tư theo mặc định. Đầu ra hiển thị trong phòng dùng công cụ
message.
Tóm tắt ngắn
- Quyền truy cập DM được kiểm soát bởi
*.allowFrom. - Quyền truy cập nhóm được kiểm soát bởi
*.groupPolicy+ danh sách cho phép (*.groups,*.groupAllowFrom). - Kích hoạt phản hồi được kiểm soát bởi cơ chế chặn theo nhắc đến (
requireMention,/activation).
Phản hồi hiển thị
Đối với phòng nhóm/kênh, OpenClaw mặc định dùngmessages.groupChat.visibleReplies: "message_tool".
Điều đó nghĩa là agent vẫn xử lý lượt và có thể cập nhật trạng thái bộ nhớ/phiên, nhưng câu trả lời cuối thông thường của nó không tự động được đăng lại vào phòng. Để nói hiển thị, agent dùng message(action=send).
Đối với trò chuyện trực tiếp và mọi lượt nguồn khác, dùng messages.visibleReplies: "message_tool" để áp dụng cùng hành vi phản hồi hiển thị chỉ qua công cụ trên toàn cục. messages.groupChat.visibleReplies vẫn là ghi đè cụ thể hơn cho phòng nhóm/kênh.
Điều này thay thế mẫu cũ là buộc mô hình trả lời NO_REPLY cho hầu hết các lượt ở chế độ theo dõi. Trong chế độ chỉ dùng công cụ, không làm gì hiển thị đơn giản nghĩa là không gọi công cụ tin nhắn.
Chỉ báo đang nhập vẫn được gửi trong khi agent hoạt động ở chế độ chỉ dùng công cụ. Chế độ đang nhập mặc định của nhóm được nâng từ “message” lên “instant” cho các lượt này vì có thể sẽ không bao giờ có văn bản tin nhắn trợ lý thông thường trước khi agent quyết định có gọi công cụ tin nhắn hay không. Cấu hình chế độ đang nhập rõ ràng vẫn được ưu tiên.
Để khôi phục phản hồi cuối tự động kiểu cũ cho phòng nhóm/kênh:
visibleReplies: "message_tool" và luôn phản hồi hiển thị để giao diện lệnh gốc của kênh nhận được phản hồi mong đợi. Điều này chỉ áp dụng cho các lượt lệnh gốc đã được xác thực; lệnh /... được gõ dưới dạng văn bản và các lượt trò chuyện thông thường vẫn tuân theo mặc định nhóm đã cấu hình.
Khả năng hiển thị ngữ cảnh và danh sách cho phép
Có hai kiểm soát khác nhau liên quan đến an toàn nhóm:- Ủy quyền kích hoạt: ai có thể kích hoạt agent (
groupPolicy,groups,groupAllowFrom, danh sách cho phép theo kênh). - Khả năng hiển thị ngữ cảnh: ngữ cảnh bổ sung nào được đưa vào mô hình (văn bản trả lời, trích dẫn, lịch sử luồng, siêu dữ liệu chuyển tiếp).
Hành vi hiện tại phụ thuộc vào từng kênh
Hành vi hiện tại phụ thuộc vào từng kênh
- Một số kênh đã áp dụng lọc theo người gửi cho ngữ cảnh bổ sung trong các đường dẫn cụ thể (ví dụ gieo ngữ cảnh luồng Slack, tra cứu trả lời/luồng Matrix).
- Các kênh khác vẫn chuyển ngữ cảnh trích dẫn/trả lời/chuyển tiếp đúng như nhận được.
Hướng tăng cường bảo vệ (đã lên kế hoạch)
Hướng tăng cường bảo vệ (đã lên kế hoạch)
contextVisibility: "all"(mặc định) giữ hành vi hiện tại là nhận sao dùng vậy.contextVisibility: "allowlist"lọc ngữ cảnh bổ sung theo người gửi trong danh sách cho phép.contextVisibility: "allowlist_quote"làallowlistcộng thêm một ngoại lệ trích dẫn/trả lời rõ ràng.
| Mục tiêu | Cần đặt |
|---|---|
| Cho phép mọi nhóm nhưng chỉ phản hồi khi @mention | groups: { "*": { requireMention: true } } |
| Tắt mọi phản hồi nhóm | groupPolicy: "disabled" |
| Chỉ các nhóm cụ thể | groups: { "<group-id>": { ... } } (không có khóa "*" key) |
| Chỉ bạn có thể kích hoạt trong nhóm | groupPolicy: "allowlist", groupAllowFrom: ["+1555..."] |
Khóa phiên
- Phiên nhóm dùng khóa phiên
agent:<agentId>:<channel>:group:<id>(phòng/kênh dùngagent:<agentId>:<channel>:channel:<id>). - Chủ đề diễn đàn Telegram thêm
:topic:<threadId>vào id nhóm để mỗi chủ đề có phiên riêng. - Trò chuyện trực tiếp dùng phiên chính (hoặc theo từng người gửi nếu được cấu hình).
- Heartbeat bị bỏ qua đối với phiên nhóm.
Mẫu: DM cá nhân + nhóm công khai (một agent)
Có, cách này hoạt động tốt nếu lưu lượng “cá nhân” của bạn là DM và lưu lượng “công khai” của bạn là nhóm. Lý do: ở chế độ một agent, DM thường đi vào khóa phiên chính (agent:main:main), trong khi nhóm luôn dùng khóa phiên không chính (agent:main:<channel>:group:<id>). Nếu bạn bật sandboxing với mode: "non-main", các phiên nhóm đó chạy trong backend sandbox đã cấu hình, còn phiên DM chính của bạn vẫn ở trên máy chủ. Docker là backend mặc định nếu bạn không chọn backend nào.
Điều này cho bạn một “bộ não” agent (workspace + bộ nhớ dùng chung), nhưng hai tư thế thực thi:
- DM: đầy đủ công cụ (máy chủ)
- Nhóm: sandbox + công cụ hạn chế
Nếu bạn cần workspace/persona thật sự tách biệt (“cá nhân” và “công khai” tuyệt đối không được trộn lẫn), hãy dùng agent thứ hai + binding. Xem Định tuyến đa agent.
- DM trên máy chủ, nhóm trong sandbox
- Nhóm chỉ thấy thư mục trong danh sách cho phép
- Khóa cấu hình và mặc định: Cấu hình Gateway
- Gỡ lỗi lý do một công cụ bị chặn: Sandbox so với Chính sách công cụ so với Elevated
- Chi tiết bind mount: Sandboxing
Nhãn hiển thị
- Nhãn UI dùng
displayNamekhi có, được định dạng là<channel>:<token>. #roomđược dành riêng cho phòng/kênh; trò chuyện nhóm dùngg-<slug>(chữ thường, khoảng trắng ->-, giữ#@+._-).
Chính sách nhóm
Kiểm soát cách xử lý tin nhắn nhóm/phòng theo từng kênh:| Chính sách | Hành vi |
|---|---|
"open" | Nhóm bỏ qua danh sách cho phép; cơ chế chặn theo nhắc đến vẫn áp dụng. |
"disabled" | Chặn hoàn toàn mọi tin nhắn nhóm. |
"allowlist" | Chỉ cho phép nhóm/phòng khớp với danh sách cho phép đã cấu hình. |
Ghi chú theo từng kênh
Ghi chú theo từng kênh
groupPolicytách biệt với cơ chế chặn theo nhắc đến (yêu cầu @mention).- WhatsApp/Telegram/Signal/iMessage/Microsoft Teams/Zalo: dùng
groupAllowFrom(dự phòng:allowFromrõ ràng). - Phê duyệt ghép cặp DM (mục lưu trữ
*-allowFrom) chỉ áp dụng cho quyền truy cập DM; ủy quyền người gửi trong nhóm vẫn phải khai báo rõ trong danh sách cho phép nhóm. - Discord: danh sách cho phép dùng
channels.discord.guilds.<id>.channels. - Slack: danh sách cho phép dùng
channels.slack.channels. - Matrix: danh sách cho phép dùng
channels.matrix.groups. Ưu tiên ID phòng hoặc alias; tra cứu tên phòng đã tham gia là nỗ lực tốt nhất, và tên không phân giải được sẽ bị bỏ qua khi chạy. Dùngchannels.matrix.groupAllowFromđể hạn chế người gửi; danh sách cho phépuserstheo phòng cũng được hỗ trợ. - DM nhóm được kiểm soát riêng (
channels.discord.dm.*,channels.slack.dm.*). - Danh sách cho phép Telegram có thể khớp ID người dùng (
"123456789","telegram:123456789","tg:123456789") hoặc username ("@alice"hoặc"alice"); tiền tố không phân biệt chữ hoa chữ thường. - Mặc định là
groupPolicy: "allowlist"; nếu danh sách cho phép nhóm của bạn trống, tin nhắn nhóm sẽ bị chặn. - An toàn khi chạy: khi khối provider hoàn toàn thiếu (
channels.<provider>không có), chính sách nhóm rơi về chế độ fail-closed (thường làallowlist) thay vì kế thừachannels.defaults.groupPolicy.
Danh sách cho phép nhóm
Danh sách cho phép nhóm (
*.groups, *.groupAllowFrom, danh sách cho phép theo kênh).Cơ chế chặn theo nhắc đến (mặc định)
Tin nhắn nhóm yêu cầu nhắc đến, trừ khi được ghi đè theo từng nhóm. Giá trị mặc định nằm theo từng hệ thống con dưới*.groups."*".
Trả lời một tin nhắn của bot được tính là một lượt nhắc đến ngầm định khi kênh hỗ trợ siêu dữ liệu trả lời. Trích dẫn một tin nhắn của bot cũng có thể được tính là lượt nhắc đến ngầm định trên các kênh cung cấp siêu dữ liệu trích dẫn. Các trường hợp tích hợp hiện tại bao gồm Telegram, WhatsApp, Slack, Discord, Microsoft Teams và ZaloUser.
Ghi chú về kiểm soát lượt nhắc đến
Ghi chú về kiểm soát lượt nhắc đến
mentionPatternslà các mẫu biểu thức chính quy an toàn, không phân biệt chữ hoa/thường; các mẫu không hợp lệ và các dạng lặp lồng nhau không an toàn sẽ bị bỏ qua.- Các bề mặt cung cấp lượt nhắc đến tường minh vẫn được chấp nhận; mẫu chỉ là phương án dự phòng.
- Ghi đè theo từng tác nhân:
agents.list[].groupChat.mentionPatterns(hữu ích khi nhiều tác nhân dùng chung một nhóm). - Kiểm soát lượt nhắc đến chỉ được thực thi khi có thể phát hiện lượt nhắc đến (lượt nhắc đến gốc hoặc
mentionPatternsđã được cấu hình). - Ngữ cảnh lời nhắc cuộc trò chuyện nhóm mang theo chỉ dẫn trả lời im lặng đã phân giải ở mọi lượt; các tệp không gian làm việc không nên lặp lại cơ chế
NO_REPLY. - Các nhóm cho phép trả lời im lặng xem lượt mô hình trống sạch hoặc chỉ có suy luận là im lặng, tương đương với
NO_REPLY. Chat trực tiếp cũng làm như vậy chỉ khi trả lời im lặng trực tiếp được cho phép tường minh; nếu không, trả lời trống vẫn là lượt tác nhân thất bại. - Mặc định của Discord nằm trong
channels.discord.guilds."*"(có thể ghi đè theo từng guild/kênh). - Ngữ cảnh lịch sử nhóm được bọc thống nhất trên các kênh và chỉ gồm mục đang chờ xử lý (các tin nhắn bị bỏ qua do kiểm soát lượt nhắc đến); dùng
messages.groupChat.historyLimitcho mặc định toàn cục vàchannels.<channel>.historyLimit(hoặcchannels.<channel>.accounts.*.historyLimit) cho ghi đè. Đặt0để tắt.
Hạn chế công cụ theo nhóm/kênh (tùy chọn)
Một số cấu hình kênh hỗ trợ hạn chế những công cụ có sẵn bên trong một nhóm/phòng/kênh cụ thể.tools: cho phép/từ chối công cụ cho toàn bộ nhóm.toolsBySender: ghi đè theo từng người gửi trong nhóm. Dùng tiền tố khóa tường minh:id:<senderId>,e164:<phone>,username:<handle>,name:<displayName>, và ký tự đại diện"*". Các khóa cũ không có tiền tố vẫn được chấp nhận và chỉ được khớp nhưid:.
Ví dụ (Telegram):
Hạn chế công cụ theo nhóm/kênh được áp dụng thêm vào chính sách công cụ toàn cục/tác nhân (từ chối vẫn thắng). Một số kênh dùng cách lồng khác cho phòng/kênh (ví dụ: Discord
guilds.*.channels.*, Slack channels.*, Microsoft Teams teams.*.channels.*).Danh sách cho phép nhóm
Khichannels.whatsapp.groups, channels.telegram.groups, hoặc channels.imessage.groups được cấu hình, các khóa đóng vai trò là danh sách cho phép nhóm. Dùng "*" để cho phép tất cả nhóm trong khi vẫn đặt hành vi nhắc đến mặc định.
Các mục đích phổ biến (sao chép/dán):
- Tắt tất cả trả lời nhóm
- Chỉ cho phép nhóm cụ thể (WhatsApp)
- Cho phép tất cả nhóm nhưng yêu cầu nhắc đến
- Chỉ chủ sở hữu mới kích hoạt (WhatsApp)
Kích hoạt (chỉ chủ sở hữu)
Chủ sở hữu nhóm có thể bật/tắt kích hoạt theo từng nhóm:/activation mention/activation always
channels.whatsapp.allowFrom (hoặc E.164 của chính bot khi chưa đặt). Gửi lệnh dưới dạng một tin nhắn độc lập. Các bề mặt khác hiện bỏ qua /activation.
Trường ngữ cảnh
Payload đến của nhóm đặt:ChatType=groupGroupSubject(nếu biết)GroupMembers(nếu biết)WasMentioned(kết quả kiểm soát lượt nhắc đến)- Chủ đề diễn đàn Telegram cũng bao gồm
MessageThreadIdvàIsForum.
- BlueBubbles có thể tùy chọn bổ sung thông tin người tham gia nhóm macOS chưa có tên từ cơ sở dữ liệu Danh bạ cục bộ trước khi điền
GroupMembers. Tính năng này mặc định tắt và chỉ chạy sau khi kiểm soát nhóm thông thường đã đạt.
\n theo nghĩa đen. Tên nhóm và nhãn người tham gia lấy từ kênh được hiển thị dưới dạng siêu dữ liệu không đáng tin cậy trong khối rào, không phải chỉ dẫn hệ thống nội tuyến.
Chi tiết riêng của iMessage
- Ưu tiên
chat_id:<id>khi định tuyến hoặc đưa vào danh sách cho phép. - Liệt kê chat:
imsg chats --limit 20. - Trả lời nhóm luôn quay lại cùng
chat_id.