Skills в OpenClaw
Skills в OpenClaw — это механизм инъекции знаний и инструкций в системный промпт агента. По сути, это способ научить LLM-агента пользоваться конкретными инструментами, не хардкодя логику, а подкладывая ему контекстуальные инструкции в рантайме.Как это устроено
Каждый skill — это директория, содержащая файлSKILL.md с YAML-frontmatter и текстовыми инструкциями. OpenClaw загружает встроенные (bundled) скиллы плюс опциональные локальные переопределения, и фильтрует их на этапе загрузки в зависимости от окружения, конфигурации и наличия нужных бинарников.
Формат совместим со спецификацией AgentSkills (agentskills.io) — это открытый стандарт описания навыков для агентов.
Минимальный SKILL.md выглядит так:
Приоритет загрузки (precedence)
Скиллы загружаются из трёх мест: bundled skills (поставляются с инсталляцией), managed/local skills (~/.openclaw/skills) и workspace skills (<workspace>/skills). При конфликте имён приоритет: workspace (высший) → managed/local → bundled (низший).
Это классическая схема override, аналогичная тому, как работают конфиги в большинстве систем — позволяет пропатчить или заменить встроенный скилл, не трогая исходный пакет.
Gating — фильтрация на этапе загрузки
Это, пожалуй, самая интересная часть с инженерной точки зрения. OpenClaw фильтрует скиллы на этапе загрузки, используя полеmetadata (однострочный JSON) внутри frontmatter. Можно задать условия:
requires.bins— список бинарников, которые должны быть вPATHrequires.env— переменные окружения (например, API-ключи)requires.config— пути вopenclaw.json, которые должны быть truthyos— ограничение по ОС (darwin,linux,win32)always: true— всегда включать скилл, игнорируя остальные гейты
ffmpeg, если его нет в контейнере.
Инъекция окружения и изоляция
Когда запускается агентский ран, OpenClaw читает метаданные скиллов, применяетenv и apiKey из конфига к process.env, собирает системный промпт с eligible-скиллами, и восстанавливает оригинальное окружение после завершения рана. То есть секреты инжектятся скоупленно на время одного вызова агента — это не глобальные переменные шелла.
Token impact
Базовый оверхед при наличии хотя бы одного скилла — 195 символов. На каждый скилл дополнительно тратится примерно 97 символов плюс длина escaped-полей name, description и location. Грубая оценка — ~24 токена на скилл только на «обёртку», плюс сами инструкции внутри. Это важно учитывать для бюджета контекстного окна, особенно если скиллов много.Session snapshot и hot reload
OpenClaw делает снимок eligible-скиллов при старте сессии и переиспользует этот список для последующих ходов в рамках одной сессии. При этом есть skills watcher, который мониторит изменения вSKILL.md и обновляет снимок — по сути, hot reload без перезапуска сессии.
Мультиагентность
В мультиагентных сетапах у каждого агента свой workspace, то есть per-agent скиллы живут в<workspace>/skills конкретного агента, а shared скиллы в ~/.openclaw/skills видны всем агентам на машине.