OpenClaw — это self-hosted AI-ассистент, который умеет не просто отвечать на вопросы, а реально работать: открывать браузер, запускать команды, искать в интернете, читать и редактировать файлы. Всё это работает через встроенные инструменты (tools), которые можно включать, выключать и настраивать под свои задачи. В этой статье — полный разбор каждого инструмента: что делает, как настроить и когда использовать.
Что такое инструменты в OpenClaw
Инструменты (tools) — это функции, которые агент вызывает сам, когда ему нужно что-то сделать. Вы пишете «найди в интернете рецепт борща» — агент вызывает web_search. Просите «прочитай файл config.json» — вызывает read. Это не скрипты, которые вы запускаете вручную, а возможности, которые агент использует автоматически.
Все инструменты настраиваются через конфигурационный файл агента. По умолчанию большинство базовых инструментов уже включены — но их можно ограничить, переключить провайдеров или добавить новые.
Обзор инструментов
| Инструмент | Что делает |
|---|---|
| **exec** | Выполнение shell-команд на сервере |
| **browser** | Управление браузером (открыть страницу, кликнуть, заполнить форму) |
| **web_search** | Поиск в интернете через разные провайдеры |
| **web_fetch** | Загрузка и чтение веб-страниц (HTML → текст) |
| **read / write / edit** | Работа с файлами на сервере |
| **image** | Анализ изображений (распознавание, описание) |
| **image_generate** | Генерация изображений по текстовому описанию |
| **tts** | Озвучка текста (text-to-speech) |
| **pdf** | Анализ PDF-документов |
| **memory** | Поиск по памяти агента |
Поиск в интернете: web_search
Инструмент web_search ищет информацию через настроенный поисковый провайдер. Результаты кешируются на 15 минут — повторный запрос по тому же вопросу не тратит API-лимиты.
Доступные провайдеры
| Провайдер | Нужен API-ключ | Особенности |
|---|---|---|
| **Brave** | `BRAVE_API_KEY` | Структурированные результаты, фильтры по стране и языку. Есть бесплатный тариф |
| **DuckDuckGo** | Не нужен | Работает без ключа — бесплатный fallback |
| **Gemini** | `GEMINI_API_KEY` | AI-ответы с цитатами через Google Search |
| **Grok** | `XAI_API_KEY` | AI-ответы с цитатами через xAI |
| **Perplexity** | `PERPLEXITY_API_KEY` | Структурированные результаты с фильтрами |
| **Tavily** | `TAVILY_API_KEY` | Структурированные результаты + извлечение URL |
| **Exa** | `EXA_API_KEY` | Neural + keyword поиск с извлечением контента |
| **SearXNG** | Не нужен (self-hosted) | Мета-поиск, агрегирует Google, Bing, DuckDuckGo |
Если провайдер не указан в конфиге, OpenClaw автоматически выбирает первый доступный по приоритету: Brave → Gemini → Grok → Perplexity → Firecrawl → Exa → Tavily → DuckDuckGo.
Как настроить
В конфигурационном файле агента (config.jsonc или config.json):
{
"tools": {
"web": {
"search": {
"enabled": true,
"provider": "brave",
"maxResults": 5,
"timeoutSeconds": 30,
"cacheTtlMinutes": 15
}
}
}
}
API-ключи задаются через переменные окружения. Например, для Brave:
export BRAVE_API_KEY="ваш-ключ"
Достаточно просто создать бесплатный аккаунт на brave.com/search/api и получить ключ. DuckDuckGo работает вообще без ключа — хороший вариант, если не хотите регистрироваться нигде.
Чтение веб-страниц: web_fetch
web_fetch загружает страницу по URL и конвертирует HTML в читаемый текст (markdown). Это полезно, когда агенту нужно прочитать конкретную статью или документацию — он не ищет, а открывает уже известный адрес.
Важный момент: web_fetch не выполняет JavaScript. Если страница динамическая (React, Vue, SPA) — контент может не загрузиться. В таких случаях используйте browser.
Параметры
web_fetch(url="https://example.com", maxLength=10000, extractMode="markdown")
url — адрес страницы (обязательно)maxLength — максимальная длина текста в символахextractMode — формат: markdown (по умолчанию) или textКонфигурация
{
"tools": {
"web": {
"fetch": {
"enabled": true,
"timeoutSeconds": 30,
"maxContentLength": 50000,
"userAgent": "OpenClaw/1.0"
}
}
}
}
Полноценный браузер: browser
Это самый мощный инструмент для работы с интернетом. В отличие от web_fetch, браузер умеет кликать по кнопкам, заполнять формы, логиниться в сервисы, делать скриншоты и работать с JavaScript-сайтами.
OpenClaw использует два браузерных движка:
Когда использовать браузер вместо web_fetch
| Задача | Инструмент |
|---|---|
| Прочитать статью по URL | web_fetch |
| Найти информацию в поиске | web_search |
| Кликнуть по кнопке на сайте | browser |
| Заполнить и отправить форму | browser |
| Залогиниться в сервис | browser |
| Сделать скриншот страницы | browser |
| Работать с SPA/JS-сайтами | browser |
Настройка Chromium
{
"tools": {
"browser": {
"enabled": true,
"engine": "chromium",
"headless": true,
"timeout": 30000,
"viewport": {
"width": 1280,
"height": 720
}
}
}
}
Стелс-режим
Для обхода антибот-защиты (Cloudflare, DataDome) можно включить стелс-плагин:
{
"plugins": {
"entries": {
"browserbase": {
"enabled": true,
"config": {
"stealth": true
}
}
}
}
}
Работа с файлами: read, write, edit
Четыре инструмента для файловых операций:
Примеры использования
Прочитать файл:
read(path="/home/user/config.json", offset=1, limit=50)
Записать файл:
write(path="/home/user/notes.md", content="# Заметки\n\nТекст")
Редактировать (найти и заменить):
edit(path="/home/user/config.json", old_string="\"debug\": false", new_string="\"debug\": true")
Безопасность
По умолчанию агент работает в sandbox-директории. Доступ к файлам за её пределами зависит от настроек безопасности. Если нужно дать агенту доступ к определённым путям — настройте allowedPaths в конфиге.
Выполнение команд: exec
Инструмент exec запускает shell-команды на сервере. Это как терминал, но управляемый агентом.
Основные параметры
| Параметр | По умолчанию | Описание |
|---|---|---|
| `command` | — | Shell-команда (обязательно) |
| `workdir` | текущая директория | Рабочая директория |
| `timeout` | 1800 | Таймаут в секундах |
| `background` | false | Фоновый запуск |
| `pty` | false | Псевдо-терминал (для интерактивных CLI) |
Foreground и Background
Foreground — агент ждёт завершения команды:
exec(command="ls -la /home/user")
Background — команда запускается в фоне, агент продолжает работу:
exec(command="npm run build", background=true)
Для управления фоновыми процессами используется инструмент process:
process(action="list") — список запущенныхprocess(action="poll", session_id="...") — проверить статусprocess(action="wait", session_id="...", timeout=60) — ждать завершенияprocess(action="kill", session_id="...") — остановитьГде запускаются команды
| Значение `host` | Где выполняется |
|---|---|
| `auto` (по умолчанию) | В sandbox-контейнере, если активен, иначе на хосте Gateway |
| `sandbox` | В изолированном контейнере |
| `gateway` | На хосте сервера |
| `node` | На подключённом устройстве |
Медиа-инструменты
Генерация изображений
image_generate создаёт картинки по текстовому описанию. Поддерживает несколько провайдеров:
| Провайдер | Модель | API-ключ |
|---|---|---|
| OpenAI | gpt-image-2 | `OPENAI_API_KEY` |
| gemini-3.1-flash-image-preview | `GEMINI_API_KEY` | |
| xAI | grok-imagine-image | `XAI_API_KEY` |
| fal | flux/dev | `FAL_KEY` |
Настройка модели:
{
"agents": {
"defaults": {
"imageGenerationModel": {
"primary": "openai/gpt-image-2",
"fallbacks": ["google/gemini-3.1-flash-image-preview"]
}
}
}
}
TTS (Text-to-Speech)
Озвучка текста. Поддерживает OpenAI, ElevenLabs, Google и другие провайдеры. Агент может отправлять голосовые сообщения в Telegram, Discord и другие мессенджеры.
Анализ PDF-документов. Для Anthropic и Google — нативный режим (модель напрямую читает PDF). Для остальных — fallback через конвертацию.
{
"agents": {
"defaults": {
"pdfModel": "anthropic/claude-sonnet-4-6"
}
}
}
Навыки (Skills) и плагины
Навыки
Навыки (skills) — это наборы инструкций, которые учат агента работать с конкретными задачами. Каждый навык — папка с файлом SKILL.md.
openclaw skills list # установленные навыки
openclaw skills install навык-слаг # установить из ClawHub
openclaw skills update --all # обновить все
ClawHub
ClawHub — публичный реестр скиллов и плагинов. Можно найти готовые навыки для календаря, почты, задач и других интеграций.
openclaw skills search "calendar"
openclaw skills install календарь-слаг
Плагины
Плагины расширяют OpenClaw на уровне движка: добавляют каналы, провайдеры, голосовые возможности и другое.
openclaw plugins list # что загружено
openclaw plugins install @openclaw/voice-call # установить
openclaw plugins enable voice-call # включить
Конфигурация плагина:
{
"plugins": {
"enabled": true,
"allow": ["voice-call"],
"entries": {
"voice-call": {
"enabled": true,
"config": { "provider": "twilio" }
}
}
}
}
Защита от петель
Иногда агент может застрять в цикле — вызывать один и тот же инструмент снова и снова. Для этого есть обнаружение петель (loop detection). По умолчанию отключено:
{
"agents": {
"defaults": {
"tools": {
"loopDetection": {
"enabled": true,
"maxConsecutiveIdentical": 5,
"windowSeconds": 60
}
}
}
}
}
Если агент вызвал один и тот же инструмент 5 раз подряд за 60 секунд — система прервёт цикл.
Практические советы
web_search с автоподбором провайдера, exec в sandbox, базовые файловые операции. Не нужно настраивать всё сразу.web_fetch не справляется (страница не загружается, контент динамический) — переключайтесь на browser. Это медленнее, но надёжнее.SKILL.md. Навыки могут содержать любые инструкции, и от них зависит поведение агента.