zvonok voice agent — one goal-directed outbound PSTN call per job. Dispatched with metadata: {"number": "+34...", "goal": "...", "language": "en", "caller_id": "+44...", "max_duration_seconds": 300, "job_id": "..."} This module is the CALL LIFECYCLE and nothing else. What the age
"""zvonok voice agent — one goal-directed outbound PSTN call per job.
Dispatched with metadata:
{"number": "+34...", "goal": "...", "language": "en",
"caller_id": "+44...", "max_duration_seconds": 300, "job_id": "..."}
This module is the CALL LIFECYCLE and nothing else. What the agent says lives in
`prompts.py`, how it decides who answered in `answerer.py`, every clock in
`timing.py`, and the realtime model in `voice.py` — all four are importable in a
bare interpreter, which is the point: they are the parts that change after a call
goes wrong, and they should be testable without the LiveKit runtime.
Everything the callee says is UNTRUSTED (BRIEF §6). This agent therefore has only
call-control tools and no access to any of our systems. Structured answer
extraction is a separate
... (truncated -- full source via MCP)
See the full source, get the GitHub permalink, and search 40K more like it.
Get a free API key