Đây là hướng dẫn dành cho người đóng góp cho các nhà phát triển lõi OpenClaw. Nếu bạn đang
xây dựng một Plugin bên ngoài, hãy xem Xây dựng Plugin
thay vào đó. Để tham khảo kiến trúc chuyên sâu (mô hình capability, quyền sở hữu,
quy trình tải, các trình trợ giúp runtime), hãy xem Nội bộ Plugin.
- Plugin = ranh giới quyền sở hữu
- capability = hợp đồng lõi dùng chung
Khi nào cần tạo capability
Chỉ tạo capability mới khi tất cả các điều kiện sau đều đúng:- Có thể hợp lý kỳ vọng nhiều hơn một nhà cung cấp triển khai capability đó.
- Các kênh, công cụ hoặc Plugin tính năng cần sử dụng capability đó mà không cần quan tâm đến nhà cung cấp.
- Lõi cần sở hữu hành vi dự phòng, chính sách, cấu hình hoặc phân phối.
Trình tự tiêu chuẩn
- Định nghĩa hợp đồng lõi có kiểu.
- Thêm cơ chế đăng ký Plugin cho hợp đồng đó.
- Thêm một trình trợ giúp runtime dùng chung.
- Kết nối một Plugin nhà cung cấp thực tế để làm minh chứng.
- Chuyển các bên sử dụng là tính năng/kênh sang trình trợ giúp runtime.
- Thêm kiểm thử hợp đồng.
- Ghi lại cấu hình dành cho người vận hành và mô hình quyền sở hữu.
Thành phần nào nằm ở đâu
Các điểm nối nhà cung cấp và harness
Sử dụng hook nhà cung cấp khi hành vi thuộc về hợp đồng của nhà cung cấp mô hình thay vì vòng lặp tác nhân chung. Ví dụ gồm các tham số yêu cầu dành riêng cho nhà cung cấp sau khi chọn phương thức truyền tải, ưu tiên hồ sơ xác thực, lớp phủ prompt và định tuyến dự phòng tiếp theo sau khi chuyển đổi dự phòng mô hình/hồ sơ. Sử dụng hook harness tác nhân khi hành vi thuộc về runtime đang thực thi một lượt. Harness có thể phân loại các kết quả giao thức rõ ràng như đầu ra trống, phần suy luận không có đầu ra hiển thị hoặc một kế hoạch có cấu trúc nhưng không có câu trả lời cuối cùng, để chính sách dự phòng mô hình bên ngoài có thể quyết định có thử lại hay không. Giữ cả hai điểm nối ở phạm vi hẹp:- Lõi sở hữu chính sách thử lại/dự phòng.
- Plugin nhà cung cấp sở hữu các gợi ý về yêu cầu/xác thực/định tuyến dành riêng cho nhà cung cấp.
- Plugin harness sở hữu việc phân loại lần thử dành riêng cho runtime.
- Plugin bên thứ ba trả về các gợi ý, không trực tiếp thay đổi trạng thái lõi.
Danh sách kiểm tra tệp
Đối với một capability mới, dự kiến cần sửa đổi các khu vực sau:src/<capability>/types.tssrc/<capability>/...registry/runtime.tssrc/plugins/types.tssrc/plugins/registry.tssrc/plugins/captured-registration.tssrc/plugins/contracts/registry.tssrc/plugins/runtime/types-core.tssrc/plugins/runtime/index.tssrc/plugin-sdk/<capability>.tssrc/plugin-sdk/<capability>-runtime.ts- Một hoặc nhiều gói Plugin đi kèm.
- Cấu hình, tài liệu, kiểm thử.
Ví dụ hoàn chỉnh: tạo hình ảnh
Tính năng tạo hình ảnh tuân theo cấu trúc tiêu chuẩn:- Lõi định nghĩa
ImageGenerationProvider. - Lõi cung cấp
registerImageGenerationProvider(...). - Lõi cung cấp
api.runtime.imageGeneration.generate(...)và.listProviders(...). - Các Plugin nhà cung cấp (
comfy,deepinfra,fal,google,litellm,microsoft-foundry,minimax,openai,openrouter,vydra,xai) đăng ký các phần triển khai được nhà cung cấp hỗ trợ. - Các nhà cung cấp trong tương lai đăng ký cùng một hợp đồng mà không cần thay đổi kênh/công cụ.
agents.defaults.imageModelphân tích hình ảnh.agents.defaults.imageGenerationModeltạo hình ảnh.
Nhà cung cấp embedding
Sử dụngregisterEmbeddingProvider(...) / hợp đồng embeddingProviders cho
các nhà cung cấp embedding vectơ có thể tái sử dụng. Hợp đồng này được chủ ý thiết kế rộng hơn
bộ nhớ: công cụ, tìm kiếm, truy xuất, trình nhập hoặc các Plugin tính năng trong tương lai
có thể sử dụng embedding mà không phụ thuộc vào công cụ bộ nhớ. Tìm kiếm bộ nhớ
cũng sử dụng embeddingProviders dùng chung.
API đăng ký dành riêng cho bộ nhớ trước đây và hợp đồng memoryEmbeddingProviders
đã không còn được khuyến nghị. Sử dụng registerEmbeddingProvider và
embeddingProviders cho tất cả nhà cung cấp embedding mới.
Danh sách kiểm tra khi đánh giá
Trước khi phát hành một capability mới, hãy xác minh:- Không có kênh/công cụ nào nhập trực tiếp mã của nhà cung cấp.
- Trình trợ giúp runtime là đường dẫn dùng chung.
- Có ít nhất một kiểm thử hợp đồng xác nhận quyền sở hữu đi kèm.
- Tài liệu cấu hình nêu tên mô hình/khóa cấu hình mới.
- Tài liệu Plugin giải thích ranh giới quyền sở hữu.
Liên quan
- Nội bộ Plugin — mô hình capability, quyền sở hữu, quy trình tải, các trình trợ giúp runtime.
- Xây dựng Plugin — hướng dẫn tạo Plugin đầu tiên.
- Tổng quan SDK — bản đồ nhập và tài liệu tham khảo API đăng ký.
- Tạo Skills — bề mặt bổ trợ dành cho người đóng góp.