***

title: setNativeFunctions
slug: /reference/typescript/agents/agent-base/native-functions
description: Enable built-in native functions that execute directly on the SignalWire platform.
max-toc-depth: 3
---------------------

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

[ref-agentbase]: /docs/server-sdks/reference/typescript/agents/agent-base

Set the list of native SWAIG functions to enable. Native functions are built into the
SignalWire platform and execute server-side without requiring a webhook. They
provide common utility operations that the AI can invoke during a conversation.

<Note>
  Native functions can also be passed at construction time via the `nativeFunctions`
  constructor option.
</Note>

## **Parameters**

<ParamField path="funcs" type="string[]" required={true} toc={true}>
  Array of native function names to enable. Common native functions include:

  * `"check_time"` -- Get the current time in a given timezone
  * `"wait_for_user"` -- Pause the AI and wait for the caller to speak
  * `"next_step"` -- Advance to the next step in a context workflow
  * `"transfer"` -- Transfer the call to another number or agent
</ParamField>

## **Returns**

[`AgentBase`][ref-agentbase] -- Returns `this` for method chaining.

## **Examples**

### Set via method

```typescript {5}
import { AgentBase } from '@signalwire/sdk';

const agent = new AgentBase({ name: 'assistant', route: '/assistant' });
agent.setPromptText('You are a helpful assistant.');
agent.setNativeFunctions(['check_time', 'wait_for_user']);
await agent.serve();
```

### Set at construction time

```typescript {6}
import { AgentBase } from '@signalwire/sdk';

const agent = new AgentBase({
  name: 'assistant',
  route: '/assistant',
  nativeFunctions: ['check_time', 'wait_for_user'],
});
agent.setPromptText('You are a helpful assistant.');
await agent.serve();
```