乐于分享
好东西不私藏

AI 编程代理的「技能」时代:Addy Osmani 的开源方案让 AI 代理像资深工程师一样工作

AI 编程代理的「技能」时代:Addy Osmani 的开源方案让 AI 代理像资深工程师一样工作

当 AI 编码代理默认走最短路径时,如何让它们遵循生产级工程实践?

你有没有遇到过这种情况:让 AI 帮你写代码,它直接甩给你一个能跑的版本,但没测试、没错误处理、没考虑边界情况?

AI 编码代理的默认行为就是走最短路径。这对原型验证还行,但到了生产环境,缺少规范、测试、安全审查的代码就是一颗定时炸弹。

Google 工程师 Addy Osmani 最近开源了一个项目 Agent Skills,它试图解决这个问题——不是让 AI 变得更聪明,而是给 AI 代理一套结构化的工程工作流

什么是 Agent Skills?

Production-grade engineering skills for AI coding agents.

Agent Skills 把资深工程师的开发工作流、质量门禁和最佳实践,打包成 AI 代理可以遵循的结构化「技能」。每个技能都是一个带有步骤、检查点和退出条件的工程流程,而不是泛泛的提示词。

项目的核心流程可以用这个 图来概括:

7 个命令,映射完整开发生命周期

项目提供了 7 个斜杠命令,每个命令激活对应的技能集合:

你在做什么
命令
核心原则
定义要构建什么
/spec
先写规格,再写代码
规划如何构建
/plan
小且原子的任务
增量构建
/build
一次一个切片
证明它能工作
/test
测试即证据
合并前审查
/review
改善代码健康
简化代码
/code-simplify
清晰胜过巧妙
部署到生产
/ship
更快即更安全

技能也会根据你正在做的事情自动激活——设计 API 时触发 api-and-interface-design,构建 UI 时触发 frontend-ui-engineering,以此类推。

20 个技能,覆盖开发全流程

这是项目的核心资产。20 个技能分布在 6 个阶段中:

Define — 明确要构建什么

1. idea-refine
结构化发散/收敛思维,把模糊的想法转化为具体的提案。适合当你只有一个粗略概念时使用。

2. spec-driven-development
在写任何代码之前,先编写 PRD(产品需求文档),涵盖目标、命令、结构、代码风格、测试和边界条件。适合开始新项目、新功能或重大变更时使用。

Plan — 分解任务

3. planning-and-task-breakdown
将规格分解为小的、可验证的任务,每个任务都带有验收标准和依赖排序。

Build — 编写代码

4. incremental-implementation
薄垂直切片——实现、测试、验证、提交。使用功能标志、安全默认值、可回滚的变更。任何涉及多个文件的改动都适用。

5. test-driven-development
红-绿-重构循环,测试金字塔(80% 单元测试 / 15% 集成测试 / 5% E2E 测试),DAMP 优于 DRY,以及 Beyonce Rule("如果你喜欢它,你应该在上面放一个断言")。

6. context-engineering
在正确的时间给 AI 代理正确的信息——规则文件、上下文打包、MCP 集成。

7. source-driven-development
每个框架决策都基于官方文档——验证、引用来源、标记未经验证的内容。

8. frontend-ui-engineering
组件架构、设计系统、状态管理、响应式设计、WCAG 2.1 AA 无障碍标准。

9. api-and-interface-design
契约优先设计、Hyrum's Law("足够多的用户会依赖你能观察到的任何行为")、One-Version Rule、错误语义、边界验证。

Verify — 证明它能工作

10. browser-testing-with-devtools
使用 Chrome DevTools MCP 进行实时运行时数据检查——DOM 检查、控制台日志、网络追踪、性能分析。

11. debugging-and-error-recovery
五步分类法:复现 → 定位 → 简化 → 修复 → 防护。包含"停下整条线"规则和安全回退。

Review — 合并前的质量门禁

12. code-review-and-quality
五轴审查、变更规模控制在约 100 行、严重性标签(Nit/Optional/FYI)、审查速度规范、拆分策略。

13. code-simplification
Chesterton's Fence(不要拆除你不理解的围栏)、500 行规则、在保持精确行为的同时降低复杂度。

14. security-and-hardening
OWASP Top 10 防护、认证模式、密钥管理、依赖审计、三层边界系统。

15. performance-optimization
先测量后优化——Core Web Vitals 目标、性能分析工作流、打包分析、反模式检测。

Ship — 自信地交付

16. git-workflow-and-versioning
主干开发、原子提交、变更规模约 100 行、提交即保存点模式。

17. ci-cd-and-automation
Shift Left、更快即更安全、功能标志、质量门禁管道、失败反馈循环。

18. deprecation-and-migration
"代码即负债"理念、强制性 vs 建议性弃用、迁移模式、僵尸代码清理。

19. documentation-and-adrs
架构决策记录(ADR)、API 文档、内联文档标准——记录"为什么"。

20. shipping-and-launch
启动前清单、功能标志生命周期、分阶段发布、回滚流程、监控设置。

3 个专业代理角色

除了技能,项目还预配置了 3 个专业审查角色:

  • • code-reviewer — 以资深工程师的视角做五轴代码审查,标准是"一个 Staff 工程师会批准这个吗?"
  • • test-engineer — QA 专家视角,关注测试策略、覆盖率分析和 Prove-It 模式
  • • security-auditor — 安全工程师视角,漏洞检测、威胁建模、OWASP 评估

4 个参考清单

技能在需要时会引用这些参考材料:

  • • testing-patterns.md — 测试结构、命名、模拟、React/API/E2E 示例、反模式
  • • security-checklist.md — 提交前检查、认证、输入验证、CORS、OWASP Top 10
  • • performance-checklist.md — Core Web Vitals 目标、前后端清单、测量命令
  • • accessibility-checklist.md — 键盘导航、屏幕阅读器、视觉设计、ARIA

哪些工具可以使用?

Agent Skills 设计为与主流 AI 编程工具兼容:

  • • Claude Code — 市场安装或本地克隆
  • • Cursor — 复制 SKILL.md 到 .cursor/rules/
  • • Gemini CLI — 安装为原生技能
  • • Windsurf — 添加到规则配置
  • • OpenCode — 通过 AGENTS.md 和 skill 工具
  • • GitHub Copilot — 作为 Copilot 角色定义
  • • Kiro — 放于 .kiro/skills/ 目录
  • • Codex / 其他代理 — 纯 Markdown 格式,兼容任何接受系统提示的代理

技能的设计哲学

Agent Skills 的几个关键设计选择值得关注:

1. 流程而非散文
技能是代理执行的工作流,不是参考文档。每个技能都有步骤、检查点和退出标准。

2. 反合理化
每个技能都包含一个表格,列出代理用来跳过步骤的常见借口(例如"我稍后会添加测试"),并附有文件化的反驳论证。这个设计非常务实——它承认 AI 代理会走捷径,然后提前堵住这些捷径。

3. 验证不可协商
每个技能都以证据要求结尾——测试通过、构建输出、运行时数据。"看起来没问题"永远不够。

4. 渐进式披露
SKILL.md 是入口点。支持性引用仅在需要时加载,保持 token 使用最小化。

工程文化的渊源

这些技能深深植根于 Google 的工程文化。项目明确参考了《Software Engineering at Google》和 Google 的工程实践指南。你可以在各个技能中看到这些原则的具体体现:

  • • API 设计中的 Hyrum's Law
  • • 测试中的 Beyonce Rule 和测试金字塔
  • • 代码审查中的变更规模和审查速度规范
  • • 简化中的 Chesterton's Fence
  • • Git 工作流中的主干开发
  • • CI/CD中的 Shift Left 和功能标志
  • • 专门有一个弃用技能将代码视为负债

这些不是抽象的原则——它们被直接嵌入到代理遵循的逐步工作流中。

为什么这很重要?

AI 编程代理正在快速普及,但大多数代理的输出质量参差不齐。问题不在于 AI 的能力,而在于缺乏结构化的工程流程

Agent Skills 提供了一种方案:与其让 AI 代理自由发挥,不如给它一套生产级的工作流。这不限制 AI 的创造力,而是确保它的输出符合工程标准。

从这个角度看,Addy Osmani 的这个项目可能预示着一个趋势:AI 编程代理的下一步进化,不是模型更强大,而是工作流更工程化。

想获取更多 AI 编程工具和工程实践的最新洞察?关注公众号「光影织梦」,发送「AddyOsmani」获取项目地址和使用指南。