Tools Invoke (HTTP)
Gateway OpenClaw надає простий HTTP endpoint для прямого виклику одного інструмента. Він завжди ввімкнений і використовує auth Gateway разом із політикою інструментів. Як і OpenAI-сумісна поверхня/v1/*, bearer auth зі спільним секретом розглядається як довірений операторський доступ до всього gateway.
POST /tools/invoke- Той самий порт, що й у Gateway (мультиплексування WS + HTTP):
http://<gateway-host>:<port>/tools/invoke
Автентифікація
Використовує конфігурацію auth Gateway. Поширені шляхи HTTP-auth:- auth зі спільним секретом (
gateway.auth.mode="token"або"password"):Authorization: Bearer <token-or-password> - довірена HTTP-auth з передаванням ідентичності (
gateway.auth.mode="trusted-proxy"): маршрутизуйте через налаштований proxy з підтримкою ідентичності й дозвольте йому вставляти потрібні заголовки ідентичності - open auth для приватного ingress (
gateway.auth.mode="none"): заголовок auth не потрібен
- Коли
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 не на loopback; proxy на loopback на тому самому хості не задовольняють вимоги цього режиму. - Якщо налаштовано
gateway.auth.rateLimitі стається занадто багато помилок auth, endpoint повертає429зRetry-After.
Межа безпеки (важливо)
Ставтеся до цього endpoint як до поверхні повного операторського доступу для екземпляра gateway.- HTTP bearer auth тут не є вузькою моделлю області дії для окремого користувача.
- Дійсний токен/пароль Gateway для цього endpoint слід розглядати як облікові дані власника/оператора.
- Для режимів auth зі спільним секретом (
tokenіpassword) endpoint відновлює звичайні повні операторські типові значення, навіть якщо виклик надсилає вужчий заголовокx-openclaw-scopes. - Auth зі спільним секретом також розглядає прямі виклики інструментів через цей endpoint як turns від відправника-власника.
- Довірені HTTP-режими з передаванням ідентичності (наприклад, auth через trusted proxy або
gateway.auth.mode="none"на приватному ingress) враховуютьx-openclaw-scopes, коли цей заголовок присутній, інакше повертаються до звичайного типового набору операторських областей. - Тримайте цей endpoint лише на loopback/tailnet/private ingress; не виставляйте його напряму в публічний інтернет.
gateway.auth.mode="token"або"password"+Authorization: Bearer ...- доводить володіння спільним операторським секретом gateway
- ігнорує вужчі
x-openclaw-scopes - відновлює повний типовий набір операторських областей:
operator.admin,operator.approvals,operator.pairing,operator.read,operator.talk.secrets,operator.write - розглядає прямі виклики інструментів через цей endpoint як turns від відправника-власника
- довірені HTTP-режими з передаванням ідентичності (наприклад, auth через trusted proxy або
gateway.auth.mode="none"на приватному ingress)- автентифікують деяку зовнішню довірену ідентичність або межу розгортання
- враховують
x-openclaw-scopes, коли заголовок присутній - повертаються до звичайного типового набору операторських областей, коли заголовок відсутній
- втрачають семантику власника лише тоді, коли виклик явно звужує області й пропускає
operator.admin
Тіло запиту
tool(string, обов’язкове): назва інструмента для виклику.action(string, необов’язкове): відображається в args, якщо схема інструмента підтримуєaction, а payload args його не містить.args(object, необов’язкове): аргументи, специфічні для інструмента.sessionKey(string, необов’язкове): цільовий ключ сесії. Якщо його не вказано або він дорівнює"main", Gateway використовує налаштований ключ основної сесії (з урахуваннямsession.mainKeyі типового агента абоglobalу глобальній області).dryRun(boolean, необов’язкове): зарезервовано для майбутнього використання; наразі ігнорується.
Поведінка політики й маршрутизації
Доступність інструментів фільтрується через той самий ланцюжок політик, який використовують агенти Gateway:tools.profile/tools.byProvider.profiletools.allow/tools.byProvider.allowagents.<id>.tools.allow/agents.<id>.tools.byProvider.allow- групові політики (якщо ключ сесії відображається на групу або канал)
- політика субагента (коли виклик здійснюється з ключем сесії субагента)
- Exec approvals — це операторські запобіжники, а не окрема межа авторизації для цього HTTP endpoint. Якщо інструмент доступний тут через auth Gateway + політику інструментів,
/tools/invokeне додає окремий prompt погодження для кожного виклику. - Не діліться bearer credentials Gateway з недовіреними викликачами. Якщо вам потрібне розділення через межі довіри, запускайте окремі gateways (і бажано окремих користувачів ОС/хости).
exec— пряме виконання команд (поверхня RCE)spawn— довільне створення дочірніх процесів (поверхня RCE)shell— виконання shell-команд (поверхня RCE)fs_write— довільна зміна файлів на хостіfs_delete— довільне видалення файлів на хостіfs_move— довільне переміщення/перейменування файлів на хостіapply_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→ auth rate-limited (встановленоRetry-After)404→ інструмент недоступний (не знайдено або не в allowlist)405→ метод не дозволено500→{ ok: false, error: { type, message } }(неочікувана помилка виконання інструмента; очищене повідомлення)