> 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. # setNativeFunctions > Enable built-in native functions that execute directly on the SignalWire platform. [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. ## **Parameters** **`funcs`** `string[]` — required 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 --- ## **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(); ``` > Enable built-in native functions that execute directly on the SignalWire platform.