AgentForge 🔧
Создание и улучшение скиллов и агентов OpenClaw. Лучшие практики + боевой опыт с десятками скиллов и агентов. Агенты: от базового (5 мин) до полноценного рабочего (с памятью, автоулучшением, командой).
Шаблоны файлов агента: references/agent-templates.md
Быстрый старт
Скилл за 5 минут:
mkdir skills/<имя>/→ создатьSKILL.mdс frontmatter (name, description) + алгоритм + 2 примера- Готово. Скилл подхватится автоматически (hot-reload)
Агент за 5 минут:
- Добавить в
agents.list[]в openclaw.json (id, name, model, workspace, tools.deny) mkdir -p ~/.openclaw/agents/<id>/agent+AGENTS.mdс ролью- Перезапустить gateway (через config.patch или
openclaw gateway restart)
Нужно по шагам? Читай дальше.
Режим A: СКИЛЛ
Шаг 1. Онбординг (2-4 вопроса, по одному)
- Что скилл должен делать? Конкретный пример использования
- Когда активировать? (триггерные фразы)
- Нужны ли скрипты, данные, внешние API?
- Публичный (для подписчиков) или внутренний?
Шаг 2. Определи тип скилла
Workflow (пошаговый процесс) - если задача = последовательность действий. → Пример: deep-research-pro (5 шагов: уточнение → поиск → синтез → отчёт)
Role (экспертная роль) - если задача = "отвечай как специалист X". → Пример: copywriter (пиши как владелец, вот стиль, вот примеры)
Data-driven (работа с данными) - если нужны конкретные факты/профили. → Пример: auto-mechanic (профиль машины в data/, логика диагностики в SKILL.md)
Гибрид - комбинация. Пример: family-doctor = Role + Data (роль врача + медпрофили в data/).
Шаг 3. Планирование структуры
В зависимости от типа (шаг 2):
- Workflow → обычно хватит одного
SKILL.md(вся логика помещается в core) - Role →
SKILL.md+references/(словарь стиля, примеры голоса, правила) - Data-driven →
SKILL.md+data/(профили, базы, справочники) - Гибрид →
SKILL.md+references/+data/(по необходимости)
Также могут понадобиться:
scripts/- Python/Bash для повторяемых операцийassets/- шаблоны, изображения
Пропорции:
- SKILL.md: 100-300 строк (мета-скиллы и сложные workflow до 350)
- Примеры: 2-3 конкретных
- Данные в
data/, НЕ вmemory/!
Шаг 4. Инициализация
Просто создай папку и SKILL.md вручную:
mkdir -p skills/<имя>/
Если установлен скилл skill-creator, можно автоматически: python3 $(npm root -g)/openclaw/skills/skill-creator/scripts/init_skill.py <name> --path ~/skills/
Шаг 5. Написание SKILL.md
Frontmatter (обязательно):
---
name: имя-скилла
description: "Что делает + когда использовать. Triggers: 'фраза1', 'фраза2'."
---
Допустимые поля: name, description, allowed-tools, license, metadata. Поле version НЕ поддерживается!
5 принципов:
- Только уникальное - не пиши то, что модель и так знает
- Примеры > теория - один пример лучше абзаца объяснений
- Детали отдельно - основное в SKILL.md, подробности в
references/ - Триггеры в description - body грузится ПОСЛЕ триггера, "когда использовать" пиши в frontmatter
- Императив - "Найди", "Отправь", не "Можно найти"
Шаблон body (выбери по типу из шага 2):
Workflow:
# Название → Алгоритм (шаги) → Примеры → Ограничения
Role:
# Название → Роль (кто ты) → Правила стиля → Примеры ответов → Чего НЕ делать
Data-driven:
# Название → Где данные → Алгоритм работы с данными → Как обновлять → Примеры
Шаг 6. Черновик → одобрение
Покажи черновик владельцу ПЕРЕД финализацией. Формат:
📝 Черновик скилла: [имя]
Тип: [workflow/role/data-driven/гибрид]
Что делает: [2-3 предложения]
Структура: SKILL.md + [references/ | data/ | scripts/]
Пример вызова: "[фраза]" → [что получится]
Дождись "ок" или правок. Лучше поправить черновик за 2 минуты, чем переделывать готовый скилл.
Шаг 7. Проверка качества
python3 $(npm root -g)/openclaw/skills/skill-creator/scripts/quick_validate.py skills/<имя>/
Ручная проверка:
- Работает без внешних знаний (self-contained)
- Примеры реалистичные
- Нет TODO, заглушек
- Размер адекватный задаче
- Триггеры покрывают варианты обращения
Шаг 8. Аудит безопасности (для публичных)
grep -ri "ваше-имя\|ваш-ник\|ваш-город\|ваш-id\|Desktop/ваша-папка" SKILL-public.md
Результат = 0 строк.
Чеклист: нет личных данных, нет локальных путей, нет внутренних названий, нет ключей/токенов, model-agnostic.
Шаг 9. Тест
- Вызвать скилл с реальным запросом
- Edge cases: пустой ввод, нестандартный запрос
- Если контент - проверить стиль
- Если команды - проверить зависимости
Шаг 10. Публичная версия (если нужна)
SKILL.md → SKILL-public.md → убрать личное → аудит повторно.
Шаг 11. Итерация
- владелец поправил → записать что не так
- 3+ повтора проблемы → добавить в скилл
- Хирургические правки, не переписывать всё
Режим B: АГЕНТ
Шаг 1. Онбординг (5 вопросов, по одному)
- Роль/задача агента? (маркетолог, тимлид, коуч...)
- Какие tools нужны? Какие запретить?
- Нужна ли векторная память (memorySearch)?
- Связь с другими агентами?
- Привязка: Telegram топик, отдельный бот, API?
Шаг 1a. Определи тип агента
Полноценный рабочий - свой бот, своя память, свои скиллы, система автоулучшения. Для долгосрочных ролей: тимлид, маркетолог, аналитик. → Все 9 шагов. Чеклист из 12 файлов. memorySearch: true.
Специализированный - своя экосистема (Obsidian, отдельная база). Для уникальных задач: коуч целей, трекер привычек. → Шаги 1-4 + 7-8. Workspace = своя среда. Файлы адаптировать.
Маска (топик-роль) - нет своего бота, работает через systemPrompt основного. Для экспертных ролей: врач, астролог, механик. → Только systemPrompt в конфиге группы/топика. Минимум файлов. tools.deny максимальный.
Шаг 2. Конфиг (openclaw.json → agents.list[])
Замени <agent-id> на id своего агента (латиница, без пробелов, например: marketer, dev-lead, coach).
{
"id": "<agent-id>",
"name": "Имя Агента",
"model": "anthropic/claude-sonnet-4-6",
"workspace": "~/.openclaw/agents/<agent-id>/agent",
"agentDir": "~/.openclaw/agents/<agent-id>/agent",
"memorySearch": { "enabled": true },
"heartbeat": { "every": "0" },
"tools": { "deny": ["gateway"] }
}
model: ПОЛНОЕ имя, не алиасmemorySearch: true для рабочих агентов (накапливают контекст)tools.deny:gatewayВСЕГДА;cron,execпо ситуацииheartbeat.every: "0" если не нужен мониторинг
Шаг 3. Связи
# В openclaw.json → секция "tools" (НЕ в agents!):
"tools": {
"agentToAgent": { "enabled": true, "allow": ["main", "<agent-id>"] }
}
sessions_send ВСЕГДА с timeoutSeconds=0.
Шаг 4. Binding (Telegram)
{ "agentId": "<agent-id>", "match": { "channel": "telegram", "accountId": "<agent-id>" } }
Для топика в группе:
"accounts": {
"<agent-id>": {
"botToken": "...",
"groups": { "<group-id>": { "topics": { "<topic-id>": { "requireMention": false } } } }
}
}
Шаг 5. Workspace - структура файлов
mkdir -p ~/.openclaw/agents/<agent-id>/agent/memory
Обязательные файлы (чеклист):
| Файл | Назначение | Обязательность |
|---|---|---|
AGENTS.md | Роль, правила, скиллы, команда, память | ✅ Обязательно |
SOUL.md | Личность, ценности, стиль | ✅ Обязательно |
USER.md | Профиль владельца (контакты, каналы, стиль, что бесит) | ✅ Обязательно |
IDENTITY.md | Имя, роль, краткое описание | ✅ Обязательно |
MEMORY.md | Сводка ключевых фактов (проекты, инструменты, правила) | ✅ Обязательно |
TOOLS.md | Реальные инструменты с командами | ✅ Обязательно |
memory/lessons.md | Уроки, правки, ошибки | ✅ Обязательно |
memory/patterns.md | Паттерны правок (автоулучшение) | ✅ Обязательно |
memory/projects-log.md | История завершённых задач | ✅ Обязательно |
memory/architecture.md | Самоописание агента (конфиг, связи, уровни памяти) | 🟡 |