在这个示例中,我们有两个共享相同内存的 Agent。

代码

cookbook/agent_concepts/memory/09_agents_share_memory.py

from agno.agent.agent import Agent
from agno.memory.v2.db.sqlite import SqliteMemoryDb
from agno.memory.v2.memory import Memory
from agno.models.google.gemini import Gemini
from agno.tools.duckduckgo import DuckDuckGoTools
from rich.pretty import pprint

memory_db = SqliteMemoryDb(table_name="memory", db_file="tmp/memory.db")

# 无需设置模型,它将由 Agent 设置为该 Agent 的模型
memory = Memory(db=memory_db)

# 为此示例重置内存
memory.clear()

john_doe_id = "john_doe@example.com"

chat_agent = Agent(
    model=Gemini(id="gemini-2.0-flash-exp"),
    description="你是一个能与用户聊天的乐于助人的助手",
    memory=memory,
    enable_user_memories=True,
)

chat_agent.print_response(
    "我叫 John Doe,周末喜欢在山里徒步。",
    stream=True,
    user_id=john_doe_id,
)

chat_agent.print_response("我的爱好是什么?", stream=True, user_id=john_doe_id)


research_agent = Agent(
    model=Gemini(id="gemini-2.0-flash-exp"),
    description="你是一个研究助手,可以帮助用户解答研究问题",
    tools=[DuckDuckGoTools(cache_results=True)],
    memory=memory,
    enable_user_memories=True,
)

research_agent.print_response(
    "我喜欢问关于量子计算的问题。关于量子计算的最新消息是什么?",
    stream=True,
    user_id=john_doe_id,
)

memories = memory.get_user_memories(user_id=john_doe_id)
print("关于 John Doe 的内存信息:")
pprint(memories)

用法

1

创建虚拟环境

打开 Terminal 并创建一个 python 虚拟环境。

python3 -m venv .venv
source .venv/bin/activate
2

设置您的 API 密钥

export GOOGLE_API_KEY=xxx
3

安装库

pip install -U agno google-generativeai duckduckgo-search
4

运行示例

python cookbook/agent_concepts/memory/09_agents_share_memory.py