为什么用 Skill 做需求澄清
2026/6/12 13:04:55 网站建设 项目流程

为什么用 Skill 做需求澄清

背景:PRD 到 AI Coding 的断层

传统的软件开发流程中,PRD(产品需求文档)是写给开发者的。开发者作为人,具备一种关键能力:自动脑补。PRD 说"支持批量删除",开发者会自动推断:应该有个全选框、应该有二次确认、删除完列表要刷新。这些细节 PRD 没写,但人知道。

AI 不具备这种能力。AI 不会脑补——它要么根据训练数据中"最常见"的写法猜测,要么直接忽略。一个"支持批量操作"的需求,AI 可能不会加二次确认,不会处理部分失败的情况,不会考虑全选后翻页的行为差异。

这就是断层:PRD 的隐含假设无法被 AI 消费

需求澄清的目的,就是把这些隐含假设显式化,变成 AI 能直接使用的精确规格说明。

什么是需求澄清

需求澄清是一个结构化的信息补全过程

  • 输入:PRD 文档(面向人的、有隐含假设的)
  • 过程:从 5 个维度(范围边界、交互流程、异常边界、数据规则、非功能需求)系统性提问
  • 输出:澄清文档(面向 AI 的、无隐含假设的)

澄清文档和 PRD 的关键区别:

PRD澄清文档
读者人(开发者、测试)AI(代码生成工具)
隐含假设大量(人不写也懂)零(所有细节显式化)
异常处理通常不写每个场景都有定义
字段约束粗略(“手机号”)精确(11位数字,必填,唯一性校验,错误提示"该手机号已注册")
空状态不提每个列表/表单都有定义

为什么选择 Skill 而不是 Tool 或 SubAgent

在 Claude Code 生态中有三种扩展机制,各有不同的能力边界。需求澄清的特征决定了它只能用 Skill 来做。

三种机制的本质区别

Tool:执行操作

Tool 的本质是"给输入,出结果"。它是一个函数:f(input) -> output。比如:

  • search_table("用户表")→ 返回匹配的表列表
  • run_sql("SELECT * FROM users")→ 返回查询结果

Tool 是无状态的——每次调用独立,不记忆上下文,不管理流程。它适合做具体的、可重复的、确定性的操作。

SubAgent:自治执行

SubAgent 的本质是"给任务,自主完成"。它是一个独立的 Agent 实例,有自己的上下文、工具访问权限和决策能力。比如:

  • “分析这个代码库的架构,找出性能瓶颈” → SubAgent 自主探索、分析、返回结论
  • “把这组测试用例跑通” → SubAgent 自主执行、调试、修复

SubAgent 是自治的——它自己决定怎么做、用什么工具、什么时候完成。适合复杂的、需要多步自主判断的任务。

Skill:流程模板

Skill 的本质是"按模板,引导用户走完流程"。它是一组结构化的指令,由主 Agent 执行,用户深度参与。比如:

  • brainstorming:引导用户从模糊想法到具体设计
  • TDD:引导开发者先写测试、再写实现、再重构
  • 需求澄清:引导用户逐维度补全 PRD 的隐含假设

Skill 是交互式的——每一步都需要用户输入,Agent 按模板引导,不替用户做决策。

需求澄清的特征矩阵

特征需求澄清的实际情况Tool 匹配度SubAgent 匹配度Skill 匹配度
交互模式多轮对话,一问一答❌ 单次调用⚠️ 可以但不擅长✅ 天然支持
用户决策强依赖,每个答案都需要人确认❌ 无用户参与❌ 会自己脑补✅ 强制等用户回答
流程标准化5 个维度,固定顺序❌ 无流程概念⚠️ 可能跳过维度✅ checklist 保证完整
外部 API不需要❌ Tool 的价值就是调 API❌ 能力浪费✅ 不需要额外工具
输出格式结构化文档⚠️ 可以但不灵活⚠️ 格式不统一✅ 模板化输出
与主流程衔接澄清完直接进 coding❌ 结果孤立⚠️ 需要手动传递✅ 主 Agent 自然衔接

为什么 Tool 不行

需求澄清不是一个"输入→输出"的操作。它的核心困难不是执行,而是问对问题

Tool 可以搜索表、执行 SQL、调接口——这些都是确定性的操作。但"删除操作是否需要二次确认?"这个问题,不是 Tool 能回答的,也不是 Tool 能问出来的。Tool 没有流程编排能力,无法根据前一个答案决定下一个问题。

如果强行用 Tool 做,大概会变成:clarify_requirements(prd_text)→ 返回一堆问题。然后呢?谁来问用户?谁来记录答案?谁来保证 5 个维度都覆盖到了?这些问题 Tool 解决不了。

为什么 SubAgent 不行

SubAgent 最大的问题是自治。需求澄清不能自治——它必须让用户做决策。

如果用 SubAgent 做需求澄清,有两种可能:

  1. SubAgent 自己脑补答案:它根据训练数据推断"删除操作通常需要二次确认",然后自己填上。这就不是"澄清"了,而是"猜测"。用户看到的是一份看起来完整的文档,但每个答案都是 AI 替用户决定的——比 PRD 更危险。

  2. SubAgent 反复向用户提问:但它缺乏流程模板约束,提问顺序可能混乱,可能遗漏某个维度,可能同一个问题换个说法问两遍。SubAgent 的强项是自主探索,不是按部就班地走流程。

为什么 Skill 正好

Skill 的三个特性与需求澄清的三个需求一一对应:

1. 模板驱动 ↔ 维度覆盖

Skill 定义了 5 个维度和每个维度的检查清单。Agent 按模板走,不会遗漏。每个维度有提问模板,确保问题结构化。这是 Tool 做不到的流程保证,也是 SubAgent 容易丢失的结构约束。

2. 交互式执行 ↔ 用户决策

Skill 天然是一问一答的。Agent 问一个维度的问题 → 等用户回答 → 总结确认 → 进入下一个维度。用户始终是决策者,Agent 只是引导者。这是 SubAgent 做不到的交互保证。

3. 主 Agent 执行 ↔ 无缝衔接

Skill 在主 Agent 中执行,不需要启动独立进程。需求澄清的结果直接在主 Agent 的上下文中,下一步可以直接交给 coding Skill 使用,不需要"把结果传过去"。这是 SubAgent 做不到的衔接保证。

一句话总结

需求澄清 =结构化流程(保证不遗漏)+交互式对话(保证用户决策)+模板化输出(保证可消费)。这三点恰好是 Skill 的能力边界,而 Tool 只能做操作,SubAgent 太自治。选对机制,事半功倍。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询