For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Log inSign up
Support
GuidesReference
GuidesReference
    • Core
      • Overview
    • Agents
      • Overview
      • AgentBase
        • addAnswerVerb
        • addFunctionInclude
        • addHint
        • addHints
        • addInternalFiller
        • addLanguage
        • addMcpServer
        • addPatternHint
        • addPostAiVerb
        • addPostAnswerVerb
        • addPreAnswerVerb
        • addPronunciation
        • addSkill
        • addSkillByName
        • addSwaigQueryParams
        • asRouter
        • autoMapSipUsernames
        • clearPostAiVerbs
        • clearPostAnswerVerbs
        • clearPreAnswerVerbs
        • clearSwaigQueryParams
        • defineContexts
        • defineTool
        • defineTools
        • defineTypedTool
        • enableDebugEvents
        • enableDebugRoutes
        • enableMcpServer
        • enableSipRouting
        • extractSipUsername
        • getApp
        • getBasicAuthCredentials
        • getFullUrl
        • getMcpServers
        • getName
        • getPostPrompt
        • getPrompt
        • getPromptPom
        • getRegisteredTools
        • getTool
        • handleMcpRequest
        • hasSkill
        • isMcpServerEnabled
        • listSkills
        • manualSetProxyUrl
        • onDebugEvent
        • onFunctionCall
        • onSummary
        • onSwmlRequest
        • promptAddSection
        • promptAddSubsection
        • promptAddToSection
        • promptHasSection
        • registerSipUsername
        • registerSwaigFunction
        • removeSkill
        • removeSkillByName
        • renderSwml
        • resetContexts
        • run
        • serve
        • setDynamicConfigCallback
        • setFunctionIncludes
        • setGlobalData
        • setInternalFillers
        • setLanguages
        • setNativeFunctions
        • setParam
        • setParams
        • setPostPrompt
        • setPostPromptLlmParams
        • setPostPromptUrl
        • setPromptLlmParams
        • setPromptPom
        • setPromptText
        • setPronunciations
        • setupGracefulShutdown
        • setWebHookUrl
        • updateGlobalData
        • validateBasicAuth
        • validateToolToken
      • AgentServer
      • Configuration
      • ContextBuilder
      • DataMap
      • FunctionResult
      • Helper Functions & Utilities
      • LiveWire
      • PomBuilder
      • Prefabs
      • SkillBase
      • SkillManager
      • SkillRegistry
      • Skills
      • SwaigFunction
      • SwmlBuilder
      • SWMLService
    • RELAY
      • Overview
      • Actions
      • Call
      • Constants
      • Events
      • Message
      • RelayClient
      • RelayError
    • REST Client
      • Overview
      • Addresses
      • Calling
      • ChatResource
      • Compat
      • Datasphere
      • Fabric
      • ImportedNumbersResource
      • Logs
      • LookupResource
      • MFA
      • Number Groups
      • Phone Numbers
      • Project
      • PubSubResource
      • Queues
      • Recordings
      • Registry
      • RestClient
      • RestError
      • Short Codes
      • SIP Profile
      • Verified Callers
      • Video
LogoLogoSignalWire Docs
Log inSign up
Support
On this page
  • Parameters
  • Returns
  • Example
AgentsAgentBase

setupGracefulShutdown

|View as Markdown|Open in Claude|
Was this page helpful?
Edit this page
Previous

setWebHookUrl

Next
Built with

Static method that registers process signal handlers for SIGTERM and SIGINT so the agent shuts down cleanly. This is especially useful in Kubernetes deployments where the pod receives SIGTERM before termination.

Only registers handlers once, even if called multiple times.

Parameters

opts
object

Optional configuration.

opts.timeout
numberDefaults to 5000

Shutdown timeout in milliseconds before the process exits.

Returns

void

Example

1import { AgentBase } from '@signalwire/sdk';
2
3AgentBase.setupGracefulShutdown({ timeout: 10000 });
4
5const agent = new AgentBase({ name: 'support', route: '/support' });
6agent.setPromptText('You are a helpful assistant.');
7await agent.serve();