agentskit.js
Open specs

Generative UI

Schema-driven renderers. LLM outputs typed JSON; UI reflects it.

Subpath: @agentskit/core/generative-ui.

Shape

type GenerativeBlock =
  | { kind: 'text'; content: string }
  | { kind: 'table'; columns: string[]; rows: unknown[][] }
  | { kind: 'form'; fields: FormField[]; onSubmit: { tool: string } }
  | { kind: 'chart'; spec: ChartSpec }
  | { kind: 'citation'; url: string; title?: string }

Validator

import { parseGenerativeBlock } from '@agentskit/core/generative-ui'

const block = parseGenerativeBlock(llmOutput)

Renderer contract

Every UI binding (React / Vue / Svelte / Solid / Angular / RN / Ink) ships a <GenerativeBlock> component. Swap kinds without changing the render call.

✎ Edit this page on GitHub·Found a problem? Open an issue →·How to contribute →

On this page