Caller Memory

Caller Memory

SIPHON's caller memory remembers conversations across calls, enabling personalized voice AI interactions.

What It Does

  • Remembers callers: Agent recognizes returning callers by name
  • Maintains context: Previous conversations inform the current call
  • Summarizes calls: Automatically generates brief summaries after each call

Quick Start

Enable memory by setting remember_call=True:

from siphon import Agent

agent = Agent(
    agent_name="Agent-System",
    remember_call=True
)

agent.start()

Memory is disabled by default. When enabled:

  • Memory loads before the call starts
  • Agent can reference previous discussions
  • A summary is saved after the call ends

Configuration

ParameterTypeDefaultDescription
remember_callboolFalseEnable/disable caller memory

Storage Backends

Configure where memory is stored via CALL_MEMORY_LOCATION:

BackendURL Format
PostgreSQL (recommended)postgresql://user:pass@host:5432/dbname
MySQLmysql://user:pass@host:3306/dbname
MongoDBmongodb://user:pass@host:27017/dbname
Redisredis://host:6379/0
S3 / MinIOs3
Local Files (dev only)history or any folder path

For S3 storage, also set:

  • AWS_S3_BUCKET (or MINIO_BUCKET)
  • AWS_S3_ACCESS_KEY_ID (or MINIO_ACCESS_KEY)
  • AWS_S3_SECRET_ACCESS_KEY (or MINIO_SECRET_KEY)

Optional: AWS_S3_ENDPOINT for MinIO

How It Works

  1. Before call: System loads existing memory for the caller's phone number
  2. During call: Agent receives memory context (name, previous summaries, call count)
  3. After call: LLM generates a summary, which is saved to storage

Example Interaction

First call:

User: "I'm John, I need to schedule an appointment."
Agent: "Nice to meet you, John! Let me help..."

Second call:

Agent: "Hi John! Welcome back. How did your appointment go?"
User: "It went well. I need to reschedule the follow-up."

Production Notes

  • All database operations are asynchronous — they won't block or freeze calls
  • Fault-tolerant: If the database is unreachable, calls continue normally (errors are logged)
  • Fast timeouts: 2-second connection timeouts ensure quick recovery from failures

Troubleshooting

Memory not loading:

  • Check remember_call=True is set on the agent
  • Verify CALL_MEMORY_LOCATION is configured correctly
  • Check logs for connection errors

No summaries being saved:

  • Ensure an LLM is configured on the agent
  • Check that STT is working and capturing user speech

Next