"""
此示例展示了如何使用带 SQLite 存储的 Memory 类。
"""
from agno.agent.agent import Agent
from agno.memory.v2.db.sqlite import SqliteMemoryDb
from agno.memory.v2.memory import Memory
from agno.models.openai import OpenAIChat
from agno.storage.sqlite import SqliteStorage
# 创建 SQLite 内存数据库
memory_db = SqliteMemoryDb(
table_name="agent_memories", # 在数据库中使用的表名
db_file="tmp/memory.db", # SQLite 数据库文件的路径
)
# 创建具有 SQLite 后端的内存实例
memory = Memory(db=memory_db)
# 如果表不存在,这将创建该表
memory.clear()
# 会话和用户标识符
session_id = "sqlite_memories"
user_id = "sqlite_user"
# 使用内存和 SQLite 存储创建代理
agent = Agent(
model=OpenAIChat(id="gpt-4o-mini"),
memory=memory,
storage=SqliteStorage(
table_name="agent_sessions",
db_file="tmp/memory.db"
),
enable_user_memories=True,
enable_session_summaries=True,
)
# 第一次交互 - 介绍个人信息
agent.print_response(
"My name is John Doe and I like to hike in the mountains on weekends.",
stream=True,
user_id=user_id,
session_id=session_id,
)
# 第二次交互 - 测试内存是否已存储
agent.print_response(
"What are my hobbies?",
stream=True,
user_id=user_id,
session_id=session_id
)
# 显示存储在 SQLite 中的内存
memories = memory.get_user_memories(user_id=user_id)
print("Memories stored in SQLite:")
for i, m in enumerate(memories):
print(f"{i}: {m.memory}")
创建虚拟环境
打开 Terminal
并创建一个 python 虚拟环境。
python3 -m venv .venv
source .venv/bin/activate
设置环境变量
export OPENAI_API_KEY=xxx
安装库
pip install -U agno openai
运行示例
python cookbook/agent_concepts/memory/sqlite_memory.py