Today, I'm thrilled to announce the SignalWire AI Agents SDK: a Python framework that makes building sophisticated conversational AI agents as simple as writing a web application. This isn't just another SDK; it's a fundamental rethinking of how developers should interact with AI and communication infrastructure.
Every agent you build with our SDK is a complete, self-contained microservice. It's simultaneously:
This design philosophy means you're not just scripting behaviors. You're building real applications that can be deployed, scaled, and managed like any modern microservice.
Here's where we've truly innovated. Adding complex capabilities to your agent requires just one line of code:
from signalwire_agents import AgentBase
class MyAgent(AgentBase):
def __init__(self):
super().__init__(name="Support Agent")
# Add complete capabilities with one-liners
self.add_skill("web_search")
self.add_skill("datetime")
self.add_skill("math")
self.add_skill("native_vector_search", {"index_file": "knowledge.swsearch"})
Each skill is a fully-implemented capability. No more writing boilerplate code for common tasks. The web search skill includes Google Custom Search integration with content scraping. The datetime skill handles timezone conversions and natural language date parsing. The math skill safely evaluates expressions. And native vector search provides offline document search with semantic understanding.
One of the biggest pain points in building AI agents is integrating with external APIs. Traditionally, this means setting up webhook endpoints, handling authentication, processing responses, which is all complexity that has nothing to do with your actual business logic.
DataMap tools eliminate this entirely:
from signalwire_agents.core.data_map import DataMap
weather_tool = (DataMap('get_weather')
.parameter('location', 'string', 'City name', required=True)
.webhook('GET', 'https://api.weather.com/v1/current?key=${env.API_KEY}&q=${args.location}')
.output(SwaigFunctionResult('Weather: ${response.current.temp_f}°F, ${response.current.condition.text}'))
)
agent.add_datamap_tool(weather_tool)
This tool executes on SignalWire's servers, so no webhook infrastructure is required on your end. It handles authentication, retries, error cases, and response processing. You define what you want; we handle how it works.
Most AI agents need access to documentation, FAQs, or domain-specific knowledge. Our local search system makes this trivial:
# Build a searchable index from your documents
sw-search docs/ --output knowledge.swsearch
# Add to your agent
agent.add_skill("native_vector_search", {"index_file": "knowledge.swsearch"})
This isn't just keyword matching. It's sophisticated vector similarity search with hybrid ranking. Your agent can now answer questions from your documentation with human-like understanding.
We've included several prefabricated agent types that embody best practices:
Each prefab is a complete, working agent you can customize or use as inspiration for your own designs.