#AI创造营# Addy Osmani 是 Google 的工程师,目前担任 Google Cloud AI director。 他刚写了一篇博客《Agent Skills》来提醒开发者:AI 编码智能体虽然能快速生成代码,但默认会跳过高级工程师重视的“隐形工作”,比如写规格、拆任务、先测试、做评审、控制改动范围、留下验证证据。 本文中Addy Osmani 试图把多年在 Google 级工程体系中沉淀出的工程纪律,迁移到 AI agent 时代,让模型不只是更快地产出代码,而是在规格、测试、评审、验证和发布约束下产出更可信的软件。
文章配套有开源项目 addyosmani/agent-skills ,把里面这些高级工程实践封装成了 skills 。
下面是全文翻译,makedown排版,适合web端阅读,原文在:addyosmani.com/blog/agent-skills/
2026 年 5 月 3 日
高级工程师的工作,大多是那些不会出现在 diff 里的部分:规格说明、测试、评审、范围控制、拒绝发布无法验证的东西。AI 编码智能体默认会跳过这些部分。Agent Skills 是我试图让这些环节不再变成“可选项”的尝试。
任何 AI 编码智能体的默认行为,都是走向“完成”的最短路径。你要求它做一个功能,它就写这个功能。它不会问你是否有规格说明,不会在实现前先写测试,不会考虑这个改动是否跨越了信任边界,也不会检查这个 PR 在评审者眼中会是什么样子。它产出代码,宣布胜利,然后继续往前。
这正是每个高级工程师在职业生涯中都在学习避免的失败模式。任何任务的高级版本,都包含那些不会出现在 diff 里的工作:揭示假设、撰写规格、把工作拆成可评审的小块、选择朴素可靠的设计、留下结果正确的证据、控制改动大小,让人类真的能够评审它。这些步骤,正是能在规模化场景下交付可靠软件的工程师,与那些提交会破坏系统的代码的人之间的主要区别。
智能体跳过这些步骤,原因和初级工程师一样:这些步骤是不可见的。奖励信号指向的是“任务完成”,而不是“任务完成,并且设计文档也存在”。所以我们必须把高级工程师的脚手架重新加回去。
Agent Skills 就是我对这种脚手架的尝试。它刚刚超过了 2.6 万颗星,所以显然不只我一个人想要这个东西。这篇文章讲的是 README 没有完全覆盖的部分:为什么每个设计选择存在,它如何映射到标准 SDLC 和 Google 公开的工程实践,以及即使你永远不安装任何一个 skill,也应该从这个项目里借鉴什么。
在 Claude Code / Anthropic 的语境里,“skill”这个词承载了很多含义,所以有必要说精确一点。一个 skill 是一个带 frontmatter 的 markdown 文件,会在情况需要时注入到智能体的上下文中。它介于系统提示片段和运行手册之间。
skill 不是参考文档。它不是“关于测试你应该知道的一切”。它是一个工作流:一系列智能体要遵循的步骤,带有能产出证据的检查点,并以明确的退出标准结束。
这个区别就是整个问题的关键。如果你把一篇 2000 字的测试最佳实践文章放进智能体上下文里,智能体会读它,生成看起来合理的文本,然后跳过真正的测试。如果你把一个工作流放进去——先写失败的测试,运行它,确认它失败,写最小代码让它通过,确认它通过,再重构——智能体就有事可做,而你也有东西可验证。
流程优先于散文。工作流优先于参考资料。有退出标准的步骤,优先于没有退出标准的长篇文章。 仅仅这一个区别,就能区分有用的 skill 和漂亮的 markdown 文件。它也解释了为什么很多“AI rules”仓库在实践中最终什么都没做到:那些规则只是文章。
这个仓库里的 20 个 skills 围绕 6 个生命周期阶段组织,上面还有 7 个 slash commands:
| 阶段 | 命令 | 作用 |
|---|---|---|
| Define | /spec |
决定你到底要构建什么 |
| Plan | /plan |
拆解工作 |
| Build | /build |
以垂直切片实现 |
| Verify | /test |
证明它能工作 |
| Review | /review |
捕捉漏掉的问题 |
| Ship | /ship |
把它安全地交到用户手中 |
| Cross-cutting | /code-simplify |
横跨整个流程的代码简化能力 |