Overview
Інструменти та Plugins
Усе, що агент робить поза генерацією тексту, відбувається через інструменти. Інструменти — це спосіб, у який агент читає файли, виконує команди, переглядає веб, надсилає повідомлення та взаємодіє з пристроями.
Інструменти, Skills і плагіни
OpenClaw має три рівні, які працюють разом:
Інструменти — це те, що викликає агент
Інструмент — це типізована функція, яку агент може викликати (наприклад, exec, browser,
web_search, message). OpenClaw постачає набір вбудованих інструментів, а
плагіни можуть реєструвати додаткові.
Агент бачить інструменти як структуровані визначення функцій, надіслані до API моделі.
Skills навчають агента, коли і як діяти
Skill — це markdown-файл (SKILL.md), вставлений у системний промпт.
Skills надають агенту контекст, обмеження та покрокові інструкції для
ефективного використання інструментів. Skills зберігаються у вашому робочому просторі, у спільних папках
або постачаються всередині плагінів.
Плагіни пакують усе разом
Плагін — це пакет, який може реєструвати будь-яке поєднання можливостей: канали, постачальників моделей, інструменти, Skills, мовлення, транскрипцію в реальному часі, голос у реальному часі, розуміння медіа, генерацію зображень, генерацію відео, веб-завантаження, веб-пошук тощо. Деякі плагіни є основними (постачаються з OpenClaw), інші — зовнішніми (публікуються спільнотою в npm).
Вбудовані інструменти
Ці інструменти постачаються з OpenClaw і доступні без встановлення будь-яких плагінів:
| Інструмент | Що він робить | Сторінка |
|---|---|---|
exec / process |
Виконує shell-команди, керує фоновими процесами | Exec, Підтвердження Exec |
code_execution |
Виконує ізольований віддалений аналіз Python | Виконання коду |
browser |
Керує браузером Chromium (навігація, клацання, знімок екрана) | Браузер |
web_search / x_search / web_fetch |
Шукає в інтернеті, шукає дописи X, отримує вміст сторінок | Веб, Веб-завантаження |
read / write / edit |
Файлове введення-виведення в робочому просторі | |
apply_patch |
Багатофрагментні патчі файлів | Застосування патча |
message |
Надсилає повідомлення через усі канали | Надсилання агентом |
canvas |
Керує Node Canvas (present, eval, snapshot) | |
nodes |
Виявляє та вибирає цільові спарені пристрої | |
cron / gateway |
Керує запланованими завданнями; перевіряє, патчить, перезапускає або оновлює Gateway | |
image / image_generate |
Аналізує або генерує зображення | Генерація зображень |
music_generate |
Генерує музичні треки | Генерація музики |
video_generate |
Генерує відео | Генерація відео |
tts |
Одноразове перетворення тексту на мовлення | TTS |
sessions_* / subagents / agents_list |
Керування сесіями, статус і оркестрація підагентів | Підагенти |
session_status |
Легке зчитування у стилі /status і перевизначення моделі сесії |
Інструменти сесії |
Для роботи із зображеннями використовуйте image для аналізу та image_generate для генерації або редагування. Якщо ви вибираєте openai/*, google/*, fal/* або іншого нестандартного постачальника зображень, спершу налаштуйте автентифікацію/API-ключ цього постачальника.
Для роботи з музикою використовуйте music_generate. Якщо ви вибираєте google/*, minimax/* або іншого нестандартного постачальника музики, спершу налаштуйте автентифікацію/API-ключ цього постачальника.
Для роботи з відео використовуйте video_generate. Якщо ви вибираєте qwen/* або іншого нестандартного постачальника відео, спершу налаштуйте автентифікацію/API-ключ цього постачальника.
Для генерації аудіо, керованої workflow, використовуйте music_generate, коли плагін, такий як
ComfyUI, реєструє його. Це окремо від tts, який перетворює текст на мовлення.
session_status — це легкий інструмент статусу/зчитування в групі сесій.
Він відповідає на запитання у стилі /status про поточну сесію та може
за потреби встановити перевизначення моделі для окремої сесії; model=default очищає це
перевизначення. Як і /status, він може дозаповнювати розріджені лічильники токенів/кешу та
мітку активної runtime-моделі з останнього запису використання в транскрипті.
gateway — це runtime-інструмент лише для власника для операцій Gateway:
config.schema.lookupдля одного обмеженого шляхом піддерева конфігурації перед редагуваннямиconfig.getдля поточного знімка конфігурації + хешуconfig.patchдля часткових оновлень конфігурації з перезапускомconfig.applyлише для повної заміни конфігураціїupdate.runдля явного самооновлення + перезапуску
Для часткових змін надавайте перевагу config.schema.lookup, а потім config.patch. Використовуйте
config.apply лише тоді, коли навмисно замінюєте всю конфігурацію.
Для ширшої документації з конфігурації прочитайте Конфігурація і
Довідник конфігурації.
Інструмент також відмовляється змінювати tools.exec.ask або tools.exec.security;
застарілі псевдоніми tools.bash.* нормалізуються до тих самих захищених шляхів exec.
Інструменти, надані плагінами
Плагіни можуть реєструвати додаткові інструменти. Деякі приклади:
- Diffs — переглядач і рендерер diff
- LLM Task — JSON-only крок LLM для структурованого виводу
- Lobster — типізований runtime workflow з підтвердженнями, які можна поновлювати
- Генерація музики — спільний інструмент
music_generateз постачальниками на основі workflow - OpenProse — markdown-first оркестрація workflow
- Tokenjuice — стискає шумні результати інструментів
execіbash
Інструменти плагінів усе одно створюються через api.registerTool(...) і оголошуються у
списку contracts.tools маніфесту плагіна. OpenClaw фіксує перевірений
дескриптор інструмента під час виявлення та кешує його за джерелом і контрактом плагіна, щоб
подальше планування інструментів могло пропускати завантаження runtime плагіна. Виконання інструмента все ще завантажує
плагін-власник і викликає живу зареєстровану реалізацію.
Конфігурація інструментів
Списки дозволу й заборони
Керуйте тим, які інструменти агент може викликати, через tools.allow / tools.deny у
конфігурації. Заборона завжди має пріоритет над дозволом.
{
tools: {
allow: ["group:fs", "browser", "web_search"],
deny: ["exec"],
},
}
OpenClaw завершує роботу із забороною за замовчуванням, коли явний allowlist не дає жодних інструментів, які можна викликати.
Наприклад, tools.allow: ["query_db"] працює лише якщо завантажений плагін справді
реєструє query_db. Якщо жоден вбудований інструмент, плагін або bundled MCP-інструмент не відповідає
allowlist, запуск зупиняється до виклику моделі, замість того щоб продовжуватися як
текстовий запуск, який міг би вигадати результати інструментів.
Профілі інструментів
tools.profile задає базовий allowlist перед застосуванням allow/deny.
Перевизначення для окремого агента: agents.list[].tools.profile.
| Профіль | Що він включає |
|---|---|
full |
Усі основні та необов’язкові інструменти плагінів; необмежена база для ширшого доступу до команд/керування |
coding |
group:fs, group:runtime, group:web, group:sessions, group:memory, cron, image, image_generate, music_generate, video_generate |
messaging |
group:messaging, sessions_list, sessions_history, sessions_send, session_status |
minimal |
Лише session_status |
coding включає легкі веб-інструменти (web_search, web_fetch, x_search),
але не повний інструмент керування браузером. Автоматизація браузера може керувати реальними
сесіями та профілями з виконаним входом, тому додайте її явно через
tools.alsoAllow: ["browser"] або для окремого агента
agents.list[].tools.alsoAllow: ["browser"].
Профілі coding і messaging також дозволяють налаштовані bundle MCP-інструменти
під ключем плагіна bundle-mcp. Додайте tools.deny: ["bundle-mcp"], коли
хочете, щоб профіль зберігав свої звичайні вбудовані інструменти, але приховував усі налаштовані MCP-інструменти.
Профіль minimal не включає bundle MCP-інструменти.
Приклад (найширша поверхня інструментів за замовчуванням):
{
tools: {
profile: "full",
},
}
Групи інструментів
Використовуйте скорочення group:* у списках дозволу/заборони:
| Група | Інструменти |
|---|---|
group:runtime |
exec, process, code_execution (bash приймається як псевдонім для exec) |
group:fs |
read, write, edit, apply_patch |
group:sessions |
sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status |
group:memory |
memory_search, memory_get |
group:web |
web_search, x_search, web_fetch |
group:ui |
browser, canvas |
group:automation |
heartbeat_respond, cron, gateway |
group:messaging |
message |
group:nodes |
nodes |
group:agents |
agents_list, update_plan |
group:media |
image, image_generate, music_generate, video_generate, tts |
group:openclaw |
Усі вбудовані інструменти OpenClaw (крім інструментів Plugin) |
sessions_history повертає обмежене, відфільтроване з міркувань безпеки подання для пригадування. Він вилучає
теги міркувань, службовий каркас <relevant-memories>, XML-навантаження викликів інструментів у простому тексті
(зокрема <tool_call>...</tool_call>,
<function_call>...</function_call>, <tool_calls>...</tool_calls>,
<function_calls>...</function_calls> і обрізані блоки викликів інструментів),
службовий каркас викликів інструментів зі зниженим статусом, витоки керувальних токенів моделі ASCII/повної ширини
та некоректно сформований XML викликів інструментів MiniMax із тексту асистента, після чого застосовує
редагування/обрізання та, за потреби, заповнювачі для завеликих рядків замість того, щоб діяти
як сирий дамп стенограми.
Обмеження, специфічні для постачальника
Використовуйте tools.byProvider, щоб обмежити інструменти для певних постачальників без
зміни глобальних типових значень:
{
tools: {
profile: "coding",
byProvider: {
"google-antigravity": { profile: "minimal" },
},
},
}