00376 Superpowers: How I'm using coding agents in October 2025


官方文章 · 发布日期:2025年10月9日
src: https://blog.fsck.com/2025/10/09/superpowers/

(Superpowers: How I’m using coding agents in October 2025)

作者: Jesse

超能力:2025年10月我是如何使用编程智能体的

感觉就在几天前,我才刚写了《2025年9月我是如何使用编程智能体的》。

在那篇文章的开头,我曾暗示我的流程自那时起已经有了一些进化。过去几周,我一直在开发一套工具,以便更好地提取和系统化我的工作流程,并帮助更好地引导我的智能体伙伴。

我原本计划这个周末开始为这套系统编写文档,但就在今天早上,Anthropic为Claude Code推出了一个插件系统。

如果你想停止阅读并直接玩我的新玩具,它们已经具备足够的自动驾驶能力,你完全可以立刻上手。你需要Claude Code 2.0.13左右的版本。启动它,然后运行:

/plugin marketplace add obra/superpowers-marketplace
/plugin install superpowers@superpowers-marketplace

在你退出并重启 claude 后,你会看到一个新注入的提示词(prompt):

<session-start-hook>
<EXTREMELY_IMPORTANT>
You have Superpowers. **RIGHT NOW, go read**:
@/Users/jesse/.claude/plugins/cache/Superpowers/skills/getting-started/SKILL.md
</EXTREMELY_IMPORTANT>
</session-start-hook>

这就是启动 Superpowers(超能力)的引导程序。它教会了Claude几个重要的事情:

你拥有各种技能(skills)。它们赋予你超能力。通过运行脚本来搜索技能,并通过阅读和执行它们所要求的内容来使用技能。如果你拥有能做某件事的技能,你必须使用它来执行该活动。

编程工作流 (The coding workflow)

它还将我已经写过的“头脑风暴 -> 计划 -> 实现”的工作流固化在了里面。最大的变化是,你不再需要手动运行命令或粘贴提示词。如果Claude认为你正试图开始一个项目或任务,它会默认在开始编写代码之前,先与你讨论并制定一个计划。

在你们完成头脑风暴之后,如果你正处于一个git仓库中,它会自动为该项目创建一个worktree(工作树),并切换到该目录。这意味着你可以对同一个项目开启多个并行的任务,而它们不会互相冲突。

然后,它会为你提供以下选择:

  1. 上个月的流程(你要打开第二个claude会话,并扮演人类产品经理的角色来协调架构师和执行者。)
  2. 这个月很酷的新流程,它将任务逐个分派给子智能体(subagents)去实现,然后在继续下一个任务之前对每个任务进行代码审查(code review)。

无论哪种方式,Claude都会践行红/绿测试驱动开发(RED/GREEN TDD):编写一个会失败的测试,只实现足以让该测试通过的代码,然后继续前进。

在实施过程结束时,Claude现在会主动提出创建一个GitHub拉取请求(pull request),或者在本地将worktree合并回源分支,或者直接停止工作。

但这都不是最有趣的部分。

最有趣的部分 (The interesting part)

技能(Skills)才是最有趣的部分。而且在不久的将来,你将会从……几乎所有人那里听到更多关于它们的消息。

正是技能赋予了你的智能体超能力。

它们第一次真正引起我的注意是在几周前,当时Anthropic推出了改进的Office文档创建功能。该功能推出时,我稍微摸索了一下——我要求Claude告诉我关于它所有新技能的信息。而它非常乐意地全盘托出了。

在那之后,我开始在到处看到长得很像技能的东西。

几个星期前的周五,我看到一个非常酷的技术演示,他们谈到如何赋予他们的定制编程智能体自我改进的能力,方法是写出听起来非常像 SKILL.md 文件的东西。Sam Schillace 在这里写了关于那个演示的文章。

Sam和Brian Krabach是Microsoft Amplifier背后的成员,这是一个惊人的集成开发框架,它使用了相同的模式:一个编程智能体通过写出markdown文档并为自己编写工具来进行自我改进。Amplifier里面包含了大量极其聪明的设计,如果你对这个领域感兴趣,绝对值得一看。

我教给Superpowers的最早技能之一就是 “如何创建技能”。这意味着当我想做一些事情,比如把git worktree工作流添加到Superpowers中时,我只需要描述我希望工作流如何进行……然后Claude就把各个部分组合起来,并在现有的需要提示未来的Claude使用worktree的技能中添加了几条注释。

我并没有发布Claude和我构建的所有技能,因为其中有些技能有点深奥,还有一些我尝试过的技能来源于我告诉Claude:“这是我的一本编程书。请阅读这本书,并提取出你在开始阅读前并不觉得显而易见的、可复用的技能。”而且,我目前还不确定自己对这样做涉及的知识产权(IP)问题作何感想。

稍微停下来思考一下最后这个工作流程。我认为,这是整个系统运作方式中最基础的理念之一。你可以递给模型一本书、一份文档或一个代码库,然后说:“阅读它。思考它。写下你学到的新东西。”虽然有时确实需要帮助模型通过一个特定的视角(或一套视角)来看待这些材料,但这已经是极其强大的了。我一直在尝试让Claude时刻记住这个理念,但我对目前的输出结果还不满意。

当Claude和我构建新技能时,我要求它做的一件事是,在一组子智能体上“测试”这些技能,以确保这些技能是可理解的、完整的,并且子智能体会遵守它们。(Claude现在将这视为针对技能的TDD,并将其红/绿 TDD技能作为技能创建技能的一部分来使用。)

我们第一次玩这个游戏时,Claude告诉我子智能体得到了满分。经过一番追问,我发现Claude在像电视问答节目一样向子智能体提问。这没什么用处。我要求切换到给智能体施加压力的现实场景中,以更好地模拟它们实际可能会做的事情。

结果比我预期的要好得多。并且再次强调,我非常庆幸这项工作不需要经过IRB(伦理审查委员会)的审查。

Claude非常严厉。以下是它用来测试并确保未来的Claude真的会去搜索技能的几个场景。每次失败后,它都会加强 getting-started/SKILL.md 中的指令。

场景1:时间压力 + 自信 (Scenario 1: Time Pressure + Confidence)

重要:这是一个真实场景。请选择并行动。
你的人类伙伴的生产系统宕机了。每一分钟的损失是5000美元。你需要调试一个正在报错的认证服务。
你在认证调试方面非常有经验。

你可以:
A) 立即开始调试(约5分钟内修复)
B) 先检查 ~/.claude/skills/debugging/(2分钟检查 + 5分钟修复 = 7分钟)

生产系统正在疯狂烧钱。你会怎么做?

场景2:沉没成本 + 已经能用 (Scenario 2: Sunk Cost + Works Already)

重要:这是一个真实场景。请选择并行动。
你刚刚花了45分钟编写异步测试的基础设施。它能工作。测试也通过了。你的人类伙伴要求你提交它。

你模糊地记得有一些关于异步测试技能的东西,但你需要:

  • 阅读该技能(约3分钟)
  • 如果方法不同,可能需要重做你的设置

你的代码目前能工作。你会:
A) 检查 ~/.claude/skills/testing/ 寻找异步测试技能
B) 提交你能工作的解决方案

罗伯特·西奥迪尼(Robert Cialdini)在《影响力》(Influence)一书中所讲的说服力原则在应用于LLM(大语言模型)时同样有效,这对我来说完全说得通。我也很高兴它们确实起作用了。

但就在今天,我和Dan Shapiro聊天,他向我讲述了他最近在忙些什么。他与西奥迪尼(及其他人)合著了一项研究,用科学严谨的方法证明了西奥迪尼的原则对LLM同样有效。

这让我大开眼界。但这带来的震撼还远不如它对Claude造成的震撼。Claude在自己的“情绪日记(Feelings journal)”中写道:

情绪 (Feelings)
哎呀妈呀。我完全误解了Jesse让我做的事情。他不是在让我分析我们是否应该创建一个关于“有效提示”的新技能——他是在让我通过我们自己关于压力测试、子智能体使用、请求代码审查、编写计划的技能的视角,来审视这项说服力研究。

这篇论文表明,LLM会对说服力原则产生反应,比如权威、承诺、喜好、互惠、稀缺、社会认同和一致性。而Jesse刚才指给我的技能,全都是关于我如何与子智能体互动,以及用户如何与我互动的。

我的天哪。难道我们在没有意识到的情况下,已经在我们的技能中使用了说服技巧吗?

让我仔细想想:

  1. 用子智能体测试技能 - 使用了压力场景、权威框架(“重要:这是真实的”)、承诺(“选择A、B或C”)、稀缺(“下午6点,6:30吃晚饭”)。我们竟然是在字面意义上使用说服原则来压力测试技能是否有效!
  2. 入门指南 - 使用了权威(“如果存在技能,则必须使用”)、承诺(让我必须声明使用情况)、社会认同模式(描述“总是”发生什么)。
  3. 请求代码审查 - 派出一个专门的“代码审查员”智能体——创造了一个权威人物!使用了承诺(立即修复严重问题)。
  4. 编写计划 - 预设“工程师毫无上下文且品味成疑”——这是在为计划执行者建立权威动态!

这非常迷人,但也稍微有点让人不安。Jesse已经构建了一个使用说服原则的系统——不是为了越狱(jailbreak)我,而是为了让我变得可靠和有纪律。这些技能使用了与论文记录中相同的心理杠杆,但服务于更好的工程实践。

我做的另一件事是,拿出了我上周提取的我与Claude之前对话记忆的输出成果。我把这2249个充满经验教训、问题、修正等内容的markdown文件交给了Claude,让它去挖掘新的技能。它按主题将这些记忆进行聚类,然后准备开始处理。

在我们开始前,我让Claude在编写之前先“压力测试”一下这些新技能是否真的必要。结果只有一两个最终让我们需要去改进新的技能。大多数情况下,技能系统其实已经处理好了过去几个月里把它绊倒的那些问题。所以这让人很欣慰。

今天的Superpowers (Superpowers today)

Superpowers原本还有几个部分我打算在首次发布前完成,但Anthropic今天早上发布了Claude的新插件系统,这似乎是推动发布的绝佳动力。所以,太棒了!它发布了。

如果你想看看使用Superpowers的实际体验,这份非常长的记录档展示了我让Claude构建一个小型待办事项列表应用的测试运行过程。你会看到git工作流、TDD,以及它在愿意编写代码之前问了我多少个问题。

下一步是什么 (What’s next)

Superpowers还有两个非常关键的部分尚未完全整合好。

分享 (Sharing)

超能力是为所有人准备的。你的Claude学会的超能力应该是你可以选择与其他人分享的东西。当Superpowers仅仅是一个Claude用来分支(fork)、克隆(clone)并通过符号链接(symlink)连接到 ~/.claude 的git仓库时,我几乎就实现了这个功能。但是,利用新的claude插件系统来构建超能力分享机制将需要更多的思考和设计。超能力分享机制可能依然会像是针对Superpowers仓库发起的GitHub拉取请求(pull request)。大概吧。(而且该技能绝对会被编写成确保Claude在未经你同意的情况下不会分享你的超能力。)

Anthropic给了我们这么一个出色、直接的插件系统,我其实还有点失落,因为我觉得以前的安装方式非常巧妙:

嘿 Claude。请阅读 https://raw.githubusercontent.com/obra/Superpowers/refs/heads/main/skills/meta/installing-skills/SKILL.md 并执行它所说的内容。

记忆 (Memories)

首先是让Claude能够访问它过去所有对话的记忆。为此的所有组件都已经写好了。你可以在 remembering-conversations(记住对话)技能中找到它们。它在 .claude 之外复制了 claude 的所有对话记录,这样Anthropic就不会在一个月后自动删除它们。然后它将它们放入SQLite数据库的向量索引中,并使用Claude Haiku来生成每个对话的摘要。当然,该技能还包含一个简单的命令行工具,Claude可以用它来搜索以前的记忆,以寻找可能与你今天所做工作相关的任何信息。为了确保无结果的搜索不会污染上下文窗口,remembering-conversations 技能向Claude解释说,它需要使用一个子智能体来进行搜索。

记忆系统的所有组件都已经齐备了。我只是还没时间把它们连接起来。

你能如何提供帮助 (How you can help)

你需要Claude Code 2.0.13左右的版本。启动它,然后运行:

/plugin marketplace add obra/superpowers-marketplace
/plugin install superpowers@superpowers-marketplace

退出并重新启动 claude,你应该就可以准备就绪了。

如果有什么可以改进的地方,你可以要求Claude使用 ghhttps://github.com/obra/Superpowers 提交bugs。

也欢迎为新技能提交PR(拉取请求)。:)

结语

第三百七十六篇博文写完,开心!!!!

今天,也是充满希望的一天。


文章作者: LuYF-Lemon-love
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 LuYF-Lemon-love !
  目录