Ask Block
运行时暂停工作流,等待用户输入后继续执行。
功能说明
Ask Block 是一种交互式输入节点。当工作流执行到 Ask Block 时,流程会暂停并弹出输入界面,等待用户输入回答后才继续执行后续节点。它通常用于需要人工介入提供信息的场景,例如确认操作、补充参数或收集用户反馈。
Ask Block 没有独立的后端执行器 —— 运行时通过 pause 机制挂起,前端展示输入框,用户提交后恢复执行。
使用场景
- 人工确认:工作流执行到关键步骤前,暂停让用户确认是否继续,或输入额外的指令。
- 动态参数收集:在流程运行过程中收集用户提供的变量值(如搜索关键词、目标 URL),供后续 Block 引用。
- 交互式对话:配合 Generation Block 构建多轮对话流程,每轮先 Ask 用户问题、再 AI 生成回复。
配置参数
| 属性名 | 类型 | 说明 | 默认值 |
|---|---|---|---|
id | string | 节点唯一标识(自动生成) | — |
name | string | 节点名称(自动生成,可自定义) | — |
placeholder | string | 输入框占位提示文本 | 'Ask anything...' |
placeholderVisibility | 'always' | 'empty' | 占位符显示模式 | 'always' |
输出变量
Ask Block 在用户提交回答后产出以下变量:
| 变量名 | 类型 | 说明 |
|---|---|---|
__default__ | string | 默认输出,等同于 question(问题内容) |
question | string | 用户在 Ask Block 中设置的问题文本 |
answer | string | 用户在运行时输入的回答内容 |
所有变量在 Ask Block 完成(用户提交回答)后才可被引用。
引用语法示例:
用户的回答是:{{ask_1.answer}}
问题内容:{{ask_1.question}}使用示例
示例 1:收集用户关键词后进行 AI 搜索
[Ask Block] name: ask_1
问题占位符: "请输入你想搜索的关键词"
[Generation Block] name: gen_1
Prompt: 请根据以下关键词进行总结:{{ask_1.answer}}示例 2:多步确认流程
[Generation Block] name: gen_1
Prompt: 生成一份报告草稿...
[Ask Block] name: ask_1
问题占位符: "请查看上方草稿,输入修改意见(输入"确认"则跳过)"
[Generation Block] name: gen_2
Prompt: 根据用户反馈修改报告:{{ask_1.answer}}运行时约束
- 适用文档类型:普通文档(document)。不可用于 skill 文档。
- 可插入上下文:文档顶层。
- 不可插入上下文:Promise 分支、Branch 分支内部。
- 嵌套限制:Ask Block 不能嵌套在其他容器 Block(如 Loop、If-Else)内部的 Promise/Branch 上下文中。
注意事项
- Ask Block 会阻断工作流执行,直到用户提交回答。如果用户未响应,流程将一直等待。
- Ask Block 不适合用于全自动化场景(如定时任务、API 触发的无人值守运行),因为它需要人工交互。
- 在 skill 文档中不可使用 Ask Block,因为 skill 设计为全自动执行。
question变量的值来自 Ask Block 节点内部编写的文本内容,answer是用户在运行时输入框中填写的内容。