当 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」获取项目地址和使用指南。
夜雨聆风