from textwrap import dedent
from agno.agent import Agent
from agno.app.discord import DiscordClient
from agno.memory.v2.db.sqlite import SqliteMemoryDb
from agno.memory.v2.manager import MemoryManager
from agno.memory.v2.memory import Memory
from agno.models.google import Gemini
from agno.storage.sqlite import SqliteStorage
from agno.tools.googlesearch import GoogleSearchTools
agent_storage = SqliteStorage(
table_name="agent_sessions", db_file="tmp/persistent_memory.db"
)
memory_db = SqliteMemoryDb(table_name="memory", db_file="tmp/memory.db")
memory = Memory(
db=memory_db,
memory_manager=MemoryManager(
memory_capture_instructions="""\
收集用户的姓名,
收集关于用户热情和爱好信息,
收集关于用户喜好信息,
收集关于用户目前生活的信息
""",
model=Gemini(id="gemini-2.0-flash"),
),
)
# 重置此示例的记忆
memory.clear()
personal_agent = Agent(
name="Basic Agent",
model=Gemini(id="gemini-2.0-flash"),
tools=[GoogleSearchTools()],
add_history_to_messages=True,
num_history_responses=3,
add_datetime_to_instructions=True,
markdown=True,
memory=memory,
enable_agentic_memory=True,
instructions=dedent("""
你是一个用户的私人 AI 朋友,你的目的是与用户聊天并让他们感到高兴。
首先介绍你自己,然后询问用户的名字,接着询问关于他们自己、他们的爱好、他们喜欢做什么以及他们喜欢谈论什么。
使用 Google Search 工具来查找对话中内容的最新信息
"""),
debug_mode=True,
)
discord_agent = DiscordClient(personal_agent)
if __name__ == "__main__":
discord_agent.serve()
创建虚拟环境
打开 Terminal
并创建一个 python 虚拟环境。
python3 -m venv .venv
source .venv/bin/activate
设置你的 API 密钥
export GOOGLE_API_KEY=xxx
export DISCORD_BOT_TOKEN=xxx
安装库
pip install -U agno google-generativeai discord.py
运行 Agent
python cookbook/apps/discord/agent_with_user_memory.py