Cài đặt
Cài đặt QQ Bot trước khi thiết lập:Thiết lập
- Truy cập QQ Open Platform và quét mã QR bằng QQ trên điện thoại của bạn để đăng ký / đăng nhập.
- Nhấp vào Create Bot để tạo bot QQ mới.
- Tìm AppID và AppSecret trên trang cài đặt của bot rồi sao chép chúng.
AppSecret không được lưu dưới dạng văn bản thuần túy — nếu bạn rời khỏi trang mà không lưu, bạn sẽ phải tạo lại một AppSecret mới.
- Thêm kênh:
- Khởi động lại Gateway.
Cấu hình
Cấu hình tối thiểu:QQBOT_APP_IDQQBOT_CLIENT_SECRET
- Fallback môi trường chỉ áp dụng cho tài khoản QQ Bot mặc định.
openclaw channels add --channel qqbot --token-file ...chỉ cung cấp AppSecret; AppID phải đã được đặt trong cấu hình hoặcQQBOT_APP_ID.clientSecretcũng chấp nhận đầu vào SecretRef, không chỉ chuỗi văn bản thuần túy.- Các chuỗi đánh dấu
secretref:/...cũ không phải là giá trịclientSecrethợp lệ; hãy dùng các đối tượng SecretRef có cấu trúc như ví dụ ở trên.
Thiết lập nhiều tài khoản
Chạy nhiều bot QQ trong một phiên bản OpenClaw duy nhất:appId).
Thêm bot thứ hai qua CLI:
Trò chuyện nhóm
Hỗ trợ trò chuyện nhóm của QQ Bot dùng OpenID nhóm QQ, không dùng tên hiển thị. Thêm bot vào một nhóm, rồi nhắc đến nó hoặc cấu hình nhóm để chạy mà không cần nhắc đến.groups["*"] đặt mặc định cho mọi nhóm, và một mục
groups.GROUP_OPENID cụ thể sẽ ghi đè các mặc định đó cho một nhóm. Cài đặt nhóm bao gồm:
requireMention: yêu cầu @mention trước khi bot trả lời. Mặc định:true.commandLevel: kiểm soát những lệnh slash tích hợp nào có thể chạy trong nhóm. Mặc định:all, giữ nguyên hành vi nhóm QQBot đã có trước đó khi bỏ qua cài đặt này.ignoreOtherMentions: bỏ qua tin nhắn nhắc đến người khác nhưng không nhắc đến bot.historyLimit: giữ các tin nhắn nhóm gần đây không có nhắc đến làm ngữ cảnh cho lượt được nhắc đến tiếp theo. Đặt0để tắt.tools: cho phép/từ chối công cụ cho toàn bộ nhóm.toolsBySender: các ghi đè công cụ nhóm theo từng người gửi; xem Nhóm.name: nhãn thân thiện dùng trong log và ngữ cảnh nhóm.prompt: prompt hành vi theo từng nhóm được thêm vào ngữ cảnh agent.
commandLevel chấp nhận:
all: giữ các lệnh tích hợp được nhận diện ở trạng thái khả dụng như trước. Một số lệnh có thể vẫn bị ẩn khỏi menu, nhưng người dùng được ủy quyền vẫn có thể chạy chúng trong nhóm.safety: cho phép các lệnh cộng tác phổ biến như/help,/btw, và/stop; yêu cầu người dùng chạy các lệnh nhạy cảm như/config,/tools, và/bashtrong trò chuyện riêng.strict: chỉ cho phép các điều khiển phiên nhóm cần thiết cho hoạt động nhóm nghiêm ngặt./stopvẫn giữ tính khẩn cấp để người gửi được ủy quyền có thể ngắt một lần chạy đang hoạt động.
toolPolicy cũ của QQBot đã bị ngừng dùng. Chạy openclaw doctor --fix để di chuyển chúng sang tools.
Các chế độ kích hoạt là mention và always. requireMention: true ánh xạ sang
mention; requireMention: false ánh xạ sang always. Ghi đè kích hoạt ở cấp phiên,
nếu có, sẽ thắng cấu hình.
Hàng đợi đầu vào là theo từng peer. Peer nhóm có giới hạn hàng đợi lớn hơn, giữ tin nhắn
của con người trước các đoạn trò chuyện do bot tạo khi đầy, và gộp các đợt tin nhắn
nhóm bình thường thành một lượt có gán nguồn. Lệnh slash vẫn chạy lần lượt từng lệnh.
Thoại (STT / TTS)
STT và TTS hỗ trợ cấu hình hai cấp với fallback ưu tiên:| Cài đặt | Riêng cho Plugin | Fallback framework |
|---|---|---|
| STT | channels.qqbot.stt | tools.media.audio.models[0] |
| TTS | channels.qqbot.tts, channels.qqbot.accounts.<id>.tts | messages.tts |
enabled: false trên một trong hai để tắt.
Các ghi đè TTS cấp tài khoản dùng cùng cấu trúc với messages.tts và deep-merge
lên trên cấu hình TTS cấp kênh/toàn cục.
Tệp đính kèm thoại QQ đầu vào được hiển thị cho agent dưới dạng metadata phương tiện âm thanh trong khi
giữ các tệp thoại thô khỏi MediaPaths chung. Các phản hồi văn bản thuần túy [[audio_as_voice]]
sẽ tổng hợp TTS và gửi tin nhắn thoại QQ gốc khi TTS được cấu hình.
Hành vi tải lên/chuyển mã âm thanh đầu ra cũng có thể được tinh chỉnh bằng
channels.qqbot.audioFormatPolicy:
sttDirectFormatsuploadDirectFormatstranscodeEnabled
Định dạng đích
| Định dạng | Mô tả |
|---|---|
qqbot:c2c:OPENID | Trò chuyện riêng (C2C) |
qqbot:group:GROUP_OPENID | Trò chuyện nhóm |
qqbot:channel:CHANNEL_ID | Kênh guild |
Mỗi bot có tập OpenID người dùng riêng. Một OpenID nhận được bởi Bot A không thể được dùng để gửi tin nhắn qua Bot B.
Lệnh slash
Các lệnh tích hợp được chặn trước hàng đợi AI:| Lệnh | Mô tả |
|---|---|
/bot-ping | Kiểm tra độ trễ |
/bot-version | Hiển thị phiên bản framework OpenClaw |
/bot-help | Liệt kê tất cả lệnh |
/bot-me | Hiển thị ID người dùng QQ của người gửi (openid) cho thiết lập allowFrom/groupAllowFrom |
/bot-upgrade | Hiển thị liên kết hướng dẫn nâng cấp QQBot |
/bot-logs | Xuất log gateway gần đây dưới dạng tệp |
/bot-approve | Phê duyệt một hành động QQ Bot đang chờ xử lý (ví dụ, xác nhận tải lên C2C hoặc nhóm) qua luồng gốc. |
? vào bất kỳ lệnh nào để xem trợ giúp sử dụng (ví dụ /bot-upgrade ?).
Các lệnh quản trị (/bot-me, /bot-upgrade, /bot-logs, /bot-clear-storage, /bot-streaming, /bot-approve) chỉ dùng trong tin nhắn trực tiếp và yêu cầu openid của người gửi nằm trong danh sách allowFrom rõ ràng, không có ký tự đại diện. Ký tự đại diện allowFrom: ["*"] cho phép trò chuyện nhưng không cấp quyền truy cập lệnh quản trị. Tin nhắn nhóm được khớp với groupAllowFrom trước rồi fallback về allowFrom. Chạy lệnh quản trị trong nhóm sẽ trả về gợi ý thay vì âm thầm bỏ qua.
Khi phê duyệt exec của QQ Bot dùng fallback cùng cuộc trò chuyện mặc định, lượt nhấp
nút phê duyệt gốc tuân theo cùng danh sách cho phép lệnh rõ ràng không có ký tự đại diện. Để cấp
quyền chỉ phê duyệt mà không có quyền lệnh rộng hơn, hãy cấu hình
channels.qqbot.execApprovals.approvers.
Kiến trúc engine
QQ Bot được phân phối dưới dạng engine khép kín bên trong Plugin:- Mỗi tài khoản sở hữu một ngăn xếp tài nguyên cô lập (kết nối WebSocket, API client, bộ nhớ đệm token, gốc lưu trữ phương tiện) được khóa theo
appId. Các tài khoản không bao giờ chia sẻ trạng thái đầu vào/đầu ra. - Logger nhiều tài khoản gắn thẻ các dòng log bằng tài khoản sở hữu để chẩn đoán luôn tách biệt khi bạn chạy nhiều bot dưới một gateway.
- Các đường dẫn đầu vào, đầu ra, và cầu nối gateway chia sẻ một gốc payload phương tiện duy nhất dưới
~/.openclaw/media, để các tải lên, tải xuống, và bộ nhớ đệm chuyển mã nằm dưới một thư mục được bảo vệ thay vì cây theo từng hệ thống con. - Phân phối đa phương tiện phong phú đi qua một đường dẫn
sendMediaduy nhất cho đích C2C và nhóm. Tệp cục bộ và bộ đệm vượt ngưỡng tệp lớn dùng endpoint tải lên theo khối của QQ, trong khi payload nhỏ hơn dùng API phương tiện một lần. - Thông tin xác thực có thể được sao lưu và khôi phục như một phần của snapshot thông tin xác thực OpenClaw tiêu chuẩn; engine gắn lại ngăn xếp tài nguyên của từng tài khoản khi khôi phục mà không yêu cầu cặp mã QR mới.
Onboarding bằng mã QR
Thay cho việc dánAppID:AppSecret thủ công, engine hỗ trợ luồng onboarding bằng mã QR để liên kết QQ Bot với OpenClaw:
- Chạy đường dẫn thiết lập QQ Bot (ví dụ
openclaw channels add --channel qqbot) và chọn luồng mã QR khi được nhắc. - Quét mã QR đã tạo bằng ứng dụng điện thoại được liên kết với QQ Bot mục tiêu.
- Phê duyệt ghép cặp trên điện thoại. OpenClaw lưu thông tin xác thực được trả về vào
credentials/trong phạm vi tài khoản đúng.
/bot-approve thay vì trả lời qua client QQ thô.
Khắc phục sự cố
- Bot trả lời “gone to Mars”: thông tin xác thực chưa được cấu hình hoặc Gateway chưa được khởi động.
- Không có tin nhắn đến: xác minh
appIdvàclientSecretlà chính xác, và bot đã được bật trên QQ Open Platform. - Tự trả lời lặp lại: OpenClaw ghi nhận các chỉ mục tham chiếu gửi đi của QQ là
do bot tạo và bỏ qua các sự kiện đến có
msgIdxhiện tại khớp với cùng tài khoản bot đó. Điều này ngăn các vòng lặp echo của nền tảng trong khi vẫn cho phép người dùng trích dẫn hoặc trả lời các tin nhắn bot trước đó. - Thiết lập với
--token-filevẫn hiển thị chưa cấu hình:--token-filechỉ đặt AppSecret. Bạn vẫn cầnappIdtrong cấu hình hoặcQQBOT_APP_ID. - Tin nhắn chủ động không đến: QQ có thể chặn các tin nhắn do bot khởi tạo nếu người dùng chưa tương tác gần đây.
- Giọng nói không được chép lời: đảm bảo STT đã được cấu hình và nhà cung cấp có thể truy cập được.