关于 Ouroboros
Ouroboros 是用于可重放、受策略约束的 AI 编码工作流的本地优先运行时。它帮助团队先把模糊需求转化为固定规格,再执行任务,并在受支持的编码 Agent 运行时中记录和评估过程。
主要功能
- 01苏格拉底式需求访谈
- 02执行前固定规格
- 03可重放并记录到账本的操作
- 04三阶段自动评估
- 05适配多种编码 Agent 运行时
适用场景
- 01在编码任务开始前明确范围
- 02让实现遵循固定规格
- 03重放并检查已记录的 Agent 工作
- 04通过验证关卡评估生成代码
MCP 相关
Ouroboros 会在受支持的 Agent 宿主中注册 MCP 服务,并提供访谈和工作流工具;DeepSeek Harness 集成包含 `ouroboros_interview` 和 `ouroboros_auto`。其运行时也可将 MCP 纳入执行配置。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
36收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cwd | string | 否 | 用于解析相对 seed 路径的工作目录。 |
| skip_qa | boolean | 否 | 跳过执行后的 QA 评估。默认值:false |
| seed_path | string | 否 | seed YAML 文件的路径。如果路径不存在,则将该值视为内联 seed YAML。 |
| model_tier | enum | 否 | 模型层级路由:small/medium/large → frugal/standard/frontier 执行层级(可信的已分解子任务可在低一个层级运行;重试时会升级)。省略以保留自动运行时选择;显式传入 medium 可固定为 standard 路由。small | medium | large |
| session_id | string | 否 | 用于恢复的可选会话 ID。若未提供,则会创建新会话。 |
| auto_evolve | boolean | 否 | 覆盖链式评估的 execution.auto_evolve。为 true 时,明确拒绝的评估会启动有界 Ralph 延续循环。 |
| seed_content | string | 否 | 要执行的内联 Seed YAML 内容。 |
| auto_evaluate | boolean | 否 | 为本次调用覆盖 execution.auto_evaluate。为 true 时,已完成的后台 execute_seed 运行会将正式的三阶段评估加入队列,作为单独的有界后台任务。 |
| max_iterations | integer | 否 | 执行迭代的最大次数。默认值:10 |
| efficiency_mode | enum | 否 | 执行效率策略。adaptive 可在较低成本层级启动已分解的 AC,并在恢复时升级;quality_first 会让子项保持在父项的起始层级。新启动时若省略此项,则使用配置的 execution.default_policy;否则默认为 adaptive。adaptive | quality_first |
| conductor_directive | object | 否 | 从所选 conductor 决策中原样复制的有界纠正上下文。仅适用于新后续执行。 |
| frugality_assurance | enum | 否 | 节俭保障:off、lightweight observe 或显式的 strict 基线资格。默认值取自 efficiency_mode;绝不会隐式启用 strict。off | observe | strict |
| conductor_decision_id | string | 否 | 授权新后续执行的所选 conductor 决策回执。 |
| predecessor_execution_id | string | 否 | 新后续执行所跟随的执行 ID。 |
详细介绍
◯ ─────────── ◯
O U R O B O R O S
◯ ─────────── ◯
它会自主变得更聪明。我们只负责守住底线。
无需费心设计提示词。Agent 每一代都会运行、失败并变得更聪明。我们交给它的成功标准中,绝不会包含评分命令和预期结果。
面向可重放 AI 编码工作流的 Agent OS
快速开始 · 为什么选择 Ouroboros · 成果 · 工作原理 · 命令 · 理念 · 指南
# macOS / Linux / WSL 2
curl -fsSL https://raw.githubusercontent.com/Q00/ouroboros/main/scripts/install.sh | OUROBOROS_INSTALL_REF=readme-hero bash
# Windows (PowerShell) — no Python needed; installs Git and uv for you
irm https://raw.githubusercontent.com/Q00/ouroboros/main/scripts/install.ps1 | iex
一条命令即可安装。然后在编码 Agent 中运行一次 ooo setup,详情请见快速开始。
各运行时的演示视频。
![]() 终端 CLI — 任务管理 CLI: 运行 ouroboros init start,询问排序和范围,然后报告 歧义评分 | ![]() ChatGPT (Codex) — 作为集成调用, 用于视频发布工作流程:访谈、 建议通道和歧义台账 | ![]() Claude Code — YouTube 自动化任务,在访谈提交前 并行运行六条 建议通道 | ![]() Hermes (Discord) — 卡丁车竞速游戏,通过聊天机器人运行, 最终结果为 Final ambiguity: 0.15 | ![]() DeepSeek Harness — OSS 趋势外联脚本, 通过 dsh 聊天驱动: mcp__ouroboros__ouroboros_interview逐轮运行,在轮次之间 提交扇出结果 | ![]() Kiro — Kiro CLI 运行 Ouroboros 访谈流程,将模糊请求 转化为结构化、可测试的 Seed | ![]() Antigravity — YouTube 发布自动化访谈: 询问要自动化什么,展示建议通道, 并提交所选答案 |
Ouroboros 是用于 AI 编码的 Agent OS:一个本地优先的运行时层,可将非确定性的 Agent 工作转化为可重放、可观测、受策略约束的执行契约。它用结构化、规范优先的工作流取代临时提示词:访谈、明晰化、执行、评估、演进。
Ouroboros Agent OS 技术栈
与任何 OS 一样,Ouroboros 分为稳定的OS 层(提供基础原语)、应用层(提供领域工作流),以及供人们实际操作的Shell。三个仓库,一个技术栈:
| 层 | 仓库 | 作用 | 提供的功能 |
|---|---|---|---|
| Shell(终端客户端) | Ouro-labs/ourocode | 原生终端 UI,可在一个会话中运行跨 Claude / Codex / Gemini CLI 的 ooo 工作流 | TUI、wonderTool 决策选择器、MCP 面板状态、命令发现 |
| Apps(领域工作流) | Ouro-labs/ouroboros-plugins | UserLevel 插件契约——将核心原语组合成可安装的领域程序(PR 操作、Jira 同步、事件、发布) | 插件清单、范围限定的权限、审计/来源追踪、参考插件 |
| OS(本仓库) | Q00/ouroboros | Agent OS 核心——Seed、Ledger、Runtime、MCP、安全边界 | ooo 命令、规范优先的工作流引擎、多运行时适配器 |
它们如何协同:
ourocode ──► ooo / ouroboros-plugins ──► ouroboros core (Seed · Ledger · MCP · Runtime)
shell user-level apps kernel
- 内核(
ouroboros)负责契约:无论由哪个 LLM 执行,每项操作都会成为绑定到 Seed、记录到 Ledger 且可重放的事件。 - 插件(
ouroboros-plugins)针对该契约声明范围限定的能力,因此领域工作流(审查 PR、分流 Linear 工单、运行发布流程)可保持可审计并受策略约束,而不是一次性的提示词。 - Ourocode 是终端 Shell:它将 MCP 状态、访谈问题和 wonderTool 决策作为一等 TUI 元素呈现,让你无需离开键盘或在 CLI 之间切换即可操作 OS。
你可以单独将 ouroboros 与任何受支持的 CLI 搭配使用;为领域工作流叠加插件;或者在需要统一的终端驾驶舱时安装 ourocode。
免责声明。 Ouroboros 项目及其社区与任何加密货币、代币、迷因币或交易社区均无关联,包括但不限于 pump.fun 或其他发行平台上名为“ouroboros”的任何代币代码。这是一款开源开发者工具。我们不发行、认可或持有任何币。任何声称与本项目有关联的代币均未经授权。
名称说明。 另有一个独立、互不关联的开源项目也使用“Ouroboros”这个名称——Anton Razzhigaev 的自我修改、自主记忆 Agent,位于
github.com/razzant/ouroboros。双方没有共享代码,也不存在关联。本项目会在执行前锁定规范,而不是重写自身架构;如果你要找的是后者,那是另一个项目。
为什么选择 Ouroboros?
大多数 AI 编码失败在输入端,而不是输出端。瓶颈不在 AI 能力——而在于人类表达是否清晰。
| 问题 | 会发生什么 | Ouroboros 的解决方案 |
|---|---|---|
| 提示词模糊 | AI 猜测,你返工 | 苏格拉底式访谈揭示隐藏假设 |
| 没有规范 | 架构在构建过程中逐渐偏移 | 不可变的种子规范在编码前锁定意图 |
| 手动 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+ or pwsh 7+) — nothing to install first
irm https://raw.githubusercontent.com/Q00/ouroboros/main/scripts/install.ps1 | iex
Windows 安装程序会在系统缺少 Git 和 uv 时通过 winget 安装它们,
让 uv 下载其自带的 Python,然后安装 ouroboros-ai 并配置检测到的宿主。
原生 Windows 支持仍处于实验阶段,Codex CLI 需要 WSL 2;请参阅
平台支持。
首条命令——打开你的 AI 编码 Agent,并按顺序运行以下命令:
> ooo setup
> ooo interview "I want to build a task management CLI"
ooo setup 是一次性配置步骤。ooo interview 是首个工作流命令,会启动苏格拉底式访谈。完成设置后,Codex 会使用当前选定的模型,而 Claude Code 会采用推荐的模型设置。仅当你想为某个阶段固定指定模型时,才选择 直接配置模型;这会在浏览器中打开本地设置页面。你可以随时通过 ooo config 返回这些设置。
也可以在普通终端中运行,不需要 Agent 宿主:
$ ouroboros init start --orchestrator "I want to build a task management CLI tool"
这段录屏展示的正是这条命令。它放在页面顶部,让你在安装前就能看到这个工具。
在一台机器上运行 ouroboros setup refresh。它会安装到该机器实际拥有的宿主中,并采用各宿主所需的形式:Codex 使用规则和技能,Hermes 使用技能,OpenCode 使用插件和 AGENTS.md,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|gemini|pi|omp|zcode|goose|gjc|antigravity|grok>。Copilot 会通过 GitHub Copilot models API 实时发现订阅目录;Kiro 的设置选择器会使用经过身份验证的 CLI 执行kiro-cli chat --listmodels -f json进行查询,因此账户和企业允许列表的变更会立即显示,无需硬编码模型表。
DeepSeek 支持。 Ouroboros 通过两种方式支持 DeepSeek。使用 DeepSeek 自有模型驱动访谈/Seed/QA 流水线时,可指定
--llm-backend dsh(ouroboros mcp serve --runtime claude-cli --llm-backend dsh,或OUROBOROS_LLM_BACKEND=dsh)——底层会驱动 DeepSeek Harness 的 ACP 服务。也可以反向使用:安装dsh-ouroboros插件(dsh plugin --profile <your-profile> add "github:Q00/ouroboros#main&path:integrations/dsh-plugin"),然后在 DeepSeek Harness 聊天中直接输入ooo interview/ooo auto——相同的ouroboros_interview/ouroboros_auto工具会原生运行于其中,包含苏格拉底式提问。两种方式的说明,以及dsh后端除该变量外的其他要求,都可参阅 DeepSeek Harness 指南。
Codex 插件快速入门
宿主需要在 PATH 中提供 codex 和 uvx(插件的 MCP 描述符会使用它启动服务)。
可通过 pipx install uv、
pip install --user uv 或 brew install uv 安装 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)
然后在 Kiro CLI 会话中使用 ooo 命令。
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 命令。模型 ID 映射受目录限制:如果目录中存在该 ID,先前固定的直接版和 OpenRouter Opus 5 会解析为 claude-opus-5;当前 Anthropic API 固定项只会转换末尾的数字分隔符,并且仅当已发现的目录中包含完全匹配的候选项时才会转换。未知 ID 保持不变,以便 Copilot 明确报告模型不可用错误,而不是悄悄选择其他模型。将角色模型留空,设置程序会写入一个已发现的 ID;也可以显式设置有效的 Copilot ID。请参阅 Copilot 运行时指南。
完整详情请参阅 GitHub Copilot CLI 运行时指南。
其他安装方法
仅安装 Claude Code 插件(无需安装 Python 包或全局 Python;宿主需要 uv,它同时提供用于 MCP 服务的 uvx 和技能所需的 Python >= 3.12 回退方案):
claude plugin marketplace add Q00/ouroboros && claude plugin install ouroboros@ouroboros
然后在 Claude Code 会话中运行 ooo setup。
pip / uv / pipx:
pip install 'ouroboros-ai[mcp,tui]' && ouroboros setup --runtime claude-cli # recommended MCP v2 default
pip install 'ouroboros-ai[claude]' # Claude Agent SDK profile (MCP 1.x, isolated)
pip install 'ouroboros-ai[claude-cli]' # dependency-free Claude CLI worker
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 v2 server/client without the GUI
pip install 'ouroboros-ai[tui]' # settings GUI only
pip install 'ouroboros-ai[all]' # MCP 1.x app bundle; excludes MCP 2 by design
ouroboros setup # configure runtime
核心安装和非 LiteLLM 安装支持 Python 3.12-3.14。包含 LiteLLM 的安装([litellm]、[all] 和源码 --extra all)支持 Python 3.12-3.13;当前示例请使用 Python 3.13。请参阅平台支持。
推荐的独立安装方式是先安装 ouroboros-ai[mcp,tui],然后显式选择兼容 MCP v2 的运行时。示例使用 --runtime claude-cli;可替换为其他兼容运行时,例如 codex、opencode、hermes、gemini、goose、kiro、copilot、pi 或 gjc。仅在隔离的 MCP 1.x 环境中使用 [claude] 和 [claude-sdk]。
在已隔离的 Python 环境中嵌入 MCP 客户端/服务库时,pip install 'ouroboros-ai[mcp]' 是有效的;但注册宿主需要使用 uvx --isolated --python '>=3.12' 或 pipx。在运行 ouroboros setup --runtime <claude-cli|codex|opencode|hermes|gemini|goose|kiro|copilot|pi|gjc> 之前,请先运行 pipx install 'ouroboros-ai[mcp]' 或 uv tool install 'ouroboros-ai[mcp]';如果这两种隔离式启动器均不可用,setup 将退出且不会更改运行时配置。
旧版兼容性: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 · Pi JSON 模式 · OMP (Oh My Pi) · Goose · GJC · Antigravity CLI · Grok Build CLI
多数人要等到审查了三个文件,才发现自己没把需求说清楚。
如果你也有这种感觉,请在 GitHub 上为 Q00/ouroboros 点个星,让它能帮助到的下一个人找到它。
你将获得什么
经过一轮 Ouroboros 循环,模糊的想法就会变成经过验证的代码库:
| 步骤 | 之前 | 之后 |
|---|---|---|
| 访谈 | “给我构建一个任务 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
在 AI 编码 Agent 会话中使用
ooo <cmd>,或在终端中运行ouroboros init start、ouroboros run seed.yaml等命令。
这条蛇完成了一轮循环。每循环一轮,它都比上一轮更了解情况。
对比
AI 编码工具功能强大——但输入不明确时,它们解决的是错误的问题。
| 普通 AI 编码 | Ouroboros | |
|---|---|---|
| 模糊的提示词 | AI 猜测意图,并基于假设构建 | 苏格拉底式访谈在编写代码之前迫使需求变清晰 |
| 规范验证 | 没有规范——架构在构建过程中逐渐偏离 | 不可变的种子规范锁定意图;模糊度关卡(<= 0.2)会在未明确指定 force 时阻止过早编写代码 |
| 评估 | “看起来不错”/人工 QA | 3 阶段自动化关卡:机械 -> 语义 -> 多模型共识 |
| 返工率 | 高——错误假设到后期才暴露 | 低——假设在访谈中暴露,而非 PR 审查时 |
循环
衔尾蛇——吞食自己尾巴的蛇——并非装饰。它就是架构:
Interview -> Seed -> Execute -> Evaluate
^ |
+---- Evolutionary Loop ----+
每一轮循环都不是重复,而是在进化。评估的输出会作为下一轮生成的输入反馈回来,直到系统真正了解自己正在构建什么。
| 阶段 | 发生的事情 |
|---|---|
| 访谈 | 苏格拉底式提问揭示隐藏的假设 |
| 种子 | 答案凝结为不可变的规范 |
| 执行 | 双钻模型:发现 -> 定义 -> 设计 -> 交付 |
| 评估 | 三阶段关卡:机械($0)-> 语义 -> 多模型共识 |
| 进化 | 探问 (“我们还有什么不知道?”) -> 反思 -> 下一代 |
“衔尾蛇在此处吞食自己的尾巴:评估的输出 会成为下一代种子规范的输入。” --
reflect.py
当本体相似度 >= 0.95 时,即达到收敛——这意味着系统通过自我质询获得了清晰的认识。
Ralph:永不停歇的循环
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.
命令
在 AI 编码 Agent 会话中,使用 ooo <cmd> 技能。在终端中,使用 ouroboros CLI。
技能(ooo) | CLI 等效命令 | 功能说明 |
|---|---|---|
ooo setup | ouroboros setup | 注册运行时并配置项目(一次性) |
ooo interview | ouroboros init start | 苏格拉底式提问——揭示隐藏的假设 |
ooo auto | ouroboros auto | 目标 → A 级 Seed → 带界限循环的执行交接 |
ooo seed | (由 interview 生成) | 凝练为不可变规范 |
ooo run | ouroboros run seed.yaml | 通过双钻石分解执行 |
ooo evaluate | (通过 MCP) | 3 阶段验证关卡 |
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) | 面向 PM 的访谈 + PRD 生成 |
ooo qa | (通过技能) | 对任意制品给出通用 QA 结论 |
ooo update | ouroboros update | 检查更新并升级至最新版本 |
ooo brownfield | (通过技能) | 扫描并管理 brownfield 仓库/工作树默认设置 |
ooo publish | (技能/运行时接口;使用 gh CLI) | 将 Seed 发布为 GitHub Epic/Task issues,供团队工作流使用 |
并非所有技能都有直接的 CLI 等效命令。有些(
evaluate、evolve、unstuck、ralph、publish)通过 Agent 技能、运行时规则或 MCP 工具提供,而不是通过直接的ouroboros <subcommand>shell 命令提供。/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 参考。
九种思维
以下是 9 个重点介绍的 Agent,另有 12 个可用的专用 Agent(共 21 个)。所有 Agent 均按需加载,绝不预加载:
| Agent | 角色 | 核心问题 |
|---|---|---|
| 苏格拉底式访谈者 | 只提问,从不构建。 | “你在假设什么?” |
| 本体论学家 | 探寻本质,而非症状 | “这究竟是什么?” |
| 种子架构师 | 通过对话凝练规格 | “这些内容完整且明确吗?” |
| 评估者 | 三阶段验证 | “我们构建的是正确的东西吗?” |
| 唱反调者 | 质疑每一个假设 | “如果事实恰恰相反呢?” |
| 黑客 | 寻找非常规路径 | “哪些限制才是真实存在的?” |
| 简化者 | 消除复杂性 | “能奏效的最简单方案是什么?” |
| 研究员 | 停止编码,开始调查 | “我们实际掌握了哪些证据?” |
| 架构师 | 找出结构性原因 | “如果从头开始,我们会这样构建吗?” |
内部机制
架构概览 -- Python >= 3.12
src/ouroboros/
+-- bigbang/ Interview, ambiguity scoring, brownfield explorer
+-- router/ PAL Router -- 3-tier cost optimization (1x / 10x / 30x)
+-- execution/ (deprecated — logic moved to orchestrator/ and mcp/tools/)
+-- 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, OMP, GJC, Goose, Antigravity, Grok, Zcode)
+-- 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 -- 依次使用 Frugal(1x)-> Standard(10x)-> Frontier(30x),失败时自动升级,成功时自动降级
- 漂移 -- 对目标(50%)+ 约束(30%)+ 本体(20%)进行加权测量,阈值 <= 0.3
- 既有项目 -- 自动检测多个语言生态系统中的配置文件
- 演进 -- 最多 30 代,当本体相似度 >= 0.95 时收敛
- 停滞 -- 检测循环、振荡、无漂移和收益递减等模式
- Agent OS 运行时 -- 在能力发现、策略、指令、事件日志和 Agent 进程之间提供可重放的执行契约
- 运行时后端 -- 可插拔的抽象层(
orchestrator.runtime_backend配置),一流支持runtime_backend_choices()返回的所有规范后端,包括 GJC、Antigravity、Grok 和 Zcode;工作流规范相同,执行引擎不同
完整设计文档请参阅架构。
从惊奇到本体论
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)
大模型会为每个维度打 0.0-1.0 分(温度为 0.1,以确保结果可复现),然后进行加权:
| 维度 | Greenfield | Brownfield |
|---|---|---|
| 目标清晰度 -- 目标是否具体? | 40% | 35% |
| 约束清晰度 -- 是否明确了限制条件? | 30% | 25% |
| 成功标准 -- 结果是否可衡量? | 30% | 25% |
| 上下文清晰度 -- 是否理解现有代码库? | -- | 15% |
阈值:模糊度 <= 0.2。 高于此值的分数会阻止 Seed 生成。显式传入 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% 时,剩余的未知因素足够少,可以通过代码层面的决策来解决。超过此阈值,你仍然是在猜测架构。
本体收敛:巨蛇何时停止
演化循环不会无限运行。当连续几代生成的 schema 在本体上完全相同时,循环就会停止。相似度通过对 schema 字段进行加权比较来衡量:
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 的循环) | 陷入两种设计之间来回摆动 |
| 反馈重复 | 3 代中的问题重叠率 >= 70% | 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 License
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。






