Vercel UI SDK は、Vercel が2026年11月12日に公開した、AIエージェント向けのUIライブラリだ。 フォーカス、キーボード操作、選択、ポップアップといった「振る舞い」を部品にして、エージェントがそれを組んでコンポーネントを作る。出来上がった画面は、エージェントがクリックや画面の読み取りを経ずに、部品の API を呼んで操作できる。下の GIF は、手元の Vite アプリで、コンソールから入力欄とセレクトの値を変えたところだ。

UI SDK の agent bridge を手元で動かしたデモ。agent.snapshot() で入力欄 Project name とセレクト Region の値と操作の一覧を読み、agent.act() で Project name を Atlas に、Region を Asia Pacific に変える。allow で Region だけを許可すると、Project name の変更は ok: false で拒否される

30秒でわかる Vercel UI SDK

  • ・何か:見た目を持たないUI部品のライブラリ。振る舞いは @ui-sdk/core にあり、React・Vue・Svelte・Solid・Web Components で同じ部品を使える
  • ・何ができる:エージェントに部品を作らせる。出来た画面を、エージェントが snapshot・query・act で直接操作する
  • ・何を代替する:ブラウザ操作ツールでの「画面を読んでクリック」の繰り返し。Vercel の計測では、ツール呼び出しが16回から5回に減った
  • ・状態:ベータ(npm は 0.1.0-beta.2)。Apache-2.0。GitHub のスターは約3,700(2026年11月14日)

名前が似ているものと取り違えやすいので、先に分けておく。

名前 何か パッケージ
UI SDK(本記事) 画面の部品と、その振る舞い @ui-sdk/core、@ui-sdk/react など
AI SDK UI チャット画面を作るフック(useChat など) ai、@ai-sdk/react
v0 指示から画面のコードを生成するサービス なし(Web サービス)

部品の作り方や、デザインの決まりごとをどう揃えるかの全体は デザインシステムとは?仕組み・構成要素・有名事例をエンジニア向けに整理する【2026年版】 で整理している。

Vercel UI SDK でできること:使い道は4つ

WHAT YOU CAN DOどんな事で使えるか

UI の作る・使うの両方をエージェントに任せる

  1. 1.部品をエージェントに作らせる

    絵文字ピッカーやかんばんを、テスト済みの振る舞いから組ませる

  2. 2.同じ部品を5つのフレームワークで

    React・Vue・Svelte・Solid・Web Components に同じ部品を出す

  3. 3.アプリ内のアシスタントに画面を操作させる

    createAgent で部品の状態を読み、値を変えさせる

  4. 4.ブラウザのエージェントに渡す

    WebMCP 対応のブラウザに snapshot・query・act を登録する

出典: ui-sdk.dev の Agents ドキュメント(2026-11-14時点)
使い道 向いている場面 使うもの
部品をエージェントに作らせる 既存のライブラリにない部品(絵文字ピッカー、かんばん、段階入力) @ui-sdk/core の behaviors、ui-sdk スキル
5つのフレームワークで共通に使う React と Vue が混在する社内のデザインシステム createParts と各アダプタ
アプリ内のアシスタントに操作させる 「設定画面のこの値を変えて」と頼めるサポート機能 createAgent と agentTools
ブラウザのエージェントに渡す ChatGPT のアプリ内ブラウザなど、WebMCP 対応のブラウザ registerTools

公式サイトは、Select を例に考え方を説明している。エージェントに Select を丸ごと書かせるのではなく、ポップアップ(createPopup)、一覧からの選択(createSelection)、文字を打って候補へ飛ぶ動き(createTypeahead)という部品を渡し、組ませる。

ui-sdk.dev のトップページ。A library of behaviors for agents to build the next generation of user interfaces という見出しと、Select を createPopup・createSelection・createTypeahead に分けて示す図

UI SDK のコンポーネントをデモで見る

公式ドキュメントには、React 版だけで55種のコンポーネントのページがあり、それぞれ操作できるデモが付いている。2026年11月14日に ui-sdk.dev のデモを操作し、開いた状態で撮った。部品そのものは見た目を持たず、下の見た目はドキュメントの例のスタイルだ。

UI SDK の入力・選択の部品のデモ。Select は Role の一覧を開き、矢印キーで Commenter を選んでいる。Combobox は a と打って Astro と SolidStart に絞り込んでいる。Date Picker はカレンダーを開いている。Token Input は @ を打って、メンションする人の候補を出している
UI SDK のそのほかの部品のデモ。Command は se と打って Search Emoji と Settings に絞り込んでいる。Color Picker は色の面とスライダー、Hex の入力、プリセットの色を持つ。Tree はフォルダとファイルの木を開いている。Image Cropper は画像の切り抜き範囲を選んでいる
分類 主なコンポーネント
入力 Input、Textarea、Number Input、OTP Input、Password Input、Token Input、Date Input、Time Input
選択 Select、Combobox、Autocomplete、Listbox、Checkbox、Radio、Switch、Slider、Segmented Control
ポップアップ Dialog、Alert Dialog、Drawer、Popover、Tooltip、Hover Card、Menu、Command、Toast
大きめの部品 Calendar、Date Picker、Color Picker、Image Cropper、Tree、Carousel、Resizable、Waterfall

キーボードでの操作、フォーカスの戻り先、ARIA の属性は部品の側が持つ。各デモの下に「矢印キーで動かし、Enter で選ぶ」といった操作の説明が付いている。

エージェントに画面を操作させる:agent bridge を実機で試す

UI SDK の部品で作った画面には、createAgent でエージェントの入り口(agent bridge)を付けられる。公式ガイドの Vite アプリに入力欄を1つ足し、Node.js 22 と Chromium で動かした。

agent.snapshot() の結果。c1 は input の Project name で、値は Apollo、操作は setValue と clear。c2 は select の Region で、値は europe、操作は setOpen・setValue・clear・setQuery、選択肢は Europe・North America・Asia Pacific

snapshot() は、画面にある部品のラベル、今の値、呼べる操作を返す。エージェントは画面を読み取らずに、ラベルを指定して値を変えられる。

src/agent.ts で入り口を作り、main.tsx の先頭で読み込む。allow は、エージェントに許す操作を決める関数だ。

import { createAgent } from "@ui-sdk/react/agent"

const agent = createAgent({
  allow: ({ component, label, action }) =>
    component === "select" && label === "Region" && action === "setValue",
})

Object.assign(window, { agent })

export { agent }

ブラウザのコンソールから、ラベルを指定して呼ぶ。

window.agent.snapshot()
await window.agent.act({
  steps: [{ ref: "Region", action: "setValue", args: ["Asia Pacific"] }],
})

試した結果は次のとおりだ。

試したこと 結果
allow なしで、Project name を Atlas に、Region を Asia Pacific に ok: true。画面の表示も変わった。Region は asia-pacific という値で返る
query({ within: "Region" }) 閉じたままのセレクトから、3つの選択肢を返した
allow で Region だけ許可し、Project name を変える ok: false、The app refused setValue on c1.。値は Apollo のまま
allow で Region の変更だけを許可した状態で、agent.act() で Project name を Atlas に変えようとした結果。ok は false、error は step 0 と The app refused setValue on c1. で、画面の Project name は Apollo のまま

allow を渡さないと、対応する操作はすべて通る。公式ドキュメントは、課金ボタンのように必ず人に確かめたい部品に data-agent-confirm を付ける方法と、エージェントに見せたくない範囲を data-agent-hidden で隠す方法も示している。

手で試すときに注意したい点もある。snapshot が返す内容には、利用者が入力した文字(表の行の名前など)が入る。ツールの説明は「データとして扱う」ようモデルに指示しているが、指示を仕込まれる余地は残る。大事な変更の前に人が確かめる設定にしておく。

Vercel は、プロジェクト設定画面の変更をエージェントにさせる計測を公開している。

VENDOR BENCHMARKVercel の計測

部品を直接呼ぶと、ツール呼び出しが16回から5回に減った

ブラウザ操作のツール

UI SDK + agent bridge

ブラウザ操作のツール: ツール呼び出し 16回

UI SDK + agent bridge: 5回(−69%)

ブラウザ操作のツール: 読んだテキスト 39.8k字

UI SDK + agent bridge: 6.8k字(−83%)

ブラウザ操作のツール: 時間 41秒

UI SDK + agent bridge: 16秒(−61%)

ブラウザ操作のツール: 費用 0.073ドル

UI SDK + agent bridge: 0.032ドル(−56%)

出典: ui-sdk.dev「Built for Agents」の Benchmark。プロジェクト設定画面の変更タスク、各3回の中央値、Claude Code の Sonnet。当サイトでは再計測していない

比べた相手は、別のコンポーネントライブラリで作った同じ画面をブラウザ操作のツールで動かす方法だ。Vercel 自身の計測で、本記事では再計測していない。

WebMCP に対応したブラウザには、registerTools で snapshot・query・act を登録できる。公式ガイドは ChatGPT のデスクトップアプリ内のブラウザでの手順を載せているが、本記事では試していない。

部品をエージェントに作らせる:behaviors とスキル

HOW IT IS BUILT部品ができるまで

振る舞いを組んで部品にし、各フレームワークに描く

  1. behaviors

    createPopup・createSelection など、フォーカスや選択の部品

  2. primitive

    definePrimitive で状態・操作・パーツをまとめる

  3. createParts

    React・Vue・Svelte・Solid・Web Components に描く

  4. createAgent

    エージェントが状態を読み、操作を呼ぶ

出典: vercel-labs/ui README・ui-sdk.dev(2026-11-14時点)

UI SDK にない部品は、definePrimitive で状態、操作、パーツをまとめて作る。README は「書き方を覚える必要はない。エージェントが書く」としている。エージェントに渡すものは2つある。

・スキル:npx skills add vercel-labs/ui --skill ui-sdk で入る。手元では .agents/skills/ui-sdk/SKILL.md ができ、Claude Code 用の .claude/skills/ui-sdk はそこへのリンクとして作られた
・ドキュメント:各パッケージに、入れた版の Markdown のドキュメントが入っている(node_modules/@ui-sdk/react/docs/ に19ファイル)。サイトには llms.txt もある

テストの道具(キーボード操作、フォーカス、ARIA を確かめるもの)もあり、エージェントが作った部品の動きを確かめられる。本記事では、エージェントに新しい部品を作らせるところまでは試していない。

Vercel UI SDK の導入手順と、ほかの選択肢との違い

使うフレームワークのアダプタと core を入れる。React 以外は @ui-sdk/react を @ui-sdk/vue、@ui-sdk/svelte、@ui-sdk/solid、@ui-sdk/web に替える。

npm install @ui-sdk/react @ui-sdk/core
npx skills add vercel-labs/ui --skill ui-sdk

2026年11月14日の npm では、タグの付き方に注意が要る。版を指定しない npm install が入れる latest は 0.1.0-beta.1 で、新しい 0.1.0-beta.2 は beta のタグにある。本記事では @ui-sdk/react@beta @ui-sdk/core@beta で 0.1.0-beta.2 を入れ、Vite 8 と React 19 の新しいアプリで動かした。スキルの追加も同じ日に通った。

  UI SDK shadcn/ui 自前のコンポーネント
見た目 持たない(自分で書く) Tailwind のスタイル付き 自分で書く
フレームワーク React・Vue・Svelte・Solid・Web Components React(移植版は別プロジェクト) 作ったもの次第
エージェントからの操作 createAgent で読む・変える 仕組みはない 自分で作る
成熟度 ベータ(2026年11月公開) 広く使われている —

shadcn/ui の上で見た目を揃える方法は Square UI解説|shadcn/uiレイアウト20種を実機デモで全検証|MITから独自ライセンスへ と tweakcnとは|shadcn/uiのテーマをノーコードで視覚編集しCSSを吐く使い方を実機解説 で扱った。

向いているのは、エージェントに画面を触らせる機能を作りたい場合と、複数のフレームワークで同じ部品を持ちたい場合だ。見た目の揃った部品をすぐ使いたいだけなら、ベータの API の変更に付き合う理由は薄い。

参照ソース

・vercel-labs/ui(GitHub)
・UI SDK のドキュメント(ui-sdk.dev)
・Built for Agents(ui-sdk.dev の Agents ドキュメント・Benchmark を含む)
・Introducing the UI SDK(Vercel の X の投稿・2026-11-12)
・@ui-sdk/core(npm)