Ouroboros

by Q00 (community) · Claude Desktop, Claude Code, OpenCode, Codex CLI, Gemini CLI, Copilot, Kiro, macOS, Linux

MCP MCP Servers Open Source v0.51.14 · 21.08.2026 активный

Agent OS: агент становится умнее сам по себе через interview-gated staged evaluation и budgeted evolution loop, без утечки эталонного результата в контракт успеха. MCP-сервер, 13 runtime-сред: Claude Code, Codex CLI, Gemini CLI, OpenCode, Copilot, Kiro и другие.

v0.51.14
21.08.2026 current

Установка
# Основной способ (одна команда, всё определяется автоматически)
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 | Русский | 한국어 | 简体中文


◯ ─────────── ◯

Ouroboros

O U R O B O R O S

◯ ─────────── ◯

Самообучается. Мы лишь удерживаем границы.
Пропустите инженерию промптов. Агент запускается, терпит неудачи и становится умнее с каждым поколением. Команда оценки и ожидаемый результат никогда не попадают в контракт успеха, который мы ему передаём.
Операционная система агента для воспроизводимых рабочих процессов ИИ-кодинга

Звёзды на GitHub PyPI Тесты Лицензия Спонсоры на GitHub

Q00%2Fouroboros | Trendshift

Быстрый старт · Почему · Результаты · Как это работает · Команды · Философия · Руководство

curl -fsSL https://raw.githubusercontent.com/Q00/ouroboros/main/scripts/install.sh | OUROBOROS_INSTALL_REF=readme-hero bash

Установите одной командой. Затем выполните ooo setup один раз внутри вашего агента-кодера — подробности в разделе Быстрый старт.

Разные запуски, разные хосты. Разные задачи по назначению — движок общий, а не промпт

Запись терминала с интервью CLI Ouroboros, сообщающим оценку неопределённости
Терминальный CLI — CLI для управления задачами: ouroboros init start спрашивает о порядке и объёме, затем сообщает оценку неопределённости
Запись экрана приложения ChatGPT, вызывающего Ouroboros как интеграцию
ChatGPT (Codex) — вызывается как интеграция для системы публикации видео: интервью, консультационные дорожки и журнал неопределённости
Запись экрана Claude Code, выполняющего шесть консультационных дорожек Ouroboros параллельно
Claude Code — задача автоматизации YouTube, где шесть консультационных дорожек работают параллельно перед отправкой интервью
Запись экрана Discord-бота, выполняющего интервью Ouroboros и сообщающего итоговую неопределённость 0.15
Hermes (Discord) — гоночная игра на картах, запущенная как чат-бот, завершается с Итоговая неопределённость: 0.15
Запись экрана: DeepSeek Harness вызывает инструмент интервьюирования Ouroboros и отправляет результаты разветвлённой рассылки
DeepSeek Harness — скрипт для работы с трендами в открытом ПО, управляемый из чата dsh: mcp__ouroboros__ouroboros_interview пошагово, результаты разветвлённой рассылки отправляются между раундами
Ускоренная запись экрана: Kiro CLI запускает интервью Ouroboros
Kiro — Kiro CLI выполняет поток интервью Ouroboros, превращая расплывчатый запрос в структурированное, тестируемое Зерно

Превратите расплывчатую идею в проверенную, рабочую кодовую базу — в Claude Code, Codex CLI, OpenCode, Hermes, Gemini, Kiro, Copilot, Pi, Zcode, Goose, GJC, Antigravity и Grok.

Ouroboros — это ОС для агентов ИИ-кодинга: локально-ориентированный слой исполнения, который превращает недетерминированную работу агентов в воспроизводимый, наблюдаемый контракт исполнения с ограничениями политик. Он заменяет ad-hoc-промптинг структурированным рабочим процессом, основанным на спецификациях: интервьюирование, кристаллизация, исполнение, оценка, эволюция.


Стек ОС агента Ouroboros

Как и любая ОС, 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, запуск релиза) остаются аудируемыми и ограниченными политиками, а не одноразовыми промптами.
  • Ourocode — это терминальная оболочка: она отображает состояние MCP, вопросы интервью и решения wonderTool как полноценные элементы TUI, позволяя управлять ОС без отрыва от клавиатуры и переключения между CLI.

Используйте ouroboros отдельно с любой поддерживаемой CLI, добавляйте плагины для предметных рабочих процессов или устанавливайте ourocode, если нужен единый терминальный интерфейс.

Отказ от ответственности. Проект Ouroboros и сообщество не связаны с криптовалютами, токенами, мемкойнами или торговыми сообществами — включая, но не ограничиваясь, любыми токенами "ouroboros" на pump.fun или других площадках запуска. Это инструмент для разработчиков с открытым исходным кодом. Мы не выпускаем, не поддерживаем и не владеем какими-либо монетами. Любой токен, заявляющий о связи с этим проектом, является несанкционированным.

Примечание по названию. Существует отдельный, не связанный с нами проект с открытым исходным кодом, также использующий название "Ouroboros" — автономный агент с самомодификацией и памятью Антона Разжигаева на github.com/razzant/ouroboros. Нет общих исходных кодов, нет связи. Этот проект фиксирует спецификацию перед исполнением, а не переписывает собственную архитектуру; если вам нужен второй вариант, это другой проект.


Зачем нужен 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, плагин OpenCode и руководство по инструкциям, а также мосты Pi и GJC, заканчивающаяся строкой Refreshed runtime artifacts: codex, hermes, opencode, pi, gjc

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 и разрабатывается открыто. Если он избавил вас от лишней работы — или вы хотите, чтобы цикл продолжал эволюционировать — рассмотрите возможность спонсорства. Спонсорство напрямую финансирует поддержку, новые интеграции сред выполнения и эксклюзивный контент для спонсоров.

Спонсировать Q00 на GitHub

Каждый спонсор поддерживает эволюцию змея. Спасибо.


Активность

Эти показатели генерируются на основе данных GitHub и обновляются автоматически; кэширование может задерживать обновления.

Участники Активность коммитов Закрытые пулл-реквесты Последний коммит


"Начало — это конец, а конец — это начало."

Змей не повторяется — он эволюционирует.

Лицензия MIT

Войдите, чтобы оставить комментарий