Usage
Valkey for Agent
Store agent sessions in Valkey with ValkeyDb.
Agno supports using Valkey as a storage backend for Agents using the ValkeyDb class.
Usage
Start in a virtual environment.
Install dependencies:
uv pip install -U agno ddgs openai valkey-glide-syncRun Valkey
Install docker desktop and run Valkey on port 6379 using:
docker run -d \
--name my-valkey \
-p 6379:6379 \
valkey/valkeySet your OpenAI API key:
Set OpenAI Key
Set your OPENAI_API_KEY as an environment variable. You can get one from OpenAI.
export OPENAI_API_KEY=sk-***from agno.agent import Agent
from agno.db.base import SessionType
from agno.db.valkey import ValkeyDb
from agno.tools.websearch import WebSearchTools
# Initialize Valkey db
db = ValkeyDb(
host="localhost",
port=6379,
)
# Create agent with Valkey db
agent = Agent(
db=db,
tools=[WebSearchTools()],
add_history_to_context=True,
)
agent.print_response("How many people live in Canada?")
agent.print_response("What is their national anthem called?")
# Verify db contents
print("\nVerifying db contents...")
all_sessions = db.get_sessions(session_type=SessionType.AGENT)
print(f"Total sessions in Valkey: {len(all_sessions)}")
if all_sessions:
print("\nSession details:")
session = all_sessions[0]
print(f"The stored session: {session}")
Run the example
Save the code as valkey_for_agent.py, start the database described above, and run:
python valkey_for_agent.pyParams
| Parameter | Type | Default | Description |
|---|---|---|---|
id | Optional[str] | - | Database ID. Derived deterministically from the host and port (or client representation) and key prefix when omitted. |
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. |
runs_table | Optional[str] | None | Storage name for individual runs. Defaults to agno_runs, or <session_table>_runs when a custom session name is supplied. |
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. |