Plugins Overview

Plugins Overview

SIPHON plugins provide ready-to-use integrations for:

  • LLM (dialogue and reasoning)
  • STT (speech-to-text)
  • TTS (text-to-speech)

Set API keys in a .env file

Create a .env file in the same folder where you run your worker (typically the repo root while developing):

# .env
OPENAI_API_KEY=...
DEEPGRAM_API_KEY=...
CARTESIA_API_KEY=...

Then load it once at startup:

You can use plugins in two common ways:

1) Worker defaults (recommended starting point)

Create provider objects and pass them directly into Agent(...).

from dotenv import load_dotenv
from siphon.agent import Agent
from siphon.plugins import openai, deepgram, cartesia

load_dotenv()

agent = Agent(
    agent_name="Receptionist",
    llm=openai.LLM(),
    stt=deepgram.STT(),
    tts=cartesia.TTS(),
    system_instructions="You are a helpful receptionist.",
)

if __name__ == "__main__":
    agent.dev()

2) Per-call overrides (dynamic configuration)

When you pass llm, stt, or tts into Dispatch(...) or Call(...), SIPHON serializes those plugin objects into JSON-safe configuration (for example: { "provider": "openai", ... }) so the worker can construct the correct provider at runtime.

Learn more:

Provider pages