Навыки OpenClaw

Обновлено: 2026-04-05

Навыки OpenClaw

Навыки (skills) — это расширения, которые добавляют новые возможности агентам OpenClaw. Каждый навык предоставляет специализированную функциональность для решения конкретных задач.

Доступные навыки

Основные навыки

Навык Описание Зависимости
github Работа с GitHub репозиториями git, GitHub API token
terminal Выполнение команд в терминале bash/zsh, основные утилиты
weather Прогноз погоды API ключ (OpenWeatherMap)
calendar Управление календарем CalDAV или Google Calendar
web_search Поиск в интернете DuckDuckGo API
docker Управление Docker контейнерами Docker CLI
kubernetes Оркестрация Kubernetes kubectl, kubeconfig
aws Управление AWS ресурсами AWS CLI, credentials
jira Работа с Jira задачами Jira API token
notion Интеграция с Notion Notion API token

Специализированные навыки

Навык Описание Использование
code_review Анализ кода на качество Для разработчиков
data_analysis Анализ данных Для аналитиков
translation Перевод текстов Многоязычная поддержка
summarization Суммаризация текстов Для работы с документами
image_processing Обработка изображений Компьютерное зрение
audio_transcription Транскрипция аудио Работа с голосовыми сообщениями
pdf_processing Обработка PDF файлов Извлечение текста, конвертация

Установка навыков

Через CLI

# Просмотр доступных навыков
openclaw skills list

# Поиск навыков
openclaw skills search "github"

# Установка навыка
openclaw skills install github

# Установка с конкретной версией
openclaw skills install github@2.1.0

# Установка нескольких навыков
openclaw skills install github terminal weather

# Глобальная установка (для всех агентов)
openclaw skills install --global github

Через конфигурацию

{
  "skills": {
    "github": {
      "enabled": true,
      "version": "latest",
      "config": {
        "token": "${GITHUB_TOKEN}",
        "username": "ваш_username"
      }
    },
    "terminal": {
      "enabled": true,
      "config": {
        "allowedCommands": ["ls", "pwd", "git", "npm", "docker"],
        "workingDirectory": "/home/user/projects",
        "timeout": 30000
      }
    },
    "weather": {
      "enabled": true,
      "config": {
        "apiKey": "${WEATHER_API_KEY}",
        "units": "metric",  // metric, imperial
        "language": "ru"
      }
    }
  }
}

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

GitHub Skill

{
  "github": {
    "enabled": true,
    "config": {
      "token": "${GITHUB_TOKEN}",
      "username": "ваш_username",
      "enterprise": false,
      "apiUrl": "https://api.github.com",
      "graphqlUrl": "https://api.github.com/graphql",
      "rateLimit": {
        "enabled": true,
        "requestsPerHour": 5000
      },
      "repositories": {
        "default": "username/repo",
        "allowed": ["username/*", "orgname/*"]
      },
      "permissions": {
        "read": true,
        "write": true,
        "admin": false
      }
    },
    "actions": {
      "list_repos": true,
      "create_issue": true,
      "read_code": true,
      "create_pr": true,
      "merge_pr": false
    }
  }
}

Terminal Skill

{
  "terminal": {
    "enabled": true,
    "config": {
      "shell": "bash",  // bash, zsh, fish, powershell
      "workingDirectory": "~",
      "environment": {
        "PATH": "/usr/local/bin:/usr/bin:/bin",
        "HOME": "~",
        "LANG": "en_US.UTF-8"
      },
      "security": {
        "allowedCommands": [
          "ls", "pwd", "cd", "cat", "grep",
          "git", "npm", "yarn", "python", "node",
          "docker", "docker-compose", "kubectl"
        ],
        "deniedCommands": [
          "rm -rf", "sudo", "chmod 777",
          "dd", "mkfs", "fdisk"
        ],
        "allowedPaths": ["~", "/tmp", "/var/log"],
        "deniedPaths": ["/", "/etc", "/root", "/sys"]
      },
      "limits": {
        "timeout": 30000,
        "maxOutput": 10000,
        "maxProcesses": 3
      }
    }
  }
}

Weather Skill

{
  "weather": {
    "enabled": true,
    "config": {
      "provider": "openweathermap",  // openweathermap, wttr.in, weatherstack
      "apiKey": "${WEATHER_API_KEY}",
      "units": "metric",
      "language": "ru",
      "cache": {
        "enabled": true,
        "ttl": 900  // 15 минут
      },
      "locations": {
        "default": "Moscow",
        "favorites": ["Moscow", "Saint Petersburg", "London", "New York"]
      },
      "forecast": {
        "days": 5,
        "intervals": ["current", "hourly", "daily"]
      }
    }
  }
}

Использование навыков

Через агентов

{
  "agents": {
    "developer": {
      "model": "openai/gpt-4",
      "skills": ["github", "terminal", "docker"],
      "systemPrompt": "Ты разработчик с доступом к GitHub, терминалу и Docker."
    },
    "analyst": {
      "model": "anthropic/claude-3-sonnet",
      "skills": ["web_search", "data_analysis", "summarization"],
      "systemPrompt": "Ты аналитик с доступом к поиску и анализу данных."
    }
  }
}

Через команды

# Использование навыка GitHub
openclaw skills github list-repos --user username
openclaw skills github create-issue --repo username/repo --title "Bug" --body "Description"
openclaw skills github read-file --repo username/repo --path "src/index.js"

# Использование навыка Terminal
openclaw skills terminal exec --command "ls -la"
openclaw skills terminal exec --command "git status"
openclaw skills terminal exec --command "docker ps"

# Использование навыка Weather
openclaw skills weather current --location "Moscow"
openclaw skills weather forecast --location "London" --days 3

Через API

// Пример использования навыков через API
const response = await fetch('http://localhost:18789/api/v1/skills/execute', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer ваш_токен'
  },
  body: JSON.stringify({
    skill: 'github',
    action: 'list_repos',
    params: {
      user: 'username',
      type: 'owner',
      sort: 'updated',
      direction: 'desc'
    }
  })
});

Создание собственных навыков

Структура навыка

my-skill/
├── package.json
├── index.js
├── config.schema.json
├── README.md
├── tests/
│   └── index.test.js
├── src/
│   ├── actions/
│   │   ├── action1.js
│   │   └── action2.js
│   └── utils/
│       └── helpers.js
└── examples/
    └── usage.example.json

Пример простого навыка

// package.json
{
  "name": "openclaw-skill-myskill",
  "version": "1.0.0",
  "description": "Мой кастомный навык",
  "main": "index.js",
  "openclaw": {
    "type": "skill",
    "version": ">=1.0.0"
  }
}

// index.js
export default class MySkill {
  constructor(config, context) {
    this.config = config;
    this.context = context;
    this.name = 'My Skill';
  }

  async initialize() {
    console.log(`${this.name} initialized`);
  }

  async execute(action, params) {
    switch (action) {
      case 'hello':
        return await this.sayHello(params);
      case 'process':
        return await this.processData(params);
      default:
        throw new Error(`Unknown action: ${action}`);
    }
  }

  async sayHello({ name = 'World' }) {
    return {
      message: `Hello, ${name}!`,
      timestamp: new Date().toISOString()
    };
  }

  async processData({ data, operation }) {
    // Обработка данных
    let result;
    switch (operation) {
      case 'uppercase':
        result = data.toUpperCase();
        break;
      case 'lowercase':
        result = data.toLowerCase();
        break;
      default:
        throw new Error(`Unknown operation: ${operation}`);
    }

    return {
      original: data,
      processed: result,
      operation: operation
    };
  }

  async cleanup() {
    console.log(`${this.name} cleaned up`);
  }
}

Управление навыками

Обновление навыков

# Проверка обновлений
openclaw skills check-updates

# Обновление всех навыков
openclaw skills update --all

# Обновление конкретного навыка
openclaw skills update github

# Обновление до конкретной версии
openclaw skills update github@2.2.0

Удаление навыков

# Удаление навыка
openclaw skills remove github

# Удаление с конфигурацией
openclaw skills remove github --purge

# Удаление нескольких навыков
openclaw skills remove github terminal weather

Резервное копирование

# Экспорт конфигурации навыков
openclaw skills export --output skills-backup.json

# Импорт конфигурации
openclaw skills import --file skills-backup.json

# Миграция навыков между инстансами
openclaw skills backup --all --output backup.tar.gz
openclaw skills restore --file backup.tar.gz

Безопасность навыков

Политики безопасности

{
  "skills": {
    "security": {
      "sandbox": {
        "enabled": true,
        "isolation": "container",  // container, process, none
        "resourceLimits": {
          "memory": "512MB",
          "cpu": "1",
          "network": false
        }
      },

      "permissions": {
        "requireApproval": true,
        "autoGrant": ["read", "network"],
        "requireManualGrant": ["write", "exec", "delete"]
      },

      "audit": {
        "enabled": true,
        "logAllActions": true,
        "retentionDays": 90
      }
    }
  }
}

Аудит навыков

# Проверка безопасности навыка
openclaw skills audit github

# Сканирование на уязвимости
openclaw skills scan-vulnerabilities

# Проверка зависимостей
openclaw skills check-dependencies github

# Аудит разрешений
openclaw skills audit-permissions

Производительность и оптимизация

Мониторинг

# Статистика использования навыков
openclaw skills stats

# Профилирование производительности
openclaw skills profile github --duration 60

# Логи навыков
openclaw skills logs github --tail 50

# Метрики в реальном времени
openclaw skills metrics --watch

Оптимизация

{
  "skills": {
    "optimization": {
      "caching": {
        "enabled": true,
        "ttl": 300,  // 5 минут
        "maxSize": "100MB"
      },

      "preloading": {
        "enabled": true,
        "skills": ["github", "terminal"],
        "onStartup": true
      },

      "concurrency": {
        "maxParallel": 5,
        "queueSize": 100
      }
    }
  }
}

Устранение неполадок

Общие проблемы

# Навык не загружается
openclaw skills debug github --verbose

# Ошибки выполнения
openclaw skills test github --action list-repos

# Проверка конфигурации
openclaw skills validate-config github

# Сброс навыка
openclaw skills reset github

Диагностика

# Полная диагностика навыка
openclaw skills diagnose github

# Тестирование всех действий
openclaw skills test-all github

# Проверка зависимостей
openclaw skills check-deps github

# Восстановление навыка
openclaw skills repair github

Дополнительные ресурсы


Совет: Устанавливайте только необходимые навыки и регулярно обновляйте их для безопасности.

Помогла ли вам эта статья?

Оставьте отзыв или предложите улучшения

🐛 Сообщить об ошибке

Комментарии и обсуждение

Пока нет комментариев. Будьте первым!

Добавить комментарий

Комментарии проходят модерацию