Навыки

Конфигурация навыков

Вся конфигурация, связанная с навыками, находится в разделе skills файла ~/.openclaw/openclaw.json.

{
  skills: {
    allowBundled: ["gemini", "peekaboo"],
    load: {
      extraDirs: ["~/Projects/agent-scripts/skills", "~/Projects/oss/some-skill-pack/skills"],
      watch: true,
      watchDebounceMs: 250,
    },
    install: {
      preferBrew: true,
      nodeManager: "npm", // npm | pnpm | yarn | bun (Gateway runtime still Node; bun not recommended)
    },
    entries: {
      "nano-banana-pro": {
        enabled: true,
        apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // or plaintext string
        env: {
          GEMINI_API_KEY: "GEMINI_KEY_HERE",
        },
      },
      peekaboo: { enabled: true },
      sag: { enabled: false },
    },
  },
}

Поля

  • allowBundled: опциональный разрешённый список только для встроенных навыков. Если задан, только встроенные навыки из списка доступны (на управляемые/рабочие навыки не влияет).
  • load.extraDirs: дополнительные директории навыков для сканирования (самый низкий приоритет).
  • load.watch: отслеживать папки навыков и обновлять их снимок (по умолчанию: true).
  • load.watchDebounceMs: время задержки для событий отслеживания навыков в миллисекундах (по умолчанию: 250).
  • install.preferBrew: предпочитать установщики brew, когда они доступны (по умолчанию: true).
  • install.nodeManager: предпочтительный менеджер установки Node (npm | pnpm | yarn | bun, по умолчанию: npm). Это влияет только на установку навыков; среда выполнения Gateway должна оставаться Node (Bun не рекомендуется для WhatsApp/Telegram).
  • entries.<skillKey>: переопределения для конкретного навыка.

Поля для каждого навыка:

  • enabled: установите false, чтобы отключить навык, даже если он встроен/установлен.
  • env: переменные окружения, внедряемые для запуска агента (только если они ещё не заданы).
  • apiKey: опциональное удобство для навыков, которые объявляют основную переменную окружения. Поддерживает обычную строку или объект SecretRef ({ source, provider, id }).

Примечания

  • Ключи в entries по умолчанию соответствуют имени навыка. Если навык определяет metadata.openclaw.skillKey, используйте этот ключ.
  • Изменения в навыках подхватываются при следующем ходе агента, если включено отслеживание.

Изолированные навыки + переменные окружения

Когда сессия изолирована, процессы навыков выполняются внутри Docker. Изоляция не наследует process.env хоста. Используйте один из вариантов:

  • agents.defaults.sandbox.docker.env (или agents.list[].sandbox.docker.env для конкретного агента)
  • внедрите переменные окружения в ваш пользовательский образ изоляции

Глобальные env и skills.entries.<skill>.env/apiKey применяются только для запусков на хосте.

НавыкиClawHub