本示例演示了如何通过提供文本或消息列表来创建 Agent 的用户记忆。Agent 使用自定义记忆管理器来捕获和存储相关详细信息。

代码

cookbook/agent_concepts/memory/04_custom_memory_creation.py
from agno.memory.v2 import Memory
from agno.memory.v2.db.sqlite import SqliteMemoryDb
from agno.memory.v2.manager import MemoryManager
from agno.models.anthropic.claude import Claude
from agno.models.google import Gemini
from agno.models.message import Message
from rich.pretty import pprint

memory_db = SqliteMemoryDb(table_name="memory", db_file="tmp/memory.db")
# 为本示例重置
memory_db.clear()

memory = Memory(
    model=Gemini(id="gemini-2.0-flash-exp"),
    memory_manager=MemoryManager(
        model=Gemini(id="gemini-2.0-flash-exp"),
        memory_capture_instructions="""\
                    记忆应仅包含有关用户学术兴趣的详细信息。
                    仅包含他们感兴趣的科目。
                    忽略姓名、爱好和个人兴趣。
                    """,
    ),
    db=memory_db,
)

john_doe_id = "john_doe@example.com"

memory.create_user_memories(
    message="""\
我的名字是 John Doe。

我喜欢在周末去山上徒步,
睡前阅读科幻小说,
烹饪来自不同文化的新食谱,
和朋友下象棋。

我对学习宇宙的历史和其他天文学话题感兴趣。
""",
    user_id=john_doe_id,
)


memories = memory.get_user_memories(user_id=john_doe_id)
print("John Doe 的记忆:")
pprint(memories)


# 使用默认记忆管理器
memory = Memory(model=Claude(id="claude-3-5-sonnet-latest"), db=memory_db)
jane_doe_id = "jane_doe@example.com"

# 发送消息历史并添加记忆
memory.create_user_memories(
    messages=[
        Message(role="user", content="你好,你怎么样?"),
        Message(role="assistant", content="我很好,谢谢!"),
        Message(role="user", content="你有什么能力?"),
        Message(
            role="assistant",
            content="我可以帮助你完成家庭作业,并回答关于宇宙的问题。",
        ),
        Message(role="user", content="我叫 Jane Doe"),
        Message(role="user", content="我喜欢下棋"),
        Message(
            role="user",
            content="实际上,忘了我喜欢下棋这件事。我更喜欢玩《龙与地下城》这样的桌面游戏。",
        ),
        Message(
            role="user",
            content="我也对学习宇宙的历史和其他天文学话题感兴趣。",
        ),
        Message(role="assistant", content="太棒了!"),
        Message(
            role="user",
            content="我对物理学真的很感兴趣。能给我讲讲量子力学吗?",
        ),
    ],
    user_id=jane_doe_id,
)

memories = memory.get_user_memories(user_id=jane_doe_id)
print("Jane Doe 的记忆:")
pprint(memories)

用法

1

创建虚拟环境

打开 Terminal 并创建一个 python 虚拟环境。
python3 -m venv .venv
source .venv/bin/activate
2

安装库

pip install -U agno rich
3

运行示例

python cookbook/agent_concepts/memory/04_custom_memory_creation.py