/v1/* tương thích với OpenAI, cơ chế xác thực bearer bằng bí mật dùng chung được xem là quyền truy cập đáng tin cậy của người vận hành đối với toàn bộ Gateway.
POST /tools/invoke- Cùng cổng với Gateway (ghép kênh WS + HTTP):
http://<gateway-host>:<port>/tools/invoke - Kích thước nội dung yêu cầu tối đa mặc định: 2 MB
Xác thực
Sử dụng cấu hình xác thực của Gateway. Các phương thức xác thực HTTP phổ biến:- xác thực bằng bí mật dùng chung (
gateway.auth.mode="token"hoặc"password"):Authorization: Bearer <token-or-password> - xác thực HTTP đáng tin cậy có danh tính (
gateway.auth.mode="trusted-proxy"): định tuyến qua proxy nhận biết danh tính đã cấu hình và để proxy chèn các tiêu đề danh tính bắt buộc - xác thực mở trên điểm tiếp nhận riêng tư (
gateway.auth.mode="none"): không yêu cầu tiêu đề xác thực
mode="token"sử dụnggateway.auth.token(hoặcOPENCLAW_GATEWAY_TOKEN).mode="password"sử dụnggateway.auth.password(hoặcOPENCLAW_GATEWAY_PASSWORD).mode="trusted-proxy"yêu cầu yêu cầu HTTP đến từ một nguồn proxy đáng tin cậy đã cấu hình; proxy local loopback trên cùng máy chủ yêu cầu đặt rõgateway.auth.trustedProxy.allowLoopback = true.- Các trình gọi nội bộ trên cùng máy chủ bỏ qua proxy có thể sử dụng
gateway.auth.password/OPENCLAW_GATEWAY_PASSWORDlàm phương án dự phòng trực tiếp cục bộ. Nếu có bất kỳ bằng chứng nào từ tiêu đềForwarded,X-Forwarded-*hoặcX-Real-IP, yêu cầu vẫn đi theo đường dẫn proxy đáng tin cậy. - Nếu
gateway.auth.rateLimitđược cấu hình và có quá nhiều lần xác thực thất bại, điểm cuối trả về429kèmRetry-After.
Ranh giới bảo mật (quan trọng)
Hãy xem điểm cuối này là một bề mặt có toàn quyền truy cập của người vận hành đối với phiên bản Gateway.- Cơ chế xác thực bearer HTTP tại đây không phải là mô hình phạm vi hẹp theo từng người dùng.
- Token/mật khẩu Gateway hợp lệ cho điểm cuối này phải được xem như thông tin xác thực của chủ sở hữu/người vận hành.
- Đối với các chế độ xác thực bằng bí mật dùng chung (
tokenvàpassword), điểm cuối khôi phục các giá trị mặc định có toàn quyền thông thường của người vận hành ngay cả khi trình gọi gửi tiêu đềx-openclaw-scopeshẹp hơn. - Xác thực bằng bí mật dùng chung cũng xem các lệnh gọi công cụ trực tiếp trên điểm cuối này là lượt tương tác từ người gửi là chủ sở hữu.
- Các chế độ HTTP đáng tin cậy có danh tính (xác thực bằng proxy đáng tin cậy hoặc
gateway.auth.mode="none"trên điểm tiếp nhận riêng tư) tuân theox-openclaw-scopeskhi tiêu đề này có mặt; nếu không, chúng dùng tập phạm vi mặc định thông thường của người vận hành. - Chỉ giữ điểm cuối này trên local loopback/tailnet/điểm tiếp nhận riêng tư; không cung cấp trực tiếp qua Internet công cộng.
Nội dung yêu cầu
tool/name(chuỗi, bắt buộc): tên công cụ cần gọi.nameđược ưu tiên nếu cả hai đều được gửi.action(chuỗi, không bắt buộc): được hợp nhất vàoargs.actionnếu lược đồ công cụ hỗ trợ thuộc tínhactionvàargschưa đặt thuộc tính này.args(đối tượng, không bắt buộc): các đối số dành riêng cho công cụ.sessionKey(chuỗi, không bắt buộc): khóa phiên đích. Nếu bị bỏ qua hoặc là"main", Gateway sử dụng khóa phiên chính đã cấu hình (tuân theosession.mainKeyvà tác nhân mặc định, hoặcglobaltrong phạm vi phiên toàn cục).agentId(chuỗi, không bắt buộc): phân giải khóa phiên cho tác nhân đó. Trả về lỗi400nếu xung đột với mộtsessionKeyđược chỉ định rõ và đã ánh xạ tới một tác nhân khác.idempotencyKey(chuỗi, không bắt buộc): dùng để tạo một mã định danh lệnh gọi công cụ ổn định cho lần gọi.dryRun(boolean, không bắt buộc): dành riêng cho việc sử dụng trong tương lai; hiện bị bỏ qua.
Hành vi chính sách và định tuyến
Tính khả dụng của công cụ được lọc qua cùng chuỗi chính sách mà các tác nhân Gateway sử dụng:tools.profile/tools.byProvider.profiletools.allow/tools.byProvider.allowagents.<id>.tools.allow/agents.<id>.tools.byProvider.allow- chính sách nhóm (nếu khóa phiên ánh xạ tới một nhóm hoặc kênh)
- chính sách tác nhân con (khi gọi bằng khóa phiên tác nhân con)
- Phê duyệt thực thi là cơ chế bảo vệ dành cho người vận hành, không phải ranh giới ủy quyền riêng biệt cho điểm cuối HTTP này. Nếu có thể truy cập một công cụ tại đây thông qua xác thực Gateway + chính sách công cụ,
/tools/invokesẽ không thêm lời nhắc phê duyệt riêng cho từng lệnh gọi. - Nếu có thể truy cập
exectại đây, hãy xem đây là một bề mặt shell có khả năng thay đổi dữ liệu. Việc từ chốiwrite,edit,apply_patchhoặc các công cụ HTTP ghi hệ thống tệp không làm cho hoạt động thực thi shell trở thành chỉ đọc. - Không chia sẻ thông tin xác thực bearer của Gateway với các trình gọi không đáng tin cậy. Nếu cần phân tách giữa các ranh giới tin cậy, hãy chạy các Gateway riêng biệt (lý tưởng nhất là bằng các người dùng hệ điều hành/máy chủ riêng biệt).
cron, gateway và nodes cũng chỉ dành cho chủ sở hữu: ngay cả khi nằm ngoài danh sách từ chối mặc định này, các trình gọi không phải chủ sở hữu cũng không thể gọi chúng trên bề mặt này.
Tùy chỉnh danh sách từ chối chung qua gateway.tools:
gateway.tools.allow là cơ chế ghi đè quyền cung cấp, không phải nâng cấp phạm vi. Trong các chế độ HTTP có danh tính, cron, gateway và nodes vẫn không khả dụng đối với các trình gọi không có danh tính chủ sở hữu/quản trị viên (operator.admin), ngay cả khi được liệt kê trong gateway.tools.allow. Xác thực bearer bằng bí mật dùng chung vẫn tuân theo quy tắc người vận hành hoàn toàn đáng tin cậy ở trên.
Để giúp chính sách nhóm phân giải ngữ cảnh, bạn có thể tùy chọn đặt:
x-openclaw-message-channel: <channel>(ví dụ:slack,telegram)x-openclaw-account-id: <accountId>(khi có nhiều tài khoản)x-openclaw-message-to: <target>(đích gửi cho chính sách công cụ nhắn tin)x-openclaw-thread-id: <threadId>(ngữ cảnh luồng cho chính sách công cụ nhắn tin)