`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.
  • 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_name must match what you reference from inbound Dispatch(...) and outbound Call(...).

See also