Releases: blackdwarftech/siphon
v0.1.3
Release Notes: Caller Memory
What's New
Caller Memory — SIPHON now remembers conversations across calls, enabling personalized voice AI interactions.
Features
- Cross-session memory — Agent recognizes returning callers by name
- Automatic summaries — LLM-generated summaries after each call
- Multiple storage backends — PostgreSQL, MySQL, MongoDB, Redis, S3/MinIO, or local files
- Production-ready — Async I/O, fault-tolerant, 2-second timeouts
- Zero-downtime failover — Database failures don't drop active calls
Quick Start
from siphon import Agent
agent = Agent(
agent_name="Agent-System",
remember_call=True # Enable memory
)Set storage backend (.env file):
CALL_MEMORY_LOCATION=postgresql://user:pass@host:5432/dbnameConfiguration
| Parameter | Default | Description |
|---|---|---|
remember_call |
False |
Enable caller memory |
CALL_MEMORY_LOCATION |
local://memory |
Storage backend URL |
TIMEZONE |
UTC |
Timestamp formatting |
Storage Backends
| Backend | URL Format |
|---|---|
| PostgreSQL | postgresql://user:pass@host:5432/dbname |
| MySQL | mysql://user:pass@host:3306/dbname |
| MongoDB | mongodb://user:pass@host:27017/dbname |
| Redis | redis://host:6379/0 |
| S3/MinIO | s3 + AWS_S3_* env vars |
| Local files | history |
Breaking Changes
None. Memory is disabled by default (remember_call=False). Existing agents continue to work unchanged.
Documentation
See the Caller Memory docs for full details.
v0.1.2
🚀 Release v0.1.2 - The Integration Update
This release brings context to your voice agents with native integration framework support, starting with Google Calendar and Date/Time awareness.
✨ New Features
- Native Google Calendar Integration: Agents can now check availability, book slots, and manage calendar events in real-time.
- Date & Time Awareness: Built-in support for timezone-aware time checking, allowing agents to understand "now" and relative times like "next Tuesday".
- Integration Framework: A new, extensible system for adding tools and external context to agents (
siphon.integrations).
📚 Documentation & Examples
- New Example: Dental Clinic Receptionist - A full production-ready reference implementation of a scheduling agent.
- New Docs: dedicated Integrations section covering Google Calendar setup and usage.
🛠 Improvements
- Updated
voice_agent.pyandrunner.pyto better handle tool execution and context injection. - Added dependency support for
google-api-python-client. - Enhanced
hangup_call.pyconfiguration.
📦 Dependency Updates
- Added
google-auth-oauthlib,google-auth-httplib2, andgoogle-api-python-clientto core dependencies.
v0.1.1
🚀 Release Notes - Siphon v0.1.1
Siphon v0.1.1 introduces new capabilities for managing telephony infrastructure and adds support for cutting-edge Realtime AI models from Google and OpenAI.
✨ Highlights
📞 Telephony Deletion Operations
Programmatically clean up your SIP infrastructure directly from Siphon.
- Delete Inbound Trunks: Remove inbound trunks by ID or phone number.
- Delete Outbound Trunks: Remove outbound trunks by ID or phone number.
- Manage Dispatch Rules:
- Find all dispatch rules associated with a phone number.
- Delete dispatch rules by ID.
- Batch Delete: Remove all dispatch rules for a specific phone number in one go.
⚡ Native Realtime Model Support
Added first-class support for ultra-low latency, audio-to-audio models.
- Gemini Realtime: Support for Google's native audio preview models (e.g.,
gemini-2.5-flash-native-audio-preview). - OpenAI Realtime: Support for OpenAI's Realtime API (e.g.,
gpt-realtime). - Both integrations support full configuration serialization (to_config/from_config) for seamless worker deployment.
📦 New Features
Telephony API
Trunk.delete_trunk(trunk_id=..., sip_number=...)(Inbound & Outbound)Dispatch.delete_dispatch_rule(dispatch_id=..., sip_number=...)Dispatch.get_dispatch_rule(sip_number=...)
Plugins
- Added
siphon.plugins.gemini.Realtime - Added
siphon.plugins.openai.Realtime
🛠️ Usage Examples
Clean up telephony resources
from siphon.telephony.inbound import Trunk, Dispatch
# Delete all dispatch rules for a number
await Dispatch().delete_dispatch_rule(sip_number="+15551234567")
# Delete the trunk itself
await Trunk().delete_trunk(sip_number="+15551234567")
# Use a Realtime model
from siphon.agent import Agent
from siphon.plugins import gemini
agent = Agent(
agent_name="FastBot",
llm=gemini.Realtime(voice="Puck")
)v0.1.0
v0.1.0 — Initial Release
Summary
This is the first public release of Siphon. v0.1.0 establishes the foundation of the framework, including the core package, baseline flow structure, and initial project documentation.
What's Included
- Core package
- The initial
siphon/Python package layout and core framework foundation.
- The initial
- Documentation
- README.md with project overview and getting-started guidance.
- Community & Governance
CONTRIBUTING.mdcontribution guidelines.CODE_OF_CONDUCT.mdcommunity standards.SECURITY.mdvulnerability reporting policy.
- Licensing
- Project released under the terms in
LICENSE.
- Project released under the terms in
- Packaging
pyproject.tomlfor build and distribution configuration.
Installation
pip install siphon-ai