Conversational and agentic UI for Blazor: a chat that calls your C# code and asks before it acts, a prompt box, smart paste, and AI inside the DataGrid, Scheduler and Chart. One abstraction, any model provider.
Raise the price of Chai by 10%
The assistant wants to run UpdateProductPrice.
Drop them into any page. They share the same IChatClient, so configuring the provider once is enough.
A streaming chat with conversation memory that can call your C# code, show the results with Radzen components and ask the user before it acts.
Tool calling with AIFunction and your methods
Human-in-the-loop approvals
Generative UI through ToolCallTemplate
Markdown, memory, voice input
A prompt box with suggested prompts, a streaming output panel and commands that refine the result, optionally applied to a piece of text.
Suggestions and commands (shorter, formal, translate)
Context for editor content or chart data
Copy, regenerate, custom output template
Reads the clipboard, extracts the fields of your form model with the AI model and assigns the values - dates, numbers, enums included.
Works with any model class and RadzenTemplateForm
Description and Display attributes guide the model
Fields, Instructions and Paste(text)
A button next to a TextBox or TextArea opens a prompt popup; the value or the selected text is the context and the result replaces or extends it.
Replace the whole value or just the selection
Suggestions and commands per field
Open from your own trigger with OpenAsync
RadzenAIChat goes beyond text. The model acts in your application and the user stays in control.
The model calls your C# methods; every call is shown as a card with arguments, status and result.
Render tool results with Radzen components - a chart or a data grid inside the conversation.
Wrap a tool in ApprovalRequiredAIFunction and the chat asks the user before it runs.
Talk to the assistant with RadzenSpeechToTextButton and the browser's speech recognition.
Models that expose their reasoning show it as a collapsible block above the answer.
Conversations are saved through IConversationStore after every answer and restored with tool calls and attachments.
Attach images, text files or PDFs to a message: images go to a multimodal model, text files are read by any model.
Answers list their sources: citations returned by tools or attached by providers such as OpenAI web search or Perplexity.
Rewrite, summarize or translate the selection in the HtmlEditor and MarkdownEditor.
The same tools and prompts work with the DataGrid, Scheduler and Chart you already use.
Filter, sort, group and arrange a DataGrid in natural language through grid API tools.
A column with values generated by the model for the rows of the current page in one request.
Find rows by meaning: rows and the query are embedded and ranked by similarity.
Describe a condition in plain words and the matching rows are highlighted in place.
Read, add, move and delete appointments by chatting, with approval for every change.
Ask questions about a chart - AIPrompt gets the series as context and answers with the numbers.
Ready-made welcome screens, prompt suggestions and ask bars built around RadzenAIChat.
An AI toolbar tool that rewrites the selected Markdown with RadzenAIPrompt in a dialog.
Every component talks to the model through IChatClient from Microsoft.Extensions.AI.
Point the built-in client at any OpenAI-compatible endpoint, or register the client of your provider and add logging, caching or OpenTelemetry with ChatClientBuilder.
Because the chat is built on IChatClient, an AG-UI agent backend plugs in through the AG-UI .NET SDK without changes to the UI.
AddAIChatService with an endpoint, or AddChatClient with your provider.
RadzenAIChat, RadzenAIPrompt or RadzenSmartPasteButton pick up the client automatically.
Pass AIFunction tools created from your methods; wrap the risky ones in ApprovalRequiredAIFunction.
// Program.cs (server) - any OpenAI-compatible endpoint, the key stays here
builder.Services.AddAIChatService(options =>
{
options.Endpoint = "https://api.openai.com/v1/chat/completions";
options.ApiKey = builder.Configuration["OpenAI:ApiKey"];
options.Model = "gpt-4o-mini";
options.EmbeddingsModel = "text-embedding-3-small";
});
// Program.cs (WebAssembly client) - no key in the browser, the server forwards
builder.Services.AddAIChatService(options => options.Proxy = "api/chat/completions");
// or register the IChatClient of your provider
builder.Services.AddChatClient(new OllamaApiClient(new Uri("http://localhost:11434"), "llama3.2"))
.UseLogging();
builder.Services.AddAIChatService();
// Index.razor
<RadzenAIChat Title="Assistant" Tools="@tools" />
@code {
AITool[] tools =
[
AIFunctionFactory.Create(GetOrders),
new ApprovalRequiredAIFunction(AIFunctionFactory.Create(CancelOrder))
];
}Radzen Blazor MCP is a cloud-hosted Model Context Protocol (MCP) server that gives AI coding assistants real-time access to Radzen Blazor component documentation, APIs, and templates. No packages to install — works with Cursor, Claude Code, GitHub Copilot, JetBrains, Windsurf, and other MCP-capable tools.
Component API docs, ready-made templates, and usage guides for 155+ components
Semantic search over complete Radzen Blazor documentation — always up to date
Free trial available — unlimited access included with Radzen Blazor Pro and Team subscriptions
Radzen Blazor Components, © 2018-2026 Radzen.
Source Code licensed under
MIT