Registry tương thích
Các hợp đồng tương thích plugin được theo dõi trong registry lõi tạisrc/plugins/compat/registry.ts. Mỗi bản ghi có:
- một mã tương thích ổn định
- trạng thái:
active,deprecated,removal-pending, hoặcremoved - chủ sở hữu:
sdk,config,setup,channel,provider,plugin-execution,agent-runtime, hoặccore - ngày giới thiệu và ngừng hỗ trợ khi áp dụng
- hướng dẫn thay thế
- tài liệu, chẩn đoán và kiểm thử bao quát hành vi cũ và mới
src/commands/doctor/shared/deprecation-compat.ts. Các bản ghi đó bao quát các
cấu trúc cấu hình cũ, bố cục sổ cái cài đặt và các shim sửa chữa có thể cần
tiếp tục khả dụng sau khi đường dẫn tương thích của môi trường chạy bị loại bỏ.
Các đợt rà soát bản phát hành nên kiểm tra cả hai registry. Không xóa một bản di chuyển
của Doctor chỉ vì bản ghi tương thích môi trường chạy hoặc cấu hình tương ứng
đã hết hạn; trước tiên hãy xác minh rằng không có đường dẫn nâng cấp được hỗ trợ nào vẫn
cần việc sửa chữa đó. Đồng thời xác thực lại từng chú thích thay thế trong quá trình lập kế hoạch
bản phát hành, vì quyền sở hữu plugin và phạm vi cấu hình có thể thay đổi khi các nhà cung cấp
và kênh được chuyển ra khỏi lõi.
Chính sách ngừng hỗ trợ
OpenClaw không nên loại bỏ một hợp đồng plugin đã được ghi trong tài liệu trong cùng bản phát hành giới thiệu hợp đồng thay thế. Trình tự di chuyển:- Thêm hợp đồng mới.
- Duy trì kết nối hành vi cũ thông qua một bộ điều hợp tương thích có tên.
- Phát chẩn đoán hoặc cảnh báo khi tác giả plugin có thể xử lý.
- Ghi tài liệu về giải pháp thay thế và tiến trình thời gian.
- Kiểm thử cả đường dẫn cũ và mới.
- Chờ hết khoảng thời gian di chuyển đã công bố.
- Chỉ loại bỏ khi có phê duyệt rõ ràng cho bản phát hành phá vỡ tương thích.
active.
Các khu vực tương thích hiện tại
Đợt rà soát tháng 7 năm 2026 đã loại bỏ các bí danh SDK gốc, manifest, nhà cung cấp, môi trường chạy, cờ registry và cấu hình web thuộc sở hữu plugin đã hết hạn. Các bản di chuyển của Doctor vẫn được theo dõi riêng để các đường dẫn nâng cấp được hỗ trợ vẫn có thể sửa cấu hình cũ. Các khu vực tương thích còn lại có ngày cụ thể là:- các khoảng thời gian đường dẫn con SDK trong tháng 8 và tháng 9 được liệt kê trong hướng dẫn di chuyển
- các bí danh hook
api.on("deactivate", ...)vàapi.on("subagent_spawning", ...) - đăng ký embedding dành riêng cho bộ nhớ và cầu nối kho phiên beta.5
- các bí danh callback đầu vào WhatsApp được mô tả bên dưới
- phân tích đích kênh rõ ràng và
openclaw/plugin-sdk/messaging-targets - các bí danh agent Pi nhúng
- các bí danh SDK bộ khung agent đã phát hành, việc loại bỏ chúng đang chờ một quyết định di chuyển mới được ghi tài liệu bên ngoài
Các bí danh phẳng của callback đầu vào WhatsApp
Các callback môi trường chạy WhatsApp cung cấpWebInboundMessage: các ngữ cảnh
lồng nhau chuẩn tắc event, payload, quote, group và platform, cùng
các bí danh phẳng đã ngừng hỗ trợ cho những trường callback đã phát hành. Mã callback mới
nên đọc các ngữ cảnh lồng nhau. Mã tạo thông điệp callback lồng nhau sạch
có thể dùng WebInboundCallbackMessage; các trình lắng nghe tương thích vẫn
chèn thông điệp kiểm thử hoặc plugin phẳng cũ nên dùng
LegacyFlatWebInboundMessage hoặc WebInboundMessageInput.
Các bí danh phẳng vẫn khả dụng đến 2026-08-30; khoảng thời gian này chỉ áp dụng
cho việc truy cập bí danh phẳng, không áp dụng cho cấu trúc lồng nhau, vốn là hợp đồng
môi trường chạy chuẩn tắc. Chú thích TypeScript @deprecated của từng bí danh phẳng
nêu rõ mục thay thế lồng nhau chính xác. Các ví dụ phổ biến:
id,timestampvàisBatchedchuyển vàoevent.body,mediaPath,mediaType,mediaFileName,mediaUrl,locationvàuntrustedStructuredContextchuyển vàopayload.to,chatId, các trường người gửi/bản thân,sendComposing,reply(...)vàsendMedia(...)chuyển vàoplatform.- các trường
replyTo*chuyển vàoquote; các trường chủ đề nhóm/người tham gia/lượt đề cập chuyển vàogroup.
payload.untrustedStructuredContext được trích xuất từ các tải trọng đầu vào của nhà cung cấp.
Plugin nên kiểm tra label, source và type trước khi
coi payload của nó là có thẩm quyền.
Các trường chấp nhận đầu vào WhatsApp
Các thông điệp callback WhatsApp được chấp nhận mang theoadmission, một phong bì
an toàn để công khai cho quyết định kiểm soát truy cập đã chấp nhận thông điệp. Mã
callback mới nên đọc các dữ kiện chấp nhận từ msg.admission thay vì
các trường chấp nhận cấp cao nhất cũ hơn.
Các trường cấp cao nhất vẫn khả dụng đến 2026-08-30. Chú thích
TypeScript @deprecated của từng trường nêu rõ mục thay thế:
fromvàconversationIdchuyển đếnadmission.conversation.id.accountIdchuyển đếnadmission.accountId.accessControlPassedlà một dạng xem tương thích được suy ra từadmission.ingress.decision === "allow"; trên các thông điệp đã mang theoadmission, việc ghi giá trị boolean cũ không viết lại đồ thị đầu vào.chatTypechuyển đếnadmission.conversation.kind.
Gói trình kiểm tra plugin
Trình kiểm tra plugin nên nằm ngoài repo OpenClaw lõi dưới dạng một gói/repository riêng biệt, dựa trên các hợp đồng tương thích và manifest có phiên bản. CLI ban đầu nên là:--json để có đầu ra
ổn định mà máy có thể đọc trong các chú thích CI. Lõi OpenClaw nên công khai
các hợp đồng và fixture mà trình kiểm tra có thể sử dụng, nhưng không nên phát hành
tệp nhị phân của trình kiểm tra từ gói openclaw chính.
Làn nghiệm thu dành cho người bảo trì
Dùng Blacksmith Testbox dựa trên Crabbox cho làn nghiệm thu gói có thể cài đặt khi xác thực trình kiểm tra bên ngoài đối với các gói plugin OpenClaw. Chạy làn này từ một bản checkout OpenClaw sạch sau khi gói được dựng:Ghi chú phát hành
Ghi chú phát hành nên bao gồm các đợt ngừng hỗ trợ plugin sắp tới cùng ngày mục tiêu và liên kết đến tài liệu di chuyển, trước khi một đường dẫn tương thích chuyển sangremoval-pending hoặc removed.