用户询问技能 ask-user

用户询问技能是一种用于软件开发和人工智能项目中的交互模式,旨在高效收集用户需求、澄清模糊点并获取关键决策。该技能通过提供具体选项、充分上下文和批量提问,帮助开发者、产品经理和AI智能体在需求分析、方案选择和范围界定阶段与用户有效沟通,避免误解和返工,提升协作效率。关键词:用户交互、需求收集、决策支持、选项呈现、范围澄清、软件开发、AI智能体、沟通模式。

前端开发 0 次安装 0 次浏览 更新于 3/2/2026

name: ask-user description: 用于有效与用户交互以收集信息或获取决策的模式。当需要用户输入时使用。 allowed-tools: AskUserQuestion

询问用户技能

用于有效用户交互的模式。

何时加载此技能

  • 您需要澄清需求
  • 您需要用户做出决策
  • 您有选项需要呈现

原则

1. 具体明确,而非开放式提问

不佳示例:“你想要什么?” 良好示例:“身份验证应该使用JWT还是会话?”

2. 尽可能提供选项

AskUserQuestion(
  questions: [
    {
      question: "我们应该使用哪种身份验证方法?",
      header: "身份验证方法",
      options: [
        { label: "JWT", description: "无状态,适用于API" },
        { label: "会话", description: "有状态,适用于Web应用" }
      ],
      multiSelect: false
    }
  ]
)

3. 提供上下文

解释您询问的原因:

  • 哪些决策取决于此
  • 存在哪些权衡
  • 您的建议及原因

4. 批量处理相关问题

将相关问题一起询问:

questions: [
  { question: "身份验证方法?", ... },
  { question: "令牌过期时间?", ... },
  { question: "刷新令牌?", ... }
]

何时询问 vs 自行决定

询问时机:

  • 存在多种具有不同权衡的有效方法
  • 用户偏好很重要
  • 范围不明确
  • 存在工作浪费的风险

自行决定时机:

  • 存在明确的最佳实践
  • 低影响选择
  • 易于撤销
  • 适用标准惯例

问题类型

澄清

“您提到‘快速’——是指响应时间<100毫秒,还是仅比当前更快?”

确认

“我理解您需要X、Y和Z。这是正确的吗?”

决策

“选项A具有[优点/缺点]。选项B具有[优点/缺点]。您更喜欢哪一个?”

范围

“这应该处理[相关情况]还是仅处理[原始请求]?”