AgentsDataMap

expression

View as MarkdownOpen in Claude

Add a pattern-based response that does not require an API call. Expressions are evaluated in order; the first matching pattern wins.

Parameters

test_value
strRequired

Template string to test (e.g., "${args.command}").

pattern
str | re.PatternRequired

Regex pattern to match against the test value.

output
FunctionResultRequired

FunctionResult to return when the pattern matches.

nomatch_output
FunctionResult

Optional FunctionResult to return when the pattern does not match.

Returns

DataMap — Self for method chaining.

Example

from signalwire import AgentBase, DataMap
from signalwire import FunctionResult
volume_control = (
DataMap("set_volume")
.purpose("Control audio volume")
.parameter("level", "string", "Volume level", required=True)
.expression(
"${args.level}", r"high|loud|up",
FunctionResult("Volume increased")
)
.expression(
"${args.level}", r"low|quiet|down",
FunctionResult("Volume decreased")
)
.expression(
"${args.level}", r"mute|off",
FunctionResult("Audio muted")
)
)
agent = AgentBase(name="media-agent")
agent.set_prompt_text("You are a helpful assistant.")
agent.register_swaig_function(volume_control.to_swaig_function())
if __name__ == "__main__":
agent.run()