关于 auto
Ouroboros 技能可从任务描述启动自动化流程,依次进行访谈、生成和审查 Seed,并在 Seed 达到质量门槛后执行。支持恢复会话和后台任务监控。
主要功能
- 01有界苏格拉底式访谈
- 02生成并修复 Seed
- 03Seed 审查通过后执行
- 04可恢复的自动会话
- 05后台任务监控
适用场景
- 01将任务描述转为经审查的 Seed
- 02恢复超时的流程
- 03跟踪自动执行
MCP 相关
需要 Ouroboros MCP 工具来启动和管理自动流程、监控任务并获取结果。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ q00/ ouroboros --skill auto安装后在 Claude Code 中输入/auto确认已加载。
详细介绍
/ouroboros:auto
根据单条任务描述运行完整质量的自动化流水线。
调度要求
必须通过调用 MCP 工具 ouroboros_start_auto 执行此技能。不要手动检查代码库、运行 shell 命令、查询 GitHub、编辑文件,也不要以其他方式模拟自动化流水线。后台启动器会快速返回 job_id 和 auto_session_id;请保留这两个值。如果 ouroboros_start_auto 或必需的任务等待/结果工具不可用,请停止并报告所需的 MCP 工具不可用。手动回退不属于 ooo auto 运行。
如果启动的自动任务返回 detached、blocked、failed 或其他自动会话状态,请报告该状态和工具指出的阻碍因素。detached 表示非终止的受跟踪后台工作:请提供任务/Ralph 句柄,并由同一所有者持续观察。不要将 blocked 或 failed 结果称为 MCP 调度失败;只有无法调用 MCP 工具才算调度失败。
返回 job_id 后不要停止:保持对话体验,委派监控(见下文),也绝不要让用户自行调用任务工具。用户不应需要手动轮询任务。
每次调用 ouroboros_* 之前,必须立即使用当前运行时的工具发现能力加载其架构(例如,为 ouroboros_start_auto 使用 "+ouroboros auto",为 Synapse 工具使用 "+ouroboros session signal");先前轮次加载的架构可能已失效。对于已可调用的工具,空结果是正常的。
用法
ooo auto "Build a local-first habit tracker CLI"
ooo auto --resume auto_abc123
ooo auto "Build a local-first habit tracker CLI" --skip-run
/ouroboros:auto "Build a local-first habit tracker CLI"
ooo auto 不接受父级 Seed,也不会从目标描述中推断谱系(目标中提到的 Seed 只是普通上下文);绝不要声称保留了谱系或 AC 编辑范围。父级演进请使用 ooo evolve,已有 Seed 请使用 ooo run。
CLI 标志 → MCP 参数转换
调用 ouroboros_start_auto 之前,将聊天中输入的 CLI 风格标志转换为:
| CLI 标志 | MCP 参数 | 类型 |
|---|---|---|
--skip-run | skip_run=true | 布尔值 |
--max-interview-rounds N | max_interview_rounds=N | 整数 |
--max-repair-rounds N | max_repair_rounds=N | 整数 |
--pipeline-timeout-seconds X | pipeline_timeout_seconds=X | 数字 |
--efficiency-mode adaptive|quality_first | efficiency_mode=<value> | 字符串 |
--frugality-assurance off|observe|strict | frugality_assurance=<value> | 字符串 |
--resume <id> | resume=<id> | 字符串 |
--max-generations属于ooo ralph,不属于ooo auto。--complete-product已弃用,会被忽略(运行任务负责整个流程)。--pipeline-timeout-seconds仅在全新启动时接受;与--resume同用时会被拒绝,因为原始截止时间会保留。- 仅限 CLI 的
--show-ledger标志会打印假设/非目标;MCP 响应在有摘要时已包含该账本摘要。
全新启动前,除非用户主动提及效率策略,或 ~/.ouroboros/config.yaml 中的 execution.default_policy 明确设置为 ask,否则不要询问效率策略。其他情况下省略这两个参数:服务端会应用已配置的默认值(未配置时为质量优先),启动回执会注明当前运行策略和更改命令;请转述该行一次。如果用户确实做出了选择,或配置为 ask,则按结果导向的表述映射其选择:高效执行对应 adaptive/observe;质量优先执行对应 quality_first/off。strict 保障是单独的显式选择,因为它可能会增加证明环节的工作量;绝不要自行推断。在恢复运行时,不要发送这两个参数;Auto 会恢复已持久化的约定。
行为
- 启动自动会话,并进行有界的苏格拉底式访谈轮次,自动回答会标注来源。
- 生成 Seed,然后持续审核和修复,直到达到 A 级(通过 Seed 审核)或被阻止。
- 只有达到 A 级后才启动执行(除非设置了
skip_run)。只要运行任务有了持久句柄,自动流程就会达到COMPLETE;随后运行任务会根据execution.auto_evaluate/execution.auto_evolve(二者默认为true)自行执行run → evaluate → ralph链。自动流程本身不会评估运行任务。 - 每个循环都有上限,超时后会返回可恢复的
auto_session_id:使用ooo auto --resume <auto_session_id>恢复。串联的 Ralph 受execution.auto_evolve_max_generations限制(默认为 3),每一代都受 Ralph 单次迭代超时限制,但整个链没有总墙钟时间上限,自动流程截止时间(--pipeline-timeout-seconds,CLI--timeout)也不会限制它。
预检阻塞。 seed_preflight_unexecutable 表示必须启动新会话,而不能使用 --resume:会话中的 Seed 不可变,因此请根据显示的问题修改目标/Seed 契约,并启动新的 ooo auto 会话(被阻塞的会话会保留以供审计)。访谈、评估器或横向工具暂时耗尽则不同:提供方恢复正常后,继续恢复同一会话。
后台监控
-
移交。 转达服务端的启动回执(句柄、运行时/执行框架、LLM 后端、效率和节俭设置)。如果存在
response.meta.dashboard_url,则展示它;否则提及一次ouroboros tui open。说明此对话仍可用于完善、只读审查、明确控制,或在隔离工作树中处理无关任务;在活动自动工作区中写入之前,先检查是否与工作线程的文件重叠。 -
委派给且仅委派给一个观察者。 启动结果包含只读观察者契约
response.meta.job_observer。如果缺少结构化 meta,则从最终的 `` 内容哨兵中恢复;若以下条件未全部满足,则必须安全失败:哨兵恰好有一个,且位于文本末尾;有界负载解码后是一个仅含job_observer键的对象;该契约通过规范的 v1 验证(它必须与服务端根据自身的job_id、cursor、session_id、execution_id和follow_result_job_keys构建的 v1 契约逐字段相等,因此任何工具、参数或指令的变更,或任何额外字段,都会导致验证失败);其任务/会话身份与可见启动回执一致;且它与任何结构化契约均无差异。绝不能根据可见 ID 重建契约。契约有效且存在独立子会话原语时,通过活动运行时的
orchestrate_subagents能力恰好启动一个观察者,并原样传递该契约。观察者负责维护游标、等待任务进入终态、获取结果,并跟进follow_result_job_keys中指定的 ID;它不得编辑文件、控制执行或启动工作线程。只有在启动返回有效子进程 ID 后,才能认定观察者已启动。主会话不得轮询同一任务。- 调用
wait或轮询父任务状态都不算启动子任务。契约中的host_lifecycle和运行时的orchestrate_subagents指南说明了具体的启动和等待机制。确认收到后,如果运行时无法在子任务发布消息时唤醒已结束的父轮次(子任务消息只会排入父轮次的队列),则使用宿主的子任务等待原语保持父轮次开启,每次等待不超过 60 秒。转达有意义的更新后再次等待,直到收到终态摘要。用户输入可能会中断等待;处理后继续等待,除非用户要求停止实时观察或更改请求。然后只结束转达循环,让持久化任务继续运行,并提供在下一轮或通过明确的状态请求进行追赶更新的选项。如果观察子任务失败、被取消或提前退出,应使用相同的追赶方式,而不是无限期等待。转达循环不得轮询任务工具,也不得接管游标所有权。
如果启动失败,不要承诺实时转达。分离的工作进程会在标准输入输出轮次结束后继续运行;说明持久化进度将在下一轮或明确的状态请求中补报。
如果
response.meta.status == "delegated_to_plugin"且job_id为 None,表示插件模式已将工作委派给子会话:遵循该会话的生命周期,不要在没有真实任务 ID 的情况下调用任务工具。 - 调用
-
转达事件。 每条最多用 1–2 行,省略心跳、原始工具输出、命令和推理。
run_configuration报告运行时/线束/模型策略;execution_plan报告 AC 总数、依赖/并行层级以及最先安排的 AC;discovery_summary报告限定范围的目标及其目的;其他执行子类型(ac_routing、ac_attempt_judged、ac_accepted/ac_rejected、层级和线束变更)仅在有实质意义时转达。对于 Synapse 事件,要区分queued/delivering与applied/completed,并立即报告rejected/delivery_uncertain和attention_required。英语是规范的指令语言;用用户当前对话所用的语言自然地表达事实。 -
访谈问答。 当阶段为
interview时(例如interview round N/50),调用ouroboros_session_status(session_id=<auto_session_id>),并转达当前的meta.pending_question以及新回答的meta.auto_answer_log条目({round, source, question, answer};source为conservative_default、inference或assumption),而不是仅报告计数。此问答保存在自动会话状态中,因此ouroboros_query_events不会返回相关内容;状态仅显示最近 3 条答案,且内容会被截断。 -
回退方案。 仅当不存在子会话且用户要求在本轮继续观察时,才循环调用
ouroboros_job_wait(job_id=<job_id>, cursor=<cursor>, timeout_seconds=180, view="summary", stream="linked", wait_for="attention_or_ac_change"), 每次都用response.meta.cursor更新游标,以response.meta为准,并在response.meta.changed为 false 时保持静默。否则结束本轮,并在下次交互时从持久化游标继续。只要状态尚未终止,就继续等待。 -
结果。 状态达到终态时,由负责轮询的一方调用
ouroboros_job_result(job_id)并总结自动会话结果。detached结果并不表示已完成:继续跟踪其下游任务/Ralph 句柄。逐字报告stop_reason_code(或自由格式的last_error阻塞原因)。对于seed_ready,总结interview_closure_mode(None= 后端与账本一致;ledger_only或safe_default= 达到轮次上限后结束,并附上defaulted_sections)以及assumption_sources条目(每项包含text、source、confidence;其范围比assumptions更广)。
Synapse 意图细化
Synapse 是 ouroboros_session_signal 通道,用于向一个正在运行的 AC 传递有界用户意图。当用户在自动运行执行期间补充实现意图时,使用观察到的 execution_id 调用 ouroboros_session_signal_targets,选择其 ac_content 与当前活动相匹配的 AC,并使用该目标的确切 ID 发送 ouroboros_session_signal。绝不要向用户询问内部 ID;仅当多个活动 AC 确实无法区分时,才简短询问以澄清。发送增量细化时,使用 contract_effect="additive"、source="user"、mode="redirect" 和 fallback_mode="after_turn"。对于只读 AC 问题或确认请求,使用 mode="inform",省略 fallback_mode,并转达已完成事件中的有界回复。绝不要将共享目标/AC/约束变更路由给单个工作者。
Active Conductor 决策策略
对于 attention_required,将 recommended_host_actions 视为权威依据:
- 验证:最多使用一个短时只读主机子级 Agent。若不可用,则展示证据并在进行变更前停止。
- 决策:仅在引擎所有权为
closed后,才从有序菜单中选择。 - 记录:在执行前,使用
ouroboros_record_conductor_decision记录selected。 - 执行:仅使用菜单中列出的已注册工具。对于该注意事件,Auto 最多可启动一个有界、确定性且不会放宽约束的后继操作,并且必须原样传递经审计的指令/决策/前序回执。
- 记录恰好一个终态结果:
completed、failed或declined。不得静默重试。任何会改变规范的提案都必须上报用户;Auto 绝不能自行放宽已批准的目标、AC、约束或非目标。
RFC #1392 状态面包屑页脚
最终回复末尾必须恰好有一行 ◆ <current state> → next: <recommended action>。若可用,则通过 ouroboros_session_status 根据实时会话状态推导当前状态;否则根据此技能的实际结果推导。绝不要使用线性的 Step N of M 页脚;若下一步存在实际选择,则列出 2-3 个选项。