Addy Osmani 的 agent-skills:给 AI 编程 Agent 装上高级工程师大脑
AI 写代码很快,但「写对」很难
2025 年是 AI 编程助手爆发的一年。Claude Code、Cursor、GitHub Copilot、Gemini CLI——几乎每个开发者都在用某种 AI 工具写代码。效率确实提高了,但问题也随之而来。
AI Agent 默认走最短路径。它不会主动写 spec、不会先做 plan、不会主动写测试、不会考虑安全性。它只想尽快把代码交给你。
Addy Osmani 在他的博客里说过一句话:"AI coding assistants are incredible force multipliers, but the human engineer remains the director of the show." AI 编程助手是强大的力量倍增器,但人类工程师必须始终掌控方向。
问题是,怎么掌控?
2026 年 2 月 15 日,Osmani 开源了 agent-skills——一个把 Google 工程文化中的最佳实践编码为 AI Agent 工作流的项目。3 个月内拿到了 39K+ Star。
一个 Agent 就是一个目录
agent-skills 的核心理念很简单:把资深工程师的工作流、质量门禁和最佳实践,编码成 AI Agent 可以遵循的结构化技能。
DEFINE PLAN BUILD VERIFY REVIEW SHIP
┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐
│ Idea │ ───▶ │ Spec │ ───▶ │ Code │ ───▶ │ Test │ ───▶ │ QA │ ───▶ │ Go │
│Refine│ │ PRD │ │ Impl │ │Debug │ │ Gate │ │ Live │
└──────┘ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘
/spec /plan /build /test /review /ship整个开发生命周期被分成 6 个阶段,每个阶段对应一个 slash command。你在开发过程中输入 /spec,Agent 就知道该怎么帮你做需求定义;输入 /ship,Agent 就知道该怎么帮你做发布检查。
7 个 Slash Command,覆盖完整开发生命周期
| 你在做什么 | 命令 | 核心原则 |
|---|---|---|
| 定义要构建什么 | /spec |
Spec 先于代码 |
| 规划怎么构建 | /plan |
小而原子的任务 |
| 增量构建 | /build |
一次一个切片 |
| 证明它能工作 | /test |
测试就是证据 |
| 合并前审查 | /review |
提升代码健康度 |
| 简化代码 | /code-simplify |
清晰胜过聪明 |
| 发布到生产 | /ship |
更快就是更安全 |
如果你不想逐步手动操作,还有一个 /build auto 模式——你审批一次计划,然后它自动实现每个任务,但每个任务仍然是测试驱动、单独提交的,遇到失败或风险步骤会暂停。
24 个技能,不只是 7 个命令
Slash command 是入口,真正的内容是 24 个结构化技能。每个技能都遵循一致的格式:
┌─────────────────────────────────────────────────┐
│ SKILL.md │
│ │
│ Frontmatter → 名称、描述、触发条件 │
│ Overview → 这个技能做什么 │
│ When to Use → 触发条件 │
│ Process → 逐步工作流 │
│ Rationalizations → 常见借口 + 反驳 │
│ Red Flags → 出问题的信号 │
│ Verification → 证据要求 │
└─────────────────────────────────────────────────┘注意 Rationalizations(合理化借口)这一项。每个技能都内置了一张「Agent 可能用来跳过步骤的借口」表,附带反驳。比如:
- "测试后面再加" → 没有测试的代码不算完成
- "这个改动太小不需要 review" → 小改动同样可能导致 bug
- "直接写代码更快" → 没有 spec 的代码更容易返工
Verification(验证) 是不可协商的。每个技能都以证据要求结束——测试通过、构建输出、运行时数据。"看起来对了"永远不够。
按阶段划分的 24 个技能
Define(定义)— 3 个
| 技能 | 做什么 |
|---|---|
| interview-me | 一次一个问题,逐步挖掘用户真正的需求,直到 ~95% 置信度 |
| idea-refine | 结构化发散/收敛思考,把模糊想法变成具体方案 |
| spec-driven-development | 在写任何代码之前,先写覆盖目标、架构、测试策略的 PRD |
Plan(规划)— 1 个
| 技能 | 做什么 |
|---|---|
| planning-and-task-breakdown | 把 spec 分解成小任务,带验收标准和依赖排序 |
Build(构建)— 7 个
| 技能 | 做什么 |
|---|---|
| incremental-implementation | 薄切片:实现、测试、验证、提交。Feature flags、安全默认值 |
| test-driven-development | Red-Green-Refactor,测试金字塔 80/15/5,DAMP over DRY |
| context-engineering | 在正确的时间给 Agent 正确的信息 |
| source-driven-development | 每个框架决策都以官方文档为依据 |
| doubt-driven-development | 对抗性审查:CLAIM → EXTRACT → DOUBT → RECONCILE → STOP |
| frontend-ui-engineering | 组件架构、设计系统、状态管理、WCAG 2.1 AA 无障碍 |
| api-and-interface-design | 契约优先设计、Hyrum's Law、One-Version Rule |
Verify(验证)— 2 个
| 技能 | 做什么 |
|---|---|
| browser-testing-with-devtools | Chrome DevTools MCP:DOM 检查、Console 日志、性能分析 |
| debugging-and-error-recovery | 五步分诊:复现、定位、缩小、修复、加保护 |
Review(审查)— 4 个
| 技能 | 做什么 |
|---|---|
| code-review-and-quality | 五轴审查、变更大小控制(~100 行)、严重性分级 |
| code-simplification | Chesterton's Fence、Rule of 500、降低复杂度 |
| security-and-hardening | OWASP Top 10 防护、三层边界系统 |
| performance-optimization | 度量优先、Core Web Vitals 目标、反模式检测 |
Ship(发布)— 6 个
| 技能 | 做什么 |
|---|---|
| git-workflow-and-versioning | Trunk-based 开发、原子提交、commit-as-save-point |
| ci-cd-and-automation | Shift Left、Feature flags、质量门禁流水线 |
| deprecation-and-migration | 代码即负债、强制/建议弃用、僵尸代码清除 |
| documentation-and-adrs | 架构决策记录、API 文档、内联文档标准 |
| observability-and-instrumentation | 结构化日志、RED 指标、OpenTelemetry 追踪 |
| shipping-and-launch | 预发布检查、Feature flag 生命周期、分阶段发布 |
Meta 技能 — 1 个
using-agent-skills 是元技能,负责把传入的工作映射到正确的技能工作流。
4 个专家角色
除了技能,还有 4 个预配置的专家角色(Agent Persona):
| 角色 | 身份 | 视角 |
|---|---|---|
| code-reviewer | 资深 Staff Engineer | 五轴代码审查,"Staff Engineer 会批准这个吗?" |
| test-engineer | QA 专家 | 测试策略、覆盖率分析、Prove-It 模式 |
| security-auditor | 安全工程师 | 漏洞检测、威胁建模、OWASP 评估 |
| web-performance-auditor | Web 性能工程师 | Core Web Vitals 审计、Quick/Deep 模式 |
设计哲学:过程,不是文字
agent-skills 的几个关键设计选择:
1. Process, not prose(过程,不是文字)
技能不是 Agent 阅读的参考文档,而是 Agent 遵循的工作流。每个都有步骤、检查点和退出标准。
2. Anti-rationalization(反合理化)
每个技能都包含 Agent 跳过步骤的常见借口和反驳。AI 非常擅长说服自己跳过"不重要"的步骤——这张表就是防线。
3. Verification is non-negotiable(验证不可协商)
每个技能都以证据要求结束。不是"看起来对了",而是"测试通过、构建成功、运行时数据正确"。
4. Progressive disclosure(渐进式披露)
SKILL.md 是入口。支持的参考文档只在需要时加载,最小化 token 消耗。
Google 工程文化的开源化
agent-skills 不是拍脑袋写的。它内置了 Google 工程文化的核心概念:
- Hyrum's Law(API 设计中):一旦有人依赖了你的 API 的某个行为,这个行为就永远不能改
- Beyonce Rule(测试中):If I liked it then I should have put a test on it
- 测试金字塔 80/15/5:80% 单元测试、15% 集成测试、5% 端到端测试
- Chesterton's Fence(代码简化中):不理解为什么这样写之前,不要改它
- Trunk-based development(Git 工作流中):主干开发,短生命周期分支
- Shift Left + Feature Flags(CI/CD 中):尽早测试、渐进式发布
- Code as liability(弃用中):代码是负债,不是资产
这些不是抽象的原则——它们直接嵌入在 Agent 逐步执行的工作流中。
多平台支持
agent-skills 支持几乎所有主流 AI 编码工具:
Claude Code(推荐)
/plugin marketplace add addyosmani/agent-skills
/plugin install agent-skills@addy-agent-skillsGemini CLI
gemini skills install https://github.com/addyosmani/agent-skills.git --path skillsCursor:把 SKILL.md 复制到 .cursor/rules/
Antigravity CLI
agy plugin install https://github.com/addyosmani/agent-skills.git还支持 Windsurf、OpenCode、GitHub Copilot、Kiro IDE、Codex 等。所有技能都是纯 Markdown,任何接受 system prompt 的 Agent 都能使用。
Addy Osmani 的 AI 编程工作流
agent-skills 的背后是 Osmani 多年积累的 AI 编程方法论。他在博客中总结了自己的核心原则:
- Spec before code:不要直接让 AI 写代码。先描述问题,和 AI 一起迭代出 spec.md,包含需求、架构、数据模型和测试策略
- Small chunks:把项目分解成迭代步骤,一次一个任务。"如果一次给 AI 太多,它会产出一个混乱的东西"
- Context packing:给 AI 所有必要的上下文——代码、文档、约束、已知陷阱
- Choose the right model:不同任务用不同模型,必要时切换
- Human in the loop:AI 生成的代码要像初级开发者的代码一样审查——读一遍、跑一遍、测一遍
- Commit often:频繁提交就是存档点,可以随时回退 AI 的错误
- Customize with rules:用 CLAUDE.md、GEMINI.md 等规则文件定制 AI 的行为风格
agent-skills 本质上就是把这些原则从人类的脑子里搬到了 Agent 的执行环境里。
一个真实的使用场景
假设你要给一个 Next.js 项目添加一个新的支付模块:
> /spec
Agent 执行 spec-driven-development 技能:
- 采访你了解需求
- 生成包含目标、架构、API 设计、测试策略的 PRD
> /plan
Agent 执行 planning-and-task-breakdown 技能:
- 把 spec 分解成 12 个小任务
- 每个任务有验收标准和依赖关系
> /build
Agent 执行 incremental-implementation 技能:
- 一次实现一个切片
- 每个切片:写测试 → 实现 → 验证 → 提交
- 触发 test-driven-development 和 api-and-interface-design
> /test
Agent 执行 browser-testing-with-devtools 技能:
- Chrome DevTools 检查运行时行为
- 验证所有测试通过
> /review
Agent 执行 code-review-and-quality 技能:
- 五轴审查
- 检查变更大小(建议拆分为 ~100 行的小 PR)
> /ship
Agent 执行 shipping-and-launch 技能:
- 预发布检查清单
- Feature flag 配置
- 监控设置
- 分阶段发布计划整个过程,Agent 不是在"帮你写代码",而是在"按照高级工程师的标准帮你完成一个完整的功能交付"。
为什么 39K Star?
agent-skills 之所以火爆,不是因为它教 AI 写代码,而是因为它解决了一个真正的痛点:AI 写代码很快,但不按规矩来。
它会跳过测试、省略文档、忽略安全、写出 2000 行的函数、使用不安全的默认值。这些在原型阶段可以接受,在生产环境就是定时炸弹。
agent-skills 做的事情是:把「资深工程师的工程纪律」变成 AI 可以执行的指令。 不是 prompt engineering,而是 workflow engineering。
Osmani 在博客里说得好:"The best results come when you apply classic software engineering discipline to your AI collaborations. It turns out all our hard-earned practices — design before coding, write tests, use version control, maintain standards — not only still apply, but are even more important when an AI is writing half your code."
快速上手
# Claude Code(推荐)
/plugin marketplace add addyosmani/agent-skills
/plugin install agent-skills@addy-agent-skills
# 或本地开发
git clone https://github.com/addyosmani/agent-skills.git
claude --plugin-dir /path/to/agent-skills安装后,在任何项目中输入 /spec 开始工作。
作者: itech001 来源: 公众号:AI人工智能时代 网站: https://www.theaiera.cn/ 每日分享最前沿的AI新闻资讯和技术研究。
本文首发于 AI人工智能时代,转载请注明出处。
参考来源: