`siphon.Agent`
siphon.Agent
Agent runs your voice agent worker process.
Import:
from siphon.agent import Agent
Constructor
Agent(
agent_name: Optional[str] = None,
llm: Optional[Any] = None,
stt: Optional[Any] = None,
tts: Optional[Any] = None,
send_greeting: Optional[bool] = True,
greeting_instructions: Optional[str] = "Greet and introduce yourself briefly",
system_instructions: Optional[str] = "You are a helpful voice assistant",
allow_interruptions: Optional[bool] = True,
min_silence_duration: Optional[float] = 0.25,
activation_threshold: Optional[float] = 0.55,
prefix_padding_duration: Optional[float] = 0.25,
min_endpointing_delay: Optional[float] = 0.45,
max_endpointing_delay: Optional[float] = 0.9,
min_interruption_duration: Optional[float] = 0.08,
tools: Optional[list[Any]] = None,
)
Parameters
agent_name- Worker name used for routing jobs.
- You can also pass the name later to
dev(agent_name=...)/start(agent_name=...).
llm/stt/tts- Provider plugin objects (recommended) or config dicts.
- If you pass plugin objects, SIPHON will serialize them when they are included in dispatch/call metadata.
send_greeting- If
True, SIPHON will send a greeting at the start of a call.
- If
greeting_instructions- Prompt for what the greeting should be.
system_instructions- The agent’s “system prompt” / personality.
- Voice/turn-taking settings
allow_interruptions,min_silence_duration,activation_threshold,prefix_padding_duration,min_endpointing_delay,max_endpointing_delay,min_interruption_duration
tools- A list of tool objects available to the agent.
Methods
dev()
def dev(self, agent_name: Optional[str] = None) -> None
Runs the worker in development mode.
start()
def start(self, agent_name: Optional[str] = None) -> None
Runs the worker in production mode.
download_files()
def download_files(self, agent_name: Optional[str] = None) -> None
Downloads required runtime assets (invoked automatically if needed when calling dev() / start()).
Notes
agent_namemust match what you reference from inboundDispatch(...)and outboundCall(...).