AIボットを社内チャットで動かしている開発者にとって、返信の見せ方が広がる発表です。ボットの返信を、文字だけでなく表、グラフ、ボタンを含むカードとして送れるようになりました。
発表はVercel Changelog(公式の発表)に掲載されています。公開日時は次のとおりです。
- 2026-11-06 21:00 UTC
- 日本時間2026-11-07 06:00
記事の寄稿者としてChris Tateの名前が記載されています。ボットを開発していない人への直接の影響については、発表では触れていません。
カードとは、メッセージの中で見出し・表・ボタンなどをひとまとめにした枠のことです。今回の機能は、Chat SDK(チャットに組み込むAIボットを作るための開発キット)のエージェント(自分で手順を組み立てて動くAI)から、生成UIを流せるようにするものです。生成UIとは、AIが返す内容に合わせて画面の部品を組み立てる仕組みを指します。
仕組みは3段階です。まずAIが部品の仕様書(JSON。データを書く決まった形式)を書きます。次にjson-renderが、その仕様書をChat SDKのカードに変換します。
最後に、送信先ごとのアダプター(接続部分)が、その場所の形式でカードを投稿します。Slackでは Block Kit、Microsoft Teamsでは Adaptive Cards と呼ばれる形式です。
部品の一覧
部品の一覧(カタログ)には、表、グラフ、ボタンなどが入っています。発表では、メッセージの形ごとに専用のツールを作って保守しなくてよい、と説明されています。
サンプルの流れ
まず、json-renderのdefineCatalogで部品の一覧を定義します。部品の決まりとして、@json-render/chatのschema(スキーマ)と標準の部品定義(standardComponentDefinitions)を渡しています。
次に、aiのstreamTextでモデルに問い合わせます。サンプルではモデルとしてanthropic/claude-haiku-5.5が指定されています。
システム指示(プロンプトの土台となる指示。コード上のsystem)には、部品一覧から作られたプロンプト(catalog.prompt())が入ります。ユーザーの質問にあたるpromptには、メンションされたメッセージの本文が入ります。
最後に、ボットにメンションされたとき(bot.onNewMention)に、返答の文字列(textStream)とスレッドをstreamCardに渡し、カードを流します。
返信は生成されながら少しずつ表示される
streamCardは、カードの根になる要素に中身が入った時点で投稿します。その後、新しい要素が届くたびにメッセージを更新します。編集は既定で500ミリ秒に1回までです。
これはChat SDKのストリーミングの間隔と同じ値です。ストリームが終わると、検証を通った最終版のカードが表示されます。




