Agentforge-openclaw agent-forge

Создание, улучшение и аудит скиллов и агентов OpenClaw. Три режима: создание скилла (11 шагов), создание агента (9 шагов, с памятью и автоулучшением), улучшение существующего (5 шагов). Triggers: 'создай скилл', 'новый скилл', 'создай агента', 'новый агент', 'улучши скилл', 'skill creator', 'agent creator', 'скиллмейкер'.

install
source · Clone the upstream repo
git clone https://github.com/AlekseiUL/agentforge-openclaw
Claude Code · Install into ~/.claude/skills/
git clone --depth=1 https://github.com/AlekseiUL/agentforge-openclaw ~/.claude/skills/alekseiul-agentforge-openclaw-agent-forge
OpenClaw · Install into ~/.openclaw/skills/
git clone --depth=1 https://github.com/AlekseiUL/agentforge-openclaw ~/.openclaw/skills/alekseiul-agentforge-openclaw-agent-forge
manifest: SKILL.md
source content

AgentForge 🔧

Создание и улучшение скиллов и агентов OpenClaw. Лучшие практики + боевой опыт с десятками скиллов и агентов. Агенты: от базового (5 мин) до полноценного рабочего (с памятью, автоулучшением, командой).

Шаблоны файлов агента:

references/agent-templates.md


Быстрый старт

Скилл за 5 минут:

  1. mkdir skills/<имя>/
    → создать
    SKILL.md
    с frontmatter (name, description) + алгоритм + 2 примера
  2. Готово. Скилл подхватится автоматически (hot-reload)

Агент за 5 минут:

  1. Добавить в
    agents.list[]
    в openclaw.json (id, name, model, workspace, tools.deny)
  2. mkdir -p ~/.openclaw/agents/<id>/agent
    +
    AGENTS.md
    с ролью
  3. Перезапустить gateway (через config.patch или
    openclaw gateway restart
    )

Нужно по шагам? Читай дальше.


Режим A: СКИЛЛ

Шаг 1. Онбординг (2-4 вопроса, по одному)

  1. Что скилл должен делать? Конкретный пример использования
  2. Когда активировать? (триггерные фразы)
  3. Нужны ли скрипты, данные, внешние API?
  4. Публичный (для подписчиков) или внутренний?

Шаг 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 принципов:

  1. Только уникальное - не пиши то, что модель и так знает
  2. Примеры > теория - один пример лучше абзаца объяснений
  3. Детали отдельно - основное в SKILL.md, подробности в
    references/
  4. Триггеры в description - body грузится ПОСЛЕ триггера, "когда использовать" пиши в frontmatter
  5. Императив - "Найди", "Отправь", не "Можно найти"

Шаблон 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. Тест

  1. Вызвать скилл с реальным запросом
  2. Edge cases: пустой ввод, нестандартный запрос
  3. Если контент - проверить стиль
  4. Если команды - проверить зависимости

Шаг 10. Публичная версия (если нужна)

SKILL.md → SKILL-public.md → убрать личное → аудит повторно.

Шаг 11. Итерация

  • владелец поправил → записать что не так
  • 3+ повтора проблемы → добавить в скилл
  • Хирургические правки, не переписывать всё

Режим B: АГЕНТ

Шаг 1. Онбординг (5 вопросов, по одному)

  1. Роль/задача агента? (маркетолог, тимлид, коуч...)
  2. Какие tools нужны? Какие запретить?
  3. Нужна ли векторная память (memorySearch)?
  4. Связь с другими агентами?
  5. Привязка: 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
Самоописание агента (конфиг, связи, уровни памяти)🟡 Рекомендуется
HEARTBEAT.md
Инструкции по heartbeat🟡 Если heartbeat включён
BOOTSTRAP.md
Восстановление контекста после компактификации🟡 Рекомендуется
memory/handoff.md
"Save game" текущего разговора🟡 Рекомендуется

Симлинк на общие скиллы (если нужны):

ln -s ~/skills ~/.openclaw/agents/<agent-id>/agent/skills

Шаг 5a-5c. Шаблоны файлов

Все шаблоны с примерами:

references/agent-templates.md

Содержит готовые к копированию шаблоны:

  • 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 - самоописание агента

Ключевые принципы (знать без шаблонов):

  1. AGENTS.md - главный файл. Порядок секций: прозрачность → кто я → команда → скиллы → проекты → связи → память → инструменты → стиль
  2. USER.md - адаптировать под роль! Маркетологу - каналы и аудитория. Тимлиду - GitHub и стек. Личные данные - только если реально нужны
  3. SOUL.md - не копипаста. Каждый агент = своя личность. Принципы вытекают из роли
  4. Память - 4 уровня: контекстная → файловая → векторная → identity. Автоулучшение: ошибка → паттерн → 3 повтора → правило
  5. Длинные проекты - создавать
    status.md
    как save-game. При обрыве сессии продолжить с него

Шаг 6. Гигиена

Убедиться что ночная чистка покрывает нового агента:

  • .jsonl
    сессии в
    ~/.openclaw/agents/<id>/sessions/
    - удалять >30 дней
  • SQLite общая база - чистка кроновых чанков уже работает для всех

Если используется

night-cleanup.sh
с wildcard
~/.openclaw/agents/*/sessions/
- новый агент подхватится автоматически.

Шаг 6b. Автоматическая память (для рабочих агентов)

Если агент ведёт длинные сессии с владельцем — добавь автоматическое сохранение контекста. Без этого при компактификации теряется 30-50% текущего разговора.

BOOTSTRAP.md — кладётся в workspace, грузится автоматически:

# BOOTSTRAP.md
После старта/компактификации:
1. read memory/handoff.md — текущий контекст ("save game")
2. read memory/YYYY-MM-DD.md — дневник дня
3. Если оба пустые: sessions_history(sessionKey="agent:<id>:main", limit=20)

Auto Handoff (крон, каждый час) — Sonnet субагент читает sessions_history агента и перезаписывает

memory/handoff.md
актуальным снимком: текущая тема, решения, TODO, критичный контекст. Если сессия неактивна — не трогает файл.

Auto Diary (крон, каждые 4 часа) — Sonnet субагент дописывает ключевые темы и решения в

memory/YYYY-MM-DD.md
. Не дублирует, только новое.

Пример крона Auto Handoff:

cron(action="add", job={
  "name": "Auto Handoff",
  "schedule": {"kind": "cron", "expr": "30 9-23 * * *", "tz": "ваша/таймзона"},
  "sessionTarget": "isolated",
  "payload": {
    "kind": "agentTurn",
    "model": "anthropic/claude-sonnet-4-6",
    "message": "Прочитай sessions_history(sessionKey='agent:<id>:main', limit=30). Если есть свежие сообщения — перезапиши memory/handoff.md (тема, решения, TODO, контекст). Если неактивна — NO_REPLY.",
    "timeoutSeconds": 120
  },
  "delivery": {"mode": "none"}
})

Когда добавлять: если агент общается с владельцем >1 часа в день и теряет контекст при обрезке. Для агентов с короткими задачами — не нужно, хватит

memory/lessons.md
.

Шаг 7. Перезапуск

Перед перезапуском - проверь конфиг:

openclaw status

Бэкап:

cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak

Перезапуск: Рекомендуется через OpenClaw CLI или gateway tool с config.patch (автоматический restart).

⚠️ ВАЖНО:

  • Агент НЕ должен сам вызывать
    openclaw gateway restart
    напрямую - это убьёт его сессию
  • Используйте gateway tool с config.patch для изменений конфига
  • Если нужен перезапуск вручную - делайте из отдельного терминала

Если не поднялся - откат:

# Из терминала (НЕ через агента!)
cp ~/.openclaw/openclaw.json.bak ~/.openclaw/openclaw.json
openclaw gateway restart

Шаг 8. Тест

  1. Отправь сообщение → получи ответ
  2. Проверь изоляцию: tools.deny работает? memorySearch только своё?
  3. Проверь связи: sessions_send доходит?
  4. Проверь прозрачность: пишет уведомления?
  5. Проверь память: при старте читает lessons/patterns/projects-log?
  6. Проверь скиллы: перед задачей читает SKILL.md?

Шаг 9. Выравнивание с командой

Если есть другие агенты - убедись что новый на том же уровне:

  • Все файлы из чеклиста (шаг 5) на месте
  • USER.md заполнен под его роль
  • Маршрутизация по скиллам в AGENTS.md
  • Знает про команду (таблица агентов)
  • Ночная чистка покрывает его сессии
  • Обновить AGENTS.md других агентов (добавить нового в таблицу команды)

Режим C: УЛУЧШЕНИЕ СУЩЕСТВУЮЩЕГО

  1. Прочитай текущий SKILL.md - пойми что есть, какой тип, какая структура
  2. Определи проблему - конкретно: "нет примеров", "устарел алгоритм", "владелец поправил результат"
  3. Хирургическая правка - меняй только то, что сломано. Не переписывай весь скилл
  4. Проверь - валидация (шаг 7) + тест (шаг 9)
  5. Обнови публичную версию - если есть SKILL-public.md, синхронизируй

Когда улучшать: владелец поправил результат, 3+ повтора одной проблемы, появилась новая возможность/инструмент.


⛔ Когда НЕ создавать

Скилл не нужен если: задача одноразовая, нет повторяемости, модель и так знает.

Агент не нужен если: хватит маски (systemPrompt в топике), не нужна своя память, никто не будет пользоваться регулярно.

Миграция маска → полноценный агент: Если маска начала: накапливать контекст между сессиями, нуждаться в своих файлах, требовать tools - пора переводить. Пройди все 9 шагов для полноценного агента.


⚠️ Грабли

Скиллы

#ПроблемаРешение
1Данные в
memory/
В
skills/<имя>/data/
- крон не тронет
2YAML без
---
Скилл молча игнорируется
3Относительный путь к referencesПолный:
skills/<имя>/references/
4SKILL.md >500 строкДетали в
references/
5Нет триггеровАгент не знает когда активировать
6Утечка в публичной версии
grep
перед публикацией
7Зависимость от моделиModel-agnostic
8Нет примеровБесполезен после компактификации

Агенты

#ПроблемаРешение
1
sessions_send
с таймаутом
Всегда
timeoutSeconds=0
2Нет в
agentToAgent.allow
Связь молча фейлит
3Алиас моделиТолько полное имя
4Workspace не созданАгент падает
5Нет
tools.deny
Может рестартнуть gateway
6Не перезапустил gatewayСтарый конфиг
7Binding без
topicId
Ловит все сообщения
8USER.md пустой шаблонАгент не знает владельца - заполнить под роль
9Нет MEMORY.mdСтартует вслепую каждую сессию
10Нет memory/*.md файловНет системы автоулучшения - не учится
11Нет прозрачностиВладелец не видит что агент делает
12Агент не знает командуНе может делегировать/спросить коллегу
13Описание привязано к проектуАгент = член команды, не фрилансер на проект
14Нет маршрутизации по скилламРаботает "из головы" вместо скиллов

Примеры из нашей системы

Пример 1: Простой скилл (копирайтер)

Структура:

skills/copywriter/
├── SKILL.md                          # 150 строк: роль + правила + примеры
└── references/
    └── voice-dictionary.md           # Словарь стиля

SKILL.md содержит: роль (пиши как владелец), правила стиля (без канцелярита, дефис вместо тире), 3 примера постов. Детали (словарь из 50+ фраз) - в references/.

Триггер в description: "напиши пост", "пост для телеграм", "копирайтер".

Пример 2: Сложный скилл (deep-research-pro)

Структура:

skills/deep-research-pro/
└── SKILL.md                          # 130 строк: workflow из 5 шагов

Без references/ - весь workflow помещается в core. 5 шагов: уточнение → планирование → мультиисточниковый поиск → синтез → отчёт. Каждый шаг с конкретными командами.

Пример 3: Скилл с данными (auto-mechanic)

Структура:

skills/auto-mechanic/
├── SKILL.md                          # Роль + алгоритм диагностики
└── data/
    └── car-profile.md                # Профиль автомобиль

Данные (VIN, одометр, история ТО) в

data/
- крон не тронет. В SKILL.md только логика работы.

Пример 4: Полноценный рабочий агент (Team Lead)

Конфиг:

{ "id": "dev-lead", "name": "Team Lead", "model": "anthropic/claude-opus-4-6",
  "workspace": "~/.openclaw/agents/<agent-id>/agent",
  "agentDir": "~/.openclaw/agents/<agent-id>/agent",
  "memorySearch": { "enabled": true },
  "heartbeat": { "every": "0" },
  "tools": { "deny": ["gateway"] } }

Полная структура workspace:

~/.openclaw/agents/<agent-id>/agent/
├── AGENTS.md          # Роль + прозрачность + скиллы + память + команда
├── SOUL.md            # Личность
├── USER.md            # Профиль владельца (GitHub, стек, стиль)
├── IDENTITY.md        # Имя и краткое описание
├── MEMORY.md          # Сводка фактов (проекты, инструменты)
├── TOOLS.md           # Реальные команды и пути
├── skills -> ~/skills  # Симлинк на общие скиллы
└── memory/
    ├── lessons.md         # Уроки и правила
    ├── patterns.md        # Паттерны правок
    ├── projects-log.md    # История задач
    └── architecture.md    # Самоописание

memorySearch включён - накапливает контекст между сессиями. Скиллы через симлинк. Система автоулучшения: ошибка → паттерн → правило.

Пример 5: Специализированный агент (коуч целей)

{ "id": "coach", "model": "anthropic/claude-sonnet-4-6",
  "workspace": "~/.openclaw/agents/coach/agent", "memorySearch": { "enabled": false } }

Другая архитектура - живёт в Obsidian vault. Память = сам vault (daily notes, [[wikilinks]], граф). Скиллы не нужны - работает с целями и привычками. Sonnet (дешевле) - для ежедневных чекинов достаточно.

Пример 6: Изолированный агент (Копирайтер - маска)

{ "id": "copywriter", "model": "anthropic/claude-sonnet-4-6",
  "memorySearch": { "enabled": false },
  "tools": { "deny": ["gateway", "cron", "exec"] } }

Минимальный изолированный агент: нет exec, нет cron, нет gateway, нет памяти. Только текст. Подходит для простых экспертных ролей в топиках. Если нужна ещё проще маска без agents.list — используй systemPrompt прямо в конфиге группы/топика.


Материалы

  • references/agent-templates.md
    - готовые шаблоны всех файлов агента (AGENTS.md, SOUL.md, USER.md, BOOTSTRAP.md, handoff.md, memory/*.md)

07.03.2026, обновлено 09.03.2026 (добавлен полный пайплайн агентов: 9 шагов, память, автоулучшение, команда)