All fields are required
Multi-vendor voice AI gives you four dashboards with zero correlation. SignalWire gives you one structured event stream with per-component latency, barge-in analytics, and error classification.
STT at 180ms, LLM at 900ms, TTS at 200ms, network at 150ms. Each vendor reports green. The caller hears a 1.4-second delay on every response. No single dashboard shows this.
Telephony logs in one dashboard, speech-to-text in another, language model in a third, text-to-speech in a fourth. When a call degrades, you spend 90 minutes correlating timestamps across systems.
External vendors cannot capture barge-in at the audio level. You cannot see how much of the AI response the caller heard before interrupting, or why they interrupted.
A failed call produces an error code in one vendor's logs and silence in the others. Was it a speech recognition failure, a model timeout, or a network partition? You have to reconstruct the answer manually.
from signalwire_agents import AgentBase
from signalwire_agents.core.function_result import SwaigFunctionResult
class SupportAgent(AgentBase):
def __init__(self):
super().__init__(name="Support Agent", route="/support")
self.prompt_add_section("Instructions",
body="You are a customer support agent. "
"Greet the caller and resolve their issue.")
self.add_language("English", "en-US", "rime.spore:mistv2")
@AgentBase.tool(name="check_order")
def check_order(self, order_id: str):
"""Check the status of a customer order.
Args:
order_id: The order ID to look up
"""
return SwaigFunctionResult(f"Order {order_id}: shipped, ETA April 2nd")
agent = SupportAgent()
agent.run()
| Signal | What It Captures | Why It Matters |
|---|---|---|
| Per-component latency | STT, LLM, TTS, and tool call latency on every turn | Pinpoints which component is slow without cross-vendor correlation |
| Barge-in analytics | Elapsed milliseconds, approximate text heard, turn context | Reveals whether the AI talks too much, too slowly, or about the wrong thing |
| Step transitions | Cause (model decision, tool result, timeout) with metadata | Shows why the conversation moved between steps |
| Error taxonomy | 10 types with fatal/non-fatal classification and recovery action | Classifies errors automatically so you debug by category, not by log line |
| Error Type | Fatal | Platform Response |
|---|---|---|
| stt_failure | No | Recovery phrase: asks caller to repeat |
| llm_timeout | No | Retry with fallback model |
| llm_error | No | Recovery phrase, log context |
| tts_failure | No | Fallback voice |
| tool_timeout | No | Inform caller, retry |
| tool_error | No | Error-specific recovery phrase |
| auth_failure | Yes | Redirect flow |
| network_error | Yes | Graceful hangup with state capture |
| config_error | Yes | Error message and log |
| system_error | Yes | Graceful hangup with hangup hook |
Your monitoring detects elevated latency or increased error rate on voice AI calls.
Filter by time range, error type, or component. See per-component latency and error classification on every affected call.
The trace shows which component degraded, when it started, and how the platform attempted recovery.
Update the prompt, swap the model, or adjust the timeout. Verify the fix in the same event stream.
No. Per-component latency, barge-in analytics, step transitions, and error classification are captured automatically by the platform. Your agent code requires zero instrumentation.
Yes. The call_timeline feed exports structured events to any data warehouse or analytics pipeline. You can use your existing tools alongside native observability.
Every time a caller interrupts the AI, the platform records how many milliseconds of audio played, what text the caller approximately heard, and what they said after interrupting. At scale, this reveals prompt optimization opportunities.
Non-fatal errors trigger recovery phrases automatically. The caller may never notice. Fatal errors execute a graceful shutdown with a hangup hook that captures final state for debugging.
Yes. Per-component latency, barge-in analytics, error taxonomy, and the call_timeline feed are all included. No separate APM subscription required.
Trusted by 2,000+ Companies
Build on a platform where every component is instrumented and every event is correlated. No third-party APM required.