5个日常高频使用的Agent技能实战指南
在AI辅助开发的时代,流程的重要性前所未有。AI Agent就像一群随时待命的工程师,但它们有一个关键缺陷:没有记忆。这意味着我们需要极其严格的流程定义来引导它们完成高质量的工作。本文分享5个经过实战检验的Agent技能,这些技能显著提升了AI生成代码的质量。
目录
- 为什么流程至关重要
- 技能1:深度访谈——完善你的想法
- 技能2:需求文档——从对话到规范
- 技能3:任务分解——从目标到可执行任务
- 技能4:测试驱动——持续提升代码质量
- 技能5:架构优化——让代码对Agent友好
- 核心理念:像对待工程师一样对待AI
1. 为什么流程至关重要
作为拥有近十年经验的工程师,作者发现流程从未像现在这样重要。我们拥有一支随时可以部署的AI工程师团队,但这些工程师有一个关键缺陷:它们没有记忆,不记得之前做过的事情。
这意味着需要极其严格且定义清晰的流程,才能让它们完成有用的工作。开发者需要不断引导Agent,确保它们走在正确的轨道上。
解决方案是创建大量的Agent技能。每个技能都将工作流程编码为结构化指令,确保AI每次都遵循严格的路径执行。结果是AI生成的代码质量显著提升。
2. 技能1:深度访谈——完善你的想法
技能名称:/grill-me
GitHub:mattpocock/skills 仓库中的 skills/productivity/grill-me
安装命令:
npx skills@latest add mattpocock/skills
技能内容:
就这个计划的每个方面对我进行彻底的访谈,直到我们达成共识。沿着设计树的每个分支逐一走下来,逐个解决决策之间的依赖关系。最后,如果某个问题可以通过探索代码库来回答,就去探索代码库而不是问我。
核心概念:设计树
"设计树"的概念来自 Frederick P. Brooks 的《设计的设计》。核心思想是:在设计某样东西时,需要沿着设计树的所有分支走一遍。
例如,设计搜索页面时需要决定使用高级搜索界面还是简单文本框。如果选择高级搜索,就需要弄清楚所有过滤器和排序方法。不断沿着树走下去,直到完全理解设计,然后再开始编码。
实战效果
使用这个技能时,目标是与LLM达成共识。Claude Code在计划模式下往往过早输出方案,在真正理解之前就创建文档。而grill-me技能强制进行深度对话。
在一次关于课程视频编辑器功能的对话中,Claude问了16个问题。这还是相对较短的访谈。对于真正复杂的功能,会话可能持续近半小时,提出30、40甚至50个问题。
关键启示:技能不需要很长才能产生影响。关键是在正确的时间选择正确的词语。
3. 技能2:需求文档——从对话到规范
技能名称:/to-prd
GitHub:mattpocock/skills 仓库中的 skills/engineering/to-prd
安装命令:
npx skills@latest add mattpocock/skills
工作流程
与LLM达成共识后,调用下一个技能:/write-a-prd。
这个技能要求LLM创建产品需求文档(PRD)。如果某些步骤已经完成,可以跳过。例如,如果已经进行了深度访谈,就直接进入第四步。
完整工作流包括:
- 收集详细描述:向用户询问项目的详细信息
- 验证断言:探索代码库以验证假设
- 深度访谈:使用
grill-me技能进行彻底访谈 - 草拟主要模块:识别所需的核心模块
- 编写PRD:使用模板编写文档并作为GitHub Issue提交
用户故事的重要性
任何PRD的核心都是用户故事。用户故事使用自然语言描述系统的期望行为,借鉴了敏捷方法论的精髓。好的用户故事能够清晰地传达"谁需要什么"以及"为什么需要"。
4. 技能3:任务分解——从目标到可执行任务
技能名称:/to-issues
GitHub:mattpocock/skills 仓库中的 skills/engineering/to-issues
安装命令:
npx skills@latest add mattpocock/skills
从目的地到旅程
PRD描述的是目的地,但真正需要的是到达目的地的旅程。这就是PRD到Issues技能的作用——将PRD转化为看板上可独立领取的任务。
执行流程
- 定位PRD:找到PRD文档(如果需要则获取)
- 探索代码库:理解现有代码结构
- 草拟垂直切片:将PRD分解为能够快速暴露未知问题的任务
垂直切片与曳光弹
这里应用了"曳光弹"类比。每个Issue都是一个薄的垂直切片,贯穿所有集成层,而不是某一层的水平切片。这种方法确保每个任务都能端到端地验证功能。
任务依赖关系
该技能还会建立任务之间的阻塞关系。例如,某个Issue可能不被任何其他任务阻塞,因此可以独立领取。这对于并行Agent设置非常有用,多个Agent可以同时工作。
5. 技能4:测试驱动——持续提升代码质量
技能名称:/tdd
GitHub:mattpocock/skills 仓库中的 skills/engineering/tdd
安装命令:
npx skills@latest add mattpocock/skills
执行技能的方式
如何执行一个技能?如何让实现坚如磐石并提升代码质量?答案是使用TDD技能。
TDD代表测试驱动开发,它强制(或者更准确地说,鼓励)Agent遵循红-绿-重构循环。这个技能内容丰富,包含了关于重构、模拟和深层模块的哲学。真正做好TDD是提升Agent输出质量最一致的方式。
工作流程
- 确认接口变更:首先确认需要哪些接口变更。当AI看到糟糕的代码库时,会看到许多微小、无差异的模块。但如果重构为更大的模块并在上层使用薄接口,AI就能更容易地导航。
- 确认测试行为:确定需要测试哪些行为
- 设计可测试接口:为测试性设计接口
- 逐个编写测试:测试先行
- 实现代码通过测试:编写使测试通过的代码
- 寻找重构候选:识别可以重构的部分
红-绿-重构循环
使用Agent进行红-绿-重构是令人惊叹的体验。它创建了一个持续运行直到完成的循环,每次都产生更高质量的代码。
6. 技能5:架构优化——让代码对Agent友好
技能名称:/improve-codebase-architecture
GitHub:mattpocock/skills 仓库中的 skills/engineering/improve-codebase-architecture
安装命令:
npx skills@latest add mattpocock/skills
TDD对代码库的要求
TDD对代码库有很高的要求。在结构糟糕的代码库中,测试边界不清晰。应该在哪里测试?在哪一层测试?当代码库有清晰的模块边界时,测试就变得容易得多。
探索与识别问题
/improve-codebase-architecture技能自然地探索代码库,寻找困惑之处:
- 理解概念需要跳转:理解一个概念需要在许多小文件之间来回跳转的地方
- 为测试性提取的纯函数:仅为测试性而提取的纯函数,但真正的bug隐藏在它们的调用方式中
- 紧耦合模块:紧密耦合的模块造成集成风险的地方
深化机会
然后它会呈现"深化机会"——将浅层模块深化为深层模块的机会。深层模块是指接口简单但功能强大的模块,这是软件设计的黄金标准。
使用频率
建议每周执行一次,或在开发高峰后执行。随着不断优化代码库,会注意到Agent输出的质量持续提升。
核心原则:如果你的代码库是垃圾,AI就会在那个代码库中生产垃圾。
7. 核心理念:像对待工程师一样对待AI
从Agent获得高质量代码的最成功方式是像对待人类一样对待它们。当然是有奇怪约束的人类——没有记忆、会被克隆然后立即投入工作的人类。但归根结底,仍然是人类。
这个理念的核心是:
- 流程是关键:AI没有记忆,所以需要严格的流程来引导
- 技能编码流程:将工作方法论转化为可执行的技能
- 质量源于结构:好的代码结构产生好的AI输出
- 迭代改进:通过持续优化技能和代码库来提升质量
常见问题解答
为什么需要这么多技能?
因为AI没有记忆,每个技能都是一个"记忆片段",确保AI在特定场景下遵循正确的工作流程。技能越多,覆盖的场景越全面。
技能之间如何协作?
技能可以串联使用。例如,先用grill-me深度访谈,再用to-prd生成需求文档,然后用to-issues分解任务,最后用tdd执行开发。
何时应该优化代码库架构?
每周一次或在大量开发后。好的代码结构是高质量AI输出的基础。
TDD对Agent开发为什么重要?
TDD提供了明确的成功标准(测试通过),让Agent有清晰的目标。红-绿-重构循环确保每一步都是可验证的。
如何开始使用这些技能?
npx skills@latest add mattpocock/skills
安装后即可在Claude Code中使用这些技能。
这些技能适用于哪些场景?
适用于任何需要高质量代码输出的开发场景,特别是复杂功能开发、重构、新项目启动等。
技能可以自定义吗?
可以。技能本质上是Markdown指令,可以根据团队的工作流程进行调整和扩展。
除了这5个技能还有其他技能吗?
作者还有其他技能,如grill-with-docs、domain-model、triage等,可以在 /skills 页面查看完整列表。