25. Webhooklar
- Shlyuz tashqi triggerlar uchun kichik HTTP webhook endpointini ochishi mumkin.
27. Yoqish
- Eslatmalar:
-
hooks.enabled=truebo‘lgandahooks.tokenmajburiy.
-
hooks.pathsukut bo‘yicha/hooks.
32. Autentifikatsiya
- Har bir so‘rov hook tokenini o‘z ichiga olishi kerak. 34. Sarlavhalarni afzal ko‘ring:
-
Authorization: Bearer <token>(tavsiya etiladi)
x-openclaw-token: <token>agentIdixtiyoriy (string): Ushbu hook’ni ma’lum bir agentga yo‘naltiradi.
38. Endpointlar
39. POST /hooks/wake
- Yuklama:
-
textmajburiy (string): Hodisa tavsifi (masalan, “New email received”).
-
modeixtiyoriy (now|next-heartbeat): Darhol heartbeat’ni ishga tushirish (sukut bo‘yichanow) yoki keyingi davriy tekshiruvni kutish.
-
- Asosiy sessiya uchun tizim hodisasini navbatga qo‘yadi
-
- Agar
mode=nowbo‘lsa, darhol heartbeat’ni ishga tushiradi
- Agar
47. POST /hooks/agent
- Yuklama:
-
messagemajburiy (string): Agent qayta ishlashi uchun prompt yoki xabar.
nameixtiyoriy (string): Hook uchun inson o‘qiy oladigan nom (masalan, “GitHub”), sessiya xulosalarida prefiks sifatida ishlatiladi.- Noma’lum ID’lar standart agentga qaytadi. Unknown IDs fall back to the default agent. O‘rnatilganda, hook aniqlangan agentning ish maydoni va konfiguratsiyasi yordamida ishga tushadi.
sessionKeyoptional (string): The key used to identify the agent’s session. Standart holatda bu maydonhooks.allowRequestSessionKey=truebo‘lmaguncha rad etiladi.wakeModeoptional (now|next-heartbeat): Whether to trigger an immediate heartbeat (defaultnow) or wait for the next periodic check.deliveroptional (boolean): Iftrue, the agent’s response will be sent to the messaging channel. Defaults totrue. Responses that are only heartbeat acknowledgments are automatically skipped.channeloptional (string): The messaging channel for delivery. One of:last,whatsapp,telegram,discord,slack,mattermost(plugin),signal,imessage,msteams. Defaults tolast.tooptional (string): The recipient identifier for the channel (e.g., phone number for WhatsApp/Signal, chat ID for Telegram, channel ID for Discord/Slack/Mattermost (plugin), conversation ID for MS Teams). Defaults to the last recipient in the main session.modeloptional (string): Model override (e.g.,anthropic/claude-3-5-sonnetor an alias). Must be in the allowed model list if restricted.thinkingoptional (string): Thinking level override (e.g.,low,medium,high).timeoutSecondsoptional (number): Maximum duration for the agent run in seconds.
- Runs an isolated agent turn (own session key)
- Always posts a summary into the main session
- If
wakeMode=now, triggers an immediate heartbeat
Session key siyosati (moslikni buzuvchi o‘zgarish)
/hooks/agent payload ichidagi sessionKey override’lari standart bo‘yicha o‘chirilgan.
- Tavsiya etiladi: qat’iy
hooks.defaultSessionKeyo‘rnating va so‘rov orqali override’larni o‘chirib qo‘ying. - Ixtiyoriy: faqat zarur bo‘lganda so‘rov orqali override’larga ruxsat bering va prefikslarni cheklang.
POST /hooks/<name> (mapped)
Custom hook names are resolved via hooks.mappings (see configuration). A mapping can
turn arbitrary payloads into wake or agent actions, with optional templates or
code transforms.
Mapping options (summary):
hooks.presets: ["gmail"]enables the built-in Gmail mapping.hooks.mappingslets you definematch,action, and templates in config.hooks.transformsDir+transform.moduleloads a JS/TS module for custom logic.hooks.transformsDir(agar o‘rnatilgan bo‘lsa) OpenClaw konfiguratsiya katalogingiz ostidagi transforms ildiz papkasi ichida qolishi kerak (odatda~/.openclaw/hooks/transforms).transform.moduleamaldagi transforms katalogi ichida aniqlanishi kerak (traversal/escape yo‘llar rad etiladi).
- Use
match.sourceto keep a generic ingest endpoint (payload-driven routing). - TS transforms require a TS loader (e.g.
bunortsx) or precompiled.jsat runtime. - Set
deliver: true+channel/toon mappings to route replies to a chat surface (channeldefaults tolastand falls back to WhatsApp). agentIdhook’ni ma’lum bir agentga yo‘naltiradi; noma’lum ID’lar standart agentga qaytariladi.hooks.allowedAgentIdsaniqagentIdyo‘naltirishini cheklaydi. Istalgan agentga ruxsat berish uchun uni qoldiring (yoki*ni kiriting). AniqagentIdyo‘naltirishini rad etish uchun[]ni o‘rnating.hooks.defaultSessionKeyaniq kalit ko‘rsatilmaganda hook agent ishga tushirilishi uchun standart sessiyani belgilaydi.hooks.allowRequestSessionKey/hooks/agentpayload’larisessionKeyni o‘rnatishi mumkinligini boshqaradi (standart:false).hooks.allowedSessionKeyPrefixesixtiyoriy ravishda so‘rov payload’lari va moslamalardagi aniqsessionKeyqiymatlarini cheklaydi.allowUnsafeExternalContent: truedisables the external content safety wrapper for that hook (dangerous; only for trusted internal sources).openclaw webhooks gmail setupwriteshooks.gmailconfig foropenclaw webhooks gmail run. See Gmail Pub/Sub for the full Gmail watch flow.
Responses
200for/hooks/wake202for/hooks/agent(async run started)401on auth failure- Bir xil mijozdan takroriy autentifikatsiya xatolaridan so‘ng
429(Retry-Afterni tekshiring ) 400on invalid payload413on oversized payloads
Examples
Use a different model
Addmodel to the agent payload (or mapping) to override the model for that run:
agents.defaults.models, make sure the override model is included there.
Security
- Keep hook endpoints behind loopback, tailnet, or trusted reverse proxy.
- Use a dedicated hook token; do not reuse gateway auth tokens.
- Takroriy autentifikatsiya xatolari brute-force urinishlarini sekinlashtirish uchun har bir mijoz manzili bo‘yicha tezlik bilan cheklanadi.
- Agar multi-agent yo‘naltirishdan foydalansangiz, aniq
agentIdtanlovini cheklash uchunhooks.allowedAgentIdsni o‘rnating. - Agar chaqiruvchi tomonidan tanlanadigan sessiyalar kerak bo‘lmasa,
hooks.allowRequestSessionKey=falseni saqlang. - Agar so‘rov orqali
sessionKeyni yoqsangiz,hooks.allowedSessionKeyPrefixesni cheklang (masalan,["hook:"]). - Avoid including sensitive raw payloads in webhook logs.
- Hook payloads are treated as untrusted and wrapped with safety boundaries by default.
If you must disable this for a specific hook, set
allowUnsafeExternalContent: truein that hook’s mapping (dangerous).