4.8 万 stars 开源 Agent Skills,让你的 AI 写代码不再偷工减料

78 阅读7分钟

用 AI Agent 做开发这几个月,我发现一个扎心的规律。

Agent 写代码特别快,三分钟交作业。但你仔细一看,两眼一黑:测试没写,错误处理糊弄了一下,安全检查想都没想过。

更要命的是,它还特别自信。你问它"确定没问题吗?"它回你一句"seems right",语气比谁都笃定。

我一度以为这是模型能力的问题。后来才意识到不是它不会,是它没有「纪律」。

就像一个聪明但没经过工程训练的实习生,能力是有的,但啥时候该写测试、啥时候该停下来想想、啥时候该问一嘴,这些事它不知道。

然后我在 GitHub 上刷到了一个项目。48.5k stars🌟,5400 forks。

图片

谁做的这事

作者是 Addy Osmani。

做前端的多半见过这个名字,他是Google Chrome 团队的工程负责人,写过《Learning JavaScript Design Patterns》《Beyond Vibe Coding》,主导过 Lighthouse 性能检测工具。在前端工程圈,这是个提起来就觉得"靠谱"的人。

他做这个项目的出发点很直接:AI 编码 agent 默认走最短路径,跳过 spec、跳过测试、跳过安全审查、跳过所有让软件"可靠"而不只是"能跑"的步骤。

他的解法是把资深工程师脑子里那套工作纪律,变成 AI agent 能直接执行的结构化 Skill。项目叫 Agent Skills,MIT 协议开源。

一句话概括功能:23 个覆盖软件开发全生命周期的工程 Skill,从"想清楚要做什么"到"安全上线",每个阶段都有对应的约束。

不是参考文档让 agent "读读就好",而是可执行的工作流,有步骤、有检查点、有退出标准。

它怎么工作

装好之后,你在编码工具里敲斜杠命令就行。

想开始一个新功能?/spec 先写需求。需求拆任务?/plan 把它分解成原子级的小任务。开始写代码?/build 让 agent 按增量方式一步步来,而不是一口气吐 500 行。写完了?/test 要求它用测试证明代码能跑。合并前?/review 让它做一轮代码审查。

7 个命令,对应开发生命周期的 7 个阶段。背后的逻辑是——你敲一个命令,它自动激活对应阶段的 Skill。

更聪明的是,很多 Skill 会根据上下文自动触发。你在写 API?那就帮你把api-and-interface-design 自动拉起。你要做前端?那就把frontend-ui-engineering 就位。不用你手动选。

几个让我眼前一亮的设计

23 个 Skill 我翻了一遍。有几个设计让我觉得 Addy 想过真正的问题,而不是在做一个"看起来很全"的清单。

第一个叫 Doubt-Driven Development,怀疑驱动开发。

核心理念:一个自信的回答不等于一个正确的回答。

图片

AI 在长对话里特别容易把自己的假设当成事实。越聊越深,它对自己的判断越笃定,但这份笃定可能完全建立在一个错误的前提上。Addy 的处方是:每个非平凡决策,都要拉一个「全新上下文的审查者」来对抗——这个审查者不知道你前面聊了什么,不会被你的推理链带跑,它唯一的任务就是找出你哪里错了。

Skill 里甚至把审查者的提示词写好了:"假设作者过度自信。找出未陈述的假设、未处理的边界情况、隐藏的耦合。不要验证。不要总结。找问题。"

这不是代码审查。代码审查是事后的。这是在你"觉得差不多了"的那一刻,主动怀疑自己。

第二个叫 Interview Me。

Addy 在这个 Skill 的开头写了一句话,我觉得是整个项目里最精准的洞察。人们说"做个 dashboard",不是因为 dashboard 能解决他们的问题,是因为"做 dashboard"是约定俗成的说法。但不同的人,说的 dashboard,从来不是一回事。内容创作者的工作台,和开发者的工作台,天差地别。

这个 Skill 让 agent 在动手之前,先做一轮一对一的需求访谈。每次只问一个问题,每个问题附带一个猜测:"我猜你是想要 X,理由是 Y。"用户看到一个具体的猜测,纠正起来比自己从头描述快得多。

停止条件也有意思:agent 对用户意图的置信度到 95% 才停止提问。这解决了一个真实问题:agent 要么不问直接干,要么问个没完让人崩溃。

第三个是 Context Engineering,上下文工程。

Addy 把 agent 的上下文分成 5 个层级,从"永久加载的规则文件"到"按迭代加载的错误输出",层层递进。核心观点是:上下文太少,agent 幻觉;上下文太多,agent 失焦。关键不是"给更多信息",而是在正确的时间给正确的信息。

这个 Skill 甚至把各家编码工具的规则文件都列全了。不管是CLAUDE.md、.cursorrules、还是AGENTS.md、.github/copilot-instructions.md。然后手把手教你每个文件里该写什么。做过 AI 编码配置的人看到这段,大概会有种"瞌睡来了递枕头"的感觉。

最硬核的设计:反驳型人格

每个 Skill 都有一张"Anti-Rationalization Table",直接翻译过来是反合理化,我称之为“反驳型人格”。

Addy 显然被 AI agent 的花式借口折磨过。所以他直接把借口堵死了。

拿 TDD(测试驱动开发)Skill 举例。

agent 说"这个改动太小了,不用写测试"。马上反驳:"小改动也会破坏现有行为。不要找借口,必须写测试。"

agent 说"我先把功能做完再补测试"。不行,现在就做。因为"'稍后'从来不会到来。"

agent 说"这段代码很明显是对的"。跳出来反驳:"如果这么明显,那测试应该 30 秒就写完了。给我写!"

每个 Skill 都是这样。不仅告诉 agent 该做什么,还预判了它想偷懒的方式,然后堵上。

这种"我知道你会找什么借口"的设计思路,是工程经验的浓缩。Addy 在 Google 带团队这么多年,新人偷懒的花样他全见过,只不过现在偷懒的对象从实习生变成了 AI。解法是一样的:规则写死,不留空间。

怎么装

支持几乎所有主流 AI 编码工具。

Claude Code 最简单,两行:

/plugin marketplace add addyosmani/agent-skills/plugin install agent-skills@addy-agent-skills

Cursor 把 Skill 文件复制到 .cursor/rules/ 就行。Gemini CLI 也支持原生安装。Windsurf、Copilot、Kiro、OpenCode 都有对应的文档。

说到底 Skill 就是结构化的 Markdown 文件——只要你的 AI 编码工具支持规则文件或系统提示词,就能用。这也是 Addy 的设计哲学之一:不绑定平台,不搞 vendor lock-in。

写在最后

用了半年 AI Agent,我的一个体会是,AI大模型能力确实上来,但是提升准确率和效率的方式,不能仅靠大模型能力,大模型增强的永远是通用能力。但是在真实的人类世界,不是什么都是通用的,不同的领域有不同的需求,对 Agent 的能力要求也不相同。普通人用 AI Agent 最需要的就是这些优秀的开发流程 skill。这些工程纪律是真的能提升特定能力的魔法。

一代模型一代强,但"强"跟"可靠"之间隔着一整套工程实践。Addy Osmani 这套 Agent Skills 做的事情,就是把这套实践编码了。

这有点像给一个天赋极高但没上过工程课的天才程序员配了个严格的 tech lead。不是限制它,是让它在发挥能力的同时不出篓子。

如果你也在用 AI 写代码,不管是 Claude Code、Cursor 还是 Copilot,建议试试这套 Skill。不一定每个都用,但翻一遍那些“反合理化表”,你会发现:AI 偷懒的方式,跟人其实一模一样。

如果你觉得这个有用的话,不妨转给你身边也在用 AI 写代码的朋友,也顺便帮我点个赞、在看和关注。谢谢!

下次见!