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
      • AgentServer
      • Configuration
      • ContextBuilder
      • DataMap
      • FunctionResult
      • Helper Functions & Utilities
      • LiveWire
      • PomBuilder
      • Prefabs
      • SkillBase
        • cleanup
        • defineTool
        • getAgent
        • getConfig
        • getDataMapTools
        • getGlobalData
        • getHints
        • getInstanceKey
        • getParameterSchema
        • getPromptSections
        • getSkillData
        • getSkillNamespace
        • getTools
        • hasAllEnvVars
        • hasAllPackages
        • isInitialized
        • markInitialized
        • setAgent
        • setup
        • updateSkillData
        • validateEnvVars
        • validatePackages
      • 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
  • Returns
  • Example
AgentsSkillBase

getParameterSchema

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

getPromptSections

Next
Built with

Static class method that returns metadata about all parameters the skill accepts. Subclasses should override this method and merge their own parameters with the result of super.getParameterSchema().

Takes no parameters.

Returns

Record<string, ParameterSchemaEntry> — Parameter schema where keys are parameter names and values describe the parameter.

ParameterSchemaEntry fields:

FieldTypeDescription
typestring"string", "integer", "number", "boolean", "object", "array"
descriptionstringHuman-readable description
defaultanyDefault value
requiredbooleanWhether the parameter is required
hiddenbooleanHide in UIs (for secrets like API keys)
env_varstringEnvironment variable that can provide this value
enumunknown[]Allowed values
min / maxnumberBounds for numeric types
itemsobjectSchema for array item types

Example

1import { SkillBase, type SkillToolDefinition, type ParameterSchemaEntry } from '@signalwire/sdk';
2
3class WeatherSkill extends SkillBase {
4 static override SKILL_NAME = 'weather';
5 static override SKILL_DESCRIPTION = 'Provides weather information';
6
7 static override getParameterSchema(): Record<string, ParameterSchemaEntry> {
8 return {
9 ...super.getParameterSchema(),
10 units: {
11 type: 'string',
12 description: 'Temperature units',
13 default: 'fahrenheit',
14 enum: ['fahrenheit', 'celsius'],
15 },
16 api_key: {
17 type: 'string',
18 description: 'Weather API key',
19 required: true,
20 hidden: true,
21 env_var: 'WEATHER_API_KEY',
22 },
23 };
24 }
25
26 override getTools(): SkillToolDefinition[] {
27 return [];
28 }
29}
30
31// Inspect the schema (includes base params swaig_fields, skip_prompt)
32console.log(WeatherSkill.getParameterSchema());
33// { swaig_fields: { ... }, skip_prompt: { ... }, units: { ... }, api_key: { ... } }