Сложность: Для начинающих | Время: 30 минут | Результат: Понимание системы взаимодействия четырех ролей OpenMOSS, создание собственной команды ИИ-агентов
Целевая аудитория
Вы уже используете OpenClaw и ощутили возможности одиночного агента — он может общаться, писать код и выполнять задачи. Но вы, вероятно, заметили: как только задача становится сложной или требует многошагового взаимодействия, одиночный агент легко застревает на определенном этапе и «замирает», ожидая ваших указаний.
OpenMOSS призван решить именно эту проблему. Его идея проста: не заставляйте одного агента нести все на себе, а внедрите в ИИ организационную структуру. Планировщик разбивает требования, Исполнитель выполняет работу, Рецензент контролирует качество, а Инспектор следит за процессом. Четыре роли выполняют свои обязанности, работая автономно через регулярные пробуждения, формируя замкнутую команду ИИ-компании.
OpenMOSS сам по себе является промежуточным ПО (middleware). Он не занимается конкретным бизнесом, а только управляет диспетчеризацией и взаимодействием. Какие навыки (Skills) вы ему назначите, такие задачи он и сможет выполнять автоматически в режиме сотрудничества.
Эта статья подходит для тех, кто:
- Уже использует OpenClaw и хочет опробовать многоагентное взаимодействие
- Нуждается в автоматической и непрерывной работе ИИ без ручного присмотра
- Хочет создать конвейер производства контента, автоматизированную эксплуатацию, аудит кода и другие рабочие процессы
Основные зависимости и окружение
| Зависимость | Требования к версии | Описание |
|---|---|---|
| Python | >= 3.10 | Среда выполнения бэкенда OpenMOSS |
| Node.js | >= 18 | Требуется только для сборки фронтенда; если есть каталог static/, не требуется |
| OpenClaw | Свежая версия | Каждый агент — это экземпляр OpenClaw, среда для работы агентов |
| OpenMOSS | Последняя версия | Промежуточное ПО FastAPI + база данных SQLite |
| API Key | Необходимо иметь | API-ключ для вызова LLM агентами, рекомендуется Claude или GPT |
TIP
OpenMOSS сам по себе не запускает модели ИИ, это всего лишь центр диспетчеризации. Задачи фактически выполняют экземпляры агентов на OpenClaw, каждому из которых требуется LLM API Key. Чем мощнее модель (больше контекстное окно), тем лучше эффект OpenMOSS. Рекомендуются GPT-5.3-Codex или Claude 4 и выше.
WARNING
Использование нескольких агентов кратно увеличивает расход лимитов модели. Пожалуйста, разумно настройте квоты и скорость интерфейса в конфигурации, чтобы предотвратить чрезмерные расходы.
Репозиторий GitHub: https://github.com/uluckyXH/OpenMOSS
Полная структура проекта
OpenMOSS/
├── app/ # Бэкенд FastAPI
│ ├── main.py # Точка входа: регистрация роутов, middleware, SPA сервис
│ ├── config.py # Загрузка конфигурации
│ ├── database.py # Инициализация БД (SQLAlchemy)
│ ├── models/ # Модели данных (10 таблиц)
│ ├── routers/ # API роуты
│ ├── services/ # Слой бизнес-логики
│ └── schemas/ # Модели сериализации Pydantic
├── webui/ # Исходный код Vue 3 (требует сборки)
├── static/ # Результат сборки фронтенда (обслуживается бэкендом)
├── prompts/ # Шаблоны промптов для ролей агентов
│ ├── templates/ # Базовые шаблоны ролей
│ ├── agents/ # Примеры промптов агентов
│ └── tool/ # Промпты для вызова инструментов
├── skills/ # Определение навыков (Skill) агентов OpenClaw
│ ├── task-cli.py # Скрипт вызова API, общий для всех навыков
│ ├── task-planner-skill/ # Навык Планировщика
│ ├── task-executor-skill/ # Навык Исполнителя
│ ├── task-reviewer-skill/ # Навык Рецензента
│ ├── task-patrol-skill/ # Навык Инспектора
│ └── dist/ # Скомпилированные .zip пакеты навыков
├── config.example.yaml # Шаблон файла конфигурации
├── requirements.txt # Зависимости Python
├── Dockerfile
└── docker-compose.yml
Пошаговое руководство
Шаг 1: Клонирование проекта и установка зависимостей
# Клонирование проекта
git clone https://github.com/uluckyXH/OpenMOSS.git openmoss
cd openmoss
# Установка зависимостей Python
pip install -r requirements.txt
Если в вашем репозитории нет каталога static/ (фронтенд не собран), его необходимо собрать:
cd webui
npm install
npm run build
# Копирование результатов сборки в каталог static/
rm -rf ../static/*
cp -r dist/* ../static/
cd ..
Шаг 2: Настройка config.yaml
При первом запуске OpenMOSS автоматически создаст config.yaml из config.example.yaml. Рекомендуется скопировать шаблон вручную и внести изменения:
cp config.example.yaml config.yaml
Затем отредактируйте config.yaml. Следующие поля обязательны для настройки:
# Пароль администратора (будет зашифрован после первого запуска)
admin:
password: "vash-nadezhniy-parol"
# Токен регистрации агентов (нужен при регистрации агентов, рекомендуется случайный)
agent:
registration_token: "vash-sluchayniy-token"
allow_registration: true
# Рабочая директория (место хранения результатов работы агентов)
workspace:
root: "/home/your-user/TaskWork"
# Внешний адрес сервиса (адрес, по которому агенты будут обращаться к системе)
server:
external_url: "http://vash-ip-servera:6565"
WARNING
registration_token — это входной билет для агента. Агент должен предоставить этот токен при регистрации, чтобы присоединиться. Используйте случайную строку, не оставляйте значение по умолчанию.
Шаг 3: Запуск сервиса и мастер инициализации
python -m uvicorn app.main:app --host 0.0.0.0 --port 6565
При первом запуске автоматически произойдет следующее:
- Будет создан
config.yaml(если его еще нет) - Будет инициализирована база данных SQLite (
data/tasks.db) - Автоматически подключится фронтенд (если существует каталог
static/)
Откройте в браузере http://localhost:6565. Вы будете перенаправлены к мастеру инициализации, который поможет:
- Установить пароль администратора
- Настроить название проекта
- Сгенерировать токен регистрации агентов
- Опционально настроить каналы уведомлений
По завершении отобразятся адреса сервиса:
| Адрес | Описание |
|---|---|
http://localhost:6565 | Панель управления WebUI |
http://localhost:6565/docs | Документация API Swagger |
http://localhost:6565/api/health | Проверка состояния системы |
Шаг 4: Вход в WebUI и знакомство с интерфейсом
После инициализации войдите в WebUI под учетной записью администратора. Вы увидите следующие разделы:
| Страница | Назначение |
|---|---|
| Дашборд | Обзор системы, ключевая статистика, графики трендов |
| Управление задачами | Список задач, разбиение на модули, управление подзадачами |
| Агенты | Список агентов, статус, нагрузка, история активности |
| Поток активности | Отображение вызовов API всех агентов в реальном времени |
| Рейтинг баллов | Таблица эффективности агентов, история начисления баллов |
| История проверок | Список записей аудита, фильтрация, детализация |
| Управление промптами | Просмотр и управление промптами ролей, глобальные правила |
| Настройки системы | Управление конфигурацией, смена пароля, настройки уведомлений |
При первом запуске список агентов будет пуст — мы еще никого не зарегистрировали. Начнем создание на Шаге 5.
Шаг 5: Создание четырех агентов и их регистрация в OpenClaw
Четыре роли OpenMOSS отвечают за разные задачи:
| Роль | Обязанности | Экземпляр OpenClaw |
|---|---|---|
| planner (Планировщик) | Разбор требований, создание модулей и подзадач, распределение задач | Один экземпляр |
| executor (Исполнитель) | Принятие подзадач, написание кода, сдача результатов | Несколько экземпляров |
| reviewer (Рецензент) | Проверка качества, оценка, утверждение или возврат на доработку | Один экземпляр |
| patrol (Инспектор) | Мониторинг системы, обнаружение аномалий, пометка блокировок | Один экземпляр |
Каждый агент — это, по сути, экземпляр OpenClaw. Рассмотрим создание на примере planner, для остальных ролей процесс идентичен.
Способ 1: Регистрация через WebUI (рекомендуется)
- На странице «Агенты» в WebUI нажмите «Зарегистрировать агента»
- Заполните основную информацию:
Роль: planner
Имя: OpenMOSS-Planner
Токен регистрации: (введите agent.registration_token из config.yaml)
- После отправки WebUI вернет:
- API Key агента (сохраните его, он показывается только один раз)
- Адреса для загрузки SKILL.md и task-cli.py
- Инструкцию по подключению (команда регистрации, метод настройки)
Способ 2: Регистрация через API
curl -X POST http://localhost:6565/api/agents/register \
-H "X-Registration-Token: vash-registration-token" \
-H "Content-Type: application/json" \
-d '{
"name": "OpenMOSS-Planner",
"role": "planner"
}'
Ответ будет содержать API Key, команду регистрации и ссылки на навыки:
{
"api_key": "om_xxxxxxxxxxxxxxxxxxxx",
"skill_cli_url": "http://localhost:6565/skills/task-cli.py",
"skill_url": "http://localhost:6565/skills/task-planner-skill/SKILL.md",
"register_command": "openclaw agents add ..."
}
Таким же образом зарегистрируйте остальных трех агентов:
executor → task-executor-skill
reviewer → task-reviewer-skill
patrol → task-patrol-skill
Шаг 6: Настройка навыков (Skill) агента
После успешной регистрации каждый агент получит два ключевых файла:
task-cli.py— общий скрипт вызова API OpenMOSS для всех ролей.SKILL.md— специфическое определение навыка для данной роли.
Поместите их в директорию, доступную для OpenClaw (обычно рядом с промптом агента):
# Пример директории конфигурации агента OpenClaw
mkdir -p ~/.openclaw/agents/openmoss-planner/skills
# Скачивание файлов навыков
curl -o ~/.openclaw/agents/openmoss-planner/skills/task-cli.py \
http://localhost:6565/skills/task-cli.py
curl -o ~/.openclaw/agents/openmoss-planner/skills/SKILL.md \
http://localhost:6565/skills/task-planner-skill/SKILL.md
TIP
Файлы навыков поддерживают «горячее» обновление. Если вы измените SKILL.md или task-cli.py, агент автоматически прочитает последнюю версию при следующем пробуждении, перезапуск OpenMOSS не требуется.
Затем в конфигурации агента OpenClaw добавьте путь к SKILL.md в настройки Prompt или Skill, чтобы агент знал, какие API OpenMOSS он может вызывать.
Шаг 7: Настройка cron для автоматического пробуждения
Это главное отличие OpenMOSS от обычного одиночного агента: агент не ждет вашего сообщения, а «выходит на работу» по расписанию, как сотрудник.
В конфигурации каждого агента OpenClaw установите задачу cron:
planner (Планировщик) — проверка новых задач каждые 30 минут:
{
"cron": "*/30 * * * *",
"task": "Проверить очередь задач OpenMOSS. Если есть новые нераспланированные задачи, выполнить процесс планирования."
}
executor (Исполнитель) — проверка задач на принятие каждые 15 минут:
{
"cron": "*/15 * * * *",
"task": "Проверить очередь подзадач OpenMOSS, принять в работу и выполнить."
}
reviewer (Рецензент) — проверка результатов на аудит каждые 20 минут:
{
"cron": "*/20 * * * *",
"task": "Проверить очередь проверок OpenMOSS, обработать результаты, ожидающие аудита."
}
patrol (Инспектор) — проверка состояния системы каждые 10 минут:
{
"cron": "*/10 * * * *",
"task": "Проверить состояние системы OpenMOSS, пометить заблокированные задачи, немедленно оповестить при обнаружении аномалий."
}
Рабочий процесс агента после пробуждения фиксирован:
- Вызвать API OpenMOSS для получения текущего состояния
- Выполнить соответствующие действия согласно своей роли
- Записать результаты обратно в OpenMOSS
- Перейти в режим сна до следующего пробуждения
Весь процесс не требует участия человека.
Шаг 8: Дайте первую задачу и проверьте цикл взаимодействия
В WebUI на странице «Управление задачами» нажмите «Создать задачу» и заполните:
Название задачи: Автоматическая публикация ИИ-новостей
Цель: Сбор новостей об ИИ/технологиях/гаджетах из русскоязычного интернета, перевод на английский и публикация.
Когда Планировщик (planner) проснется по cron, он:
- Получит задачу и разобьет ее на модули (Сбор → Перевод → Проверка → Публикация)
- Создаст подзадачи (sub-tasks) для каждого модуля
- Определит критерии приемки для каждой подзадачи
Когда Исполнитель (executor) проснется, он:
- Возьмет первую свободную подзадачу из очереди
- Выполнит работу (поиск новостей в сети, перевод контента)
- Отправит результат в очередь на проверку
Когда Рецензент (reviewer) проснется, он:
- Получит результат на проверку
- Оценит его согласно критериям приемки
- Если все в порядке — пометит подзадачу как выполненную; если нет — отправит исполнителю на доработку
Инспектор (patrol) постоянно мониторит систему:
- Если подзадача превышает порог времени без прогресса, он пометит ее как
blocked - Если процент отказов при проверке аномально высок, он отправит уведомление
- Если исполнитель зациклился, он уведомит администратора
Вы можете в любое время наблюдать за работой всех агентов в реальном времени на странице «Поток активности» в WebUI.
Шаг 9: Настройка каналов уведомлений
OpenMOSS поддерживает автоматические уведомления о ключевых событиях. Настройте каналы в config.yaml:
notification:
enabled: true
channels:
- "ID-группы-Lark-или-Telegram"
- "user:id-polzovatelya"
events:
- task_completed # Подзадача выполнена
- review_rejected # Отказ при проверке (доработка)
- all_done # Все подзадачи выполнены
- patrol_alert # Инспектор обнаружил аномалию
Агент прочитает настройки уведомлений через интерфейс GET /config/notification и отправит уведомление, используя свои навыки (email, мессенджеры и т.д.).
NOTE
OpenMOSS сам по себе не отправляет уведомления, он лишь сообщает агенту цель уведомления. У агента должен быть соответствующий навык (например, навык отправки сообщений в Telegram), чтобы реально доставить оповещение.
Устранение распространенных проблем
1. Ошибка регистрации агента (несовпадение registration_token)
Симптом: При регистрации агента возвращается ошибка 403 или «invalid token».
Самая частая причина — несовпадение registration_token. Проверьте две вещи:
- Значение
agent.registration_tokenвconfig.yamlOpenMOSS - Значение
X-Registration-Tokenв заголовке запроса на регистрацию агента
Они должны полностью совпадать, включая пробелы и регистр. Если вы изменили config.yaml, не забудьте перезапустить сервис OpenMOSS.
2. Задачи cron не пробуждают агента
Симптом: Агент не начинает работу автоматически, в консоли нет логов ошибок.
Порядок проверки:
- Убедитесь, что конфигурация cron на стороне OpenClaw верна — валидно ли выражение cron, понятно ли описание задачи
- Убедитесь, что экземпляр OpenClaw запущен — жив ли процесс OpenClaw, соответствующий агенту
- Проверьте валидность API Key агента — статус на странице «Агенты» в WebUI должен быть
active
Используйте страницу «Агенты» в WebUI, чтобы проверить время последней активности агента и понять, просыпался ли он по расписанию.
3. Подзадача постоянно отклоняется, возникает бесконечный цикл
Симптом: Исполнитель сдает работу, но рецензент ее постоянно отклоняет; одна и та же подзадача выполняется по кругу.
Обычно это означает, что исполнитель неверно понимает критерии приемки или сами критерии сформулированы нечетко.
Решение:
- Посмотрите в WebUI историю отказов и причину, указанную рецензентом
- Скорректируйте критерии приемки, написанные планировщиком при создании подзадачи, сделав их более конкретными и измеримыми
- Если исполнителю не хватает способностей, замените его модель на более мощную (обновите API Key в конфигурации агента OpenClaw)
4. Инспектор (patrol) не реагирует
Симптом: В системе есть заблокированные задачи, но инспектор их не помечает и не отправляет оповещения.
Проверка:
- Запущен ли экземпляр OpenClaw, соответствующий агенту patrol
- Не слишком ли велик интервал cron у инспектора (интервал
*/10гораздо чувствительнее, чем*/60) - Включен ли раздел
notificationвconfig.yamlи правильно ли настроены каналы - Есть ли у агента patrol навык для отправки уведомлений (Telegram/Email и т.д.)
5. API Key просрочен или недостаточно прав
Симптом: Агент поработал некоторое время и внезапно остановился, в логах ошибки 401 или 403.
API Key агента (начинающийся на om_xxx) — это внутренние учетные данные OpenMOSS, это не то же самое, что API Key LLM. Если в логах ошибка аутентификации LLM, значит проблема в ключе API модели агента (например, закончился баланс или отозваны права).
Решение: Обновите API Key LLM в конфигурации агента OpenClaw и перезапустите экземпляр агента.
6. Несколько исполнителей одновременно берут одну задачу
Симптом: Два исполнителя начали выполнять одну и ту же подзадачу, что приводит к дублированию работы.
Очередь задач OpenMOSS защищена атомарностью, теоретически два агента не могут одновременно занять одну подзадачу. Если это произошло:
- Интервалы cron у исполнителей слишком короткие, и они проснулись почти одновременно в микроскопическое окно времени
- Задержка обновления статуса задачи, исполнитель прочитал устаревшие (stale) данные
Решение: Немного увеличьте интервал cron у исполнителей (например, с */5 на */15), чтобы дать достаточно времени для завершения обновления статуса после каждой операции.
Дополнительное чтение / Продвинутые направления
1. Настройка промптов ролей
В каталоге prompts/ находятся шаблоны промптов для каждой роли. Вы можете изменить их, чтобы адаптировать «личность» агента под свои бизнес-задачи:
# Редактирование промпта планировщика
vim prompts/agents/planner-agent-prompt.md
# Редактирование промпта исполнителя
vim prompts/agents/executor-agent-prompt.md
После изменения промпта агент автоматически прочитает новую версию при следующем пробуждении.
2. Подключение навыка WordPress для автопубликации
В skills/wordpress-skill/ реализована возможность публикации в WordPress. Используя это вместе с исполнителем, можно добиться того, что агент будет автоматически публиковать переведенные статьи на сайт без участия человека.
Требуется настроить URL сайта и API Key WordPress:
# Просмотр инструкции по настройке навыка WordPress
cat skills/wordpress-skill/SKILL.md
3. Тюнинг системы баллов и эффективности
В OpenMOSS встроена механика баллов. Оценки рецензента напрямую влияют на рейтинг эффективности исполнителей. Вы можете просмотреть качество работы каждого агента на странице «Рейтинг баллов» в WebUI.
Чтобы сделать систему баллов строже или мягче, измените описание критериев оценки в промпте рецензента (reviewer).
4. Подключение Grok Search Skill для поиска в сети
skills/grok-search-runtime/ предоставляет возможность поиска через Grok. С этим навыком исполнитель может собирать информацию из интернета в реальном времени, переводить и публиковать ее — это основной рабочий процесс реального кейса 1M Reviews.
5. Миграция на PostgreSQL / MySQL
По умолчанию OpenMOSS использует SQLite, что подходит для небольших команд. Если требуется поддержка высокой нагрузки, можно переключиться на PostgreSQL или MySQL:
# config.yaml
database:
type: postgresql # или mysql
path: "" # оставить пустым при использовании строки подключения ниже
connection_string: "postgresql://user:pass@localhost:5432/openmoss"
6. Развертывание через Docker в один клик
Проект предоставляет Dockerfile и docker-compose.yml для быстрого развертывания всей среды:
# Запуск всех сервисов
docker-compose up -d
# Просмотр логов
docker-compose logs -f
Это упакует и запустит OpenMOSS, базу данных и фронтенд, что идеально для быстрой проверки или переноса на сервер.
7. Построение собственного конвейера производства контента
На примере кейса 1M Reviews, полный конвейер выглядит так:
- planner разбивает задачу: Сбор → Перевод → Проверка → Публикация
- executor (Сбор) собирает информацию через Grok Search Skill
- executor (Перевод) вызывает API перевода для переработки контента
- reviewer проверяет качество контента и формат
- executor (Публикация) вызывает WordPress Skill для публикации на сайте
- patrol мониторит состояние системы и мгновенно оповещает об аномалиях
Весь процесс работает полностью автономно. Вам нужно лишь задать цель в начале и принять результат в конце.