什么是 Widget?

最近更新时间:2026-01-12 10:44:52

我的收藏

Widget 概述

Widget 是支持嵌入在应用对话窗口页面中可交互的自定义展示卡片,与传统的纯文本回复不同,Widget 能通过更为直观的方式呈现复杂的输出内容,用户可以直接通过 Widget 上的组件完成追问、信息确认、结果查看等操作,从而有效地提升对话理解效率与用户体验。
Widget 并不是一个完整的页面,而是服务于对话流程中的一个功能单元。

主要特点

多元的创建方式

支持用户通过官网提供的 Widget 模板代码创建自然语言生成以及直接导入 Widget 文件多种方式创建,满足不同技术背景用户的需求。

丰富的组件库

官网内置多种类型的组件(Component),能够满足澄清询问、信息收集、数据展示等多种场景的需求。用户可以通过配置组件属性(Props)定义每个组件的样式和动作。

直观的交互体验

直观呈现:Widget 能够通过清晰的层次结构展示复杂的信息,使信息传递主次分明、简洁明了。
流畅互动:Widget 能将用户传统的“对话式”的指令下达简化为点击、选择等直观操作,优化对话体验,提升操作效率。

Widget 的作用

收集信息
当流程中需要用户做出明确选择或完成信息确认时,可通过下拉选择、单选/多选、输入框等交互方式,引导用户补充必要信息,减少理解偏差和多轮追问。
触发操作
在需要用户明确推进流程或执行动作的场景下,通过按钮、提交等方式直观呈现可执行工作,用户可一键触发后续流程,如继续对话或跳转页面。
展示信息
对于结果、状态或结构化数据的输出,以卡片形式进行展示,突出关键信息,帮助用户快速理解。

使用场景

Widget 适用于各类需要高效操作或直观展示信息的场景,通过以下典型场景的效果示例,能够直观感受使用 Widget 对于对话效果的提升作用。
澄清询问
以应用歌词作者_支付体验版为例,当用户发起请求后,应用进行澄清询问:
原始的文字形式需要进行多轮对话,对话效率低;
在配置 Widget 后,应用通过 Widget 引导对话补充信息,一次性完成澄清询问,对话效率高。
文字形式澄清询问
Widget 形式澄清询问




过程反馈
以应用播客生成为例,当用户发起指定主题生成播客的请求后,需等待任务完成:
配置过程反馈 Widget 前,任务执行过程中用户仅能被动等待,无法判断任务当前是否仍在处理中,容易产生任务卡顿的误判。
配置过程反馈 Widget 后,使用户能够直观了解进度变化,处于任务感知状态,提升体验感。
文字形式过程反馈
Widget 形式过程反馈







信息确认
以应用智能点单为例,在用户点单过程中,需进行下单信息的确认:
配置信息确认 Widget 前,需要用户手动输入进行确认,且信息的呈现不够清晰。
配置信息确认 Widget 后,用户无需手动输入,点击即可完成确认,简化操作,同时待确认信息一目了然,易于阅读。
文字形式信息确认
Widget 形式信息确认








结果展示
以应用天气查询为例,当用户发起天气查询的请求后,应用返回查询结果:
原始的文字形式信息呈现单一。
在配置 Widget 后,通过 Widget 展示结果,信息结构清晰,展示美观。
文字形式结果展示
Widget 形式结果展示







Widget 工作原理

Widget 基于结构化数据,在对话过程中将智能体的输出结果转换为可交互、可展示的界面组件。
整体工作流程如下:
1. 用户发起对话
用户通过自然语言输入问题或指令,发起对话请求。
2. 智能体返回结构化 JSON
智能体根据 Widget 配置,生成并返回符合指定数据格式的结构化 JSON 数据。
3. 数据传输至前端
结构化 JSON 数据传递至前端,前端对数据进行解析,并根据 Widget 配置完成界面渲染。
4. Widget 的展示与交互
对于仅用于结果展示的 Widget,直接在对话框中展示,无需用户进一步操作。
对于需要用户交互的 Widget,用户需完成输入、选择或确认等操作。
5. 用户操作信息返回
若 Widget 无需用户操作,流程在上一阶段结束。
若 Widget 需要用户操作,相关操作结果将被转化为结构化数据,并回传给智能体,作为后续任务执行的输入。

Widget 工作原理流程图



关键概念

Widget 模板

Widget 模板用于展示平台预置的 Widget 最佳实践,仅支持查看,不可直接编辑或使用。
如需使用某个模板,请先将其复制到您的空间中。复制后,会生成一个新的 Widget 展示在 Widget 开发中,只有复制后的 Widget 才能在应用中使用。

Widget 开发

Widget 开发是用于创建和管理 Widget 的实际工作区。
在该 Tab 中新建的 Widget:
直接归属于当前空间。
创建后即可编辑、调试和使用。
可直接在 Agent 或工作流使用。
不受模板只读限制。

组件

组件(Component)是官方预置的构成 Widget 的最小功能单元,用户通过创建模板(Template)来组合和配置组件,并通过定义数据结构(Schema)规范数据格式。Widget 组件可以分为以下类别:
1. 容器组件:此类组件用于组织其他组件,定义 Widget 的区域和结构布局,包括:
2. 布局组件:此类组件用于控制子组件的排列方式和布局,包括:
3. 文本组件:此类组件用于展示各类文本内容,包括:
Markdown
4. 内容组件:此类组件用于展示信息的呈现形式,包括:
5. 交互组件:此类组件用于触发用户操作。
6. 表单组件:此类组件用于采集用户输入数据,包括:
7. 其他组件:此类组件用于为子组件添加进入与退出时的动画效果。
8. 数据可视化:此类组件用于将数据转化为可视化图表。

模板

模板(Template)通过编排各类组件构建 Widget 的布局、样式和交互,通常由一个容器组件和若干其他组件组成。

数据结构

数据结构(Schema)对模板(Template)中引入的变量进行数据类型和格式的规范,确保默认值(Default)中的数据能准确填充到 Widget 中。

默认值

默认值(Default)为 Widget 模板(Template)中的变量提供数据,在用户未输入实际数据时作为占位内容展示。

Widget 使用的注意事项

在使用 Widget 时,需要注意,一般情况下 Widget 默认仅在当前对话阶段有效,当对话继续推进后,已经被操作过的 Widget 无法重新操作。
对于需要在后续对话中仍可重复触发的交互(例如下载sys.download、跳转sys.go_to_url等操作),可通过在组件中配置alwaysEnabled字段,使对应按钮在对话推进后仍支持重复点击。详情请参见 Button 按钮Widget Action 使用说明