4.9 KiB
| read_when | summary | title | x-i18n | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Plugin Webhooków: uwierzytelnione wejście TaskFlow dla zaufanej automatyzacji zewnętrznej | Plugin Webhooków |
|
Webhooki (Plugin)
Plugin Webhooków dodaje uwierzytelnione trasy HTTP, które wiążą zewnętrzną automatyzację z TaskFlow OpenClaw.
Używaj go, gdy chcesz, aby zaufany system, taki jak Zapier, n8n, zadanie CI albo usługa wewnętrzna, tworzył i sterował zarządzanymi TaskFlow bez konieczności pisania najpierw własnego Pluginu.
Gdzie działa
Plugin Webhooków działa wewnątrz procesu Gateway.
Jeśli twoje Gateway działa na innej maszynie, zainstaluj i skonfiguruj Plugin na hoście tego Gateway, a następnie uruchom Gateway ponownie.
Konfiguracja tras
Ustaw konfigurację pod 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: "Most TaskFlow dla Zapier",
},
},
},
},
},
},
}
Pola trasy:
enabled: opcjonalne, domyślnietruepath: opcjonalne, domyślnie/plugins/webhooks/<routeId>sessionKey: wymagana sesja, która jest właścicielem powiązanych TaskFlowsecret: wymagany współdzielony sekret albo SecretRefcontrollerId: opcjonalny identyfikator kontrolera dla tworzonych zarządzanych flowdescription: opcjonalna notatka dla operatora
Obsługiwane wejścia secret:
- Zwykły ciąg znaków
- SecretRef z
source: "env" | "file" | "exec"
Jeśli trasa oparta na sekrecie nie może rozwiązać swojego sekretu przy uruchomieniu, Plugin pomija tę trasę i zapisuje ostrzeżenie w logu, zamiast wystawiać uszkodzony punkt końcowy.
Model bezpieczeństwa
Każda trasa jest uznawana za zaufaną do działania z uprawnieniami TaskFlow swojej skonfigurowanej
sessionKey.
Oznacza to, że trasa może sprawdzać i mutować TaskFlow należące do tej sesji, więc powinieneś:
- Używać silnego unikalnego sekretu dla każdej trasy
- Preferować odwołania do sekretów zamiast jawnych sekretów w tekście jawnym
- Wiązać trasy z najwęższą sesją pasującą do workflow
- Wystawiać tylko konkretną ścieżkę Webhook, której potrzebujesz
Plugin stosuje:
- Uwierzytelnianie współdzielonym sekretem
- Ograniczenia rozmiaru treści żądania i timeouty
- Ograniczanie szybkości w stałym oknie
- Ograniczanie liczby żądań w locie
- Dostęp do TaskFlow powiązany z właścicielem przez
api.runtime.taskFlow.bindSession(...)
Format żądania
Wysyłaj żądania POST z:
Content-Type: application/jsonAuthorization: Bearer <secret>albox-openclaw-webhook-secret: <secret>
Przykład:
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"}'
Obsługiwane akcje
Plugin obecnie akceptuje te wartości JSON action:
create_flowget_flowlist_flowsfind_latest_flowresolve_flowget_task_summaryset_waitingresume_flowfinish_flowfail_flowrequest_cancelcancel_flowrun_task
create_flow
Tworzy zarządzany TaskFlow dla sesji powiązanej z trasą.
Przykład:
{
"action": "create_flow",
"goal": "Review inbound queue",
"status": "queued",
"notifyPolicy": "done_only"
}
run_task
Tworzy zarządzane zadanie podrzędne wewnątrz istniejącego zarządzanego TaskFlow.
Dozwolone środowiska wykonawcze:
subagentacp
Przykład:
{
"action": "run_task",
"flowId": "flow_123",
"runtime": "acp",
"childSessionKey": "agent:main:acp:worker",
"task": "Inspect the next message batch"
}
Kształt odpowiedzi
Pomyślne odpowiedzi zwracają:
{
"ok": true,
"routeId": "zapier",
"result": {}
}
Odrzucone żądania zwracają:
{
"ok": false,
"routeId": "zapier",
"code": "not_found",
"error": "TaskFlow not found.",
"result": {}
}
Plugin celowo usuwa metadane właściciela/sesji z odpowiedzi Webhooków.