Локальная динамическая мультиагентная система с оркестратором, Docker-изоляцией исполнения, постоянной памятью и восстановлением контекста из workdir.
- Единая точка входа по документации: docs/INDEX.md
- Исходный файл требований: requirements.md
python -m venv .venv
source .venv/bin/activate
pip install -e .Запуск:
lobster-orchestratorПо умолчанию настройки читаются из config/settings.yaml.
Профильные YAML-файлы (чтобы не раздувать CLI-ключи):
config/settings/base.yamlconfig/settings/dev.yamlconfig/settings/ci.yamlconfig/settings/strict.yamlconfig/settings/test.yamlconfig/settings/full_llm_docker.yaml
Запуск с отдельным файлом профиля:
lobster-orchestrator --settings ./config/settings/strict.yamlТестовый запуск:
lobster-orchestrator --settings ./config/settings/test.yamlПолноценный запуск с Docker-агентами и реальной LLM:
lobster-orchestrator --settings ./config/settings/full_llm_docker.yamlОпционально с Docker-образом для инструментов:
lobster-orchestrator --goal "Собрать MVP backend" --workdir /absolute/path/to/workdir --docker-image python:3.11-slimПодключение вспомогательного проекта в workdir через hardlink:
lobster-orchestrator --goal "Собрать MVP backend" --workdir /absolute/path/to/workdir --hardlink-source /absolute/path/to/another/project- Запускает pre-run агента-аналитика и формирует initial assignment v1 из внешнего
goal - Создаёт структуру
workdir/ai_artиworkdir/output - При повторном запуске анализирует содержимое
ai_art - Формирует RACI-роли и узкоспециализированных агентов динамически под цель
- Генерирует индивидуальные
assignmentиsystem_promptдля каждого агента - Создаёт BMAD-спеки и общий контекст в markdown
- Сохраняет память в markdown + Mem0 (если установлен)
- Создаёт задачи в формате FMA + A3
- Выполняет команды через Docker-контейнер с примонтированным
workdir - Экспортирует merged-каталог ролей в
ai_art/specs/effective_roles_catalog.{json,md} - Выполняет действия агентов: terminal-команды и Python-сниппеты (по каталогу ролей)
- Выполняет веб-поиск для агентов и сохраняет результаты в
ai_art/runtime/web_search/*
Артефакт аналитика:
ai_art/specs/analyst_initial_assignment.md
- Базовый JSON-каталог:
config/roles_catalog.json - Markdown overlay:
config/roles_catalog.md(блокиjson, приоритет выше JSON при совпаденииslug)
CLI-переопределения:
lobster-orchestrator --goal "..." --workdir /tmp/lobster-work --roles-json /path/roles.json --roles-md /path/roles.mdДля terminal-команд роли можно задавать интерактивный режим:
{
"default_terminal_commands": [
"ls -la",
{"command": "python manage.py createsuperuser", "interactive_mode": "interactive"}
]
}Явно указать YAML-файл настроек:
lobster-orchestrator --settings /path/to/settings.yamlОтключить выполнение действий агентами:
lobster-orchestrator --goal "..." --workdir /tmp/lobster-work --no-agent-actionsОтключить pre-run аналитика:
lobster-orchestrator --goal "..." --workdir /tmp/lobster-work --no-analyst-prepassПрофили запуска:
lobster-orchestrator --profile dev
lobster-orchestrator --profile ci --goal "..." --workdir /tmp/lobster-work
lobster-orchestrator --profile strict --goal "..." --workdir /tmp/lobster-workПровалидировать каталог ролей (JSON + MD overlay) и завершиться:
lobster-orchestrator --validate-catalog --roles-json ./config/roles_catalog.json --roles-md ./config/roles_catalog.mdПолитика выполнения:
- По умолчанию policy-ограничения применяются и в Docker (
unrestricted_in_docker: false) - Локально действует deny/allow policy для terminal-команд
- Python-сниппеты по умолчанию запрещены (
allow_python: false), включаются через--allow-python - Включить ограничения и в Docker принудительно:
--restricted-in-docker - Дополнить policy:
--allow-command-patternи--deny-command-pattern
Ограничения рантайма:
- Таймаут команд:
--command-timeout-sec - Docker лимиты:
--docker-cpus,--docker-memory,--docker-pids-limit,--docker-network - Hardening Docker:
--docker-read-only,--docker-user,--docker-keep-caps
Интерактивные команды (когда процесс ждёт ввод):
- При таймауте создаётся
ai_art/runtime/input_requests/<request_id>.jsonс накопленным выводом. - Повторный запуск с вводом:
lobster-orchestrator --workdir /tmp/lobster-work --resolve-input-request <request_id> --input-text "y\n"pip install -e '.[dev]'
ruff check src tests
mypy src
pytest -qРепозиторий для публичного релиза: https://github.com/yudin-s/lobster.
Перед публикацией:
- Убедиться, что в индексе git нет локальных артефактов (
__pycache__,*.egg-info,workdir/*). - Запустить проверки качества:
ruff check src tests
mypy src
pytest -q- Проверить каталог ролей:
lobster-orchestrator --validate-catalog --roles-json ./config/roles_catalog.json --roles-md ./config/roles_catalog.mdПолезные файлы для публичного репозитория:
- Лицензия: LICENSE
- Правила вклада: CONTRIBUTING.md
- Политика безопасности: SECURITY.md
- Кодекс поведения: CODE_OF_CONDUCT.md
- История изменений: CHANGELOG.md
Рекомендуемые модели для локального MacBook Pro M1 Pro (32GB unified memory):
Qwen3-InstructKIMI 2.5
Система не привязана к конкретному рантайму модели: можно использовать Ollama/vLLM/LM Studio, если endpoint доступен локально.