用户 Widget
Agent 运行时生成的组件实例,在素材市场中发现,通过对话放进画布。
用户 Widget 是 VizChat 的长尾 widget 扩展机制——Agent 在对话中生成组件实例,存入数据库作为一条 username/slug@version 记录,其他用户可在素材市场中浏览,并通过对话放进自己的画布,无需等版本发布。
Widget 是什么
- 一段 React/TSX 组件,由后端编译为 ESM bundle(inline mount,默认),或一份自包含的 HTML 文件(nested mount,运行在 iframe 沙箱里)
- 由 Agent 按对话需求生成,也可由开发者手写后发布
- 以
username/slug@version三元组唯一标识 - 有标签(tags)、简介、分类、缩略图、收藏数与质量 / 热度分等社区元数据
用户 Widget vs 内置 widget
| 维度 | 内置 widget(BUILTIN) | 用户 Widget(USER) |
|---|---|---|
| 存储 | 素材市场记录 + 对象存储里的 bundle,运行时加载 | 同样是市场记录 + 对象存储 bundle |
| 发布 | 随仓库发版,由构建脚本同步 | 任何用户都可在 widget 编辑器里发布 |
| 数量级 | 十余种 | 目标千级以上 |
| 状态访问 | 取决于 mount,与内置/用户无关:inline(默认)跑在画布自身的组件树里,可读写画布状态;nested 跑在隔离的 iframe 里 | 同样取决于 mount |
| 适用场景 | 常用、稳定、需要与画布深度集成 | 长尾、一次性、个性化 |
如何使用
1. 在素材市场浏览
点击顶栏的地球图标进入 /marketplace——它是公开页面,未登录也能浏览。可按热门 / 正在流行 / 最新 / 高质量排序,也可关键词搜索。详情页会跑一个实时 demo,还能在一块试用画布上直接上手(选中、改尺寸、改数据和配置——改动只在本页有效,重置或刷新即回到初始状态)、展示文档,登录后可收藏;已开源的 widget 还能下载源码包、或一键导入成你自己的草稿(见下)。
2. 通过对话把 widget 放进画布
在聊天输入框里输入 @widget:,会弹出可选列表(素材市场 / 收藏 / 最近使用);也可以手写引用 @widget:<作者>/<slug>(可加版本 @widget:<作者>/<slug>@<版本>)。Agent 随后会把该 widget 放到画布上。直接用自然语言让 Agent 加也可以。
3. 让 Agent 直接生成
在聊天里说:
"帮我做一个掷骰子 widget" "做一个倒计时器 widget,10 分钟"
Agent 会直接把该 widget 建到画布上——不进入素材市场,也可以事后手动发布。
4. 我的 Widget
登录后点击顶栏的 VizChat 标志进入我的主页 /me,其中的创作与收藏两个区块分别列出你发布过的和收藏的 Widget;各自还有独立页面 /me/creations 与 /me/favorites。
收藏的内容若被原作者删除,卡片会标注已被作者删除并停止跳转;被下架的标注已下架(下架可被恢复,所以它还会留着)。两者都能用卡片右上角的 ✕ 单独移除;收藏页顶部还有一键清理,只清掉已被删除的那些。
基于官方 widget 二次创作
官方 widget 全部以 Apache-2.0 开源。在它们的详情页(标题旁带绿色「已开源」徽章)有两个出口:
下载源码 —— 得到一个 <slug>-source.zip,解压后是一份完整的 widget 包(package.json、src/、测试、LICENSE、NOTICE)。pnpm install 之后就能用 CLI 在本地开发。
导入到我的组件 —— 服务端把源码复制成你名下的一份草稿并打开 widget 编辑器,改完直接发布。包名会自动改成 @<你的用户名>/<slug>。
两条路拿到的是同一份源码,区别只在你想在哪儿改:下载给本地工具链,导入给浏览器里的编辑器。
导入出来的是独立副本,与原 widget 再无关联——改它不会影响官方那份,官方更新也不会回流到你这份。若你名下已有同名组件,导入会被拒绝而不是覆盖;在我的创作里改名或删除后重试即可。
许可证
Apache-2.0 允许你自由使用、修改、再发布(含商用),条件是保留包内的 LICENSE 与 NOTICE 两份文件。它们随下载与导入一起带走,请不要删掉。
rich-text 的 NOTICE 里另有一份 MIT 声明——它内嵌了 Milkdown 的样式代码,那份声明同样需要保留。
Apache-2.0 覆盖的是这份 widget 的源码。它依赖的 @vizchat/* 包(SDK / UI / 构建工具)另有自己的许可证:用于开发、构建、分发甚至售卖 widget 都是免费的,但不允许再分发这些包本身。详见包内的 LICENSE。
发布自己的 Widget
Widget 的发布流程与自定义 widget 开发共享一套工作流,详见 自定义 widget 开发指南。
Tier 限制
Widget 开发能力各档位完全一致,详见 计费规则与档位限制。BYOK 可大幅降低 Widget 调试成本——详见 定价页面。
Next step
- 自定义 widget 开发 — 开发者视角的 widget 开发
- 自定义 widget 指南