SwmlTransferSkill
Transfer calls between agents or endpoints using SWML transfer actions. The
skill accepts either a Python-style transfers config (regex pattern →
per-entry config) or a TypeScript-style patterns array of named
destinations. At least one of the two shapes is required — setup() fails
closed otherwise.
Class: SwmlTransferSkill
Tools: transfer_call always; list_transfer_destinations additionally
registered when at least one entry is supplied in patterns.
Env vars: None
Multi-instance: yes — set a distinct tool_name per instance.
transfers
Python-style map of transfer configs keyed by regex pattern (or name). Each
entry includes either url or address (not both), plus optional
message, return_message, post_process, final, and from_addr.
Either transfers or patterns must be provided; both may be combined.
setup() fails closed when neither is configured.
patterns
TypeScript-style array of named transfer patterns. Each object has:
name(string, required) — friendly name for the destination.destination(string, required) — SIP URI, phone number, or agent URL.description(string) — optional human-readable description.message/returnMessage/postProcess/final/fromAddr— optional per-pattern overrides.
allow_arbitrary
Whether to allow transfers to arbitrary destinations not listed in
patterns / transfers. When unset, defaults depend on whether any
patterns are configured.
tool_name
Name of the transfer tool exposed to the AI.
description
Description for the transfer tool shown to the AI.
parameter_name
Name of the parameter that accepts the transfer type.
parameter_description
Description for the transfer-type parameter.
default_message
Message spoken when no pattern matches.
default_post_process
Whether to post-process the default message with the AI.
required_fields
Map of additional fields (name → description) the agent must collect before a transfer.
The destination list in the AI’s prompt shows each URL without the credentials
it carries, and shows each transfers key without its regex slashes and flag.
Regex patterns in transfers are matched case-sensitively. Use character
classes or flags in the source pattern when case-insensitive matching is
needed.