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
        • add_answer_verb
        • add_function_include
        • add_hint
        • add_hints
        • add_internal_filler
        • add_language
        • add_mcp_server
        • add_pattern_hint
        • add_post_ai_verb
        • add_post_answer_verb
        • add_pre_answer_verb
        • add_pronunciation
        • add_skill
        • add_swaig_query_params
        • as_router
        • auto_map_sip_usernames
        • clear_post_ai_verbs
        • clear_post_answer_verbs
        • clear_pre_answer_verbs
        • clear_swaig_query_params
        • define_contexts
        • define_tool
        • define_tools
        • enable_debug_events
        • enable_debug_routes
        • enable_mcp_server
        • enable_sip_routing
        • get_app
        • get_basic_auth_credentials
        • get_full_url
        • get_name
        • get_post_prompt
        • get_prompt
        • handle_serverless_request
        • has_skill
        • list_skills
        • manual_set_proxy_url
        • on_debug_event
        • on_function_call
        • on_summary
        • on_swml_request
        • prompt_add_section
        • prompt_add_subsection
        • prompt_add_to_section
        • prompt_has_section
        • register_routing_callback
        • register_sip_username
        • register_swaig_function
        • remove_skill
        • reset_contexts
        • run
        • serve
        • set_dynamic_config_callback
        • set_function_includes
        • set_global_data
        • set_internal_fillers
        • set_languages
        • set_native_functions
        • set_param
        • set_params
        • set_post_prompt
        • set_post_prompt_llm_params
        • set_post_prompt_url
        • set_prompt_llm_params
        • set_prompt_pom
        • set_prompt_text
        • set_pronunciations
        • set_web_hook_url
        • setup_graceful_shutdown
        • update_global_data
        • validate_basic_auth
      • AgentServer
      • BedrockAgent
      • CLI Tools
      • Configuration
      • ContextBuilder
      • DataMap
      • FunctionResult
      • Helper Functions
      • LiveWire
      • MCP Gateway
      • PomBuilder
      • Prefabs
      • Search
      • SkillBase
      • Skills
      • SWAIGFunction
      • SWMLBuilder
      • SWMLService
      • WebService
    • RELAY
      • Overview
      • Actions
      • Call
      • Constants
      • Events
      • Message
      • RelayClient
      • RelayError
    • REST Client
      • Overview
      • Addresses
      • Calling
      • Chat
      • Compat
      • Datasphere
      • Fabric
      • Imported Numbers
      • Logs
      • Lookup
      • MFA
      • Number Groups
      • Phone Numbers
      • Project
      • PubSub
      • Queues
      • Recordings
      • Registry
      • RestClient
      • Short Codes
      • SignalWireRestError
      • SIP Profile
      • Verified Callers
      • Video
LogoLogoSignalWire Docs
Log inSign up
Support
On this page
  • Parameters
  • Returns
  • Example
AgentsAgentBase

set_dynamic_config_callback

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

set_function_includes

Next
Built with

Set a callback function that runs on every incoming request, receiving an ephemeral copy of the agent so you can dynamically configure any aspect of it — skills, prompts, parameters, languages, tools, global data, etc. — based on the request’s query parameters, body, or headers.

This is the primary mechanism for multi-tenant or per-caller customization.

The agent argument passed to the callback is an ephemeral copy of the original agent. Changes made inside the callback apply only to the current request and do not persist across calls.

Parameters

callback
Callable[[dict, dict, dict, AgentBase], None]Required

A function with the signature (query_params, body_params, headers, agent). Use the agent argument to call any configuration method:

  • agent.add_skill(...)
  • agent.add_language(...)
  • agent.prompt_add_section(...)
  • agent.set_params(...)
  • agent.set_global_data(...)
  • agent.define_tool(...)

Returns

AgentBase — Returns self for method chaining.

Example

1from signalwire import AgentBase
2
3agent = AgentBase(name="assistant", route="/assistant")
4agent.set_prompt_text("You are a helpful assistant.")
5
6def configure_per_request(query_params, body_params, headers, agent):
7 tier = query_params.get("tier", "standard")
8 if tier == "premium":
9 agent.add_skill("web_search")
10 agent.set_params({"end_of_speech_timeout": 500})
11 agent.set_global_data({"tier": tier})
12
13agent.set_dynamic_config_callback(configure_per_request)
14agent.serve()