switchContext

View as MarkdownOpen in Claude

Perform an advanced context switch by replacing the system prompt, injecting a user message, or resetting the conversation entirely. This is more flexible than swmlChangeContext(), which switches to a pre-defined named context.

When only system_prompt is provided (no other arguments), it performs a simple string-based context switch. When multiple arguments are given, it constructs an object-based context switch with fine-grained control.

Parameters

opts
object

Optional context switch configuration.

opts.systemPrompt
string

New system prompt to replace the current one.

opts.userPrompt
string

A user message to inject into the conversation after the context switch.

opts.consolidate
boolean

When true, the existing conversation history is summarized into a condensed form before applying the new context. Reduces token usage on long conversations.

opts.fullReset
boolean

When true, performs a complete context reset, clearing all conversation history and starting fresh with the new prompt.

Returns

FunctionResultthis, for chaining.

Examples

Simple Prompt Swap

1import { FunctionResult } from '@signalwire/sdk';
2
3const result = new FunctionResult()
4 .switchContext({ systemPrompt: 'You are now a billing assistant.' });

Full Reset with User Message

1import { FunctionResult } from '@signalwire/sdk';
2
3const result = new FunctionResult()
4 .switchContext({
5 systemPrompt: 'You are a billing assistant.',
6 userPrompt: 'I need help with my invoice.',
7 fullReset: true,
8 });