***

title: Context
slug: /reference/typescript/agents/context-builder/context
description: A named conversation workflow containing steps, prompts, and navigation rules.
max-toc-depth: 3
---------------------

For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

[contextbuilder]: /docs/server-sdks/reference/typescript/agents/context-builder

[step]: /docs/server-sdks/reference/typescript/agents/context-builder/step

[addbullets]: /docs/server-sdks/reference/typescript/agents/context-builder/context/add-bullets

[addenterfiller]: /docs/server-sdks/reference/typescript/agents/context-builder/context/add-enter-filler

[addexitfiller]: /docs/server-sdks/reference/typescript/agents/context-builder/context/add-exit-filler

[addsection]: /docs/server-sdks/reference/typescript/agents/context-builder/context/add-section

[addstep]: /docs/server-sdks/reference/typescript/agents/context-builder/context/add-step

[addsystembullets]: /docs/server-sdks/reference/typescript/agents/context-builder/context/add-system-bullets

[addsystemsection]: /docs/server-sdks/reference/typescript/agents/context-builder/context/add-system-section

[getstep]: /docs/server-sdks/reference/typescript/agents/context-builder/context/get-step

[movestep]: /docs/server-sdks/reference/typescript/agents/context-builder/context/move-step

[removestep]: /docs/server-sdks/reference/typescript/agents/context-builder/context/remove-step

[setconsolidate]: /docs/server-sdks/reference/typescript/agents/context-builder/context/set-consolidate

[setenterfillers]: /docs/server-sdks/reference/typescript/agents/context-builder/context/set-enter-fillers

[setexitfillers]: /docs/server-sdks/reference/typescript/agents/context-builder/context/set-exit-fillers

[setfullreset]: /docs/server-sdks/reference/typescript/agents/context-builder/context/set-full-reset

[setisolated]: /docs/server-sdks/reference/typescript/agents/context-builder/context/set-isolated

[setpostprompt]: /docs/server-sdks/reference/typescript/agents/context-builder/context/set-post-prompt

[setprompt]: /docs/server-sdks/reference/typescript/agents/context-builder/context/set-prompt

[setsystemprompt]: /docs/server-sdks/reference/typescript/agents/context-builder/context/set-system-prompt

[setuserprompt]: /docs/server-sdks/reference/typescript/agents/context-builder/context/set-user-prompt

[setvalidcontexts]: /docs/server-sdks/reference/typescript/agents/context-builder/context/set-valid-contexts

[setvalidsteps]: /docs/server-sdks/reference/typescript/agents/context-builder/context/set-valid-steps

A Context represents a distinct conversation mode -- like "sales", "support", or
"billing" -- within a [`ContextBuilder`][contextbuilder].
Each context holds an ordered sequence of
[`Step`][step] objects and
configures its own prompt, system prompt, fillers, and navigation rules.

You obtain a Context by calling `addContext()` on a ContextBuilder or by calling
`getContext()` to retrieve one that already exists.

## **Properties**

<ParamField path="name" type="string" required={true} toc={true}>
  Unique context name. When using a single context inside a ContextBuilder, this
  must be `"default"`.
</ParamField>

## **Methods**

<CardGroup cols={3}>
  <Card title="addBullets" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/add-bullets">
    Add a POM section with bullet points to the context prompt.
  </Card>

  <Card title="addEnterFiller" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/add-enter-filler">
    Add enter fillers for a specific language.
  </Card>

  <Card title="addExitFiller" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/add-exit-filler">
    Add exit fillers for a specific language.
  </Card>

  <Card title="addSection" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/add-section">
    Add a POM section to the context prompt.
  </Card>

  <Card title="addStep" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/add-step">
    Add a new step to this context.
  </Card>

  <Card title="addSystemBullets" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/add-system-bullets">
    Add a POM section with bullets to the system prompt.
  </Card>

  <Card title="addSystemSection" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/add-system-section">
    Add a POM section to the system prompt.
  </Card>

  <Card title="getStep" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/get-step">
    Get an existing step by name.
  </Card>

  <Card title="moveStep" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/move-step">
    Move an existing step to a specific position in the step order.
  </Card>

  <Card title="removeStep" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/remove-step">
    Remove a step from this context.
  </Card>

  <Card title="setConsolidate" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/set-consolidate">
    Set whether to consolidate conversation history when entering this context.
  </Card>

  <Card title="setEnterFillers" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/set-enter-fillers">
    Set all enter fillers at once.
  </Card>

  <Card title="setExitFillers" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/set-exit-fillers">
    Set all exit fillers at once.
  </Card>

  <Card title="setFullReset" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/set-full-reset">
    Set whether to fully reset conversation history when entering this context.
  </Card>

  <Card title="setIsolated" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/set-isolated">
    Set whether to truncate conversation history when entering this context.
  </Card>

  <Card title="setPostPrompt" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/set-post-prompt">
    Override the post-prompt text while this context is active.
  </Card>

  <Card title="setPrompt" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/set-prompt">
    Set the context's prompt text directly.
  </Card>

  <Card title="setSystemPrompt" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/set-system-prompt">
    Set a new system prompt that takes effect when this context is entered.
  </Card>

  <Card title="setUserPrompt" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/set-user-prompt">
    Inject a user message when entering this context.
  </Card>

  <Card title="setValidContexts" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/set-valid-contexts">
    Set which contexts the agent can navigate to from this context.
  </Card>

  <Card title="setValidSteps" href="/docs/server-sdks/reference/typescript/agents/context-builder/context/set-valid-steps">
    Set which steps can be navigated to from any step in this context.
  </Card>
</CardGroup>

## **Example**

```typescript {4,7}
import { ContextBuilder } from '@signalwire/sdk';

const builder = new ContextBuilder();
const main = builder.addContext('default');
main.addStep('menu').setText('Ask whether the caller needs sales or support.');

const support = builder.addContext('support');

// System prompt for this context
support.setSystemPrompt('You are a patient technical support engineer.');
support.setConsolidate(true);

// Fillers for smooth transitions
support.addEnterFiller('en-US', [
  'Let me connect you with support...',
  'Transferring you now...',
]);
support.addExitFiller('en-US', [
  'Thank you for contacting support.',
  'Glad I could help.',
]);

// Navigation
support.setValidContexts(['default']);

// Steps
support.addStep('diagnose', {
  task: 'Understand the customer\'s issue and gather relevant details.',
  criteria: 'Issue is clearly identified',
  functions: ['lookup_account', 'check_status'],
  validSteps: ['resolve'],
});
support.addStep('resolve', {
  task: 'Resolve the issue or escalate to a specialist.',
  functions: ['create_ticket', 'transfer_call'],
  validSteps: ['farewell'],
});
support.addStep('farewell')
  .setText('Thank the caller and end the conversation.')
  .setFunctions('none')
  .setEnd(true);
```