Ouroboros — Agent OS: интервью, неизменяемая спецификация и эволюционный цикл вместо prompt engineering
📂 Исходный код на GitHubAgent OS для AI-кодинга: локальный рантайм-слой, превращающий недетерминированную работу агента в воспроизводимый исполняемый контракт с Seed, Ledger, MCP и границами безопасности. Python, MCP-сервер, 14 поддерживаемых рантаймов.
Ouroboros — это «Agent OS» для AI-кодинга: локальный рантайм-слой, который превращает недетерминированную работу агента в воспроизводимый, наблюдаемый и привязанный к политикам исполняемый контракт. Вместо того чтобы подбирать промпты, проект заменяет ad-hoc работу структурированным spec-first воркфлоу: интервью, кристаллизация, исполнение, оценка, эволюция. Репозиторий на Python, лицензия MIT, около 6,1 тысячи звёзд.
Главная мысль README формулируется так: большинство провалов в AI-кодинге происходит не на выходе, а на входе. Узкое место — не возможности модели, а человеческая ясность.
Зачем это нужно
| Проблема | Что происходит | Решение в Ouroboros |
|---|---|---|
| Расплывчатый промпт | ИИ додумывает, вы переделываете | Сократическое интервью вскрывает скрытые допущения |
| Нет спецификации | Архитектура плывёт по ходу сборки | Неизменяемый Seed фиксирует намерение до кода |
| Ручной QA | «Выглядит нормально» — это не проверка | Трёхступенчатый автоматический гейт |
Установка
Одна команда ставит всё и сама определяет доступные рантаймы:
# macOS / Linux / WSL 2
curl -fsSL https://raw.githubusercontent.com/Q00/ouroboros/main/scripts/install.sh | OUROBOROS_INSTALL_REF=readme bash
# Windows (PowerShell 5.1+ или pwsh 7+)
irm https://raw.githubusercontent.com/Q00/ouroboros/main/scripts/install.ps1 | iex
Дальше внутри агента выполняются две команды:
> ooo setup
> ooo interview "I want to build a task management CLI"
ooo setup — разовая настройка рантайма и проекта. ooo interview запускает сократическое интервью. Из обычного терминала то же самое делается через ouroboros init start --orchestrator "...".
Команда ouroboros setup refresh ставит артефакты только в те хосты, которые реально установлены на машине: rules и skills для Codex, skills для Hermes, плагин и AGENTS.md для OpenCode, мосты для Pi и GJC.
Поддерживаются Claude Code, Codex CLI, GitHub Copilot CLI, OpenCode, Hermes, Gemini, Kiro CLI, Pi CLI, OMP CLI, Zcode, Goose, GJC, Antigravity CLI и Grok Build CLI. Установщик сам регистрирует MCP-сервер там, где хост это умеет; явный выбор — ouroboros setup --runtime <opencode|kiro|copilot|...>. Подробности по платформам и профилям Python собраны в Platform Support, подробный справочник команд — в CLI reference.
Требуется Python 3.12 или новее. Пакет публикуется на PyPI как ouroboros-ai, есть установка через pip, pipx, uv и Homebrew (brew tap q00/tap && brew install ouroboros-ai).
Цикл
Interview -> Seed -> Execute -> Evaluate
^ |
+---- Evolutionary Loop ----+
Змея, которая пожирает собственный хвост, здесь не метафора, а архитектура. Каждый цикл не повторяется, а эволюционирует: результат оценки становится входом для спецификации следующего поколения.
| Фаза | Что происходит |
|---|---|
| Interview | Сократические вопросы вскрывают скрытые допущения |
| Seed | Ответы кристаллизуются в неизменяемую спецификацию |
| Execute | Двойной ромб: Discover → Define → Design → Deliver |
| Evaluate | Трёхступенчатый гейт: Mechanical → Semantic → Consensus |
| Evolve | Wonder («Чего мы всё ещё не знаем?») → Reflect → следующее поколение |
Интервью не заканчивается, когда вы «почувствовали готовность», — оно заканчивается, когда разрешает математика. Неоднозначность считается как обратная взвешенной ясности:
Ambiguity = 1 - Sum(clarity_i * weight_i)
Для greenfield-проекта веса распределяются так: ясность цели 40%, ясность ограничений 30%, измеримые критерии успеха 30%. Для brownfield добавляется понимание существующей кодовой базы с весом 15%, а остальные доли пропорционально сжимаются. Порог — Ambiguity ≤ 0.2. Выше порога генерация Seed блокируется; пропустить гейт можно явным флагом force, и CLI показывает этот выбор рядом с продолжением и отменой.
Оценка тоже не сводится к «посмотрел глазами»:
| Ступень | Содержание |
|---|---|
| Mechanical | Бесплатные детерминированные проверки |
| Semantic | Оценка смыслового соответствия |
| Multi-Model Consensus | Согласование нескольких моделей |
Эволюция останавливается не по таймеру, а по сходимости онтологии — когда соседние поколения дают онтологически одинаковые схемы:
Similarity = 0.5 * name_overlap + 0.3 * type_match + 0.2 * exact_match
Порог — Similarity ≥ 0.95. Дополнительно система детектит четыре паттерна деградации: стагнация (сходство ≥ 0.95 три поколения подряд), осцилляцию (поколение N похоже на N−2), повторяющуюся обратную связь (пересечение вопросов ≥ 70% за три поколения) и жёсткий потолок в 30 поколений. Сходимость фиксируется, когда онтология стабилизировалась.
Команда ooo ralph гоняет эволюционный цикл персистентно, через границы сессий. Каждый шаг stateless: EventStore восстанавливает полную родословную, поэтому после перезагрузки машины змея продолжает с того же места.
Команды
Внутри агента используются навыки ooo, из терминала — CLI ouroboros.
| Навык | Что делает |
|---|---|
ooo interview |
Сократическое интервью, вскрывает скрытые допущения |
ooo auto |
Цель → Seed грейда A → передача на исполнение с ограниченными циклами |
ooo run |
Исполнение по декомпозиции двойного ромба |
ooo evaluate |
Трёхступенчатый гейт верификации |
ooo evolve |
Эволюционный цикл до сходимости онтологии |
ooo unstuck |
Пять персон латерального мышления, когда застряли |
ooo status |
Отслеживание сессий и детекция дрейфа |
ooo ralph |
Персистентный цикл до верификации |
ooo pm |
Интервью и генерация PRD для продакт-менеджеров |
ooo brownfield |
Сканирование и настройки существующих репозиториев |
Девять агентов
Девять ключевых персон выделены отдельно, ещё 12 специализированных доступны всего — 21 агент, все грузятся по требованию, без предзагрузки: Socratic Interviewer (только задаёт вопросы, никогда не пишет код), Ontologist, Seed Architect, Evaluator, Contrarian, Hacker, Simplifier, Researcher и Architect. Логика простая: Contrarian спрашивает «а что если верно обратное?», Hacker — «какие ограничения действительно реальны?», Simplifier — «что проще всего сработает?».
Под капотом
src/ouroboros/
+-- bigbang/ Интервью, оценка неоднозначности, brownfield-разведка
+-- routing/ PAL Router: оптимизация стоимости в 3 уровня
+-- evaluation/ Mechanical -> Semantic -> Multi-Model Consensus
+-- evolution/ Цикл Wonder / Reflect, детекция сходимости
+-- resilience/ 4 паттерна стагнации, 5 латеральных персон
+-- observability/ Измерение дрейфа из 3 компонентов, авторетроспектива
+-- persistence/ Event sourcing (SQLAlchemy + aiosqlite), чекпоинты
+-- orchestrator/ Слой абстракции рантаймов
+-- providers/ Адаптер LiteLLM (100+ моделей)
+-- mcp/ Интеграция MCP-клиента и сервера
+-- plugin/ Система плагинов (автообнаружение навыков и агентов)
+-- tui/ Дашборд в терминале
+-- cli/ CLI на Typer
PAL Router переключает модели по трём уровням стоимости: Frugal (1x) → Standard (10x) → Frontier (30x), с автоматической эскалацией при провале и понижением при успехе. Дрейф измеряется взвешенно: цель 50%, ограничения 30%, онтология 20%, порог ≤ 0.3. Полное описание архитектуры — в Architecture.
Стек из трёх репозиториев
Проект разложен как настоящая ОС:
| Слой | Репозиторий | Роль |
|---|---|---|
| Shell | Ouro-labs/ourocode | Нативный терминальный UI для запуска ooo по разным CLI |
| Apps | Ouro-labs/ouroboros-plugins | Плагины доменных воркфлоу: PR, Jira, инциденты, релизы |
| OS | Q00/ouroboros | Ядро: Seed, Ledger, Runtime, MCP, границы безопасности |
Ядро владеет контрактом: любое действие становится событием, привязанным к Seed, записанным в ledger и пригодным для повторения — независимо от того, какая LLM его выполнила. Плагины заявляют ограниченные права против этого контракта, поэтому доменные воркфлоу остаются аудируемыми. ourocode — терминальная оболочка, выводящая состояние MCP, вопросы интервью и решения в TUI.
Ouroboros говорит с DeepSeek в двух направлениях: либо бэкенд пайплайна переключается на модели DeepSeek через --llm-backend dsh, либо ставится плагин dsh-ouroboros и ooo interview / ooo auto работают прямо в чате DeepSeek Harness. Подробности — в гайде по DeepSeek Harness.
Заметка о названии
Существует другой, не связанный с этим проект с тем же именем — razzant/ouroboros, саморазвивающийся агент с непрерывной идентичностью. Общего кода и отношений между проектами нет. Разница в подходе принципиальная: Ouroboros фиксирует спецификацию до исполнения, а не переписывает собственную архитектуру на ходу.
Разработка ведётся открыто: CONTRIBUTING.md, лицензия MIT, документация на ouroboros.page. Полное удаление — одной командой ouroboros uninstall, подробности в UNINSTALL.md.
Источник: https://github.com/Q00/ouroboros