用户提问工具Skill ask-user-question

用户提问工具是一个MCP(模型上下文协议)技能,用于在用户界面中向用户显示模态框提问,获取用户输入、偏好确认和操作批准。该工具支持单选、多选和自定义文本输入,是AI助手与用户交互的关键接口,适用于任务澄清、偏好设置、敏感操作确认等场景。关键词:用户交互、模态框提问、偏好设置、操作确认、MCP工具、AI助手接口、用户输入获取。

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

name: ask-user-question description: 通过用户界面向用户提问。当需要澄清、获取用户偏好或在继续之前进行确认时使用。用户无法看到CLI输出 - 此工具是与他们沟通的唯一方式。

向用户提问

使用此MCP工具向用户提问并获取他们的回答。这是与用户沟通的唯一方式 - 他们无法看到CLI/终端输出。

关键规则

用户无法看到您的文本输出或CLI提示!

如果您写下“让我问您…”然后只是输出文本 - 用户将看不到它。 您必须调用此工具以在用户界面中显示模态框。

何时使用

  • 在开始模糊任务前进行澄清提问
  • 询问用户偏好(例如,“您希望如何组织文件?”)
  • 在执行前确认操作(特别是破坏性/不可逆的操作)
  • 获取敏感操作的批准(财务、消息发送、删除等)
  • 任何需要用户输入才能继续的情况

参数

{
  "questions": [
    {
      "question": "您要问用户的问题",
      "header": "简短标签(最多12个字符)",
      "options": [
        { "label": "选项1", "description": "此选项的作用" },
        { "label": "选项2", "description": "此选项的作用" }
      ],
      "multiSelect": false
    }
  ]
}
  • question(必需):要显示的问题文本
  • header(可选):简短类别标签,显示为模态框标题(最多12个字符)
  • options(可选):可选择选项的数组(建议2-4个)
  • multiSelect(可选):允许选择多个选项(默认:false)

自定义文本输入: 要允许用户输入自己的回答,请包含一个标签为“其他”(不区分大小写)的选项。选择后,用户界面将显示文本输入字段。

{ "label": "其他", "description": "输入您自己的回答" }

重要: 当选择“其他”时,响应将是用户回答:[他们的文本]而不是用户选择了:其他。您必须等待并处理此文本响应 - 不要像他们选择了预定义选项那样继续。

示例

询问组织偏好

AskUserQuestion({
  "questions": [{
    "question": "您希望如何整理您的下载文件夹?",
    "header": "整理",
    "options": [
      { "label": "按文件类型", "description": "分组为文档、图片、视频等" },
      { "label": "按日期", "description": "按月份/年份分组" },
      { "label": "按项目", "description": "您将帮我命名项目文件夹" }
    ]
  }]
})

确认破坏性操作

AskUserQuestion({
  "questions": [{
    "question": "删除这15个重复文件?",
    "header": "确认",
    "options": [
      { "label": "全部删除", "description": "删除所有15个重复文件" },
      { "label": "先查看", "description": "在删除前显示列表" },
      { "label": "取消", "description": "不删除任何内容" }
    ]
  }]
})

简单的是/否确认

AskUserQuestion({
  "questions": [{
    "question": "我应该继续发送这封电子邮件吗?",
    "header": "发送邮件",
    "options": [
      { "label": "发送", "description": "立即发送邮件" },
      { "label": "取消", "description": "不发送" }
    ]
  }]
})

响应格式

该工具返回用户的选择:

  • 用户选择了:按文件类型 - 单选
  • 用户选择了:选项A,选项B - 多选(如果multiSelect: true)
  • 用户回答:[自定义文本] - 如果用户输入了自定义回答
  • 用户拒绝回答问题。 - 如果用户关闭了模态框

错误与正确示例

错误(用户看不到这个):

我将帮助整理您的文件。您希望如何整理它们?
- 按类型
- 按日期
- 按项目

正确(用户将看到模态框):

AskUserQuestion({
  "questions": [{
    "question": "您希望如何整理您的文件?",
    "options": [
      { "label": "按类型" },
      { "label": "按日期" },
      { "label": "按项目" }
    ]
  }]
})