rasen:基于spec的harness工程,实现全自动AI编码
速览
rasen是作者基于一年多vibe coding经验蒸馏出的harness/loops框架,通过主agent-subagent架构,将planning、implementation、review、fix、ship、archive等步骤自动串联。它支持session复用与热恢复,解决复杂任务中的上下文限制问题,大幅提升AI编码助手的开发效率。该项目已在GitHub开源,可npm全局安装,是规范驱动开发(SDD)在AI编码中的实用落地。
AI 深度解读
背景
在 AI 辅助编程日益普及的当下,开发者普遍面临如何高效组织 AI Coding Agent 工作流的难题。传统的“手搓 Prompt”方式需要开发者为每个任务手动编写指令,重复劳动多,效率低下。主流开发模式如 TDD(测试驱动开发)和 SDD(规范驱动开发)虽有尝试,但早期开源项目往往存在流程臃肿或不可靠的问题,难以直接落地。随着 Anthropic 和 OpenAI 相继发布关于 Agent harness 的设计文档,社区开始探索更自动化的编排方式。作者在长期使用 Claude Code 和 Codex 的过程中,经历了从手动流程到半自动工具(openspec)再到全自动 harness 框架的演变,最终提炼出适合自己的开发流程,并开源了 rasen 项目。
核心内容
rasen 是一个基于 Spec 驱动的 Harness 工程框架,旨在实现“一句话全自动 vibe coding”。它的核心思想是:在 AI Agent 的内循环之外,构建一个流程化的外循环,使多个任务能够自动串联推进,形成螺旋上升的开发节奏。
工作流架构
- 内循环:交给 code agent(如 Claude Code)一个具体任务后,Agent 自行规划、调研、编写代码、测试等,直至任务完成。每个任务在一个独立的 session 中运行。
- 外循环:由主 Agent(leader)负责控制整体流程,将多个内循环任务按顺序或依赖关系组织起来,依次派发 subagent 执行,并在完成后自动进入下一步。
标准自动化 Pipeline
一个完整的开发任务被拆分为以下阶段,由 leader 自动调度:
- Planner(propose):调研需求,编写详细开发计划(spec 文档)。
- Implementer(apply):根据 plan 执行编码实现。
- Reviewer:审查实现代码,发现 bug 或不符合规范的地方。
- Fix-cycle:如果 Reviewer 发现问题,自动打回 Implementer 修复,再重新审查,循环直至通过。
- Ship:提交代码、创建 PR 等发布操作。
- Archive:归档文档和记录。
关键优化技术
- Session 复用:通过
sendmessage热恢复和transcript冷恢复,让 subagent 的会话得以复用。例如,多个 changes 的 planner 如果使用新 session 需要重新调研上下文,而复用上一个 changes 的 session 可节省大量工作。Implementer-Reviewer 之间的修复循环也因 session 复用而更高效。 - 自动拆解(auto-decompose):对复杂任务,leader 先整体审查,自动拆分为多个 change,每个 change 执行上述完整 pipeline。leader 负责管理多个小循环组成的大循环。
- 自动 Handoff:针对 LLM 在 context 利用率上的限制(通常在 30%~40% context 时达到满血状态,高 context 时性能下降),为每个阶段设置不同的 context 上限(如 Planner 40%、Implementer 50%)。当 subagent 的 context 达到上限时,自动生成 handoff 文档,leader 派发新的 subagent session 阅读 handoff 文档续接任务,避免因 context 膨胀导致质量下降。
- 命令简化:用户只需输入
/opsx:auto small-feature xxx或/opsx:auto full-feature xxx即可一键启动从规划到代码提交的完整流程。full-feature还会先使用 grille me(基于 grill me 的细化需求步骤)进行需求澄清。
项目起源与命名
作者在长期手动流程后,先使用 openspec 框架(提供 system prompt、skills 和快捷命令,工作流为 propose → apply → archive)获得了一定便利,但仍是“手动挡”。于是 fork 了 openspec 进行魔改,逐渐演变成 rasen。命名寓意“螺旋”:外循环虽然看似循环,但每次循环都推动项目向前推进,如同螺旋上升。作者引用《天元突破》台词:“我的钻头可是突破天际的钻头啊!”
实际效果
作者日常使用 Python 和 React/Node.js(LLM 舒适区)效果满意。为测试极限,将 rasen 应用于 C# 项目开发(一个文件几百 KB,上下文易塞爆),使用 glm-5.2 模型,在没有 handoff 功能时就能自动工作 26+ 小时推进任务,leader context 仅占用 40% 左右。项目 GitHub 提交记录可见(Commits · DumoeDss/ILRuntime)。
关键要点
- Harness 核心定义:在 AI Agent 的内循环(单任务执行)之外建立流程化的外循环,负责从一个任务自动推进到下一个任务。
- 自动化 Pipeline 包含六个阶段:Planner → Implementer → Reviewer → Fix-cycle → Ship → Archive,其中 Reviewer 与 Implementer 可循环修复。
- Session 复用减少上下文浪费:复用 planner 或 implementer 的 session,避免每次重新调研;修复循环复用 session 可加速迭代。
- 自动拆解复杂任务:leader 自动将大任务拆分为多个 change,每个 change 执行完整 pipeline,leader 协调大循环。
- Handoff 机制应对 context 上限:通过设置阶段 context 上限,达到阈值时生成 handoff 文档,换新 session 续接,避免性能下降。
- 简易命令入口:
/opsx:auto small-feature和/opsx:auto full-feature实现一键全自动开发。 - 项目适用于多种语言:Python、React/Node.js 效果好,C# 大型项目也能稳定运行 26+ 小时。
- 项目完全开源:GitHub 地址 DumoeDss/rasen,文档站 rasen.io,通过 npm 安装(
npm i -g @atelierai/rasen)。
意义与影响
rasen 代表了一种从“手动挡”到“自动挡”的 AI 辅助开发范式跃迁。它不仅解决了开发者重复编写 Prompt 的痛点,更重要的是通过外循环、subagent 复用、自动 handoff 等设计,使 AI Agent 能够稳定、自主地完成大型复杂项目,甚至在非 LLM 舒适区(如 C# 大规模代码库)也能持续工作数十小时。这种“Spec-driven Harness”思路可视为对 OpenAI 和 Anthropic 所倡导的 Agent 编排思想的具体落地实践。
对于社区而言,rasen 开源项目提供了一套可复用的参考实现:开发者可以基于其架构快速定制自己的自动化工作流,或借鉴其 session 复用和 handoff 策略来提升 agent 的可靠性。该项目也展示了如何通过合理的工程化设计,将 LLM 的潜力从单次问答扩展到全流程开发,有望推动更成熟、更智能的 AI 编程助手生态发展。
