Hướng dẫn này giải thích cách chạy ZeroClaw ổn định trong các phòng Matrix, bao gồm các phòng mã hóa đầu cuối (E2EE).
Tài liệu tập trung vào lỗi phổ biến mà người dùng báo cáo:
"Matrix đã cấu hình đúng, kiểm tra thành công, nhưng bot không phản hồi."
Nếu Matrix có vẻ đã kết nối nhưng không có phản hồi, hãy xác minh những điều sau trước:
- Người gửi được cho phép bởi
allowed_users(khi kiểm tra:["*"]). - Tài khoản bot đã tham gia đúng phòng mục tiêu.
- Token thuộc về cùng tài khoản bot (kiểm tra bằng
whoami). - Phòng mã hóa có identity thiết bị (
device_id) và chia sẻ key hợp lệ. - Daemon đã được khởi động lại sau khi thay đổi cấu hình.
Trước khi kiểm tra luồng tin nhắn, hãy đảm bảo tất cả các điều sau đều đúng:
- Tài khoản bot đã tham gia phòng mục tiêu.
- Access token thuộc về cùng tài khoản bot.
room_idchính xác:- ưu tiên: canonical room ID (
!room:server) - được hỗ trợ: room alias (
#alias:server) và ZeroClaw sẽ tự resolve
- ưu tiên: canonical room ID (
allowed_userscho phép người gửi (["*"]để kiểm tra mở).- Với phòng E2EE, thiết bị bot đã nhận được encryption key cho phòng.
Dùng ~/.zeroclaw/config.toml:
[channels_config.matrix]
homeserver = "https://matrix.example.com"
access_token = "syt_your_token"
# Optional but recommended for E2EE stability:
user_id = "@zeroclaw:matrix.example.com"
device_id = "DEVICEID123"
# Room ID or alias
room_id = "!xtHhdHIIVEZbDPvTvZ:matrix.example.com"
# room_id = "#ops:matrix.example.com"
# Use ["*"] during initial verification, then tighten.
allowed_users = ["*"]- ZeroClaw cố đọc identity từ Matrix
/_matrix/client/v3/account/whoami. - Nếu
whoamikhông trả vềdevice_id, hãy đặtdevice_idthủ công. - Các gợi ý này đặc biệt quan trọng để khôi phục phiên E2EE.
- Chạy thiết lập channel và daemon:
zeroclaw onboard --channels-only
zeroclaw daemon-
Gửi một tin nhắn văn bản thuần trong phòng Matrix đã cấu hình.
-
Xác nhận log ZeroClaw có thông tin khởi động Matrix listener và không có lỗi sync/auth lặp lại.
-
Trong phòng mã hóa, xác minh bot có thể đọc và phản hồi tin nhắn mã hóa từ các người dùng được phép.
Dùng checklist này theo thứ tự.
- Đảm bảo tài khoản bot đã tham gia phòng.
- Nếu dùng alias (
#...), xác minh nó resolve về đúng canonical room.
- Nếu
allowed_users = [], tất cả tin nhắn đến đều bị từ chối. - Để chẩn đoán, tạm thời đặt
allowed_users = ["*"].
- Xác thực token bằng:
curl -sS -H "Authorization: Bearer $MATRIX_TOKEN" \
"https://matrix.example.com/_matrix/client/v3/account/whoami"- Kiểm tra
user_idtrả về khớp với tài khoản bot. - Nếu
device_idbị thiếu, đặtchannels_config.matrix.device_idthủ công.
- Thiết bị bot phải nhận được room key từ các thiết bị tin cậy.
- Nếu key không được chia sẻ tới thiết bị này, các sự kiện mã hóa không thể giải mã.
- Xác minh độ tin cậy thiết bị và chia sẻ key trong quy trình Matrix client/admin của bạn.
- Nếu log hiện
matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found, quá trình khôi phục key backup chưa được bật trên thiết bị này. Cảnh báo này thường không gây lỗi nghiêm trọng cho luồng tin nhắn trực tiếp, nhưng bạn vẫn nên hoàn thiện thiết lập key backup/recovery. - Nếu người nhận thấy tin nhắn bot là "unverified", hãy xác minh/ký thiết bị bot từ một phiên Matrix tin cậy và giữ
channels_config.matrix.device_idổn định qua các lần khởi động lại.
- ZeroClaw gửi phản hồi văn bản Matrix dưới dạng nội dung
m.room.messagehỗ trợ markdown. - Các Matrix client hỗ trợ
formatted_bodysẽ render in đậm, danh sách và code block. - Nếu định dạng hiển thị dưới dạng văn bản thuần, kiểm tra khả năng của client trước, sau đó xác nhận ZeroClaw đang chạy bản build bao gồm Matrix output hỗ trợ markdown.
Sau khi cập nhật cấu hình, khởi động lại daemon và gửi tin nhắn mới (không chỉ xem lại lịch sử cũ).
- Giữ Matrix token tránh khỏi log và ảnh chụp màn hình.
- Bắt đầu với
allowed_usersthoáng, sau đó thu hẹp về các user ID cụ thể. - Ưu tiên dùng canonical room ID trong production để tránh alias drift.