by Q00 (community) Claude Desktop, Claude Code, OpenCode, Codex CLI, Gemini CLI, Copilot, Kiro, macOS, Linux
Agent OS: агент становится умнее сам по себе через interview-gated staged evaluation и budgeted evolution loop, без утечки эталонного результата в контракт успеха. MCP-сервер, 13 runtime-сред: Claude Code, Codex CLI, Gemini CLI, OpenCode, Copilot, Kiro и другие.
MCP-сервер для доступа к актуальной документации библиотек прямо в контексте LLM. Вместо устаревших обучающих данных — …
Официальный MCP от команды Chrome DevTools: дает AI-агентам полный доступ к инструментам разработчика браузера. Автоматизация через …
Официальный MCP-сервер от Microsoft для управления браузером через Playwright. Использует accessibility tree вместо скриншотов — быстрее, …
Официальный MCP-сервер от GitHub: управление репозиториями, issues, pull requests, code search и Actions прямо из AI-агента.
# Основной способ (одна команда, всё определяется автоматически) curl -fsSL https://raw.githubusercontent.com/Q00/ouroboros/main/scripts/install.sh | OUROBOROS_INSTALL_REF=readme bash # Одноразовая настройка после установки (внутри агента-кодера или терминала) ooo setup # Альтернатива: pipx pipx install 'ouroboros-ai[mcp]' ouroboros setup # Альтернатива: Homebrew (macOS/Linux) brew tap q00/tap brew install ouroboros-ai ouroboros setup
English | Русский | 한국어 | 简体中文
◯ ─────────── ◯
O U R O B O R O S
◯ ─────────── ◯
Самообучается. Мы лишь удерживаем границы.
Пропустите инженерию промптов. Агент запускается, терпит неудачи и становится умнее с каждым поколением. Команда оценки и ожидаемый результат никогда не попадают в контракт успеха, который мы ему передаём.
Операционная система агента для воспроизводимых рабочих процессов ИИ-кодинга
Быстрый старт · Почему · Результаты · Как это работает · Команды · Философия · Руководство
curl -fsSL https://raw.githubusercontent.com/Q00/ouroboros/main/scripts/install.sh | OUROBOROS_INSTALL_REF=readme-hero bash
Установите одной командой. Затем выполните ooo setup один раз внутри вашего агента-кодера — подробности в разделе Быстрый старт.
Разные запуски, разные хосты. Разные задачи по назначению — движок общий, а не промпт
![]() Терминальный CLI — CLI для управления задачами: ouroboros init start спрашивает о порядке и объёме, затем сообщает оценку неопределённости |
![]() ChatGPT (Codex) — вызывается как интеграция для системы публикации видео: интервью, консультационные дорожки и журнал неопределённости |
![]() Claude Code — задача автоматизации YouTube, где шесть консультационных дорожек работают параллельно перед отправкой интервью |
![]() Hermes (Discord) — гоночная игра на картах, запущенная как чат-бот, завершается с Итоговая неопределённость: 0.15 |
![]() DeepSeek Harness — скрипт для работы с трендами в открытом ПО, управляемый из чата dsh: mcp__ouroboros__ouroboros_interview пошагово, результаты разветвлённой рассылки отправляются между раундами |
![]() Kiro — Kiro CLI выполняет поток интервью Ouroboros, превращая расплывчатый запрос в структурированное, тестируемое Зерно |
Превратите расплывчатую идею в проверенную, рабочую кодовую базу — в Claude Code, Codex CLI, OpenCode, Hermes, Gemini, Kiro, Copilot, Pi, Zcode, Goose, GJC, Antigravity и Grok.
Ouroboros — это ОС для агентов ИИ-кодинга: локально-ориентированный слой исполнения, который превращает недетерминированную работу агентов в воспроизводимый, наблюдаемый контракт исполнения с ограничениями политик. Он заменяет ad-hoc-промптинг структурированным рабочим процессом, основанным на спецификациях: интервьюирование, кристаллизация, исполнение, оценка, эволюция.
Как и любая ОС, Ouroboros разделён на стабильный слой ОС примитивов, прикладной слой предметных рабочих процессов и оболочку, с которой непосредственно взаимодействует пользователь. Три репозитория, один стек:
| Слой | Репозиторий | Роль | Что даёт |
|---|---|---|---|
| Оболочка (терминальный клиент) | Ouro-labs/ourocode |
Нативный терминальный интерфейс для запуска рабочих процессов ooo в одной сессии через Claude / Codex / Gemini CLI |
TUI, выбор решений wonderTool, состояние панели MCP, обнаружение команд |
| Приложения (предметные рабочие процессы) | Ouro-labs/ouroboros-plugins |
Пользовательский контракт плагинов — собирает базовые примитивы в устанавливаемые предметные программы (операции с PR, синхронизация с Jira, инциденты, релизы) | Манифест плагина, ограниченные разрешения, аудит/происхождение, примеры плагинов |
| ОС (этот репозиторий) | Q00/ouroboros |
Ядро ОС агента — Зерно, Реестр, Среда исполнения, MCP, границы безопасности | Команды ooo, движок рабочих процессов на основе спецификаций, адаптер для нескольких сред исполнения |
Как они связаны:
ourocode ──► ooo / ouroboros-plugins ──► ouroboros core (Seed · Ledger · MCP · Runtime)
shell user-level apps kernel
ouroboros) определяет контракт: каждое действие становится событием, привязанным к Зерну, записанным в Реестр и воспроизводимым — независимо от того, какая LLM его выполняет.ouroboros-plugins) объявляют ограниченные возможности в рамках этого контракта, поэтому предметные рабочие процессы (проверка PR, обработка тикета в Linear, запуск релиза) остаются аудируемыми и ограниченными политиками, а не одноразовыми промптами.Используйте ouroboros отдельно с любой поддерживаемой CLI, добавляйте плагины для предметных рабочих процессов или устанавливайте ourocode, если нужен единый терминальный интерфейс.
Отказ от ответственности. Проект Ouroboros и сообщество не связаны с криптовалютами, токенами, мемкойнами или торговыми сообществами — включая, но не ограничиваясь, любыми токенами "ouroboros" на pump.fun или других площадках запуска. Это инструмент для разработчиков с открытым исходным кодом. Мы не выпускаем, не поддерживаем и не владеем какими-либо монетами. Любой токен, заявляющий о связи с этим проектом, является несанкционированным.
Примечание по названию. Существует отдельный, не связанный с нами проект с открытым исходным кодом, также использующий название "Ouroboros" — автономный агент с самомодификацией и памятью Антона Разжигаева на
github.com/razzant/ouroboros. Нет общих исходных кодов, нет связи. Этот проект фиксирует спецификацию перед исполнением, а не переписывает собственную архитектуру; если вам нужен второй вариант, это другой проект.
Большинство попыток ИИ-кодинга проваливаются на входе, а не на выходе. Узкое место — не возможности ИИ, а ясность человека.
| Проблема | Что происходит | Решение Ouroboros |
|---|---|---|
| Расплывчатые промпты | ИИ догадывается, вы переделываете | Сократический диалог выявляет скрытые предположения |
| Нет спецификации | Архитектура меняется в процессе сборки | Неизменяемая исходная спецификация фиксирует намерения до написания кода |
| Ручное QA | "Выглядит хорошо" — не проверка | Автоматический шлюз оценки в 3 этапа |
Установка — одна команда, всё определяется автоматически:
curl -fsSL https://raw.githubusercontent.com/Q00/ouroboros/main/scripts/install.sh | OUROBOROS_INSTALL_REF=readme bash
Первая команда — откройте вашего агента кодинга с ИИ и выполните эти команды по порядку:
> ooo setup
> ooo interview "I want to build a task management CLI"
ooo setup — это одноразовый шаг конфигурации. ooo interview — первая команда рабочего процесса, запускающая сократовское интервью. После настройки Codex следует выбранной в данный момент модели, а Claude Code начинает с рекомендуемых настроек модели. Выбирайте Напрямую настроить модели только если хотите зафиксировать определённую модель для этапа; это откроет локальный экран настроек в браузере. Вернуться к этим настройкам можно в любое время с помощью ooo config.
Или из обычного терминала, без хоста агента:
$ ouroboros init start --orchestrator "I want to build a task management CLI tool"
Эта запись демонстрирует именно эту команду. Она расположена в начале страницы, чтобы вы могли увидеть инструмент до установки.

ouroboros setup refresh на одной машине. Устанавливается в те хосты, которые фактически есть на машине, в формате, ожидаемом каждым хостом: правила и навыки для Codex, навыки для Hermes, плагин и AGENTS.md для OpenCode, мосты для Pi и GJC. На вашей машине отобразятся те из тринадцати, которые у вас установлены.
Работает с Claude Code, Codex CLI, GitHub Copilot CLI, OpenCode, Hermes, Gemini, Kiro CLI, Pi CLI, Zcode, Goose, GJC, Antigravity CLI и Grok Build CLI. Установщик определяет доступные среды выполнения и регистрирует сервер MCP там, где это поддерживается хостом. Для явного выбора выполните
ouroboros setup --runtime <opencode|kiro|copilot|gemini|pi|zcode|goose|gjc|antigravity|grok>после установки. Copilot динамически обнаруживает свой каталог подписок через API моделей GitHub Copilot; выбор настроек Kiro запрашивает аутентифицированный CLI с помощьюkiro-cli chat --listmodels -f json, поэтому изменения в аккаунте и корпоративном списке разрешений появляются без жёстко закодированной таблицы моделей.Поддержка DeepSeek. Ouroboros взаимодействует с DeepSeek двумя способами. Направьте конвейер интервью/Seed/QA на собственные модели DeepSeek с помощью
--llm-backend dsh(ouroboros mcp serve --runtime claude-cli --llm-backend dshилиOUROBOROS_LLM_BACKEND=dsh) — это управляет сервером ACP DeepSeek Harness под капотом. Или действуйте наоборот: установитеdsh-ouroborosплагин (dsh plugin --profile <ваш-профиль> add "github:Q00/ouroboros#main&path:integrations/dsh-plugin") и введитеooo interview/ooo autoпрямо в чате DeepSeek Harness — те же инструментыouroboros_interview/ouroboros_autoработают в нём нативно, включая сократовские вопросы. Оба направления, включая то, что требуется для бэкендаdshпомимо одной переменной, описаны в руководстве по DeepSeek Harness.
Быстрый старт плагина Codex
Требуется codex в PATH и uvx на хосте (дескриптор MCP плагина запускает сервер с его помощью). Установите uv с помощью pipx install uv, pip install --user uv или brew install uv.
codex plugin marketplace add Q00/ouroboros
codex plugin add ouroboros@ouroboros
Запустите новый сеанс Codex, затем выполните эти команды по порядку:
ooo setup
ooo interview "Build a task management CLI"
ooo setup — это одноразовая подготовка среды выполнения. После готовности Ouroboros следует текущей модели по умолчанию в Codex; выбирайте Напрямую настроить модели только если хотите зафиксировать конкретную модель для этапа конвейера.
Быстрый старт Kiro CLI
pipx install 'ouroboros-ai[mcp]' # or: uv tool install 'ouroboros-ai[mcp]'
ouroboros setup --runtime kiro # detects Kiro CLI, registers MCP server, and
# writes OUROBOROS_RUNTIME=kiro into
# ~/.kiro/settings/mcp.json (the trusted,
# setup-managed location -- a project .env
# is untrusted input and this key is ignored there)
Затем используйте команды ooo внутри сеанса Kiro CLI.
Быстрый старт GitHub Copilot CLI
gh auth login # one-time GitHub auth (used for live model discovery)
pipx install 'ouroboros-ai[mcp]' # or: uv tool install 'ouroboros-ai[mcp]'
ouroboros setup --runtime copilot # discovers models live, picks a default,
# registers MCP server in ~/.copilot/mcp-config.json
Перезапустите сеанс Copilot CLI, затем используйте команды ooo внутри него. Сопоставление идентификаторов моделей контролируется каталогом: текущие прямые и OpenRouter Opus по умолчанию разрешаются в опубликованный Copilot claude-opus-5, в то время как устаревшие версии Anthropic конвертируют только конечный числовой разделитель и только если обнаруженный каталог содержит точного кандидата. Неизвестные идентификаторы остаются без изменений, поэтому Copilot сообщает об ошибке недоступной модели вместо молчаливого выбора другой модели. Оставьте модели ролей неустановленными, чтобы настройка записала обнаруженный идентификатор, или явно установите допустимый для Copilot идентификатор. Подробности см. в руководстве по работе с Copilot.
Полные сведения см. в руководстве по работе с GitHub Copilot CLI.
Другие способы установки
Только плагин Claude Code (без установки Python-пакета или глобального Python; хосту требуется uv, который предоставляет как uvx для MCP-сервера, так и резервный Python >= 3.12 для навыков):
claude plugin marketplace add Q00/ouroboros && claude plugin install ouroboros@ouroboros
Затем выполните ooo setup внутри сеанса Claude Code.
pip / uv / pipx:
pip install ouroboros-ai # base
pip install 'ouroboros-ai[claude]' # + default Claude Agent SDK profile (MCP 1.x)
pip install 'ouroboros-ai[claude-cli]' # + dependency-free Claude CLI worker profile
pip install 'ouroboros-ai[claude-sdk]' # + explicit alias for the Claude SDK profile
pip install 'ouroboros-ai[litellm]' # + LiteLLM multi-provider; Python 3.12-3.13
pip install 'ouroboros-ai[mcp]' # + MCP server/client support
pip install 'ouroboros-ai[tui]' # + Textual terminal UI
pip install 'ouroboros-ai[all]' # MCP 1.x app bundle; excludes the MCP 2 server
ouroboros setup # configure runtime
Установки Core и без LiteLLM поддерживают Python 3.12-3.14. Установки с LiteLLM ([litellm], [all] и исходный --extra all) поддерживают Python 3.12-3.13; используйте Python 3.13 для текущих примеров. См. Поддержка платформ.
[claude] сохраняет внутрипроцессный Agent SDK и его граф зависимостей MCP 1.x; [claude-sdk] — его явный псевдоним. Сервер MCP 2 работает в отдельной среде [mcp] и выбирает подпроцессный воркер [claude-cli], когда хостом является Claude. Никогда не устанавливайте [mcp,claude], [mcp,claude-sdk] или [all,mcp] в одном интерпретаторе. См. матрицу совместимости пакетов и миграции.
pip install 'ouroboros-ai[mcp]' допустим для встраивания библиотеки клиента/сервера MCP в уже изолированную среду Python, но регистрация хоста требует uvx --isolated --python '>=3.12' или pipx. Используйте pipx install 'ouroboros-ai[mcp]' или uv tool install 'ouroboros-ai[mcp]' перед ouroboros setup --runtime <kiro|copilot|hermes>; настройка завершается без изменения конфигурации рантайма, если ни один из изолированных загрузчиков недоступен.
Обратная совместимость: ouroboros-ai[dashboard] по-прежнему принимается как псевдоним/пустая операция для совместимости; он не устанавливает полезную нагрузку рантайма дашборда. ouroboros-ai[all] включает этот псевдоним только для совместимости.
Homebrew (macOS/Linux):
brew tap q00/tap
brew install ouroboros-ai
ouroboros setup # configure runtime
Самостоятельный tap, ещё не в homebrew-core. Устанавливает тот же пакет, что и опубликованный на PyPI.
См. руководства по работе: Claude Code · Codex CLI · Hermes · OpenCode · Kiro CLI · Gemini CLI · GitHub Copilot CLI · Zcode · Режим JSON Pi · Goose · GJC · Antigravity CLI · Grok Build CLI
Удаление
ouroboros uninstall
Удаляет всю конфигурацию, регистрацию MCP и данные. Подробности см. в UNINSTALL.md.
Требуется Python >= 3.12. Профили с LiteLLM поддерживают Python 3.12-3.13. См. Поддержка платформ и pyproject.toml. Установка в качестве MCP-сервера: используйте версию 0.51.1 или новее. Более ранние версии могут завершаться сбоем при запуске с ошибкой
Failed to reconnect to plugin:ouroboros:ouroboros: -32000, если существующая среда перекрывает профиль[mcp](#2012). Это важно, если вы устанавливаете через сторонний пакет, а не через PyPI, так как они могут отставать.
Большинство людей понимают, что были неясны, только после трёх файлов на ревью.
Если это знакомо, поставьте звезду Q00/ouroboros на GitHub, чтобы следующий человек, которому это может помочь, смог найти.
После одного цикла Уробороса расплывчатая идея превращается в верифицированную кодовую базу:
| Этап | До | После |
|---|---|---|
| Интервью | "Сделай мне CLI для задач" | 12 скрытых предположений выявлено, неопределённость снижена до 0.19 |
| Посев | Нет спецификации | Неизменяемая спецификация с критериями приёмки, онтологией, ограничениями |
| Оценка | Ручной ревью | 3-этапный фильтр: Механический (бесплатно) → Семантический → Консенсус нескольких моделей |
Что только что произошло?
interview -> Socratic questioning exposed 12 hidden assumptions
seed -> Crystallized answers into an immutable spec (Ambiguity: 0.15)
run -> Executed via Double Diamond decomposition
evaluate -> 3-stage verification: Mechanical -> Semantic -> Consensus
Используйте
ooo <команда>внутри сессии агента ИИ-кодинга илиouroboros init start,ouroboros run seed.yamlи т. д. из терминала.
Змей завершил один цикл. С каждым циклом он знает больше, чем в прошлый раз.
Инструменты ИИ-кодинга мощные — но они решают не ту проблему, когда входные данные неясны.
| Обычный ИИ-кодинг | Ouroboros | |
|---|---|---|
| Расплывчатый запрос | ИИ угадывает намерение, строит на предположениях | Сократический диалог проясняет до написания кода |
| Валидация спецификации | Нет спецификации — архитектура меняется в процессе | Неизменяемая спецификация фиксирует намерение; фильтр неопределённости (<= 0.2) блокирует преждевременное кодирование без явного флага force |
| Оценка | "Выглядит хорошо" / ручное тестирование | 3-этапный автоматический фильтр: Механический → Семантический → Консенсус нескольких моделей |
| Процент доработок | Высокий — неверные предположения всплывают поздно | Низкий — предположения выявляются на этапе интервью, а не на ревью PR |
Уроборос — змей, пожирающий собственный хвост, — это не украшение. Это сама архитектура:
Interview -> Seed -> Execute -> Evaluate
^ |
+---- Evolutionary Loop ----+
Каждый цикл не повторяется — он эволюционирует. Выход оценки становится входом для следующего поколения, пока система не поймёт, что именно она создаёт.
| Фаза | Что происходит |
|---|---|
| Интервью | Сократические вопросы выявляют скрытые предположения |
| Посев | Ответы кристаллизуются в неизменяемую спецификацию |
| Исполнение | Двойной бриллиант: Исследование → Определение → Проектирование → Реализация |
| Оценка | 3-этапный фильтр: Механический (бесплатно) → Семантический → Консенсус нескольких моделей |
| Эволюция | Вопрос "Что мы всё ещё не знаем?" → Рефлексия → следующее поколение |
"Здесь Уроборос пожирает свой хвост: выход оценки становится входом для спецификации посева следующего поколения." --
reflect.py
Сходимость достигается при сходстве онтологий >= 0.95 — когда система задала себе достаточно вопросов, чтобы прояснить всё.
ooo ralph запускает эволюционный цикл постоянно — даже за пределами сессии — до достижения сходимости. Каждый шаг не имеет состояния: EventStore восстанавливает полную родословную, поэтому даже если ваш компьютер перезагрузится, змей продолжит с того места, где остановился.
Ralph Cycle 1: evolve_step(lineage, seed) -> Gen 1 -> action=CONTINUE
Ralph Cycle 2: evolve_step(lineage) -> Gen 2 -> action=CONTINUE
Ralph Cycle 3: evolve_step(lineage) -> Gen 3 -> action=CONVERGED
+-- Ralph stops.
The ontology has stabilized.
Внутри сессий агента ИИ-кодинга используйте навыки ooo <команда>. Из терминала — CLI ouroboros.
Навык (ooo) |
Эквивалент CLI | Что делает |
|---|---|---|
ooo setup |
ouroboros setup |
Регистрация рантайма и настройка проекта (однократно) |
ooo interview |
ouroboros init start |
Сократический опрос — выявление скрытых предположений |
ooo auto |
ouroboros auto |
Цель → Качественное семя → передача исполнения с ограниченными циклами |
ooo seed |
(генерируется в ходе интервью) | Кристаллизация в неизменяемую спецификацию |
ooo run |
ouroboros run seed.yaml |
Исполнение через декомпозицию по модели Double Diamond |
ooo evaluate |
(через MCP) | Контрольный этап проверки в три стадии |
ooo evolve |
(через MCP) | Эволюционный цикл до сходимости онтологии |
ooo unstuck |
(через MCP) | 5 персон латерального мышления при блокировке |
ooo status |
ouroboros status executions / ouroboros status execution <id> |
Отслеживание сессий + (только MCP) обнаружение дрейфа |
ooo resume-session |
ouroboros resume |
Список активных сессий и повторное подключение команд |
ooo cancel |
ouroboros cancel execution [<id>|--all] |
Отмена зависших или потерянных исполнений |
ooo ralph |
(через MCP) | Постоянный цикл до подтверждения |
ooo tutorial |
(интерактивный) | Интерактивное практическое обучение |
ooo help |
ouroboros --help |
Полная справка |
ooo pm |
(через MCP) | Интервью для продакт-менеджеров + генерация PRD |
ooo qa |
(через скилл) | Универсальная проверка качества для любого артефакта |
ooo update |
ouroboros update |
Проверка обновлений + переход на последнюю версию |
ooo brownfield |
(через скилл) | Сканирование и управление настройками репозитория brownfield |
ooo publish |
(поверхность скилла/рантайма; использует CLI gh) |
Публикация семени в виде эпиков/задач GitHub для командной работы |
Не все скиллы имеют прямые аналоги в CLI. Некоторые (
evaluate,evolve,unstuck,ralph,publish) доступны через агентские скиллы, правила рантайма или инструменты MCP, а не через прямую командуouroboros <subcommand>в оболочке./resumeзарезервировано для встроенного селектора сессий Claude Code; для активных сессий Ouroboros используйтеooo resume-session. Claude Code также резервирует/run,/status,/helpи/config. Безопасные прямые формы скиллов:/ouroboros:ouroboros-run,/ouroboros:ouroboros-status,/ouroboros:ouroboros-helpи/ouroboros:ouroboros-config; привычные командыooo run,ooo status,ooo helpиooo configостаются поддерживаемыми.
Полную информацию см. в справочнике по CLI.
Девять агентов, каждый из которых представляет особый тип мышления. Загружаются по требованию, никогда не загружаются заранее:
| Агент | Роль | Ключевой вопрос |
|---|---|---|
| Сократический интервьюер | Только вопросы. Никогда не создаёт. | «Что вы принимаете за данность?» |
| Онтолог | Находит сущность, а не симптомы | «Что ЭТО на самом деле?» |
| Архитектор Замысла | Кристаллизует спецификации из диалога | «Это полно и однозначно?» |
| Оценщик | Трёхэтапная верификация | «Мы построили то, что нужно?» |
| Контраргументатор | Оспаривает каждое предположение | «А что, если верно обратное?» |
| Хакер | Находит нестандартные пути | «Какие ограничения на самом деле реальны?» |
| Упроститель | Убирает сложность | «Какое самое простое решение могло бы сработать?» |
| Исследователь | Прекращает кодить, начинает изучать | «Какие у нас есть доказательства?» |
| Архитектор | Выявляет структурные причины | «Если бы мы начали с нуля, построили бы это так же?» |
Обзор архитектуры — Python >= 3.12
src/ouroboros/
+-- bigbang/ Interview, ambiguity scoring, brownfield explorer
+-- routing/ PAL Router -- 3-tier cost optimization (1x / 10x / 30x)
+-- execution/ Double Diamond, hierarchical AC decomposition
+-- evaluation/ Mechanical -> Semantic -> Multi-Model Consensus
+-- evolution/ Wonder / Reflect cycle, convergence detection
+-- resilience/ 4-pattern stagnation detection, 5 lateral personas
+-- observability/ 3-component drift measurement, auto-retrospective
+-- persistence/ Event sourcing (SQLAlchemy + aiosqlite), checkpoints
+-- orchestrator/ Runtime abstraction layer (Claude Code, Codex CLI, OpenCode, Hermes, Gemini, Kiro, Copilot, Pi)
+-- core/ Types, errors, seed, ontology, security
+-- providers/ LiteLLM adapter (100+ models)
+-- mcp/ MCP client/server integration
+-- plugin/ Plugin system (skill/agent auto-discovery)
+-- tui/ Terminal UI dashboard
+-- cli/ Typer-based CLI
Ключевые внутренние компоненты:
- PAL Router — Экономный (1x) → Стандартный (10x) → Передовой (30x) с автоэскалацией при сбое и автопонижением при успехе
- Drift — Измерение по взвешенным параметрам: Цель (50%) + Ограничения (30%) + Онтология (20%), пороговое значение <= 0.3
- Brownfield — Автообнаружение конфигурационных файлов в экосистемах разных языков
- Эволюция — До 30 поколений, сходимость при сходстве онтологии >= 0.95
- Застой — Обнаружение зацикливания, осцилляций, отсутствия дрейфа и снижения отдачи
- ОС агентов — Воспроизводимый контракт исполнения, охватывающий обнаружение возможностей, политики, директивы, журнал событий и процессы агентов
- Бэкенды времени исполнения — Подключаемый абстракционный слой (orchestrator.runtime_backend в конфиге) с первоклассной поддержкой Claude Code, Codex CLI, OpenCode, Hermes, Gemini, Goose, Kiro, Copilot и Pi; одна и та же спецификация рабочего процесса, разные движки исполнения
Подробности см. в документе по архитектуре.
Философский движок Ouroboros
Удивление → «Как мне жить?» → «Что ЕСТЬ "жить"?» → Онтология — Сократ
Каждый великий вопрос ведёт к более глубокому вопросу — и этот более глубокий вопрос всегда онтологический: не «как мне это сделать?», а «что ЭТО на самом деле?»
Wonder Ontology
"What do I want?" -> "What IS the thing I want?"
"Build a task CLI" -> "What IS a task? What IS priority?"
"Fix the auth bug" -> "Is this the root cause, or a symptom?"
Это не абстракция ради абстракции. Когда вы отвечаете на вопрос «Что ЕСТЬ задача?» — удаляемая или архивируемая? индивидуальная или командная? — вы устраняете целый класс переделок. Онтологический вопрос — самый практичный вопрос.
Ouroboros встраивает это в свою архитектуру через Двойной Бриллиант:
* Wonder * Design
/ (diverge) / (diverge)
/ explore / create
/ /
* ------------ * ------------ *
\ \
\ define \ deliver
\ (converge) \ (converge)
* Ontology * Evaluation
Первый бриллиант — сократический: расходимся в вопросах, сходимся к онтологической ясности. Второй бриллиант — прагматичный: расходимся в вариантах дизайна, сходимся к верифицированной реализации. Каждый бриллиант требует предыдущего — нельзя спроектировать то, чего не понял.
Оценка Неоднозначности: Врата Между Удивлением и Кодом
Интервью не заканчивается, когда вы чувствуете готовность — оно заканчивается, когда математика говорит, что вы готовы. Ouroboros количественно оценивает неоднозначность как обратную величину взвешенной ясности:
Ambiguity = 1 - Sum(clarity_i * weight_i)
Каждое измерение оценивается LLM в диапазоне 0.0–1.0 (температура 0.1 для воспроизводимости), затем взвешивается:
| Измерение | Зелёное поле | Коричневое поле |
|---|---|---|
| Ясность Цели — Конкретна ли цель? | 40% | 35% |
| Ясность Ограничений — Определены ли ограничения? | 30% | 25% |
| Критерии Успеха — Измеримы ли результаты? | 30% | 25% |
| Ясность Контекста — Понятна ли существующая кодовая база? | — | 15% |
Порог: Неоднозначность <= 0.2. При превышении этого значения генерация Замысла блокируется. Явное указание force позволяет обойти блокировку, и CLI выводит этот выбор на экран рядом с кнопками «Продолжить» и «Отмена». Врата — это аргументируемый по умолчанию барьер, а не замок.
Example (Greenfield):
Goal: 0.9 * 0.4 = 0.36
Constraint: 0.8 * 0.3 = 0.24
Success: 0.7 * 0.3 = 0.21
------
Clarity = 0.81
Ambiguity = 1 - 0.81 = 0.19 <= 0.2 -> Ready for Seed
Почему 0.2? Потому что при 80% взвешенной ясности оставшиеся неизвестные достаточно малы, чтобы их можно было разрешить на уровне кода. Выше этого порога вы всё ещё гадаете на архитектуре.
Сходимость Онтологии: Когда Змей Останавливается
Эволюционный цикл не работает вечно. Он останавливается, когда последовательные поколения порождают онтологически идентичные схемы. Сходство измеряется как взвешенное сравнение полей схемы:
Similarity = 0.5 * name_overlap + 0.3 * type_match + 0.2 * exact_match
| Компонент | Вес | Что измеряется |
|---|---|---|
| Пересечение имён | 50% | Существуют ли одинаковые имена полей в обоих поколениях? |
| Совпадение типов | 30% | Имеют ли общие поля одинаковые типы? |
| Точное совпадение | 20% | Идентичны ли имя, тип И описание? |
Порог: Сходство >= 0.95 — цикл сходится и прекращает эволюцию.
Но сырое сходство — не единственный сигнал. Система также обнаруживает патологические паттерны:
| Сигнал | Условие | Что это означает |
|---|---|---|
| Застой | Сходство >= 0.95 в 3 последовательных поколениях | Онтология стабилизировалась |
| Колебания | Поколение N ~ Поколение N-2 (цикл с периодом 2) | Застряло в переключении между двумя дизайнами |
| Повторяющаяся обратная связь | >= 70% пересечения вопросов в 3 поколениях | Wonder задаёт одни и те же вопросы |
| Жёсткий лимит | Достигнуто 30 поколений | Предохранительный клапан |
Gen 1: {Task, Priority, Status}
Gen 2: {Task, Priority, Status, DueDate} -> similarity 0.78 -> CONTINUE
Gen 3: {Task, Priority, Status, DueDate} -> similarity 1.00 -> CONVERGED
Два математических ограничителя, одна философия: не строй, пока не ясно (Неоднозначность <= 0.2), не прекращай эволюцию, пока не стабильно (Сходство >= 0.95).
git clone https://github.com/Q00/ouroboros
cd ouroboros
uv sync --python 3.13 --all-groups
uv run --python 3.13 --no-sync pytest
Задачи · Обсуждения · Руководство по участию
Ouroboros распространяется под лицензией MIT и разрабатывается открыто. Если он избавил вас от лишней работы — или вы хотите, чтобы цикл продолжал эволюционировать — рассмотрите возможность спонсорства. Спонсорство напрямую финансирует поддержку, новые интеграции сред выполнения и эксклюзивный контент для спонсоров.
Каждый спонсор поддерживает эволюцию змея. Спасибо.
Эти показатели генерируются на основе данных GitHub и обновляются автоматически; кэширование может задерживать обновления.
"Начало — это конец, а конец — это начало."
Змей не повторяется — он эволюционирует.
Лицензия MIT