mcpField
O
Ouroboros

Ouroboros

本地服务
github.com/Q00AI 与智能体6.3k1 天前更新

关于 Ouroboros

Ouroboros 是用于可重放、受策略约束的 AI 编码工作流的本地优先运行时。它帮助团队先把模糊需求转化为固定规格,再执行任务,并在受支持的编码 Agent 运行时中记录和评估过程。

主要功能

  1. 01苏格拉底式需求访谈
  2. 02执行前固定规格
  3. 03可重放并记录到账本的操作
  4. 04三阶段自动评估
  5. 05适配多种编码 Agent 运行时

适用场景

  1. 01在编码任务开始前明确范围
  2. 02让实现遵循固定规格
  3. 03重放并检查已记录的 Agent 工作
  4. 04通过验证关卡评估生成代码

MCP 相关

Ouroboros 会在受支持的 Agent 宿主中注册 MCP 服务,并提供访谈和工作流工具;DeepSeek Harness 集成包含 `ouroboros_interview` 和 `ouroboros_auto`。其运行时也可将 MCP 纳入执行配置。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"q00-ouroboros": {
"command": "uvx",
"args": [
"ouroboros-ai"
]
}
}
}
启动命令uvx ouroboros-ai

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiouroboros-ai0.51.5

工具

36

收录的工具列表 · 更新于 2 周前

参数类型必填说明
cwdstring否用于解析相对 seed 路径的工作目录。
skip_qaboolean否跳过执行后的 QA 评估。默认值:false
seed_pathstring否seed YAML 文件的路径。如果路径不存在,则将该值视为内联 seed YAML。
model_tierenum否模型层级路由:small/medium/large → frugal/standard/frontier 执行层级(可信的已分解子任务可在低一个层级运行;重试时会升级)。省略以保留自动运行时选择;显式传入 medium 可固定为 standard 路由。small | medium | large
session_idstring否用于恢复的可选会话 ID。若未提供,则会创建新会话。
auto_evolveboolean否覆盖链式评估的 execution.auto_evolve。为 true 时,明确拒绝的评估会启动有界 Ralph 延续循环。
seed_contentstring否要执行的内联 Seed YAML 内容。
auto_evaluateboolean否为本次调用覆盖 execution.auto_evaluate。为 true 时,已完成的后台 execute_seed 运行会将正式的三阶段评估加入队列,作为单独的有界后台任务。
max_iterationsinteger否执行迭代的最大次数。默认值:10
efficiency_modeenum否执行效率策略。adaptive 可在较低成本层级启动已分解的 AC,并在恢复时升级;quality_first 会让子项保持在父项的起始层级。新启动时若省略此项,则使用配置的 execution.default_policy;否则默认为 adaptive。adaptive | quality_first
conductor_directiveobject否从所选 conductor 决策中原样复制的有界纠正上下文。仅适用于新后续执行。
frugality_assuranceenum否节俭保障:off、lightweight observe 或显式的 strict 基线资格。默认值取自 efficiency_mode;绝不会隐式启用 strict。off | observe | strict
conductor_decision_idstring否授权新后续执行的所选 conductor 决策回执。
predecessor_execution_idstring否新后续执行所跟随的执行 ID。

详细介绍

English | 한국어 | 简体中文


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

衔尾蛇

O U R O B O R O S

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

它会自主变得更聪明。我们只负责守住底线。
无需费心设计提示词。Agent 每一代都会运行、失败并变得更聪明。我们交给它的成功标准中,绝不会包含评分命令和预期结果。
面向可重放 AI 编码工作流的 Agent OS

GitHub 星标 PyPI 测试 许可证 GitHub 赞助者

Q00%2Fouroboros | Trendshift

快速开始 · 为什么选择 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,详情请见快速开始。

各运行时的演示视频。

ouroboros CLI 面试的终端录屏,显示歧义评分
终端 CLI
— 任务管理 CLI:
运行 ouroboros init start,询问
排序和范围,然后报告
歧义评分

                                                                               
ChatGPT 应用将 Ouroboros 作为集成调用的屏幕录制
ChatGPT (Codex)
— 作为集成调用,
用于视频发布工作流程:访谈、
建议通道和歧义台账

                                                                               
Claude Code 并行运行六条 Ouroboros 访谈建议通道的屏幕录制
Claude Code
— YouTube 自动化任务,在访谈提交前
并行运行六条
建议通道

                                                                               
Discord 机器人运行 Ouroboros 访谈并报告最终歧义值 0.15 的屏幕录制
Hermes (Discord)
— 卡丁车竞速游戏,通过聊天机器人运行,
最终结果为 Final ambiguity: 0.15

                                                                              
DeepSeek Harness 调用 Ouroboros 访谈工具并提交建议扇出结果的屏幕录制
DeepSeek Harness
— OSS 趋势外联脚本,
通过 dsh 聊天驱动:
mcp__ouroboros__ouroboros_interview
逐轮运行,在轮次之间
提交扇出结果

                                                                               
Kiro CLI 运行 Ouroboros 访谈的 10 倍速屏幕录制
Kiro
— Kiro CLI 运行 Ouroboros
访谈流程,将模糊请求
转化为结构化、可测试的 Seed

                                                                                
Antigravity 运行 Ouroboros 访谈并提交所选答案的屏幕录制
Antigravity
— YouTube 发布自动化访谈:
询问要自动化什么,展示建议通道,
并提交所选答案

                                                                              
**在 Claude Code、Codex CLI、OpenCode、Hermes、Gemini、Kiro、Copilot、Pi、OMP、Zcode、Goose、GJC、Antigravity 和 Grok 中,将模糊想法转化为经过验证、可正常运行的代码库。**

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-pluginsUserLevel 插件契约——将核心原语组合成可安装的领域程序(PR 操作、Jira 同步、事件、发布)插件清单、范围限定的权限、审计/来源追踪、参考插件
OS(本仓库)Q00/ouroborosAgent 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 插件和指引文档,以及 Pi 和 GJC 桥接程序,最后显示 Refreshed runtime artifacts: codex, hermes, opencode, pi, gjc

在一台机器上运行 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

卸载
ouroboros uninstall

移除所有配置、MCP 注册和数据。详情请参阅 UNINSTALL.md。

> **需要 Python >= 3.12。** 包含 LiteLLM 的配置文件支持 Python 3.12-3.13。请参阅[平台支持](./docs/platform-support.md#python-profile-matrix)和 [pyproject.toml](./pyproject.toml)。 > > **作为 MCP 服务安装:请使用 0.51.1 或更高版本。** 如果现有环境遮蔽了 `[mcp]` 配置文件,较早版本可能会在启动时失败,并显示 `Failed to reconnect to plugin:ouroboros:ouroboros: -32000`([#2012](https://github.com/Q00/ouroboros/issues/2012))。如果你通过下游软件包而非 PyPI 安装,这一点尤其重要,因为下游软件包可能会滞后。

多数人要等到审查了三个文件,才发现自己没把需求说清楚。
如果你也有这种感觉,请在 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 时阻止过早编写代码
评估“看起来不错”/人工 QA3 阶段自动化关卡:机械 -> 语义 -> 多模型共识
返工率高——错误假设到后期才暴露低——假设在访谈中暴露,而非 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 setupouroboros setup注册运行时并配置项目(一次性)
ooo interviewouroboros init start苏格拉底式提问——揭示隐藏的假设
ooo autoouroboros auto目标 → A 级 Seed → 带界限循环的执行交接
ooo seed(由 interview 生成)凝练为不可变规范
ooo runouroboros run seed.yaml通过双钻石分解执行
ooo evaluate(通过 MCP)3 阶段验证关卡
ooo evolve(通过 MCP)持续进化循环,直至本体收敛
ooo unstuck(通过 MCP)遇到卡点时启用 5 种横向思维角色
ooo statusouroboros status executions / ouroboros status execution <id>会话跟踪 +(仅限 MCP)偏移检测
ooo resume-sessionouroboros resume列出进行中的会话并重新附加命令
ooo cancelouroboros cancel execution [<id>|--all]取消卡住或孤立的执行
ooo ralph(通过 MCP)持续循环,直至验证通过
ooo tutorial(交互式)交互式动手学习
ooo helpouroboros --help完整参考
ooo pm(通过 MCP)面向 PM 的访谈 + PRD 生成
ooo qa(通过技能)对任意制品给出通用 QA 结论
ooo updateouroboros 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,以确保结果可复现),然后进行加权:

维度GreenfieldBrownfield
目标清晰度 -- 目标是否具体?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 上赞助 Q00

每位赞助者都在助力巨蛇持续演化。谢谢。


活动

这些数据根据 GitHub 数据生成并自动刷新;缓存可能会导致更新延迟。

贡献者 提交活动 已关闭的拉取请求 最近一次提交


“开始即是结束,结束亦是开始。”

蛇不会重复,而是不断进化。

MIT License

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。