plugin.approval.* và cùng các bề mặt giao diện người dùng phê duyệt xử lý các nút
phê duyệt trong cuộc trò chuyện và lệnh /approve.
Sử dụng yêu cầu quyền của Plugin cho các quyền của Plugin/ứng dụng. Chúng không thay thế
phê duyệt thực thi trên máy chủ, danh sách cho phép công cụ tùy chọn hoặc quy trình
xem xét quyền gốc của Codex.
Chọn cổng kiểm soát phù hợp
Chọn cổng kiểm soát khớp với điểm ra quyết định bạn cần:
Công cụ tùy chọn là cổng kiểm soát tại thời điểm khám phá. Yêu cầu quyền của Plugin là
cổng kiểm soát cho từng lệnh gọi. Sử dụng cả hai khi một công cụ nhạy cảm phải yêu cầu người dùng
chọn tham gia rõ ràng trước khi mô hình có thể nhìn thấy công cụ đó và phải được phê duyệt
trước khi hành động chạy.
Yêu cầu phê duyệt trước một lệnh gọi công cụ
Hầu hết lời nhắc do Plugin tạo nên bắt đầu trong hookbefore_tool_call. Hook này
chạy sau khi mô hình chọn công cụ và trước khi OpenClaw thực thi công cụ đó:
- Giữ
titlengắn gọn và tập trung vào hành động; Gateway giới hạn nội dung này ở 80 ký tự. - Giữ
descriptioncụ thể và có phạm vi rõ ràng; Gateway giới hạn nội dung này ở 512 ký tự. - Bao gồm hành động, mục tiêu và rủi ro. Không bao gồm thông tin bí mật, token hoặc tải trọng riêng tư không nên xuất hiện trên các bề mặt phê duyệt trong cuộc trò chuyện.
severitymặc định là"warning"khi bị bỏ qua. Chỉ sử dụng"critical"cho các hành động mà quyết định sai có thể gây thiệt hại cho hệ thống sản xuất hoặc mất dữ liệu.allowedDecisionsmặc định là["allow-once", "allow-always", "deny"]khi bị bỏ qua. Truyền["allow-once", "deny"]khi việc tin cậy lâu dài không an toàn đối với hành động đó.timeoutMsmặc định là 120000 (2 phút) và bị giới hạn ở 600000 (10 phút) bất kể giá trị được yêu cầu.
Hành vi quyết định
OpenClaw tạo một phê duyệt đang chờ với IDplugin:, phân phối phê duyệt đó đến
các bề mặt phê duyệt hiện có và chờ quyết định.
Chỉ các quyết định
allow-once và allow-always chính xác được yêu cầu cho phép
mới cho phép thực thi. Các quyết định không xác định, không đúng định dạng, không khớp, bị thiếu
và hết thời gian chờ đều bị từ chối theo mặc định. Trường cũ timeoutBehavior vẫn được chấp nhận để
tương thích với Plugin nhưng đã ngừng khuyến nghị và bị bỏ qua; không đặt trường này trong hook mới.
allow-always chỉ có hiệu lực lâu dài khi Plugin hoặc runtime đưa ra yêu cầu triển khai
cơ chế lưu trạng thái đó. Đối với các hook before_tool_call.requireApproval thông thường,
OpenClaw coi allow-once và allow-always là các quyết định phê duyệt cho
lệnh gọi hiện tại và chuyển giá trị đã xử lý đến onResolution. Nếu Plugin của bạn
cung cấp allow-always, hãy ghi tài liệu và triển khai chính xác những lệnh gọi trong tương lai
mà cơ chế đó tin cậy.
Nếu hook cũng trả về params, OpenClaw chỉ áp dụng các thay đổi tham số đó
sau khi phê duyệt thành công. Hook có mức ưu tiên thấp hơn vẫn có thể chặn sau khi
hook có mức ưu tiên cao hơn yêu cầu phê duyệt.
allowedDecisions giới hạn các nút và lệnh được hiển thị cho người dùng.
Gateway từ chối mọi lần thử xử lý bằng quyết định mà yêu cầu không cung cấp.
Định tuyến lời nhắc phê duyệt
Lời nhắc phê duyệt có thể được xử lý trên các bề mặt giao diện người dùng cục bộ hoặc trong các kênh trò chuyện hỗ trợ xử lý phê duyệt. Để chuyển tiếp lời nhắc phê duyệt Plugin đến các mục tiêu trò chuyện được chỉ định rõ ràng, hãy cấu hìnhapprovals.plugin:
approvals.plugin độc lập với approvals.exec. Bật tính năng chuyển tiếp phê duyệt thực thi
không định tuyến lời nhắc phê duyệt Plugin, và bật tính năng chuyển tiếp phê duyệt Plugin
không thay đổi chính sách thực thi trên máy chủ.
Khi lời nhắc có nội dung phê duyệt thủ công, hãy xử lý bằng một trong các
quyết định được cung cấp:
Quyền gốc của Codex
Lời nhắc quyền gốc của Codex cũng có thể đi qua phê duyệt Plugin, nhưng chúng có quyền sở hữu khác với các hook do Plugin tạo.- Yêu cầu phê duyệt của máy chủ ứng dụng Codex được định tuyến qua OpenClaw sau khi Codex xem xét.
- Bộ chuyển tiếp hook gốc
permission_requestcó thể yêu cầu thông quaplugin.approval.requestkhi bộ chuyển tiếp đó được bật. - Yêu cầu phê duyệt công cụ MCP được định tuyến qua phê duyệt Plugin khi Codex đánh dấu
_meta.codex_approval_kindlà"mcp_tool_call".
Khắc phục sự cố
Công cụ cho biết phê duyệt Plugin không khả dụng. Không có giao diện người dùng phê duyệt hoặc tuyến phê duyệt đã cấu hình nào chấp nhận yêu cầu. Hãy kết nối một máy khách có khả năng phê duyệt, sử dụng kênh hỗ trợ/approve trong cùng cuộc trò chuyện hoặc cấu hình approvals.plugin.
allow-always xuất hiện nhưng lệnh gọi tiếp theo lại nhắc. Luồng phê duyệt Plugin
chung không tự động lưu trạng thái tin cậy cho các hook tùy ý. Hãy lưu
trạng thái tin cậy do Plugin sở hữu trong Plugin của bạn sau onResolution("allow-always"), hoặc
chỉ cung cấp allow-once và deny.
/approve từ chối quyết định. Yêu cầu đã giới hạn
allowedDecisions. Hãy sử dụng một trong các quyết định được in trong lời nhắc.
Lời nhắc Discord, Matrix, Slack hoặc Telegram được định tuyến khác với phê duyệt
thực thi. Phê duyệt Plugin và phê duyệt thực thi sử dụng cấu hình riêng biệt và có thể sử dụng
các bước kiểm tra ủy quyền khác nhau. Hãy xác minh approvals.plugin và khả năng hỗ trợ
phê duyệt Plugin của kênh thay vì chỉ kiểm tra approvals.exec.