分享自用的四阶段自演化 Harness

给 Claude Code 用的多代理质量 harness。730 行协议,零行应用代码。 把一个复杂任务拆成独立 Chunk,用不同模型对抗规划、并行执行、交叉评审,每次跑完把踩过的坑写回协议自身。下一次启动时,所有代理自动继承上一轮的教训。 为什么做这个 Claude Code 的单代理模式足够...
分享自用的四阶段自演化 Harness
分享自用的四阶段自演化 Harness

给 Claude Code 用的多代理质量 harness。730 行协议,零行应用代码。

把一个复杂任务拆成独立 Chunk,用不同模型对抗规划、并行执行、交叉评审,每次跑完把踩过的坑写回协议自身。下一次启动时,所有代理自动继承上一轮的教训。


为什么做这个

Claude Code 的单代理模式足够应付大多数任务。但碰到跨模块重构、多文件协同、高质量文档这类场景,单代理容易出两个问题:

  1. 自己审自己,发现不了盲区。 同一个模型写的代码,同一个模型打分,评审形同虚设。
  2. 犯过的错没有记忆。 上次 pipeline 踩的坑,下次原样再来一遍。

Pipeline 的解法:让不同模型互相挑刺,把机械能验的和主观要评的彻底分开,再把每次返工的根因写回协议本身。


工作流程

Stage 0  启动门槛          确认任务值得用 pipeline,批准预算
Stage 1  访谈对齐          一次一问,收敛到 spec + 验收标准
Stage 2  对抗规划          Opus 和 Codex 各出方案,互相攻击,辩论收敛
Stage 3  并行执行          每个 Chunk 一个 Sonnet,硬闸门先跑,过了再自评软维度
Stage 4  交叉评审          Opus 和 Codex 独立打分,看不到执行过程,只看最终产物
Stage 5  教训沉淀          返工根因可泛化的写入 lessons.md,下次自动注入

任何阶段都可以说"切快速路径"退出。


四个设计决策

对抗,不是协作

规划和评审各用两个不同模型(Opus + Codex)。它们不知道对方的存在,被要求攻击对方的方案。分歧不是 bug,是在暴露真实的设计取舍。

机械验证和主观评审彻底分开

能跑命令验证的(lint、type check、测试、文件存在性),绝不交给代理主观打分。硬闸门不过,直接返工,连评审阶段都不用进。主观评审只负责设计感、可读性、论据力这类没法机械化的维度。

信息隔离

执行者看不到其他 Chunk 的实现细节。评审者看不到执行过程、规划辩论、返工历史。编排者不能对评审者说"这部分比较弱"。每个角色只拿到完成工作所需的最小信息集。

教训是代码,不是感悟

每条教训必须有三个字段:触发条件(什么场景生效)、原则(一句话规则)、改动(具体落在哪个 prompt 或 rubric 的哪一行)。没有具体改动的心得不写进来。下次启动时 lessons.md 自动注入所有代理的 system prompt。


文件结构

pipeline/
  SKILL.md              主协议:5 个阶段 + 4 条原则 + 升级/降级规则
  lessons.md            教训沉淀,每次 pipeline 运行后持续增长
  prompts/
    planner.md          规划者 prompt 模板(Opus + Codex 双版本)
    executor.md         执行者 prompt 模板(Sonnet)
    evaluator.md        评审者 prompt 模板(Opus + Codex 双版本)
  rubrics/
    code.md             开发类评分矩阵
    design.md           设计类评分矩阵
    doc.md              文档类评分矩阵
    research.md         研究类评分矩阵
  templates/
    report.md           最终交付报告模板

全部是 Markdown。没有可执行代码,没有依赖,没有构建步骤。


快速开始

  1. pipeline/ 目录放到 ~/.claude/skills/
  2. 在 Claude Code 里对任何复杂任务说"用 pipeline"
  3. Pipeline 会先确认预算,再逐步走访谈、规划、执行、评审
  4. 每次跑完检查 lessons.md,看新沉淀了什么

不需要配置。唯一的前提是 Claude Code 环境能调用 SubAgent。


适合用的场景

  • 多文件重构,改动互相依赖
  • 跨模块新功能,接口需要先对齐
  • 高质量技术文档或研究报告
  • 任何拆解后超过 4 个独立 Chunk 且需要多轮把关的任务

不适合用的场景

  • 快速原型、探索性尝试
  • 单文件 bug 修复
  • 一次性小改动

这些直接用 Claude Code 默认模式更快。Pipeline 的编排开销只在复杂任务上才值得。


人类在回路里的位置

Pipeline 不是全自动的。编排者(Claude Code 主线程)负责调度和裁决,但有一类决策必须升级给人:

  • 需求歧义:代理之间的分歧根因是需求没说清楚,不是方案选择问题。这种情况再多轮辩论也没用,必须问人。
  • 方案取舍:同一需求下的不同实现路径,编排者按 rubric 自行裁决,把理由写进报告。

这条规则取代了"N 轮后升级"的机械阈值。


自演化机制

Pipeline 跑得越多越好用。

每次评审不通过触发返工时,编排者在阶段 5 回答一个问题:这次返工的根因能不能泛化到未来的任务?能的话写进 lessons.md,格式是触发条件 + 原则 + 具体改动。下次启动时这条教训自动注入所有代理的 system prompt,同样的错不会犯第二次。

当某条教训因模型升级不再需要时,标注删除日期和原因,保留审计痕迹。

目前已沉淀 8 条教训,覆盖 rubric 歧义消解、执行者报告落盘、Codex 越权防护、聚合文件合并协议等实战场景。


pipeline.zip (25.3 KB)

1 个帖子 - 1 位参与者

阅读完整话题

来源: linux.do查看原文