The AI Chat Block

One block. Every option actually works.

Drop live AI chat onto any page, then choose the model, the tools, the agents, the layout, and the starter actions — and watch every setting take effect. Then run two versions against real traffic and keep the winner.

See it — pick a layout and a view

Layout — where the chat lives

View — how the empty state arranges

This layout is too narrow for a centered hero — it always uses Classic.

How it works

From one config object to the live conversation — nothing dropped on the way.

You configure the block

Every option is one field on a single config object (ChatWidgetConfig) — model, tools, agents, view, starter cards, features.

It reaches the live chat

On a page the block either renders the chat inline, or stamps its config so the always-mounted chat picks it up — no field silently dropped.

The server cross-checks it

Tool/agent allow-lists are re-checked against your stored workspace config — a forged request can only narrow, never widen, a restriction.

The runtime applies it

The picked model answers, excluded tools are filtered out, and the chat can only delegate to the agents you allowed.

What you can set

Six controls, one inspector. Empty always means “use the default”.

Model

Pick which LLM answers — from a searchable list showing each model’s context window. Empty = the workspace default.

Tools

Restrict the chat to a set of tools. Empty means all enabled; a non-empty list actually filters the turn.

Agents

Choose which of your workspace’s agents (from slug/agents) the chat may delegate to.

Starter cards

Add quick-action chips. A card sends its prompt — or launches a workflow you attach to it.

Features

Toggle thread history, voice, speech, thinking, and starter suggestions per widget.

Header & placeholder

Set the title, logo, and input placeholder to match the surface it lives on.

How to use it

Six steps, no deploy.

  1. 1

    Drop the block on a page

    In the page editor, drag the AI Chat block onto any page — or edit your workspace’s default at /u/[slug]/studio/chat.

  2. 2

    Pick a model (optional)

    Search the model list and select one, or leave it blank to inherit the workspace default.

  3. 3

    Scope tools & agents

    Restrict what the chat can do and who it can hand off to. Empty = everything the workspace already allows.

  4. 4

    Choose the look

    Set the layout (icon, rail, panel, full, embedded) and the view (centered or classic).

  5. 5

    Add starter cards

    Give visitors one-click prompts — and attach a workflow to a card to run a real flow (book a demo, get a quote).

  6. 6

    Publish

    The live chat reflects every choice on the next turn. Nothing to redeploy.

Why it’s special

Configurable chat is common. Chat where every switch is real, safe, and testable is not.

No dead settings

Every option does exactly what it says. A toggle either changes the live chat or isn’t shown at all — proven by executing tests, not guesses.

A/B-testable for free

Because every option is an ordinary page field, the built-in experiment engine can split traffic across two configs — centered vs classic, cheap model vs smart — and pick the winner from real conversions. Point ads at each; no new plumbing.

Restrictions that hold

Tool and agent allow-lists are enforced server-side against your stored config. A crafted API call can only narrow what you allowed — never escape it, never escalate.

Workflows on a button

A starter card can launch a workflow — turning “Book a demo” into a real, running flow — reusing the same engine the rest of the platform runs on.

Put it on a page

Open the page editor, drag in the AI Chat block, and set it up in a minute. The chat is live the moment you publish.