跳到正文
原文
Hacker News· iheatuchriswogu·· 20 天前精选AI 评分71

Superlite:更快替代方案

Superlite: A Faster Alternatie to Superpowers

AI 摘要

作者开发了一个名为superlite的Claude Code插件,旨在解决传统自主构建工作流程中频繁需要人工批准的问题,通过规划构建、分割任务、并行处理、自动审查和结果反馈,实现快速自主开发,其速度和效率通过基准测试得到验证

正文 · AI 翻译

Field Notes

为什么我构建了superlite,一个为Claude Code的自动化构建工作流,它每四分钟不会请求权限:它是如何工作的,如何使用它,以及基准测试结果。

我曾梦想。我会给一个代理一个规范,合上笔记本电脑,做三明治,然后回来看到完成、测试、提交的工作。

实际发生的事情是这样的。我交出了规范。我做了三明治。我回来了。代理写了一段话,非常礼貌地询问我是否批准设计的第一节。

我批准了它。我坐下来。我等待着。

第二节。批准吗?是。第三节。批准吗?是的。 规范?是。计划?是,显然,这是你刚刚写给我的计划。那么我该如何执行计划?请尽快,我恳求你。

然后它开始构建。一个任务。然后对该任务的审查。然后对该审查的修复。然后对修复的再审查。然后下一个任务。我看着进度日志像火车在道口一样滚动:无法停止,无法通过,也不知道还有多少车厢剩下。

我会刷新终端。仍然在任务3上。我会回一封电子邮件。仍然在任务3上。我会开始第二个三明治,只是想有事可做。任务4,正在审查。

三明治非常好吃。软件还不存在。最糟糕的部分不是时间。是我不能离开。每次我离开时,我回来都会看到一个已经等待了二十分钟的问题,等待我输入“是”。

我不需要一个每四分钟都需要我的合作者。我需要一个承包商。这是规范,这是密钥,完成后给我打电话。

所以我构建了 superlite:一个Claude Code插件,它规划构建,将其拆分为可以并行运行的任务,将每个任务交给能够很好地完成它的最便宜的代理,检查它们之间的接口,并审查结果。然后它在你忙着做三明治时给你一个整洁的列表,列出了它在你忙碌时做出的每一个决定。

本文涵盖了它存在的原因、工作原理以及如何使用它。基准测试结果是为了证明我不仅仅因为写了它就说它很快。

我构建它的原因

首先,一个免责声明,因为我喜欢这个项目,不想收到愤怒的电子邮件。我经常使用 superpowers。这是一个非常谨慎、协作的工作流程,它使人类在每个步骤中都保持接近,并且在这方面确实非常出色。superlite毫无保留地借鉴了它的框架:插件布局、会话启动钩子、生命周期技能。功绩当之无愧,甚至更多。

但是当我确切地知道我想要什么时,大部分时间都花在了工作流程等待自身上。我像检查可疑周末后的银行对账单一样对其进行了分析。时间花在了五个地方:

  • 每个功能8-12个人口。 每条消息一个问题,逐节批准设计,然后分别审查规范、计划和执行计划的方法。它非常彻底。这也是一个四小时会议是如何安排的。
  • 严格顺序执行。 一个实现者,然后一个审查者,然后下一个任务。在我的第一个基准测试中,这是一个单文件队列的21个派遣,就像一个只有一个出纳员和非常长的午休时间的银行。
  • 每个任务后进行审查,以及再审查循环。 大约34分钟构建中的12分钟。
  • 完整的测试套件,由多个技能重新运行。 以防它改变主意。
  • Opus 的代理在关键路径上,编写代码的速度大约是 Sonnet 的一半。聪明、周到,而且完全不着急。

这些都不是错误。每一个都是合理的安全网。堆叠在一起,当你想控制每一步时它们是完美的,而当你只想让东西建成时它们又有点让人抓狂。

所以 superlite 不是超级大国的竞争对手。它的用途不同:快速自主开发。如果你想控制每一步,使用超级大国。如果你想把规范交给别人然后回来工作代码,使用 superlite。只要不要在同一会话中启用两者。它们共享技能名称,两者都在启动时注入上下文,而且它们就像后座争吵的兄弟姐妹一样争吵。

它是如何工作的

简短版本:一个批准,一个为并行性编写的计划,代理与工作相匹配,并由代码强制执行规则,因为事实证明代理读取规则然后做自己喜欢的事情。

flowchart LR A([你的请求]) --> B[一批问题] B --> C[计划] C --> D[代理并行构建<br/>] D --> E[审查和修复] E --> F([完成])

一批问题,一个批准。 Superlite 首先调整请求大小。一个拼写错误只是被修复,而无需关于拼写错误的 设计文档。对现有流程的更改会在聊天中得到简短的设计。新项目会得到一批最多四个问题,然后是一个设计和计划文档。你只批准一次。之后它只会因为破坏性、对外部或安全敏感的事情而停止。在你吃午饭时它不会推送 main。它会做所有其他事情。

你选择负责人。 使用人类协调员时,你会在任何东西运行之前看到整个计划及其预测的时间表并批准它。使用 AI 协调员时,你完全不需要,这取决于你的心情是令人解放还是有点侮辱。它通常会询问的每个选择都会被记录为裁决:它决定什么,为什么,以及如果它做错了会花多少钱。当你回来时,你知道要首先质疑哪些决定。

为分裂编写的计划。 计划是一个任务图。每个任务列出了它拥有的文件、它消耗和产生的确切接口以及它必须通过的测试。不共享文件和不依赖彼此的任务同时运行。图表决定了构建的宽度。在当前的基准测试中,峰值时 18 个代理同时工作,这大致是一个小初创公司的大小,减去乒乓球桌。

代理与工作相匹配。 组织结构图:

  • Opus 协调。 它计划和调度,而且不允许触摸代码。基本上是管理。
  • Sonnet 构建 大部分任务。
  • Haiku 构建 只有小型、完全指定的“机械”任务,这些任务不在关键路径上。实习生得到定义明确的东西。
  • Sonnet 审查 包。
  • 新鲜的 Opus 最终审查者 读取从运行日志构建的审查包并返回发现。它永远不允许修复任何东西。它只是指出。
  • 三个级别的 仅修复代理 接收这些发现,通过理解原因的程度进行路由。

由代码控制,而非提示。 我吃了一记苦头才明白这一点。你可以在提示里用粗体、大写、带感情地写上 "协调员从不编辑代码"。协调员会读,点头,然后编辑代码。所以现在钩子强制执行这个规则。一个钩子阻止协调员编辑项目代码。另一个捕获它运行的任何原始 pytest 或 npm test 并悄悄将其转为后台运行,所以测试永远不会阻塞它。另一个拒绝按名称杀死任何进程(那里有个故事,在深度解析里)。计划必须通过 lint --stable 才能开始工作,稳定的任务一旦通过就立刻发送出去

每次运行都有测量。 钩子记录每个代理的令牌、成本和时间。这些数据用于下一次运行的预测和软预算,当达到上限的 70% 时会提醒你

如何使用它

你需要 Claude Code、git、Python 3.10 或更新版本(用于 superlite 的自有工具;你构建的项目可以是任何语言),以及 bash(Windows 上的 Git Bash)

源代码是 iha2/superlite 在 GitHub 上。从市场安装它:

/plugin marketplace add iha2/superlite
/plugin install superlite@superlite-dev

或者克隆 iha2/superlite 并为单次会话加载本地检出:

claude --plugin-dir <path-to-superlite>

要检查它是否工作正常,打开一个新鲜会话并发送 Let's make a react todo list。一个正常安装会在编写任何代码之前就开始头脑风暴。它是代理工作流的 "hello world",老实说世界不需要另一个待办事项列表,但它是一个很好的烟雾测试

然后:

  1. 描述你想要什么。 一段话或一个规格文件就足够了。不需要 40 页的需求文档。尽管它会读取一个
  2. 选择协调员 当它询问时:你检查计划,或者 AI 一切包办
  3. 让它运行。 像观看自然纪录片一样观察 .superlite/ 在你的项目中的表现。progress.md 有裁决和日志,test-summary.json 有最新的测试结果,metrics.jsonl 有每个代理的时间和成本

你说的话塑造了流程:

情况 说一些像
一个新项目 "根据这个规格为我构建一个静态网站生成器"
现有代码的功能 "给现有应用添加 CSV 导出和列宽"
调试 "这个测试在闰日失败:找到根本原因并修复它"
一个小改变 "将 build 改名为 render 到处"
放手 "构建 X。我不在,你自己决定"
发布 "我们完成了:完成分支"

它永远不会未经你同意就推送或合并。自主,但非鲁莽

它真的能工作吗?

任何人都可以快速调用自己的工具。我曾经把一个脚本称为 "闪电",它花了十一分钟来重命名一些文件。所以以下所有数字都来自无头基准测试套件。它从相同的规格构建相同的项目,在 Opus 上,并用代理永远不会看到的隐藏测试套件评分结果。不准偷看,不准备考

最新的运行:16.1 分钟

测试项目故意不是一个待办事项列表。它是一个静态网站生成器 加上 一个电子表格引擎(公式评估器、HTTP API 和一个浏览器 UI)作为一个项目从一个规格构建,并由 177 个隐藏测试评分

这是最新的运行,在当前构建上:

墙上时间,规格到完成构建 16.1 分钟
隐藏测试 177 / 177
代理 总共 21 个, 最多 18 个同时工作
第一个代理开始构建 大约 3 分钟后
最终审查 30 秒
停下来问任何人类的事情 0

与在同一项目上的超级能力比较:

墙上时间
superpowers,标准(3 次运行的平均值) 33.6 分钟
superpowers,协调(3 次运行的平均值) 23.5 分钟
superlite,最新运行 16.1 分钟 比原版快52%,比协调版本快31%

177项隐藏测试全部通过,时间约减半。这是当前版本在同一台机器上与早期版本的运行结果,所以这更像是强烈暗示而非同行评审的科学结论。但它是一个非常强烈的暗示

它还击败了自己之前的版本(平均26.9分钟),提升了40%。是的,我在和自己的过去竞争。这是我唯一能随意欺负的对手

它是如何做到的

最近的运行并非凭空而来。第一个构建在较小的任务上就已经很快了:sitegen单独运行,九个模块,89项隐藏测试

超能力 超轻量级
墙上时间 34.4分钟 8.8分钟
隐藏测试 89 / 89 89 / 89
串行调度链 21次调度 3级

大部分速度提升来自于消除了队列。超能力依次调度了21个代理。超轻量级调度了10个,最多同时调度五个。同样的工作,排队的人更少

在完整的177项测试项目中,早期的超轻量级构建与超能力进行了三次运行:

超能力 超轻量级
平均墙上时间 33.6分钟 25.1分钟
运行 21.2 / 31.9 / 47.6分钟 21.4 / 23.2 / 30.5分钟
范围,从最快到最慢 26.4分钟 9.1分钟
隐藏测试 每次运行177 / 177 每次运行177 / 177

平均速度更快,并且更加可预测。47分钟的worst case(最坏情况)是“站会前完成”和“站会后完成,期间你必须说它快完成了”之间的区别

但数据显示了超轻量级仍在等待自身的地方。构建在约13分钟时完成,然后又花费了10到18分钟进行评审、修复,以及协调器在前台运行测试并盯着它们。所以:

  • 协调器失去了编辑代码的能力。 它对此适应得相当好
  • 每次测试运行都移到了后台。
  • 修复工作被分配给了分层的修复代理。
  • 稳定任务在其余计划仍在修复时就开始构建。

这就是那个运行在16.1分钟内的构建

要点

如果你的代理工作流程慢,那可能不是因为模型在深入思考。它是慢,因为工作在排队,并且有东西在不停地请求权限

沿着接口边界分配工作。让独立任务同时运行。把机械步骤移到脚本中。并用代码强制执行重要的规则,因为客气地请求只在人类身上有效,而且并不总是有效

插件在GitHub上:github.com/iha2/superlite。

在后续文章中我将深入探讨超轻量级的哲学和背后的决策:门控、代理层级,以及我在测量之前非常自信但最终被证明是错误的想法的墓地

来源:Hacker News · contextfirst.blog

00