> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # switchContext > Perform an advanced context switch with prompt replacement and history control. [swml-change-context]: /docs/server-sdks/reference/typescript/agents/function-result/swml-change-context [functionresult]: /docs/server-sdks/reference/typescript/agents/function-result 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()`][swml-change-context], 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** [`FunctionResult`][functionresult] -- `this`, for chaining. ## **Examples** ### Simple Prompt Swap ```typescript {4} import { FunctionResult } from '@signalwire/sdk'; const result = new FunctionResult() .switchContext({ systemPrompt: 'You are now a billing assistant.' }); ``` ### Full Reset with User Message ```typescript {4} import { FunctionResult } from '@signalwire/sdk'; const result = new FunctionResult() .switchContext({ systemPrompt: 'You are a billing assistant.', userPrompt: 'I need help with my invoice.', fullReset: true, }); ``` > Perform an advanced context switch with prompt replacement and history control.