
# 提问器
提问器节点在工作流执行过程中**主动向用户发起提问**，从自然语言对话中提取完成任务所需的结构化参数。它会循环追问，直到收集到所有必需信息或达到最大交互轮数。
#### 运作机制
提问器的执行流程如下：
1. 分析用户对话内容，提取已提供的参数；
2. 判断是否所有必需参数均已提取；
3. 如果有缺失，生成追问继续收集；
4. 重复[1]\~[3]，直到所有参数提取完成或达到最大回复轮数。
 
#### 约束与限制
提问器节点仅适用于对话型工作流。
#### 配置提问器节点
配置提问器节点的详细参数说明如下：
#### 模式偏好选择
可选择效果优先或速度优先，参数说明如[表1]所示。
 表1模式偏好选择 
| 模式       | 适用场景                                 | 特性                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|
| **效果优先** | 适合高精度场景，例如预订系统、表单填报、审批流程等参数准确性要求高的场景 | - **开启时间增强**：将自然语言时间转换为标准格式YYYY-MM-DD HH:MM:SS，例如用户输入：明天下午两点半，则提取为2026-03-09 14:30:00。  - **开启反思**：模型对提取结果进行二次校验，发现错误时自动纠正或继续追问。例如期望提取电话号码，用户输入：我不记得电话号码，提取出：189\*\*\*\*\*\*，反思后会认为提取不正确，会继续追问。  - 延迟较高（因为模型多次推理）。   |
| **速度优先** | 适合低延迟场景，例如闲聊助手、简单信息收集等对速度敏感、容错率高的场景  | 无时间增强，无反思，响应极快。                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   
#### 模型配置
选择用于参数提取和反思纠正的模型。建议选择具备良好指令遵循能力的模型。
您还可以单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687790516.png)图标，调整模型配置。模型配置的详细说明可参考[选择并配置模型](https://support.huaweicloud.com/lowcode-agentarts/agentarts_05_0017.html)。
#### 输入参数
输入参数用于向提问话术中注入**动态数据**，通常引用前置节点的输出。
单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687790514.png)图标时，可新增输入参数，单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717390131.png)图标时，可删除输入参数。
- 参数名称：只允许输入字母、数字、下划线，且不能以数字开头。
- 类型、值：支持"引用"和"输入"两种类型。
  - 引用：支持引用三类参数源，工作流前置节点的输出参数、全局配置中的记忆变量（需预先设置），以及系统参数。
    系统参数列举如下：
    - "conversation_history"：存储当前对话的历史消息记录。
    
    - "current_time"：获取当前的系统时间戳或时间字符串。
    
    - "user_id"：识别当前用户的唯一标识符。
    
    - "conversation_id"：当前工作流的唯一对话标识。
    
    - "dialogue_count"：当前对话的轮次数计数。
      
  
  - 输入：手动填写固定值，选择"输入"类型后，填写的固定值将直接传递给大模型，前置节点的输出内容不会被引用。
   
- 描述：（可选）用于说明该输入参数的具体含义。
示例：以会议室预订场景为例，假设前置节点"查询空闲会议室"输出了可用会议室列表，提问器节点定义输入参数"available_rooms"，引用前置节点"查询空闲会议室"的输出变量值{{room_list}}。"问题"配置为：有以下几个会议室供您选择：{{available_rooms}}，请选择您想预订的会议室。
#### 输出参数
输出参数定义了提问器需要从用户对话中提取的结构化数据。
- 默认输出参数：每个提问器节点自动包含以下系统参数，如[表2]所示。
   表2默认输出参数 
  | 参数名           | 类型      | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
  |:---|:---|:---|
  | USER_RESPONSE | string  | 用户的原始回复文本（未经处理）                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
  | STATUS        | integer | 提取状态码，用于下游节点判断提取结果。状态码的含义如下： - 0：正常成功提取，用户无确认。  - 10：正常成功提取，用户已确认。  - 100：取到部分参数，用户主动中断，已提参数报错，未提参数按格式置空。  - 101：取到部分参数，循环超轮次，已提参数报错，未提参数按格式置空。  - 201：大模型调用异常。  - 202：反思模块有错误（仅"效果优先"模式可能出现）。   |
     
  
- 自定义提取参数：开启"参数提取"功能后，可定义需要从用户回复中提取的具体参数。
  表3参数说明 
  | 配置项  | 说明                                                                                                                                                                                                                                                                                                                                | 示例                                                                                                                |
  |:---|:---|:---|
  | 参数名称 | 只允许输入字母、数字、下划线、短横线。                                                                                                                                                                                                                                                                                                               | meeting_room                                                                                                      |
  | 展示名称 | 用于追问话术中展示（不可为空）                                                                                                                                                                                                                                                                                                                   | 会议室                                                                                                               |
  | 类型   | 输出参数的数据类型，可选String、Integer、Number、Boolean。                                                                                                                                                                                                                                                                                        | String                                                                                                            |
  | 默认值  | 所有追问结束但仍未提取到参数时，使用的兜底值                                                                                                                                                                                                                                                                                                            | A101                                                                                                              |
  | 描述   | 对参数的详细描述，帮助大模型理解参数含义，提升提取准确率                                                                                                                                                                                                                                                                                                      | 用户想要预订的会议室编号                                                                                                      |
  | 校验   | 限定参数的可选值范围。 - 勾选：可定义参数校验规则对输出参数规范性进行校验。规则包括参数名称、校验类型及校验规则。校验不通过时，提问器会自动追问用户重新输入。  - 不勾选：对输出参数不进行校验。   | 例如，会议室预订场景，用户可以选择预订的会议室有A101、A102和A103。 则校验类型选择"枚举值"，校验规则填写为"A101,A102,A103"。 |
  | 提取   | - 勾选：该参数为必填项（必须提取到或使用默认值）。  - 不勾选：允许为空。                                                                                                         | 开启                                                                                                                |
     
  示例：以会议室预订场景为例，需要询问用户预订哪个会议室，可选会议室有A101、A102和A103。如果用户反馈预订A102，则meeting_room参数值提取为"A102"；如果用户反馈B203，由于不满足校验规则，提问器节点会继续追问用户需要预订哪个会议室；经过多轮追问后，如果用户没有反馈有效的会议室，则meeting_room参数值根据配置的默认值提取为"A101"，输出参数配置如[图1]所示。
  图1配置输出参数   
  ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717550007.png "点击放大") 
- 引用插件参数：如果您提取参数与已有插件的请求参数一致，可以单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717390137.png)按钮，从"插件广场"或"我的插件"中选择插件，一键导入参数定义和校验规则。
 
#### 问题配置
配置提问器向用户展示的问题文本，也可以单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687790526.png)快速插入输入参数，或在输入框中键入"{{}}"快速引用参数，支持引用多个参数。
表4问题配置 
| 配置项    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|
| 问题     | 首次提问时展示给用户的文本。 - 配置问题文本：问题文本原样展示给用户，可通过Jinja语法在问题中使用输入参数。最大支持输入3000个字符。 示例1：请问你的名字是什么？ 示例2：请问你是哪个班级的，可选班级有{{classes}}（classes先在输入参数配置好）。 ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687790528.png "点击放大")   - 未配置问题文本：将由大模型根据输出参数描述，自动生成包含所有问题关键词的一个问题。   |
| 最大回复轮数 | 与用户的最大交互次数。超过后提问器退出，未提取参数使用默认值或置空。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   
#### 高级配置
- **允许用户退出交互**：开启后，如果用户在与提问器的对话交互中，表达"中止对话"类的意图，系统会自动结束当前提问，并跳转至结束节点。
- **输出参数确认**：开启后，提问器在参数提取完毕后会请求用户进行确认。
- **提取约束** ：
  为大模型提供额外的约束信息，提升参数提取的准确性，例如指定被提取参数的格式要求。
  示例如下：
  - 用户希望提取电话号码tel_number，提取约束可以写：tel_number必须是11位数字，以1开头。
  
  - 用户希望提取会议日期meeting_date，提取约束可以写：meeting_date格式为YYYY-MM-DD，不接受过去的日期。
  
  
  用户可单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717390125.png)图标直接引用提示词模板；也可以自行撰写提取约束，撰写后可单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687790530.png)图标对当前约束进行语义优化，提升提取效果；也可单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717390145.png)图标保存到模板，在"组件库\>提示词"中可查看该模板；也可以单击快速插入输入参数，或在输入框中键入"{{}}"快速引用参数，支持引用多个参数。
  
- **追问模式** ：
  当用户回复未能提供所有必需参数时，提问器会发起追问。三种模式区别如下：
  - 默认：使用默认内置追问模板生成追问语句，每次追问内容相同。
  
  - 智能追问：（推荐）由大模型根据缺失字段自动生成自然的追问，每次追问内容丰富多变。
  
  - 自定义追问：按照自定义模板配置生成追问语句。{unextracted_cn_field_names}是系统占位符，不可修改或删除，系统会自动替换为尚未提取的参数中文名称。每次追问内容相同。
  
  
  示例：以要提取"姓名"和"年龄"，用户仅提供了名字为例，三种模式的追问如下：
  - 默认：请您提供年龄相关的信息。
  
  - 智能追问：哎呀，您还没告诉我年龄呢。（模型生成，内容不固定。）
  
  - 自定义追问：请补充以下信息：年龄。（按模板生成）
   
- **追问显示枚举值** ：
  开启后，如果参数设置了枚举值校验，追问时自动展示参数的可选枚举值，帮助用户快速选择。
  例如，输出参数meeting_room配置了枚举值校验A101,A102,A103，开启后追问为：请选择会议室，可选项为：A101,A102,A103。
  
- **示例配置** ：
  给大模型一段参数提取的示例，增强大模型对参数提取场景的理解。
  示例格式：
  输入query：我要坐飞机去呼和浩特学习培训
  提取参数：{"location":"呼和浩特", "traveltool":"飞机"}
  
 
#### 相关操作
- 单击节点名称，可修改节点名称。
- 单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717549909.png)图标，可对节点进行重命名、复制、删除或更换节点；也可以将节点连接到结束节点。
- 单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687790412.png)图标，可对节点进行测试。
- 单击名称下面的节点说明，可修改节点的描述信息。
- 单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717549911.png)图标，可查看文档信息。
 
#### 配置示例
以根据输入的文档内容和文档标题，自动生成一个可以下载的word格式的文档为例。
图2工作流   
![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717390147.png "点击放大")
工作流核心节点如[表5]所示。
 表5节点配置说明 
| 节点类型      | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 示例                                                                                                                                        |
|:---|:---|:---|
| 开始节点      | 使用系统默认配置query参数，表示用户输入的内容。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |   ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717390127.png "点击放大")                              |
| 提问器节点     | 此节点用于向用户提问，需要用户提供文档内容和文档标题。 **模型配置：**DeepSeek-V4-Flash **输入参数：** input：引用"开始"节点的query。 **输出参数：** 单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687950370.png)按钮，从"插件广场"选择"文档生成"插件，一键导入参数定义和校验规则。 **问题配置：**您好，为了能更好地协助您处理相关文档，可以告诉我您想处理的文档名称和文档内容吗？ **高级配置：** 追问模式：勾选"智能追问"。  | ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687950368.png "点击放大")  |
| 插件节点-文档生成 | 此节点基于用户提供的文档内容和文档名称，生成一个可以下载的word格式的文档。 **输入参数：** - input：引用"提问器"节点的输出参数input。  - document_name：引用"提问器"节点的输出参数document_name。                                                                                                                                                                                                                   | ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717550021.png "点击放大")                                            |
| 结束节点      | 此节点用于输出文件解析的结果。 **输入参数：** result：引用"文档生成"插件节点的输出参数URL。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717550013.png "点击放大")                                            |
   
工作流运行的效果如[图4 效果示例]所示，"您好，为了能更好地协助您处理相关文档，可以告诉我您想处理的文档名称和文档内容吗？"，用户发送文档名称后，提问器追问，需要用户提供文档内容。
图3效果示例   
![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687950376.png "点击放大")
#### 常见问题
- **什么时候用"提问器"，什么时候用"问答节点"配合"循环"？**
  - 提问器：适合非线性的信息收集。用户可以说"订明天的票，两个人"，一次性收集time和people两个参数。
  
  - 问答+循环：适合线性的问卷调查。必须按顺序问完问题1再问问题2，不允许跳跃。
   
- **模型总是提取错误的参数值，怎么办？**
  按优先级尝试以下方法：
  1. 切换为**效果优先**模式，开启反思功能。
  
  2. 在**提取约束**中增加明确的格式要求和取值范围。
  
  3. 在**示例配置**中添加1--2个典型的提取示例。
  
  4. 优化输出参数的**描述**，让大模型更准确理解参数含义。
  
  5. 尝试更换能力更强的模型。
   
- **用户被困在提问循环中无法退出？**
  在高级配置中开启**允许用户退出交互**。开启后，用户表达中止意图时提问器自动结束（STATUS=100）。
  
- **如何让用户在提交前确认提取结果？**
  在高级配置中开启**输出参数确认**。所有参数提取完毕后，提问器会展示结果摘要并请求用户确认。
  
- **下游节点如何判断提取是否成功？**
  在提问器下游添加**条件分支节点**，根据提问器节点的输出参数{{STATUS}}路由到不同处理逻辑：
  - 如果STATUS=0或10，则正常处理。
  
  - 如果STATUS=100或101，则部分结果兜底处理。
  
  - 如果STATUS\>=201，则错误处理或重试。
   
- **STATUS为100/101时，未提取到的参数值是什么？**
  - 如果配置了默认值，则使用默认值。
  
  - 如果未配置默认值，则参数值为空（需下游节点做判空处理）。
   
- **反思模块报错（STATUS=202）如何处理？**
  "STATUS=202"仅在"效果优先"模式下可能出现，表示反思校验环节异常。此时提取结果可能不准确，建议：
  - 在下游条件分支中将202路由到降级处理逻辑。
  
  - 或切换为"速度优先"模式绕过反思环节（牺牲准确率）。
   
 
