Plugins
Plugin Webhook
Plugin Webhooks thêm các tuyến HTTP đã xác thực để liên kết tự động hóa bên ngoài với các TaskFlow OpenClaw.
Dùng Plugin này khi bạn muốn một hệ thống đáng tin cậy như Zapier, n8n, một tác vụ CI, hoặc một dịch vụ nội bộ tạo và điều khiển các TaskFlow được quản lý mà chưa cần viết Plugin tùy chỉnh.
Nơi chạy
Plugin Webhooks chạy bên trong tiến trình Gateway.
Nếu Gateway của bạn chạy trên máy khác, hãy cài đặt và cấu hình Plugin trên máy chủ Gateway đó, rồi khởi động lại Gateway.
Cấu hình tuyến
Đặt cấu hình trong plugins.entries.webhooks.config:
{
plugins: {
entries: {
webhooks: {
enabled: true,
config: {
routes: {
zapier: {
path: "/plugins/webhooks/zapier",
sessionKey: "agent:main:main",
secret: {
source: "env",
provider: "default",
id: "OPENCLAW_WEBHOOK_SECRET",
},
controllerId: "webhooks/zapier",
description: "Zapier TaskFlow bridge",
},
},
},
},
},
},
}
Các trường của tuyến:
enabled: tùy chọn, mặc định làtruepath: tùy chọn, mặc định là/plugins/webhooks/<routeId>sessionKey: phiên bắt buộc sở hữu các TaskFlow được liên kếtsecret: bí mật dùng chung hoặc SecretRef bắt buộccontrollerId: id bộ điều khiển tùy chọn cho các luồng được quản lý đã tạodescription: ghi chú tùy chọn cho người vận hành
Các đầu vào secret được hỗ trợ:
- Chuỗi thuần
- SecretRef với
source: "env" | "file" | "exec"
Nếu một tuyến dùng bí mật không thể phân giải bí mật khi khởi động, Plugin sẽ bỏ qua tuyến đó và ghi cảnh báo thay vì để lộ một endpoint bị hỏng.
Mô hình bảo mật
Mỗi tuyến được tin cậy để hành động với quyền TaskFlow của sessionKey đã cấu hình.
Điều này nghĩa là tuyến có thể kiểm tra và thay đổi các TaskFlow thuộc sở hữu của phiên đó, vì vậy bạn nên:
- Dùng một bí mật mạnh và duy nhất cho mỗi tuyến
- Ưu tiên tham chiếu bí mật thay vì bí mật văn bản thuần nội tuyến
- Liên kết tuyến với phiên hẹp nhất phù hợp với quy trình làm việc
- Chỉ để lộ đường dẫn Webhook cụ thể bạn cần
Plugin áp dụng:
- Xác thực bằng bí mật dùng chung
- Giới hạn kích thước và thời gian chờ của thân yêu cầu
- Giới hạn tốc độ theo cửa sổ cố định
- Giới hạn yêu cầu đang xử lý
- Truy cập TaskFlow gắn với chủ sở hữu thông qua
api.runtime.tasks.managedFlows.bindSession(...)
Định dạng yêu cầu
Gửi yêu cầu POST với:
Content-Type: application/jsonAuthorization: Bearer <secret>hoặcx-openclaw-webhook-secret: <secret>
Ví dụ:
curl -X POST https://gateway.example.com/plugins/webhooks/zapier \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_SHARED_SECRET' \
-d '{"action":"create_flow","goal":"Review inbound queue"}'
Hành động được hỗ trợ
Plugin hiện chấp nhận các giá trị JSON action sau:
create_flowget_flowlist_flowsfind_latest_flowresolve_flowget_task_summaryset_waitingresume_flowfinish_flowfail_flowrequest_cancelcancel_flowrun_task
create_flow
Tạo một TaskFlow được quản lý cho phiên được liên kết của tuyến.
Ví dụ:
{
"action": "create_flow",
"goal": "Review inbound queue",
"status": "queued",
"notifyPolicy": "done_only"
}
run_task
Tạo một tác vụ con được quản lý bên trong một TaskFlow được quản lý hiện có.
Các thời gian chạy được phép là:
subagentacp
Ví dụ:
{
"action": "run_task",
"flowId": "flow_123",
"runtime": "acp",
"childSessionKey": "agent:main:acp:worker",
"task": "Inspect the next message batch"
}
Dạng phản hồi
Phản hồi thành công trả về:
{
"ok": true,
"routeId": "zapier",
"result": {}
}
Yêu cầu bị từ chối trả về:
{
"ok": false,
"routeId": "zapier",
"code": "not_found",
"error": "TaskFlow not found.",
"result": {}
}
Plugin chủ ý loại bỏ siêu dữ liệu chủ sở hữu/phiên khỏi phản hồi Webhook.