WhatsApp (Kênh Web)
Trạng thái: Sẵn sàng sản xuất qua WhatsApp Web (Baileys). Gateway sở hữu session đã liên kết.Cài đặt (khi cần)
- Quá trình onboarding (
openclaw onboard) vàopenclaw channels add --channel whatsappsẽ yêu cầu cài đặt plugin WhatsApp lần đầu tiên khi chọn. openclaw channels login --channel whatsappcũng cung cấp quy trình cài đặt khi plugin chưa có.- Kênh Dev + git checkout: mặc định là đường dẫn plugin cục bộ.
- Ổn định/Beta: mặc định là gói npm
@openclaw/whatsapp.
Ghép đôi
Chính sách DM mặc định là ghép đôi cho người gửi không xác định.
Khắc phục sự cố kênh
Chẩn đoán và sửa chữa đa kênh.
Cấu hình Gateway
Mẫu cấu hình kênh đầy đủ và ví dụ.
Thiết lập nhanh
OpenClaw khuyến nghị chạy WhatsApp trên một số riêng biệt khi có thể. (Dữ liệu kênh và quy trình thiết lập được tối ưu hóa cho thiết lập đó, nhưng cũng hỗ trợ thiết lập số cá nhân.)
Mẫu triển khai
Số riêng biệt (khuyến nghị)
Số riêng biệt (khuyến nghị)
Đây là chế độ vận hành sạch nhất:
- danh tính WhatsApp riêng cho OpenClaw
- danh sách cho phép DM và ranh giới định tuyến rõ ràng hơn
- giảm khả năng nhầm lẫn tự trò chuyện
Dự phòng số cá nhân
Dự phòng số cá nhân
Onboarding hỗ trợ chế độ số cá nhân và ghi một cấu hình cơ bản thân thiện với tự trò chuyện:
dmPolicy: "allowlist"allowFrombao gồm số cá nhân của bạnselfChatMode: true
allowFrom.Phạm vi kênh chỉ WhatsApp Web
Phạm vi kênh chỉ WhatsApp Web
Kênh nền tảng nhắn tin là dựa trên WhatsApp Web (
Baileys) trong kiến trúc kênh OpenClaw hiện tại.Không có kênh nhắn tin WhatsApp Twilio riêng biệt trong registry kênh chat tích hợp.Mô hình thời gian chạy
- Gateway sở hữu socket WhatsApp và vòng lặp kết nối lại.
- Gửi đi yêu cầu một listener WhatsApp hoạt động cho tài khoản mục tiêu.
- Trạng thái và chat phát sóng bị bỏ qua (
@status,@broadcast). - Chat trực tiếp sử dụng quy tắc phiên DM (
session.dmScope; mặc địnhmaingộp DMs vào phiên chính của agent). - Phiên nhóm được cô lập (
agent:<agentId>:whatsapp:group:<jid>).
Kiểm soát truy cập và kích hoạt
- Chính sách DM
- Chính sách nhóm + danh sách cho phép
- Nhắc + /kích hoạt
channels.whatsapp.dmPolicy kiểm soát truy cập chat trực tiếp:pairing(mặc định)allowlistopen(yêu cầuallowFrombao gồm"*")disabled
allowFrom chấp nhận số theo kiểu E.164 (được chuẩn hóa nội bộ).Ghi đè nhiều tài khoản: channels.whatsapp.accounts.<id>.dmPolicy (và allowFrom) được ưu tiên hơn mặc định cấp kênh cho tài khoản đó.Chi tiết hành vi thời gian chạy:- ghép đôi được lưu trữ trong kho cho phép kênh và hợp nhất với
allowFromđã cấu hình - nếu không có danh sách cho phép nào được cấu hình, số tự liên kết được cho phép mặc định
- DMs gửi đi
fromMekhông bao giờ tự động ghép đôi
Hành vi số cá nhân và tự trò chuyện
Khi số tự liên kết cũng có trongallowFrom, các biện pháp bảo vệ tự trò chuyện WhatsApp được kích hoạt:
- bỏ qua biên nhận đã đọc cho lượt tự trò chuyện
- bỏ qua hành vi tự động kích hoạt nhắc-JID mà nếu không sẽ tự ping
- nếu
messages.responsePrefixkhông được đặt, trả lời tự trò chuyện mặc định là[{identity.name}]hoặc[openclaw]
Chuẩn hóa tin nhắn và ngữ cảnh
Phong bì inbound + ngữ cảnh trả lời
Phong bì inbound + ngữ cảnh trả lời
Tin nhắn WhatsApp đến được bao bọc trong phong bì inbound chung.Nếu có trả lời trích dẫn, ngữ cảnh được thêm vào dưới dạng:Các trường siêu dữ liệu trả lời cũng được điền khi có sẵn (
ReplyToId, ReplyToBody, ReplyToSender, JID/E.164 của người gửi).Chỗ giữ chỗ phương tiện và trích xuất vị trí/liên hệ
Chỗ giữ chỗ phương tiện và trích xuất vị trí/liên hệ
Tin nhắn inbound chỉ có phương tiện được chuẩn hóa với các chỗ giữ chỗ như:
<media:image><media:video><media:audio><media:document><media:sticker>
Tiêm lịch sử nhóm đang chờ xử lý
Tiêm lịch sử nhóm đang chờ xử lý
Đối với các nhóm, các tin nhắn chưa được xử lý có thể được đệm và tiêm làm ngữ cảnh khi bot cuối cùng được kích hoạt.
- giới hạn mặc định:
50 - cấu hình:
channels.whatsapp.historyLimit - dự phòng:
messages.groupChat.historyLimit 0vô hiệu hóa
[Tin nhắn trò chuyện kể từ lần trả lời cuối cùng của bạn - để làm ngữ cảnh][Tin nhắn hiện tại - trả lời tin nhắn này]
Biên nhận đã đọc
Biên nhận đã đọc
Biên nhận đã đọc được bật theo mặc định cho các tin nhắn WhatsApp inbound đã được chấp nhận.Vô hiệu hóa toàn cầu:Ghi đè theo tài khoản:Lượt tự trò chuyện bỏ qua biên nhận đã đọc ngay cả khi đã bật toàn cầu.
Giao hàng, chia nhỏ và phương tiện
Chia nhỏ văn bản
Chia nhỏ văn bản
- giới hạn chia nhỏ mặc định:
channels.whatsapp.textChunkLimit = 4000 channels.whatsapp.chunkMode = "length" | "newline"- chế độ
newlineưu tiên ranh giới đoạn văn (dòng trống), sau đó dự phòng chia nhỏ an toàn theo độ dài
Hành vi phương tiện gửi đi
Hành vi phương tiện gửi đi
- hỗ trợ hình ảnh, video, âm thanh (ghi chú giọng nói PTT) và tải trọng tài liệu
audio/oggđược viết lại thànhaudio/ogg; codecs=opusđể tương thích với ghi chú giọng nói- phát lại GIF động được hỗ trợ qua
gifPlayback: truekhi gửi video - chú thích được áp dụng cho mục phương tiện đầu tiên khi gửi tải trọng trả lời đa phương tiện
- nguồn phương tiện có thể là HTTP(S),
file://, hoặc đường dẫn cục bộ
Giới hạn kích thước phương tiện và hành vi dự phòng
Giới hạn kích thước phương tiện và hành vi dự phòng
- giới hạn lưu phương tiện inbound:
channels.whatsapp.mediaMaxMb(mặc định50) - giới hạn gửi phương tiện outbound:
channels.whatsapp.mediaMaxMb(mặc định50) - ghi đè theo tài khoản sử dụng
channels.whatsapp.accounts.<accountId>.mediaMaxMb - hình ảnh được tối ưu hóa tự động (thay đổi kích thước/chất lượng) để phù hợp với giới hạn
- khi gửi phương tiện thất bại, mục đầu tiên dự phòng gửi cảnh báo văn bản thay vì bỏ qua phản hồi một cách im lặng
Phản ứng xác nhận
WhatsApp hỗ trợ phản ứng xác nhận ngay lập tức khi nhận inbound quachannels.whatsapp.ackReaction.
- gửi ngay sau khi inbound được chấp nhận (trước khi trả lời)
- lỗi được ghi lại nhưng không chặn việc gửi trả lời bình thường
- chế độ nhóm
mentionsphản ứng khi lượt được kích hoạt bởi nhắc; kích hoạt nhómalwayshoạt động như bỏ qua cho kiểm tra này - WhatsApp sử dụng
channels.whatsapp.ackReaction(không sử dụngmessages.ackReactioncũ ở đây)
Nhiều tài khoản và thông tin xác thực
Lựa chọn tài khoản và mặc định
Lựa chọn tài khoản và mặc định
- id tài khoản đến từ
channels.whatsapp.accounts - lựa chọn tài khoản mặc định:
defaultnếu có, nếu không thì id tài khoản đầu tiên được cấu hình (sắp xếp) - id tài khoản được chuẩn hóa nội bộ để tra cứu
Đường dẫn thông tin xác thực và khả năng tương thích cũ
Đường dẫn thông tin xác thực và khả năng tương thích cũ
- đường dẫn xác thực hiện tại:
~/.openclaw/credentials/whatsapp/<accountId>/creds.json - tệp sao lưu:
creds.json.bak - xác thực mặc định cũ trong
~/.openclaw/credentials/vẫn được nhận diện/chuyển đổi cho các luồng tài khoản mặc định
Hành vi đăng xuất
Hành vi đăng xuất
openclaw channels logout --channel whatsapp [--account <id>] xóa trạng thái xác thực WhatsApp cho tài khoản đó.Trong các thư mục xác thực cũ, oauth.json được giữ lại trong khi các tệp xác thực Baileys bị xóa.Công cụ, hành động và ghi cấu hình
- Hỗ trợ công cụ Agent bao gồm hành động phản ứng WhatsApp (
react). - Cổng hành động:
channels.whatsapp.actions.reactionschannels.whatsapp.actions.polls
- Ghi cấu hình do kênh khởi tạo được bật theo mặc định (vô hiệu hóa qua
channels.whatsapp.configWrites=false).
Khắc phục sự cố
Chưa liên kết (cần QR)
Chưa liên kết (cần QR)
Triệu chứng: trạng thái kênh báo chưa liên kết.Khắc phục:
Đã liên kết nhưng bị ngắt kết nối / vòng lặp kết nối lại
Đã liên kết nhưng bị ngắt kết nối / vòng lặp kết nối lại
Triệu chứng: tài khoản đã liên kết với các lần ngắt kết nối hoặc thử kết nối lại lặp lại.Khắc phục:Nếu cần, liên kết lại với
channels login.Không có listener hoạt động khi gửi
Không có listener hoạt động khi gửi
Gửi đi thất bại nhanh chóng khi không có listener gateway hoạt động cho tài khoản mục tiêu.Đảm bảo gateway đang chạy và tài khoản đã được liên kết.
Tin nhắn nhóm bị bỏ qua không mong muốn
Tin nhắn nhóm bị bỏ qua không mong muốn
Kiểm tra theo thứ tự này:
groupPolicygroupAllowFrom/allowFrom- mục danh sách cho phép
groups - điều kiện nhắc (
requireMention+ mẫu nhắc) - khóa trùng lặp trong
openclaw.json(JSON5): các mục nhập sau ghi đè các mục nhập trước đó, vì vậy hãy giữ mộtgroupPolicyduy nhất cho mỗi phạm vi
Cảnh báo runtime Bun
Cảnh báo runtime Bun
Runtime gateway WhatsApp nên sử dụng Node. Bun được đánh dấu là không tương thích cho hoạt động gateway WhatsApp/Telegram ổn định.
Tham chiếu cấu hình
Tham chiếu chính: Các trường WhatsApp quan trọng:- truy cập:
dmPolicy,allowFrom,groupPolicy,groupAllowFrom,groups - giao hàng:
textChunkLimit,chunkMode,mediaMaxMb,sendReadReceipts,ackReaction - nhiều tài khoản:
accounts.<id>.enabled,accounts.<id>.authDir, ghi đè cấp tài khoản - vận hành:
configWrites,debounceMs,web.enabled,web.heartbeatSeconds,web.reconnect.* - hành vi phiên:
session.dmScope,historyLimit,dmHistoryLimit,dms.<id>.historyLimit