[ PROMPT_NODE_24576 ]
interactive-commands
[ SKILL_DOCUMENTATION ]
# 交互式命令模式
创建通过 AskUserQuestion 工具收集用户反馈并进行决策的命令的综合指南。
## 概述
有些命令需要用户输入,而简单的参数无法很好地处理。例如:
- 在多个具有权衡的复杂选项之间进行选择
- 从列表中选择多个项目
- 做出需要解释的决策
- 交互式收集偏好或配置
对于这些情况,请在命令执行中使用 **AskUserQuestion 工具**,而不是依赖命令参数。
## 何时使用 AskUserQuestion
### 在以下情况使用 AskUserQuestion:
1. **多项选择决策**,且需要解释说明
2. **复杂选项**,需要上下文才能做出选择
3. **多选场景**(选择多个项目)
4. **偏好收集**(用于配置)
5. **交互式工作流**,根据答案进行调整
### 在以下情况使用命令参数:
1. **简单值**(文件路径、数字、名称)
2. **已知输入**(用户已掌握的信息)
3. **脚本化工作流**(应可自动化)
4. **快速调用**(提示会降低效率的场景)
## AskUserQuestion 基础
### 工具参数
typescript
{
questions: [
{
question: "我们应该使用哪种身份验证方法?",
header: "认证方式", // 短标签(最多 12 个字符)
multiSelect: false, // true 表示多选
options: [
{
label: "OAuth 2.0",
description: "行业标准,支持多个提供商"
},
{
label: "JWT",
description: "无状态,适用于 API"
},
{
label: "Session",
description: "传统的服务器端状态"
}
]
}
]
}
**关键点:**
- 用户始终可以选择“其他”来提供自定义输入(自动生成)
- `multiSelect: true` 允许选择多个选项
- 选项应控制在 2-4 个(不要过多)
- 每次工具调用可询问 1-4 个问题
## 用户交互的命令模式
### 基础交互式命令
markdown
---
description: 交互式设置命令
allowed-tools: AskUserQuestion, Write
---
# 交互式插件设置
此命令将引导您通过一系列问题来配置插件。
## 第 1 步:收集配置
使用 AskUserQuestion 工具询问:
**问题 1 - 部署目标:**
- header: "部署到"
- question: "您将使用哪个部署平台?"
- options:
- AWS (Amazon Web Servi