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: