谷歌Addy Osmani开源的agent-skills,让AI编程走向「工程化」,告别bug多、安全差、没法维护

工具推荐 1776914009更新

0

做 AI 内容这么久,有一件事我一直很想吐槽。

AI 编程真的太快了。Cursor、Claude Code、Windsurf,一个比一个猛。5 分钟 1000 行代码,眼睛都不眨一下。

然后呢?

然后就是无尽的 bug,无尽的返工,无尽的「我靠这怎么又炸了」。

朋友跟我说了一句话,特别扎心。

他说,你用 AI 写一个功能,5 分钟它给你搞定。你很开心,觉得 AI 真牛逼。

然后你一看代码,密码明文存储,没有输入校验,接口没有限流,错误处理全是空的。你让 AI 修,AI 又给你写出来一堆新 bug。

你再修,再出。一来一回,三天过去了。

而这三天里,你一个正经的新功能都没做,全在填 AI 挖的坑。

这不是朋友在吐槽,这也是我自己的亲身经历。

快是真快,但那个「快」是虚的。

测试、边界情况、安全性、可维护性,这些正经工程里最重要的东西,AI 全给你跳过了。

不是 AI 不行,是 AI 的目标函数跟工程师的目标函数,从根上就不一样。

工程师想要的是「这个代码能上生产,出了事我能兜住」。

AI 想要的是「赶紧把代码吐出来,语法别报错就行」。

目标不一样,动作就不一样,结果自然也就不一样。

直到昨天我看到了 Addy Osmani 的一个项目。

这个名字有些人可能不陌生,Google Gemini 总监级负责人,之前在 Chrome 团队干了 14 年,写过《Learning JavaScript Design Patterns》那本经典的书,在全球跑过 175 场技术分享。

这个项目是什么呢?

他把自己这么多年做工程的「压箱底」给开源了。不是某个工具,不是某个库,是一套完整的、AI Agent 可以直接执行的技能体系。

名字就叫 agent-skills。

说实话,刚看到的时候,我脑子里第一个冒出来的念头就是——

这尼玛,我等了这么久,终于找到自己急需要的东西了。

他把自己在 Google 这么多年积累的工程经验,掰开了揉碎了,封装成 AI Agent 可以理解的「技能」。

什么意思呢?

就是你跟 AI 说「我要写个功能」,在真正的工程里,你得先想清楚这个功能要解决什么问题、边界在哪、怎么测试、出了事怎么回滚——这些步骤,在传统的 AI 编程里全靠你自己想,AI 只管写。

但 Addy 做的这套 agent-skills 直接把工程师的工作流给「标准化」了。

怎么个标准化法呢?

这套 agent-skills 一共有 21 个技能,按照软件开发的全生命周期组织成了 6 个阶段:

Define — 搞清楚要做什么

  • idea-refine:帮你把模糊的想法变成具体的提案
  • spec-driven-development:写 PRD,把需求文档写得清清楚楚再动手

Plan — 拆解任务

  • planning-and-task-breakdown:把大需求拆成一个个能独立验证的小任务

Build — 写代码

  • incremental-implementation:增量实现,一块一块地做
  • test-driven-development:测试驱动开发,先写测试再写实现
  • context-engineering:给 AI 恰到好处的上下文信息
  • source-driven-development:一切决策都要有官方文档支撑
  • frontend-ui-engineering:前端 UI 开发的专项技能
  • api-and-interface-design:API 和接口设计的专项技能

Verify — 证明它能跑

  • browser-testing-with-devtools:用 DevTools 做浏览器测试
  • debugging-and-error-recovery:五步调试法,稳稳的

Review — 上线前过审

  • code-review-and-quality:五维度代码审查
  • code-simplification:简化代码,保持可维护性
  • security-and-hardening:安全加固,OWASP Top 10 全覆盖
  • performance-optimization:性能优化,Core Web Vitals

Ship — 部署上线

  • git-workflow-and-versioning:原子提交,变更大小管控
  • ci-cd-and-automation:流水线自动化
  • deprecation-and-migration:代码也是一种负债,该清理就清理
  • documentation-and-adrs:文档和架构决策记录
  • shipping-and-launch:上线检查清单,Rollback 预案

21 个技能,覆盖了从「有个想法」到「代码跑在生产环境」的每一个关键节点。

说实话我第一次看到这个结构的时候,第一个感觉就是——

这简直就是把一整个 Google 工程团队的最佳实践,压缩成了一套 AI 可以执行的技能包。

我仔细翻了翻这 21 个技能,发现有几个真的写得特别有意思。

比如说 test-driven-development,测试驱动开发。

这玩意在传统工程里是常识,但在 AI 编程里基本没人提。

Addy 把它写进了技能里,要求 AI 在写代码之前先写测试,而且测试还要覆盖边界情况、错误处理。

他有一段话表达的意思我特别认同:测试不是证明代码是对的,测试是证明代码在各种情况下都能正常工作。

这个区别听起来很简单,但很多 AI 写出来的代码,测试全是「happy path」,就是那种一切正常的情况。

一旦遇到边界情况,遇到错误处理,遇到那种「理论上不应该发生但偏偏发生了」的情况,AI 的代码直接裸奔。

但有了测试驱动开发的技能约束,AI 就必须先把这些边界情况想清楚,再去写实现代码。

这就把「快」变成了「又快又稳」。

还有一个技能我觉得特别有意思——code-simplification,代码简化。

我自己踩过特别多的坑,就是 AI 写出来的代码,逻辑是对的,功能也实现了,但那个代码写得让人看不懂。

一堆嵌套,一堆重复,一堆「我都不知道为什么要这样写但就是这样写了」。

你自己看都看不懂,更别说让别人维护了。

Addy 的这个技能就是专门干这个的。

它要求 AI 在写完代码之后,必须回答一个问题:这段代码,一个新同事接手的时候,能不能迅速看懂?

如果不能,那就得简化。

里面提了一个特别好的原则,叫「Chesterton's Fence」。

翻译过来就是「拆栅栏之前先想清楚当初为什么立这个栅栏」。

很多 AI 写代码就是上来就拆栅栏,拆完才发现这栅栏是防风的。

但有了这个技能约束,AI 就得先理解「这段代码在解决什么问题」,再决定要不要改,要不要简化。

这就把 AI 从「代码生成器」升级成了「代码工程师」。

还有一个我觉得特别有远见的——security-and-hardening,安全加固。

说实话我自己写代码,安全这块一直是最弱的。

不是不想,是真的不知道怎么想。

但 Addy 把这套东西直接封装成技能了。

OWASP Top 10,认证模式,边界校验,三层边界系统——这些都是正经安全工程师才懂的东西,现在 AI 直接就能帮你做了。

你让 AI 写一个登录功能,AI 就会自动检查密码强度、Session 管理、SQL 注入、XSS 攻击——这些在以前你得花大价钱请安全审计,现在 AI 直接给你兜底了。

我当时看到这块的时候就一个想法——

以后的 AI 编程,安全这事,不再是「出了问题再打补丁」,而是「写代码的时候就顺带做掉了」。

这个转变,我觉得是革命性的。

我做 AI 内容这些年,见过太多「AI 编程教学」了。

教你「如何用 AI 5 分钟写一个 App」,教你「AI 编程的 10 个绝招」,教你「用 Claude 从零开始做项目」——到处都是这种东西。

这些东西有用吗?

有用。

但它们都在教你「怎么让 AI 帮你写代码」,没有一个人在教你「怎么让 AI 帮你写出能上生产的代码」。

这两件事的区别,说大不大,说小不小。

前者只需要让代码跑起来,后者需要让代码「稳」、「安全」、「可维护」、「出了事能兜住」。

前者是 60 分,后者是 90 分。

而真正决定你能走多远的,往往不是 60 分到 90 分的差距,而是你有没有那个意识去追求 90 分。

Addy 的 agent-skills,本质上就是在给你那个意识。

它告诉你,AI 编程不应该是「代码写完就算完事了」,而是「代码写完、功能测完、安全检查完、上线预案做完」,才叫完事。

这个工作流,才是一整个软件工程行业几十年积累下来的精华。

而现在,它被封装成 AI 能理解的语言,变成了你的贴身助手。

项目地址:

https://github.com/addyosmani/agent-skills