Thinking Block
When the model emits extended thinking (reasoning), the SDK automatically renders it as its own collapsible block, separate from the final answer. While streaming it shows an expanded "Thinking…"; once complete it auto-collapses. No setup is required.
Thinking Block
When the model emits extended thinking (reasoning), the SDK renders it as its own collapsible block, separate from the final answer. No setup needed — it appears automatically when the backend streams thinking events.
// Renders automatically, no prop needed
<Chatbot
config={{ botProviderEndpoint: '...' }}
customChannelId="my-channel"
/>Thinking maps to ConversationThinkingMessage (type: 'thinking'); isThinking distinguishes the streaming vs. completed state.
Message Shape
Thinking maps to ConversationThinkingMessage in the ConversationMessage union:
type ConversationThinkingMessage = {
type: "thinking";
messageId: string;
text: string;
isThinking: boolean; // true = streaming (expanded); false = completed (collapsed)
time: Date;
traceId?: string;
};
In real usage these are assembled and written into the Conversation automatically
from the backend asgard.message.thinking.start / .delta / .complete events —
you never handle them by hand.