找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1431

积分

0

好友

208

主题
发表于 7 小时前 | 查看: 1| 回复: 0

在基于Claude Code构建Agent系统时,其内置的交互工具AskUserQuestion提供了独特的用户确认机制,支持并行多问题与单选/多选模式,极大地丰富了智能体的决策路径设计。

AskUserQuestion是Claude Code中一个强大的交互式工具,允许AI在执行过程中向用户发起结构化提问,以获取确认、选择或补充信息。该工具特别适用于需要用户介入的关键决策点,能有效提升Agent智能体的交互质量与任务执行准确性。

核心特性

  • 并行提问:支持同时提出1-4个问题,每个问题独立配置。
  • 灵活选择模式:每个问题可设置为单选(multiSelect: false)或多选(multiSelect: true)。
  • 界面清晰:每个选项均包含标签(label)和详细说明(description),通过多标签页(Tab)呈现,直观易懂。
  • 预设答案:支持通过answers参数提供预设答案,实现基于上下文的智能交互。

参数详解

questions 参数

questions是一个数组,用于定义所有提问。每个问题对象结构如下:

questions: Array<{
  question: string;        // 必需:具体问题内容,必须以问号结尾
  header: string;         // 必需:问题分类标签,最多12字符
  options: Array<{        // 必需:选项数组,必须包含2-4个选项
    label: string;        // 必需:选项显示名称,建议1-5个词
    description: string;  // 必需:选项详细说明
  }>;
  multiSelect: boolean;   // 必需:是否允许多选
}>
answers 参数(可选)

answers参数用于预设答案,格式为键值对映射:

answers: {
  [questionIndex: string]: string;  // questionIndex 对应问题索引,值为选项的 label
}

应用示例

示例1:代码重构决策

当检测到代码重复时,Agent可以询问用户选择何种重构策略。以下配置生成一个单选问题:

{
  "questions": [{
    "question": "检测到代码重复,您希望如何重构?",
    "header": "重构策略",
    "options": [
      {
        "label": "提取公共函数",
        "description": "将重复代码提取为独立函数"
      },
      {
        "label": "创建基类",
        "description": "设计父类抽象公共行为"
      },
      {
        "label": "使用工具类",
        "description": "创建静态工具类处理通用逻辑"
      }
    ],
    "multiSelect": false
  }]
}

代码重构决策界面

示例2:性能优化方案组合

通过组合多个问题,一次性收集用户对性能瓶颈和缓存策略的偏好,减少交互次数。以下示例包含两个单选问题:

{
  "questions": [
    {
      "question": "API 响应时间过长,优先优化哪个部分?",
      "header": "性能瓶颈",
      "options": [
        {
          "label": "数据库查询",
          "description": "优化 SQL 和添加索引"
        },
        {
          "label": "网络请求",
          "description": "减少 HTTP 调用和数据传输"
        },
        {
          "label": "计算逻辑",
          "description": "优化算法和数据处理"
        }
      ],
      "multiSelect": false
    },
    {
      "question": "选择缓存策略?",
      "header": "缓存方案",
      "options": [
        {
          "label": "Redis 缓存",
          "description": "分布式缓存,支持集群"
        },
        {
          "label": "本地缓存",
          "description": "应用内缓存,响应最快"
        },
        {
          "label": "多级缓存",
          "description": "本地 + 分布式缓存组合"
        }
      ],
      "multiSelect": false
    }
  ]
}

性能优化方案界面

在性能优化场景中,合理选择缓存策略至关重要,例如采用Redis缓存可以有效提升分布式系统的数据访问速度。

使用限制

AskUserQuestion工具专为结构化选择设计,存在以下约束:

  • 选项固定:用户只能从预定义的2-4个选项中选择,不支持自由文本输入。
  • 格式严格:每个选项必须包含labeldescription
  • 交互定向:旨在快速收集决策,不适合开放性问题。若需文本输入,通常需预设“其他”选项引导用户后续描述。

该工具的设计为构建高效、用户友好的AI智能体提供了强大的交互基础,尤其适合需要逐步确认或分支决策的自动化流程。




上一篇:Sealos DevBox SSH Gateway架构优化:单端口服务上万开发环境
下一篇:Windows 11安装U盘制作指南:使用Ventoy与镜像瘦身完整教程
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-24 19:00 , Processed in 0.163647 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表