# Blazor LLM Kit Reasoning

The Reasoning component renders a collapsible block that exposes the agent's raw thinking process — its inner monologue or scratchpad content. Use the component to give users visibility into how the agent approaches a problem before it takes action.

Content inside the Reasoning block streams in progressively as the agent thinks, and the block can be marked as completed once the reasoning phase finishes.

## Creating Blazor Reasoning

To use the Reasoning component:

1. Add the `<TelerikReasoning>` tag.
2. Set `Label` to a string such as `"Thinking"` or `"Thought"`.
3. Define a `<ContentTemplate>` child template with the agent's reasoning text.
4. (optional) Set `Expandable` and `Expanded` to control collapsibility.
5. (optional) Set `Completed` to mark the reasoning phase as finished.
6. (optional) Set `SecondaryLabel` to display metadata such as duration.

> caption Completed Reasoning block showing agent scratchpad content

<demo metaUrl="client/llmkit/reasoning/example-1/" height="300"></demo>

## Reasoning API

Get familiar with all Reasoning parameters, templates, and events in the [Reasoning API Reference](https://www.telerik.com/blazor-ui/documentation/api/telerik.blazor.components.telerikreasoning).

## Next Steps

* [ChainOfThought](https://www.telerik.com/blazor-ui/documentation/components/llmkit/chain-of-thought)
* [ToolCall](https://www.telerik.com/blazor-ui/documentation/components/llmkit/tool-call)

## See Also

* [LLM Kit Overview](https://www.telerik.com/blazor-ui/documentation/components/llmkit/overview)
* [Reasoning API Reference](https://www.telerik.com/blazor-ui/documentation/api/telerik.blazor.components.telerikreasoning)
