ui - 面向 AI 代理的界面行为库
ui 是 vercel-labs 维护的界面行为库,把键盘导航、焦点、选择、弹层、拖放与 ARIA 等交互行为收进 @ui-sdk/core,并提供 React、Vue、Svelte、Solid 与 Web Components 适配层,目标是让 AI 代理据此拼装新一代用户界面。项目目前处于 beta 阶段,尚无正式 release。
ui 是 vercel-labs 维护的一个界面行为库,项目自述的定位是「给代理用来构建下一代用户界面的行为库」。它把键盘导航、焦点管理、选择、关闭(dismissal)、弹层、拖放以及这些交互所需的 ARIA 属性集中放进 @ui-sdk/core,再通过适配层输出到 React、Vue、Svelte、Solid 与 Web Components 五种目标。换句话说,它卖的不是一套现成的组件皮肤,而是一层可被组合、可被代理读写的交互行为底座。适合的人群比较明确:正在为 AI 编码代理搭建前端基础设施的团队,以及希望同一套行为定义在多个框架间复用的组件库作者。
维护者与状态
仓库位于 GitHub 的 vercel-labs 组织下,维护者为 vercel-labs。仓库创建于 2026-10-26,最后一次提交在 2026-11-13,截至 2026-11-14 读取数据时星标数为 3874。项目目前尚无正式 release,README 中也明确写着 UI SDK 处于 beta 阶段,框架、API、文档与行为在正式可用(general availability)之前都可能发生变化。对打算引入生产环境的团队来说,这一点需要提前纳入评估:接口稳定性没有版本号层面的承诺。
主要能力
以下内容来自项目自述,属于维护者对自身能力的描述,并非第三方评测结论。
- 行为与渲染分离:每个组件都由「行为」构成。开发者先用
definePrimitive定义一个原语(primitive),在其中声明状态、对外 API 与插槽(slot),再用createParts在具体框架里渲染成可用的部件。项目自述称,使用者不需要自己学习如何编写这套定义,「你的代理会写,而且我们让它们很擅长这件事」。 - 内置交互行为:据项目说明,键盘导航、焦点、选择、关闭、弹层、拖放以及配套的 ARIA 都随
@ui-sdk/core提供。README 示例中出现了createFocusRecovery,用于在元素被移除等情况下把焦点回退到指定元素。 - 多框架适配:提供
@ui-sdk/react、@ui-sdk/vue、@ui-sdk/svelte、@ui-sdk/solid、@ui-sdk/web五个包。项目自述强调,同一份原语在五个框架里产出的部件是一致的。 - 面向代理的技能包:README 提供了一个
npx skills add vercel-labs/ui --skill ui-sdk命令,用于把该项目的技能交给编码代理,让代理按这套约定生成代码。 - Web Components 路径:在 Web Components 适配层中,可以为每个部件注册自定义元素,并通过
wrappedChild、wrappedButton等包装目标映射到原生元素。
使用入口
仓库地址:vercel-labs/ui;官方文档站点:ui-sdk.dev。
据项目说明,安装方式是先装核心包与对应框架的适配包,例如 React 项目:
npm install @ui-sdk/react @ui-sdk/core
其他框架把 @ui-sdk/react 换成 @ui-sdk/vue、@ui-sdk/svelte、@ui-sdk/solid 或 @ui-sdk/web 即可。随后可选地把技能交给代理:
npx skills add vercel-labs/ui --skill ui-sdk
典型流程分两步:先在 @ui-sdk/core 中用 definePrimitive 定义原语(包含 state、api、slots 三部分),再在框架侧用 createParts 把插槽映射到具体标签,得到 parts.Root、parts.Input、parts.Clear 这类部件并在页面中组合。Web Components 场景下则改为注册自定义元素标签名。
许可与限制
许可证为 Apache-2.0。需要留意的限制与边界,主要来自项目自述:
- beta 状态:项目明确说明当前受 Vercel beta 条款约束,框架、API、文档与行为在正式可用前都可能调整,且尚无正式 release 可供锁定版本。
- 学习曲线转移而非消失:原语的编写方式本身有一定门槛,项目把这一环交给代理完成;如果团队不使用代理工作流,就需要自行掌握
definePrimitive与createParts的约定。 - 行为库而非成品组件:它提供的是行为与部件映射,样式与具体视觉呈现不在项目自述的能力范围内。
- 安全披露流程:项目要求不要通过公开 issue 报告安全漏洞,而应按 SECURITY.md 的流程发送到指定邮箱 responsibly 披露。
素材中没有给出性能数据、包体积、浏览器兼容范围或硬件要求,因此本文不对这些方面作任何判断。是否适合引入,建议以官方文档与仓库当前状态为准。