Навыки 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
Дополнительные ресурсы
Совет: Устанавливайте только необходимые навыки и регулярно обновляйте их для безопасности.
Комментарии и обсуждение
Пока нет комментариев. Будьте первым!
Добавить комментарий