Documentation Index
Fetch the complete documentation index at: https://openclawhub.vn/llms.txt
Use this file to discover all available pages before exploring further.
Webhooks
Gateway có thể mở một endpoint HTTP webhook nhỏ để nhận các kích hoạt từ bên ngoài.Kích hoạt
hooks.tokenlà bắt buộc khihooks.enabled=true.hooks.pathmặc định là/hooks.
Xác thực
Mỗi yêu cầu phải bao gồm token hook. Ưu tiên sử dụng headers:Authorization: Bearer <token>(khuyến nghị)x-openclaw-token: <token>- Token trong query-string sẽ bị từ chối (
?token=...trả về400). - Đối xử với người giữ
hooks.tokennhư là người gọi có độ tin cậy cao cho bề mặt ingress hook trên gateway đó. Nội dung payload hook vẫn không được tin cậy, nhưng đây không phải là ranh giới xác thực riêng biệt cho người không sở hữu.
Endpoints
POST /hooks/wake
Payload:
textbắt buộc (chuỗi): Mô tả sự kiện (ví dụ: “Nhận được email mới”).modetùy chọn (now|next-heartbeat): Kích hoạt ngay lập tức (mặc địnhnow) hoặc chờ lần kiểm tra định kỳ tiếp theo.
- Đưa sự kiện hệ thống vào hàng đợi cho phiên main
- Nếu
mode=now, kích hoạt ngay lập tức
POST /hooks/agent
Payload:
messagebắt buộc (chuỗi): Lời nhắc hoặc thông điệp để agent xử lý.nametùy chọn (chuỗi): Tên dễ đọc cho hook (ví dụ: “GitHub”), dùng làm tiền tố trong tóm tắt phiên.agentIdtùy chọn (chuỗi): Định tuyến hook này đến một agent cụ thể. ID không xác định sẽ quay lại agent mặc định. Khi được đặt, hook sẽ chạy sử dụng workspace và cấu hình của agent đã được giải quyết.sessionKeytùy chọn (chuỗi): Khóa dùng để xác định phiên của agent. Mặc định trường này bị từ chối trừ khihooks.allowRequestSessionKey=true.wakeModetùy chọn (now|next-heartbeat): Kích hoạt ngay lập tức (mặc địnhnow) hoặc chờ lần kiểm tra định kỳ tiếp theo.delivertùy chọn (boolean): Nếutrue, phản hồi của agent sẽ được gửi đến kênh nhắn tin. Mặc định làtrue. Các phản hồi chỉ là xác nhận heartbeat sẽ tự động bị bỏ qua.channeltùy chọn (chuỗi): Kênh nhắn tin để gửi. Một trong các giá trị:last,whatsapp,telegram,discord,slack,mattermost(plugin),signal,imessage,msteams. Mặc định làlast.totùy chọn (chuỗi): Định danh người nhận cho kênh (ví dụ: số điện thoại cho WhatsApp/Signal, ID chat cho Telegram, ID kênh cho Discord/Slack/Mattermost (plugin), ID cuộc trò chuyện cho Microsoft Teams). Mặc định là người nhận cuối cùng trong phiên chính.modeltùy chọn (chuỗi): Ghi đè mô hình (ví dụ:anthropic/claude-3-5-sonnethoặc một bí danh). Phải nằm trong danh sách mô hình được phép nếu bị hạn chế.thinkingtùy chọn (chuỗi): Ghi đè mức độ suy nghĩ (ví dụ:low,medium,high).timeoutSecondstùy chọn (số): Thời gian tối đa cho lần chạy agent tính bằng giây.
- Chạy một lượt agent cách ly (khóa phiên riêng)
- Luôn đăng một tóm tắt vào phiên main
- Nếu
wakeMode=now, kích hoạt ngay lập tức
Chính sách khóa phiên (thay đổi phá vỡ)
Ghi đèsessionKey trong payload /hooks/agent bị vô hiệu hóa theo mặc định.
- Khuyến nghị: đặt một
hooks.defaultSessionKeycố định và giữ yêu cầu ghi đè tắt. - Tùy chọn: cho phép ghi đè yêu cầu chỉ khi cần thiết và giới hạn tiền tố.
POST /hooks/<name> (được ánh xạ)
Tên hook tùy chỉnh được giải quyết thông qua hooks.mappings (xem cấu hình). Một ánh xạ có thể biến đổi payload tùy ý thành hành động wake hoặc agent, với các mẫu hoặc biến đổi mã tùy chọn.
Tùy chọn ánh xạ (tóm tắt):
hooks.presets: ["gmail"]kích hoạt ánh xạ Gmail tích hợp sẵn.hooks.mappingscho phép bạn định nghĩamatch,action, và các mẫu trong cấu hình.hooks.transformsDir+transform.moduletải một module JS/TS cho logic tùy chỉnh.hooks.transformsDir(nếu được đặt) phải nằm trong thư mục gốc biến đổi dưới thư mục cấu hình OpenClaw của bạn (thường là~/.openclaw/hooks/transforms).transform.modulephải được giải quyết trong thư mục biến đổi hiệu quả (các đường dẫn vượt qua/thoát bị từ chối).
- Sử dụng
match.sourceđể giữ một endpoint ingest chung (định tuyến dựa trên payload). - Biến đổi TS yêu cầu một loader TS (ví dụ
bunhoặctsx) hoặc.jsđã biên dịch trước khi chạy. - Đặt
deliver: true+channel/totrên ánh xạ để định tuyến phản hồi đến bề mặt chat (channelmặc định làlastvà quay lại WhatsApp). agentIdđịnh tuyến hook đến một agent cụ thể; ID không xác định sẽ quay lại agent mặc định.hooks.allowedAgentIdsgiới hạn định tuyếnagentIdrõ ràng. Bỏ qua nó (hoặc bao gồm*) để cho phép bất kỳ agent nào. Đặt[]để từ chối định tuyếnagentIdrõ ràng.hooks.defaultSessionKeyđặt phiên mặc định cho các lần chạy agent hook khi không có khóa rõ ràng nào được cung cấp.hooks.allowRequestSessionKeykiểm soát liệu payload/hooks/agentcó thể đặtsessionKeyhay không (mặc định:false).hooks.allowedSessionKeyPrefixestùy chọn giới hạn các giá trịsessionKeyrõ ràng từ payload yêu cầu và ánh xạ.allowUnsafeExternalContent: truevô hiệu hóa lớp bảo vệ nội dung bên ngoài cho hook đó (nguy hiểm; chỉ dành cho nguồn nội bộ đáng tin cậy).openclaw webhooks gmail setupghi cấu hìnhhooks.gmailchoopenclaw webhooks gmail run. Xem Gmail Pub/Sub để biết luồng xem Gmail đầy đủ.
Phản hồi
200cho/hooks/wake200cho/hooks/agent(chấp nhận chạy không đồng bộ)401khi xác thực thất bại429sau khi thất bại xác thực lặp lại từ cùng một client (kiểm traRetry-After)400khi payload không hợp lệ413khi payload quá lớn
Ví dụ
Sử dụng mô hình khác
Thêmmodel vào payload agent (hoặc ánh xạ) để ghi đè mô hình cho lần chạy đó:
agents.defaults.models, hãy đảm bảo mô hình ghi đè được bao gồm ở đó.
Bảo mật
- Giữ các endpoint hook phía sau loopback, tailnet, hoặc proxy ngược đáng tin cậy.
- Sử dụng token hook riêng biệt; không tái sử dụng token xác thực gateway.
- Ưu tiên một agent hook riêng biệt với
tools.profilenghiêm ngặt và sandboxing để ingress hook có phạm vi ảnh hưởng hẹp hơn. - Các thất bại xác thực lặp lại bị giới hạn tốc độ theo địa chỉ client để làm chậm các nỗ lực brute-force.
- Nếu bạn sử dụng định tuyến đa-agent, đặt
hooks.allowedAgentIdsđể giới hạn lựa chọnagentIdrõ ràng. - Giữ
hooks.allowRequestSessionKey=falsetrừ khi bạn yêu cầu các phiên do người gọi chọn. - Nếu bạn kích hoạt
sessionKeyyêu cầu, giới hạnhooks.allowedSessionKeyPrefixes(ví dụ:["hook:"]). - Tránh bao gồm payload thô nhạy cảm trong log webhook.
- Payload hook được coi là không đáng tin cậy và được bao bọc với các ranh giới an toàn theo mặc định. Nếu bạn phải vô hiệu hóa điều này cho một hook cụ thể, đặt
allowUnsafeExternalContent: truetrong ánh xạ của hook đó (nguy hiểm).