Agentic Chat Natural conversation with frontend tool execution
chat-ui
Chat Customization (CSS) Default CopilotChat re-themed via scoped CSS overrides
chat-ui
Frontend Tools (In-App Actions) Agent invokes client-side handlers registered with useFrontendTool
interactivity
Frontend Tools (Async) useFrontendTool with an async handler — agent awaits a client-side async operation and uses the returned result
interactivity
Agentic Generative UI Long-running agent tasks with generated UI
generative-ui
Pre-Built: Sidebar Docked sidebar chat via <CopilotSidebar />
chat-ui
Pre-Built: Popup Floating popup chat via <CopilotPopup />
chat-ui
Chat Customization (Slots) Customize CopilotChat via its slot system
chat-ui
Headless Chat (Simple) Minimal custom chat surface built on useAgent
chat-ui
Readonly State (Agent Context) Frontend provides read-only context to the agent via useAgentContext
agent-state
Authentication Bearer-token gate via runtime onRequest hook with unauthenticated / authenticated states
chat-ui
Open Generative UI (Minimal) Agent streams HTML + CSS into a sandboxed iframe via the built-in OpenGenerativeUIActivityRenderer
generative-ui
Open Generative UI (Advanced) Sandboxed UI can call host-side functions (evaluateExpression, notifyHost) via the provider's sandboxFunctions registration
generative-ui
Voice CopilotChat mic button via a runtime mounted with TranscriptionServiceOpenAI; transcribed text is forwarded to the Spring AI backend
interactivity
Agent Config Object Frontend forwards typed config (tone, expertise, responseLength) to Spring, which rebuilds the system prompt per request
agent-capabilities
A2UI Fixed Schema Dedicated Spring tool emits a fixed flight-card component tree plus a data model; frontend catalog renders each component
generative-ui
Headless Chat (Complete) Full chat built from scratch on useAgent plus low-level render hooks (useRenderToolCall, useRenderActivityMessage, useRenderCustomMessages)
chat-ui
Beautiful Chat Polished brand-themed chat surface over the Spring AI agent with seeded suggestion pills
chat-ui
Tool Rendering (Reasoning Chain) Per-tool renderers (WeatherCard, FlightListCard) plus custom reasoningMessage slot composed in a single chat
generative-ui
Declarative Generative UI A2UI dynamic-schema against a branded catalog; backend owns the `generate_a2ui` tool
generative-ui
Shared State (Read + Write) Bidirectional shared state — UI writes preferences into agent state; the agent's set_notes tool mutates state.notes and emits a STATE_SNAPSHOT back to the UI
agent-state
Shared State Streaming Per-token state streaming — the agent's write_document tool streams content into state.document via STATE_SNAPSHOT events; the frontend renders the growing document live
agent-state
Sub-Agents Supervisor delegates to research / writing / critique sub-agents (each its own ChatClient call). Every delegation appends a Delegation entry to state.delegations and emits a STATE_SNAPSHOT for a live UI log
agent-capabilities
Multimodal Attachments CopilotChat AttachmentsConfig for images + PDFs; sample files inject through the same pipeline as the paperclip upload
interactivity
In-Chat Human in the Loop User approves agent actions before execution via text input inside the chat
interactivity
In-App Human in the Loop Agent requests approval via useFrontendTool; the approval UI pops up as an app-level modal OUTSIDE the chat
interactivity
Human in the Loop (Steps) Multi-step HITL flow where the agent pauses for user confirmation at each step
interactivity
Tool Rendering Backend agent tools rendered as UI components
agent-capabilities
Tool-Based Generative UI Frontend registers per-tool component renderers via useComponent; the Spring agent calls render tools that paint chart components inline in the chat
generative-ui
Tool Rendering (Default Catch-all) Out-of-the-box tool rendering — the Spring backend defines tools; the frontend adds zero custom renderers and relies on CopilotKit's built-in default UI
generative-ui
Tool Rendering (Custom Catch-all) Single branded wildcard renderer via useDefaultRenderTool — the same app-designed card paints every Spring tool call
generative-ui
In-Chat HITL (Booking) Time-picker card rendered inline via useHumanInTheLoop for a booking flow against the Spring AI agent
interactivity
MCP Apps MCP server-driven UI via the runtime mcpApps middleware; sandboxed iframe rendered via the built-in MCPAppsActivityRenderer
generative-ui
Declarative UI: Hashbrown Streaming structured output via @hashbrownai/react, rendering a sales dashboard catalog (MetricCard + PieChart + BarChart)
generative-ui
Declarative UI: json-render Streaming structured output via @json-render/react, rendering a sales dashboard catalog (MetricCard + PieChart + BarChart)
generative-ui
Generative UI (Interrupt) Time-picker card rendered inline via useFrontendTool with an async handler that blocks until the user picks a slot — Strategy B adaptation of LangGraph's interrupt() primitive
interactivity
Headless Interrupt Time-picker popup rendered in the app surface (outside the chat) via useFrontendTool with an async handler — headless variant of the interrupt-adapted pattern
interactivity