Инструменты (OpenClaw)
OpenClaw предоставляет первоклассные инструменты агента для браузера, canvas, узлов и cron. Они заменяют старые навыкиopenclaw-*: инструменты типизированы, без запуска оболочки,
и агенту следует полагаться на них напрямую.
Отключение инструментов
Вы можете глобально разрешать/запрещать инструменты черезtools.allow / tools.deny в openclaw.json
(запрет имеет приоритет). Это предотвращает отправку запрещённых инструментов провайдерам моделей.
- Сопоставление не чувствительно к регистру.
- Поддерживаются подстановки
*("*"означает все инструменты). - Если
tools.allowссылается только на неизвестные или не загруженные имена инструментов плагинов, OpenClaw записывает предупреждение и игнорирует список разрешённых, чтобы базовые инструменты оставались доступными.
Профили инструментов (базовый список разрешённых)
tools.profile задаёт базовый список разрешённых инструментов перед tools.allow/tools.deny.
Переопределение для агента: agents.list[].tools.profile.
Профили:
minimal: толькоsession_statuscoding:group:fs,group:runtime,group:sessions,group:memory,imagemessaging:group:messaging,sessions_list,sessions_history,sessions_send,session_statusfull: без ограничений (то же, что и unset)
Политика инструментов для конкретных провайдеров
Используйтеtools.byProvider, чтобы дополнительно ограничить инструменты для конкретных провайдеров
(или одного provider/model), не меняя глобальные значения по умолчанию.
Переопределение для агента: agents.list[].tools.byProvider.
Это применяется после базового профиля инструментов и до списков разрешения/запрета,
поэтому может только сужать набор инструментов.
Ключи провайдеров принимают либо provider (например, google-antigravity), либо
provider/model (например, openai/gpt-5.2).
Пример (сохранить глобальный профиль кодинга, но минимальные инструменты для Google Antigravity):
Группы инструментов (сокращения)
Политики инструментов (глобальные, агентские, sandbox) поддерживают записиgroup:*, которые разворачиваются в несколько инструментов.
Используйте их в tools.allow / tools.deny.
Доступные группы:
group:runtime:exec,bash,processgroup:fs:read,write,edit,apply_patchgroup:sessions:sessions_list,sessions_history,sessions_send,sessions_spawn,session_statusgroup:memory:memory_search,memory_getgroup:web:web_search,web_fetchgroup:ui:browser,canvasgroup:automation:cron,gatewaygroup:messaging:messagegroup:nodes:nodesgroup:openclaw: все встроенные инструменты OpenClaw (исключая плагины провайдеров)
Плагины + инструменты
Плагины могут регистрировать дополнительные инструменты (и команды CLI) помимо базового набора. См. См. Plugins для установки и конфигурации и Skills — как подсказки по использованию инструментов внедряются в промпты. Некоторые плагины поставляются со своими навыками наряду с инструментами (например, плагин голосовых вызовов). Необязательные инструменты плагинов:- Lobster: типизированная среда выполнения рабочих процессов с возобновляемыми подтверждениями (требуется CLI Lobster на хосте шлюза Gateway).
- LLM Task: шаг LLM только с JSON для структурированного вывода рабочего процесса (необязательная валидация схемы).
Инвентаризация инструментов
apply_patch
Применение структурированных патчей к одному или нескольким файлам. Используйте для многофрагментных правок.
Экспериментально: включается через tools.exec.applyPatch.enabled (только модели OpenAI).
tools.exec.applyPatch.workspaceOnly по умолчанию имеет значение true (в пределах workspace). Установите значение false только если вы намеренно хотите, чтобы apply_patch записывал/удалял файлы за пределами каталога workspace.
exec
Запуск команд оболочки в рабочем пространстве.
Основные параметры:
command(обязательно)yieldMs(автопереход в фон по таймауту, по умолчанию 10000)background(немедленный фон)timeout(секунды; завершает процесс при превышении, по умолчанию 1800)elevated(bool; запуск на хосте, если включён/разрешён повышенный режим; меняет поведение только когда агент в sandbox)host(sandbox | gateway | node)security(deny | allowlist | full)ask(off | on-miss | always)node(id/имя узла дляhost=node)- Нужен настоящий TTY? Установите
pty: true.
- Возвращает
status: "running"сsessionIdпри работе в фоне. - Используйте
processдля опроса/логирования/записи/завершения/очистки фоновых сеансов. - Если
processзапрещён,execвыполняется синхронно и игнорируетyieldMs/background. elevatedконтролируетсяtools.elevatedплюс любым переопределениемagents.list[].tools.elevated(оба должны разрешать) и является псевдонимом дляhost=gateway+security=full.elevatedменяет поведение только когда агент в sandbox (иначе это no-op).host=nodeможет нацеливаться на сопутствующее приложение для macOS или headless-хост узла (openclaw node run).- Подтверждения и списки разрешённых gateway/узлов: Exec approvals.
process
Управление фоновыми сеансами exec.
Основные действия:
list,poll,log,write,kill,clear,remove
pollвозвращает новый вывод и статус завершения по окончании.logподдерживает построчныеoffset/limit(опуститеoffset, чтобы получить последние N строк).processимеет область видимости «на агента»; сеансы других агентов не видны.
web_search
Поиск в интернете с использованием API Brave Search.
Основные параметры:
query(обязательно)count(1–10; значение по умолчанию изtools.web.search.maxResults)
- Требуется ключ API Brave (рекомендуется:
openclaw configure --section webили установитьBRAVE_API_KEY). - Включается через
tools.web.search.enabled. - Ответы кэшируются (по умолчанию 15 мин).
- См. Web tools для настройки.
web_fetch
Загрузка и извлечение читаемого содержимого по URL (HTML → markdown/текст).
Основные параметры:
url(обязательно)extractMode(markdown|text)maxChars(обрезка длинных страниц)
- Включается через
tools.web.fetch.enabled. maxCharsограничиваетсяtools.web.fetch.maxCharsCap(по умолчанию 50000).- Ответы кэшируются (по умолчанию 15 мин).
- Для сайтов с интенсивным JS предпочтительнее использовать инструмент браузера.
- См. Web tools для настройки.
- Firecrawl для необязательного антибот‑фолбэка.
browser
Управление выделенным браузером под управлением OpenClaw.
Основные действия:
status,start,stop,tabs,open,focus,closesnapshot(aria/ai)screenshot(возвращает блок изображения +MEDIA:<path>)act(действия UI: click/type/press/hover/drag/select/fill/resize/wait/evaluate)navigate,console,pdf,upload,dialog
profiles— список всех профилей браузера со статусомcreate-profile— создать новый профиль с автоматически выделенным портом (илиcdpUrl)delete-profile— остановить браузер, удалить пользовательские данные, убрать из конфига (только локально)reset-profile— завершить «осиротевший» процесс на порту профиля (только локально)
profile(необязательно; по умолчаниюbrowser.defaultProfile)target(sandbox|host|node)node(необязательно; выбор конкретного id/имени узла) Примечания:- Требуется
browser.enabled=true(по умолчаниюtrue; установитеfalse, чтобы отключить). - Все действия принимают необязательный параметр
profileдля поддержки нескольких экземпляров. - Если
profileне указан, используетсяbrowser.defaultProfile(по умолчанию “chrome”). - Имена профилей: только строчные буквы/цифры и дефисы (макс. 64 символа).
- Диапазон портов: 18800–18899 (~макс. 100 профилей).
- Удалённые профили — только подключение (без start/stop/reset).
- Если подключён узел с поддержкой браузера, инструмент может автоматически направляться к нему (если не закрепить
target). snapshotпо умолчаниюaiпри установленном Playwright; используйтеariaдля дерева доступности.snapshotтакже поддерживает параметры role‑snapshot (interactive,compact,depth,selector), которые возвращают ссылки видаe12.actтребуетrefизsnapshot(числовой12из AI‑снимков илиe12из role‑снимков); используйтеevaluateдля редких случаев с CSS‑селекторами.- Избегайте
act→waitпо умолчанию; используйте только в исключительных случаях (нет надёжного состояния UI для ожидания). uploadможет при необходимости передатьrefдля автоклика после подготовки.uploadтакже поддерживаетinputRef(aria‑ref) илиelement(CSS‑селектор) для прямой установки<input type="file">.
canvas
Управление Canvas узла (present, eval, snapshot, A2UI).
Основные действия:
present,hide,navigate,evalsnapshot(возвращает блок изображения +MEDIA:<path>)a2ui_push,a2ui_reset
- Под капотом используется gateway
node.invoke. - Если
nodeне указан, инструмент выбирает значение по умолчанию (один подключённый узел или локальный mac‑узел). - A2UI — только v0.8 (без
createSurface); CLI отклоняет JSONL v0.9 с ошибками строк. - Быстрый смоук‑тест:
openclaw nodes canvas a2ui push --node <id> --text "Hello from A2UI".
nodes
Обнаружение и нацеливание сопряжённых узлов; отправка уведомлений; захват камеры/экрана.
Основные действия:
status,describepending,approve,reject(сопряжение)notify(macOSsystem.notify)run(macOSsystem.run)camera_snap,camera_clip,screen_recordlocation_get
- Команды камеры/экрана требуют, чтобы приложение узла было на переднем плане.
- Изображения возвращают блоки изображений +
MEDIA:<path>. - Видео возвращают
FILE:<path>(mp4). - Местоположение возвращает JSON‑полезную нагрузку (lat/lon/accuracy/timestamp).
- Параметры
run: массив argvcommand; необязательныеcwd,env(KEY=VAL),commandTimeoutMs,invokeTimeoutMs,needsScreenRecording.
run):
image
Анализ изображения с использованием настроенной модели изображений.
Основные параметры:
image(обязательный путь или URL)prompt(необязательно; по умолчанию “Describe the image.”)model(необязательное переопределение)maxBytesMb(необязательное ограничение размера)
- Доступно только когда настроен
agents.defaults.imageModel(основная или резервные), либо когда неявная модель изображений может быть выведена из вашей модели по умолчанию + настроенной аутентификации (best‑effort). - Использует модель изображений напрямую (независимо от основной модели чата).
message
Отправка сообщений и действий каналов через Discord/Google Chat/Slack/Telegram/WhatsApp/Signal/iMessage/MS Teams.
Основные действия:
send(текст + необязательные медиа; MS Teams также поддерживаетcardдля Adaptive Cards)poll(опросы WhatsApp/Discord/MS Teams)react/reactions/read/edit/deletepin/unpin/list-pinspermissionsthread-create/thread-list/thread-replysearchstickermember-info/role-infoemoji-list/emoji-upload/sticker-uploadrole-add/role-removechannel-info/channel-listvoice-statusevent-list/event-createtimeout/kick/ban
sendмаршрутизирует WhatsApp через Gateway (шлюз); другие каналы идут напрямую.pollиспользует Gateway (шлюз) для WhatsApp и MS Teams; опросы Discord идут напрямую.- Когда вызов инструмента сообщений привязан к активному сеансу чата, отправки ограничиваются целью этого сеанса, чтобы избежать утечек между контекстами.
cron
Управление cron‑задачами Gateway (шлюз) и пробуждениями.
Основные действия:
status,listadd,update,remove,run,runswake(постановка системного события в очередь + необязательный немедленный heartbeat)
addожидает полный объект cron‑задачи (та же схема, что и RPCcron.add).updateиспользует{ jobId, patch }(для совместимости принимаетсяid).
gateway
Перезапуск или применение обновлений к работающему процессу Gateway (шлюз) (in‑place).
Основные действия:
restart(авторизует + отправляетSIGUSR1для перезапуска в процессе;openclaw gateway— перезапуск in‑place)config.get/config.schemaconfig.apply(валидация + запись конфига + перезапуск + пробуждение)config.patch(слияние частичного обновления + перезапуск + пробуждение)update.run(запуск обновления + перезапуск + пробуждение)
- Используйте
delayMs(по умолчанию 2000), чтобы избежать прерывания выполняемого ответа. restartпо умолчанию отключён; включите черезcommands.restart: true.
sessions_list / sessions_history / sessions_send / sessions_spawn / session_status
Список сеансов, просмотр истории транскрипта или отправка в другой сеанс.
Основные параметры:
sessions_list:kinds?,limit?,activeMinutes?,messageLimit?(0 = нет)sessions_history:sessionKey(илиsessionId),limit?,includeTools?sessions_send:sessionKey(илиsessionId),message,timeoutSeconds?(0 = fire‑and‑forget)sessions_spawn:task,label?,agentId?,model?,runTimeoutSeconds?,cleanup?session_status:sessionKey?(по умолчанию текущий; принимаетsessionId),model?(defaultочищает переопределение)
main— канонический ключ прямого чата; глобальные/неизвестные скрыты.messageLimit > 0получает последние N сообщений на сеанс (сообщения инструментов отфильтрованы).sessions_sendожидает финального завершения приtimeoutSeconds > 0.- Доставка/анонс происходит после завершения и best‑effort;
status: "ok"подтверждает завершение запуска агента, а не факт доставки анонса. sessions_spawnзапускает под‑агента и публикует ответ‑анонс обратно в запрашивающий чат.sessions_spawnнеблокирующий и сразу возвращаетstatus: "accepted".sessions_sendвыполняет ответный ping‑pong (ответьтеREPLY_SKIPдля остановки; макс. число ходов черезsession.agentToAgent.maxPingPongTurns, 0–5).- После ping‑pong целевой агент выполняет шаг анонса; ответьте
ANNOUNCE_SKIP, чтобы подавить анонс.
agents_list
Список id агентов, на которые текущий сеанс может нацеливаться с помощью sessions_spawn.
Примечания:
- Результат ограничен списками разрешённых для агента (
agents.list[].subagents.allowAgents). - Когда настроен
["*"], инструмент включает всех настроенных агентов и помечаетallowAny: true.
Параметры (общие)
Инструменты на базе Gateway (шлюз) (canvas, nodes, cron):
gatewayUrl(по умолчаниюws://127.0.0.1:18789)gatewayToken(если включена аутентификация)timeoutMs
gatewayUrl, явно указывайте gatewayToken. Инструменты не наследуют конфиг
или учётные данные окружения для переопределений, и отсутствие явных учётных данных считается ошибкой.
Инструмент браузера:
profile(необязательно; по умолчаниюbrowser.defaultProfile)target(sandbox|host|node)node(необязательно; закрепить конкретный id/имя узла)
Рекомендуемые потоки агента
Автоматизация браузера:browser→status/startsnapshot(ai или aria)act(click/type/press)screenshot, если нужна визуальная проверка
canvas→presenta2ui_push(необязательно)snapshot
nodes→statusdescribeна выбранном узлеnotify/run/camera_snap/screen_record
Безопасность
- Избегайте прямого
system.run; используйтеnodes→runтолько с явного согласия пользователя. - Соблюдайте согласие пользователя на захват камеры/экрана.
- Используйте
status/describe, чтобы убедиться в наличии разрешений перед вызовом медиакоманд.
Как инструменты представляются агенту
Инструменты предоставляются по двум параллельным каналам:- Текст системного промпта: человекочитаемый список + рекомендации.
- Схема инструментов: структурированные определения функций, отправляемые в API модели.