Gateway OpenClaw надає простий HTTP-ендпоїнт для прямого виклику одного інструмента. Він завжди ввімкнений і використовує автентифікацію Gateway плюс політику інструментів. Як і OpenAI-сумісна поверхняDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
/v1/*, автентифікація bearer зі спільним секретом вважається довіреним операторським доступом до всього gateway.
POST /tools/invoke- Той самий порт, що й Gateway (мультиплексування WS + HTTP):
http://<gateway-host>:<port>/tools/invoke
Автентифікація
Використовує конфігурацію автентифікації Gateway. Поширені шляхи HTTP-автентифікації:- автентифікація зі спільним секретом (
gateway.auth.mode="token"або"password"):Authorization: Bearer <token-or-password> - довірена HTTP-автентифікація з ідентичністю (
gateway.auth.mode="trusted-proxy"): маршрутизуйте через налаштований identity-aware proxy і дозвольте йому вставити потрібні заголовки ідентичності - відкрита автентифікація для приватного ingress (
gateway.auth.mode="none"): заголовок автентифікації не потрібен
- Коли
gateway.auth.mode="token", використовуйтеgateway.auth.token(абоOPENCLAW_GATEWAY_TOKEN). - Коли
gateway.auth.mode="password", використовуйтеgateway.auth.password(абоOPENCLAW_GATEWAY_PASSWORD). - Коли
gateway.auth.mode="trusted-proxy", HTTP-запит має надходити з налаштованого довіреного джерела proxy; same-host local loopback proxy потребують явногоgateway.auth.trustedProxy.allowLoopback = true. - Якщо
gateway.auth.rateLimitналаштовано і трапляється забагато невдалих спроб автентифікації, ендпоїнт повертає429зRetry-After.
Межа безпеки (важливо)
Вважайте цей ендпоїнт поверхнею повного операторського доступу для екземпляра gateway.- HTTP bearer auth тут не є вузькою моделлю per-user scope.
- Чинний токен/пароль Gateway для цього ендпоїнта слід вважати обліковими даними власника/оператора.
- Для режимів автентифікації зі спільним секретом (
tokenіpassword) ендпоїнт відновлює звичайні повні операторські типові значення, навіть якщо викликач надсилає вужчий заголовокx-openclaw-scopes. - Автентифікація зі спільним секретом також розглядає прямі виклики інструментів на цьому ендпоїнті як ходи owner-sender.
- Довірені HTTP-режими з ідентичністю (наприклад, автентифікація trusted proxy або
gateway.auth.mode="none"на приватному ingress) враховуютьx-openclaw-scopes, коли він присутній, інакше повертаються до звичайного набору типових операторських scope. - Тримайте цей ендпоїнт лише на loopback/tailnet/private ingress; не виставляйте його напряму в публічний інтернет.
gateway.auth.mode="token"або"password"+Authorization: Bearer ...- доводить володіння спільним операторським секретом gateway
- ігнорує вужчий
x-openclaw-scopes - відновлює повний набір типових операторських scope:
operator.admin,operator.approvals,operator.pairing,operator.read,operator.talk.secrets,operator.write - розглядає прямі виклики інструментів на цьому ендпоїнті як ходи owner-sender
- довірені HTTP-режими з ідентичністю (наприклад, автентифікація trusted proxy або
gateway.auth.mode="none"на приватному ingress)- автентифікують певну зовнішню довірену ідентичність або межу розгортання
- враховують
x-openclaw-scopes, коли заголовок присутній - повертаються до звичайного набору типових операторських scope, коли заголовок відсутній
- втрачають семантику власника лише тоді, коли викликач явно звужує scope і пропускає
operator.admin
Тіло запиту
tool(рядок, обов’язкове): назва інструмента для виклику.action(рядок, необов’язкове): зіставляється з args, якщо схема інструмента підтримуєaction, а корисне навантаження args його пропустило.args(об’єкт, необов’язкове): аргументи, специфічні для інструмента.sessionKey(рядок, необов’язкове): ключ цільової сесії. Якщо пропущено або дорівнює"main", Gateway використовує налаштований ключ основної сесії (враховуєsession.mainKeyі default agent, абоglobalу global scope).dryRun(логічне значення, необов’язкове): зарезервовано для майбутнього використання; наразі ігнорується.
Поведінка політики та маршрутизації
Доступність інструментів фільтрується через той самий ланцюг політик, який використовують агенти Gateway:tools.profile/tools.byProvider.profiletools.allow/tools.byProvider.allowagents.<id>.tools.allow/agents.<id>.tools.byProvider.allow- групові політики (якщо ключ сесії зіставляється з групою або каналом)
- політика субагента (під час виклику з ключем сесії субагента)
- Підтвердження exec є операторськими запобіжниками, а не окремою межею авторизації для цього HTTP-ендпоїнта. Якщо інструмент доступний тут через автентифікацію Gateway + політику інструментів,
/tools/invokeне додає додатковий prompt підтвердження для кожного виклику. - Якщо
execдоступний тут, вважайте його мутаційною shell-поверхнею. Заборонаwrite,edit,apply_patchабо HTTP-інструментів запису у файлову систему не робить виконання shell доступним лише для читання. - Не передавайте bearer-облікові дані Gateway недовіреним викликачам. Якщо вам потрібне розділення між межами довіри, запускайте окремі gateways (і в ідеалі окремих користувачів/хости ОС).
exec- пряме виконання команд (поверхня RCE)spawn- довільне створення дочірніх процесів (поверхня RCE)shell- виконання команд shell (поверхня RCE)fs_write- довільна зміна файлів на хостіfs_delete- довільне видалення файлів на хостіfs_move- довільне переміщення/перейменування файлів на хостіapply_patch- застосування patch може переписувати довільні файлиsessions_spawn- оркестрація сесій; віддалене створення агентів є RCEsessions_send- вставлення повідомлень між сесіямиcron- площина керування постійною автоматизацієюgateway- площина керування gateway; запобігає переналаштуванню через HTTPnodes- ретрансляція команд вузла може досягати system.run на спарених хостахwhatsapp_login- інтерактивне налаштування, що потребує сканування QR у терміналі; зависає на HTTP
gateway.tools:
x-openclaw-message-channel: <channel>(приклад:slack,telegram)x-openclaw-account-id: <accountId>(коли існує кілька облікових записів)
Відповіді
200→{ ok: true, result }400→{ ok: false, error: { type, message } }(некоректний запит або помилка вхідних даних інструмента)401→ не авторизовано429→ автентифікацію обмежено за частотою (Retry-Afterвстановлено)404→ інструмент недоступний (не знайдено або не додано до allowlist)405→ метод не дозволено500→{ ok: false, error: { type, message } }(неочікувана помилка виконання інструмента; повідомлення очищено)