mcpField
A
auto

auto

github.com/q00Agent 工作流6.3k63 次安装今天更新
代码仓库

关于 auto

Ouroboros 技能可从任务描述启动自动化流程,依次进行访谈、生成和审查 Seed,并在 Seed 达到质量门槛后执行。支持恢复会话和后台任务监控。

主要功能

  1. 01有界苏格拉底式访谈
  2. 02生成并修复 Seed
  3. 03Seed 审查通过后执行
  4. 04可恢复的自动会话
  5. 05后台任务监控

适用场景

  1. 01将任务描述转为经审查的 Seed
  2. 02恢复超时的流程
  3. 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-runskip_run=true布尔值
--max-interview-rounds Nmax_interview_rounds=N整数
--max-repair-rounds Nmax_repair_rounds=N整数
--pipeline-timeout-seconds Xpipeline_timeout_seconds=X数字
--efficiency-mode adaptive|quality_firstefficiency_mode=<value>字符串
--frugality-assurance off|observe|strictfrugality_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 会恢复已持久化的约定。

行为

  1. 启动自动会话,并进行有界的苏格拉底式访谈轮次,自动回答会标注来源。
  2. 生成 Seed,然后持续审核和修复,直到达到 A 级(通过 Seed 审核)或被阻止。
  3. 只有达到 A 级后才启动执行(除非设置了 skip_run)。只要运行任务有了持久句柄,自动流程就会达到 COMPLETE;随后运行任务会根据 execution.auto_evaluate / execution.auto_evolve(二者默认为 true)自行执行 run → evaluate → ralph 链。自动流程本身不会评估运行任务。
  4. 每个循环都有上限,超时后会返回可恢复的 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 会话(被阻塞的会话会保留以供审计)。访谈、评估器或横向工具暂时耗尽则不同:提供方恢复正常后,继续恢复同一会话。

后台监控

  1. 移交。 转达服务端的启动回执(句柄、运行时/执行框架、LLM 后端、效率和节俭设置)。如果存在 response.meta.dashboard_url,则展示它;否则提及一次 ouroboros tui open。说明此对话仍可用于完善、只读审查、明确控制,或在隔离工作树中处理无关任务;在活动自动工作区中写入之前,先检查是否与工作线程的文件重叠。

  2. 委派给且仅委派给一个观察者。 启动结果包含只读观察者契约 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 的情况下调用任务工具。

  3. 转达事件。 每条最多用 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。英语是规范的指令语言;用用户当前对话所用的语言自然地表达事实。

  4. 访谈问答。 当阶段为 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 条答案,且内容会被截断。

  5. 回退方案。 仅当不存在子会话且用户要求在本轮继续观察时,才循环调用 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 时保持静默。否则结束本轮,并在下次交互时从持久化游标继续。只要状态尚未终止,就继续等待。

  6. 结果。 状态达到终态时,由负责轮询的一方调用 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 视为权威依据:

  1. 验证:最多使用一个短时只读主机子级 Agent。若不可用,则展示证据并在进行变更前停止。
  2. 决策:仅在引擎所有权为 closed 后,才从有序菜单中选择。
  3. 记录:在执行前,使用 ouroboros_record_conductor_decision 记录 selected。
  4. 执行:仅使用菜单中列出的已注册工具。对于该注意事件,Auto 最多可启动一个有界、确定性且不会放宽约束的后继操作,并且必须原样传递经审计的指令/决策/前序回执。
  5. 记录恰好一个终态结果:completed、failed 或 declined。不得静默重试。任何会改变规范的提案都必须上报用户;Auto 绝不能自行放宽已批准的目标、AC、约束或非目标。

RFC #1392 状态面包屑页脚

最终回复末尾必须恰好有一行 ◆ <current state> → next: <recommended action>。若可用,则通过 ouroboros_session_status 根据实时会话状态推导当前状态;否则根据此技能的实际结果推导。绝不要使用线性的 Step N of M 页脚;若下一步存在实际选择,则列出 2-3 个选项。

评论

支持 Markdown