Get started
Bảo vệ chống vòng lặp bot
OpenClaw có thể chấp nhận tin nhắn do các bot khác gửi trên những kênh hỗ trợ allowBots. Khi đường xử lý này được bật, cơ chế bảo vệ vòng lặp theo cặp sẽ ngăn hai danh tính bot liên tục trả lời lẫn nhau vô thời hạn.
Cơ chế bảo vệ được thực thi bởi trình chạy phản hồi đầu vào cốt lõi. Mỗi kênh hỗ trợ ánh xạ sự kiện đầu vào thành các thông tin chung: tài khoản hoặc phạm vi, mã định danh cuộc trò chuyện, mã định danh bot gửi và mã định danh bot nhận. Phần lõi theo dõi cặp bên tham gia theo cả hai chiều (A đến B và B đến A được tính là cùng một cặp), áp dụng hạn mức theo cửa sổ trượt và chặn cặp đó trong thời gian tạm ngưng sau khi vượt quá hạn mức.
Giá trị mặc định
Cơ chế bảo vệ vòng lặp theo cặp hoạt động bất cứ khi nào một kênh cho phép tin nhắn do bot gửi được chuyển đến bộ điều phối. Các giá trị mặc định tích hợp:
| Khóa | Mặc định | Ý nghĩa |
|---|---|---|
enabled |
true |
Bật cơ chế bảo vệ cho các kênh hỗ trợ tính năng này. |
maxEventsPerWindow |
20 |
Số sự kiện một cặp bot có thể trao đổi trong cửa sổ. |
windowSeconds |
60 |
Độ dài cửa sổ trượt. |
cooldownSeconds |
60 |
Thời gian chặn sau khi cặp bot vượt quá hạn mức. |
Cơ chế bảo vệ không ảnh hưởng đến tin nhắn do con người gửi, các triển khai chỉ có một bot, việc lọc tin nhắn tự gửi hoặc phản hồi của bot vẫn nằm trong hạn mức.
Cấu hình các giá trị mặc định dùng chung
Đặt channels.defaults.botLoopProtection một lần để cung cấp cùng một cấu hình cơ sở cho mọi kênh hỗ trợ. Các cấu hình ghi đè theo kênh, tài khoản và phòng vẫn có thể tinh chỉnh từng phạm vi riêng lẻ.
{ channels: { defaults: { botLoopProtection: { maxEventsPerWindow: 20, windowSeconds: 60, cooldownSeconds: 60, }, }, },}Chỉ đặt enabled: false khi chính sách kênh của bạn chủ ý cho phép các cuộc trò chuyện giữa các bot mà không tự động chặn.
Ghi đè theo kênh, tài khoản hoặc phòng
Các kênh hỗ trợ áp dụng cấu hình riêng lên giá trị mặc định dùng chung theo từng khóa. Thứ tự ưu tiên, từ phạm vi hẹp nhất:
channels.<channel>.<room-or-space>.botLoopProtection, khi kênh hỗ trợ ghi đè theo từng cuộc trò chuyệnchannels.<channel>.accounts.<account>.botLoopProtection, khi kênh hỗ trợ tài khoảnchannels.<channel>.botLoopProtection, khi kênh hỗ trợ giá trị mặc định cấp cao nhấtchannels.defaults.botLoopProtection- các giá trị mặc định tích hợp
{ channels: { defaults: { botLoopProtection: { maxEventsPerWindow: 20, }, }, discord: { botLoopProtection: { maxEventsPerWindow: 8, }, accounts: { secondary: { allowBots: "mentions", botLoopProtection: { maxEventsPerWindow: 5, cooldownSeconds: 90, }, }, }, }, googlechat: { allowBots: true, groups: { "spaces/AAAA": { botLoopProtection: { maxEventsPerWindow: 5, }, }, }, }, matrix: { allowBots: "mentions", groups: { "!roomid:example.org": { botLoopProtection: { maxEventsPerWindow: 5, }, }, }, }, slack: { allowBots: "mentions", botLoopProtection: { maxEventsPerWindow: 8, }, }, },}Kênh được hỗ trợ
- Discord: thông tin
author.botgốc, được phân loại theo tài khoản Discord, kênh và cặp bot. - Google Chat: thông tin
sender.type=BOTgốc cho các tin nhắn do bot gửi đã được chấp nhận, được phân loại theo tài khoản, không gian và cặp bot. - Matrix: các tài khoản bot Matrix đã cấu hình, được phân loại theo tài khoản Matrix, phòng và cặp bot đã cấu hình.
- Slack: thông tin
bot_idgốc cho các tin nhắn do bot gửi đã được chấp nhận, được phân loại theo tài khoản Slack, kênh và cặp bot.
Các kênh không cung cấp danh tính bot đầu vào đáng tin cậy tiếp tục sử dụng các bộ lọc thông thường về tin nhắn tự gửi và chính sách truy cập. Các kênh này không nên bật cơ chế bảo vệ này cho đến khi có thể xác định cả hai bên tham gia trong cặp bot.
Xem môi trường chạy SDK để biết chi tiết triển khai Plugin.