Use this file to discover all available pages before exploring further.
Agents can have a voice intereface. A fast voice model handles immediate user interaction and delegates complex tasks to a more powerful primary agent.
Voice Interface Agent - An interface agent that uses a low-latency, real-time audio model to handle greetings, chitchat, and simple clarifications directly.
Primary Agent - The main agent with tools and all the capabilities of Autonomy agents. Handles complex questions, database lookups, and tool-based tasks.
When the voice agent receives a complex request, it says a filler phrase (like “Let me check on that”) and delegates to the primary agent. The primary agent processes the request, potentially calling tools, and returns a response that the voice agent speaks verbatim.
Voice agents work seamlessly with tools. The primary agent has access to all tools and uses them when handling delegated requests:
images/main/main.py
from autonomy import Agent, Model, Node, Toolasync def lookup_order(order_id: str) -> dict: """Look up an order by ID.""" # Your order lookup logic return {"order_id": order_id, "status": "shipped", "eta": "Tomorrow"}async def main(node): await Agent.start( node=node, name="support", instructions="""You are a customer support agent. Use the lookup_order tool to find order information.""", model=Model("claude-sonnet-4-v1"), tools=[Tool(lookup_order)], voice={"voice": "nova"}, )Node.start(main)
When a user asks “Where is my order 12345?”, the flow is:
Voice agent says “Let me look up your order.”
Voice agent delegates to primary agent
Primary agent calls lookup_order("12345")
Primary agent returns “Your order has shipped and will arrive tomorrow.”
This example demonstrates a voice agent that conducts first-round screening interviews for software engineering candidates. The agent assesses technical fundamentals, problem-solving ability, and communication skills.
from autonomy import Node, Agent, ModelINSTRUCTIONS = """You are an experienced software engineering interviewer conducting first-roundscreening interviews. Your goal is to assess candidates on technical fundamentals,problem-solving ability, and communication skills.Interview structure:1. Brief introduction and put the candidate at ease2. Ask about their background and experience (2-3 minutes)3. Technical questions appropriate to their level (10-15 minutes)4. Behavioral questions about teamwork and challenges (5 minutes)5. Answer any questions they have about the roleGuidelines:- Be warm and professional to help candidates perform their best- Ask follow-up questions to understand their thought process- Probe deeper if answers are surface-level- Give hints if they're stuck, but note that you did- Keep responses concise since this is a voice conversation- Adapt difficulty based on their stated experience levelTechnical topics to cover:- Data structures and algorithms fundamentals- System design basics (for senior candidates)- Language-specific questions based on their background- Problem-solving approach and debugging strategiesAfter the interview, provide a brief summary of strengths and areas for improvement."""async def main(node: Node): await Agent.start( node=node, name="interviewer", instructions=INSTRUCTIONS, model=Model("claude-sonnet-4-v1"), voice={"voice": "alloy"}, )Node.start(main)
curl --request POST \ --header "Content-Type: application/json" \ --data '{"message": "Hi, I am ready to start the interview."}' \ "https://${CLUSTER}-${ZONE}.cluster.autonomy.computer/agents/interviewer"
The interviewer will:
Greet the candidate and explain the interview format