Communitygithub.com

DigiAye/agent-skills 技能集

多模型迭代审查循环。四种模型轮流改进和核查同一答案,轮流扮演构建者、怀疑论者、边缘案例和简化者角色,经过 4x4、3x4、2x4 轮次(共 36 轮)后停止,当答案收敛时可提前终止。当用户说“/assemble”、希望多个模型交叉检查解决方案、设计、计划或代码段,或请求类似 Ralph Wiggum 风格的循环时使用。

agent-skills 技能集 是什么?

DigiAye/agent-skills 中的 assemble 技能实现了一种多模型迭代审查循环,用于对解决方案、设计、计划或代码进行深度交叉检查。该技能的核心机制是让四个不同模型轮流扮演四种角色(构建者、怀疑论者、边缘案例、简化者),在多个轮次中逐步改进一个答案。默认调度包含三个区块,分别进行 4、3 和 2 轮完整遍历,最多 36 轮,但支持提前终止(当连续四轮无变化或答案收敛时)。该技能支持多种模型适配器,包括工具内置的子代理(如 Cursor、Claude Code、Kiro)、外部供应商 CLI(实现真正的多供应商)以及单模型模式,使其具备高度灵活性。进度存储在文件而非对话中,确保每轮都从新上下文开始。通过命令 `/assemble`、`/assemble --quick`、`/assemble resume`、`/assemble cancel` 和 `/assemble status` 控制流程,最终生成包含最终答案、轮次统计、变更日志和成本估算的综合报告。

兼容平台✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI
npx skills add https://github.com/DigiAye/agent-skills/tree/HEAD/skills/assemble

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

assemble

四个模型,一个答案,多轮迭代。每一轮读取当前最佳答案,按给定角色进行批判,并写出一版改进结果。进度保存在文件中,而非对话内,因此每轮都从全新的上下文开始(Ralph Wiggum 技术)。

命令

命令操作说明
assemble <task>使用默认调度(36 轮)开始一次运行。
assemble --quick <task>一个区块,2 次遍历 × 4 个模型(8 轮)。
assemble resume [<slug>]继续最近(或指定名称)未完成的运行。
assemble cancel [<slug>]在状态文件中设置 status: cancelled 并停止。
assemble status显示当前迭代、区块、未解决的 MUST 项及使用的模型。

开始之前

  1. 加载 .assemble/config.json(如果存在),否则加载 assets/config.example.json。
  2. 选择模型适配器(见下文),并告知用户哪些四个模型将参与运行,以及它们的任务文本将发送到哪里。如果有模型不在 allowedModels 内,或者 localOnly 为真且某个模型是远程的,则移除该模型并告知用户。
  3. 用一段简短段落复述任务和验收标准。如果任务不明确,在消耗任何轮次前先询问用户。
  4. 创建 .assemble/<slug>/ 目录,包含 task.md、answer.md(空文件)和 state.md,格式参见 references/state-format.md。确保 .assemble/ 在 .gitignore 中。

调度计划

一轮(round)指一个模型的一次轮次。一次遍历(pass)指所有四个模型各执行一轮,按顺序进行。

区块遍历次数总轮数累计轮数
141616
231228
32836

在第 36 轮后,显示报告并询问用户是否要运行另一个区块。未经用户允许,绝不执行超过 36 轮。

角色在每个遍历中轮换,使得每个模型都能扮演所有角色:在第 p 次遍历(从 0 开始)中,第 m 个模型扮演 roles[(m + p) % 4],角色定义见 references/roles.md。

每轮操作

仅从文件中构建本轮提示,使用 references/handoff-format.md 中的格式:

  • task.md
  • 当前的 answer.md
  • 上一轮的批判(来自最新的 round-NN.md)
  • 本轮的角色卡片

不包含更早的轮次,也不说明当前答案是由哪个模型撰写的。然后:

  1. 使用选定的适配器将提示发送给本轮对应的模型。
  2. 解析回复,提取出批判(每个问题标记为 MUST 或 NICE)、修订后的答案以及判定结果。
  3. 如果任务是代码且配置了 checks,在临时副本中应用修订后的答案,运行检查,并将任何失败项作为 MUST 项添加到批判中。
  4. 写入 round-NN.md(包含角色、模型 ID、批判、检查结果、判定结果、行级差异大小),并用修订后的答案覆盖 answer.md。
  5. 更新 state.md:当前迭代、区块、遍历、未解决的 MUST 项数量以及无变化连续次数。
  6. 向用户显示一行进度信息:Round 7/36 · skeptic · 2 MUST, 1 NICE · diff 14 lines。

如果某个模型出错或超时,在 round-NN.md 中记录,跳过本轮,继续执行。如果连续两个模型失败,暂停并通知用户。

停止条件

当一轮未提出任何 MUST 项且对 answer.md 的修改行数少于 noChangeLines 行时,该轮计为无变化。

当满足以下任一条件时提前停止:

  • 连续四轮(即一个完整遍历)都是无变化,或
  • 一轮结束时包含 <promise>CONVERGED</promise> 且下一轮确认无 MUST 项。

如果未解决的 MUST 项数量在一个完整区块内未减少,则停止并写一条简短的“卡住”说明:指出是什么阻碍了进展、已经尝试过的措施,以及用户可能做出什么决策来解除阻塞。

报告

运行结束时,写入 .assemble/<slug>/report.md 并显示:

  • 最终答案
  • 已执行的轮次数量及停止原因
  • 每个区块中最主要的变化
  • 任何未解决的 NICE 项
  • 使用的模型及其失败次数
  • 粗略的 token 和成本估算(提示和回复大小的总和,乘以配置中给出的价格,如果有的话)

模型适配器

使用第一个可用的适配器,并告知用户选择了哪一个。

  1. 工具内嵌子代理。 如果宿主工具能够生成子代理并选择其模型,则为每轮使用一个子代理。Cursor 可以混合不同供应商。Claude Code 和 Kiro 在此仅提供 Claude 模型,因此四个模型将是 Claude 的变体。
  2. 供应商 CLI。 每轮执行 scripts/run-model.sh <model-id> <prompt-file>。这是真正的多供应商选项。在运行开始前检查每个 CLI 是否存在(使用 command -v)。
  3. 单一模型。 自己执行每一轮,扮演该轮的角色。仅读取本轮的对应文件,并将每一轮视为全新的开始。

可选的工具专用辅助程序(例如用于无人值守运行的 Claude Code 停止钩子)存放在仓库的 adapters/ 文件夹中。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能