ValkeyDb is a class that implements the Db interface using Valkey as the backend storage system. It provides high-performance, distributed storage for agent sessions with support for JSON data types and schema versioning.
| Parameter | Type | Default | Description |
|---|---|---|---|
id | Optional[str] | - | The ID of the database instance. UUID by default. |
valkey_client | Optional[Union[GlideClient, GlideClusterClient]] | - | Pre-configured Valkey GLIDE client. If not provided a new client will be created. |
host | str | "localhost" | Valkey server host. |
port | int | 6379 | Valkey server port. |
database_id | Optional[int] | - | Logical database index (e.g. 0-15). |
username | Optional[str] | - | Username for authentication. |
password | Optional[str] | - | Password for authentication. |
use_tls | bool | False | Enable TLS encryption. |
request_timeout | Optional[int] | - | Milliseconds to wait for a request to complete. If unset, the GLIDE client default (250 ms) applies. |
db_prefix | str | "agno" | Prefix for all Valkey keys. |
client_name | str | "agno_db_client" | Connection name, visible in CLIENT LIST. |
expire | Optional[int] | - | TTL for Valkey keys in seconds. |
session_table | Optional[str] | - | Name of the table to store sessions. |
memory_table | Optional[str] | - | Name of the table to store memories. |
metrics_table | Optional[str] | - | Name of the table to store metrics. |
eval_table | Optional[str] | - | Name of the table to store evaluation runs. |
knowledge_table | Optional[str] | - | Name of the table to store knowledge documents. |
traces_table | Optional[str] | - | Name of the table to store traces. |
spans_table | Optional[str] | - | Name of the table to store spans. |
learnings_table | Optional[str] | - | Name of the table to store learnings. |
Methods
upsert_sessions
Bulk upsert multiple sessions for improved performance on large datasets.
Parameters:
sessions(List[Session]): List of sessions to upsertdeserialize(Optional[bool]): Whether to deserialize the sessions. Defaults toTruepreserve_updated_at(bool): Whether to keep the sessions' existingupdated_attimestamps. Defaults toFalse
List[Union[Session, Dict[str, Any]]]
upsert_memories
Bulk upsert multiple memories for improved performance on large datasets.
Parameters:
memories(List[UserMemory]): List of memories to upsertdeserialize(Optional[bool]): Whether to deserialize the memories. Defaults toTruepreserve_updated_at(bool): Whether to keep the memories' existingupdated_attimestamps. Defaults toFalse
List[Union[UserMemory, Dict[str, Any]]]