from textwrap import dedent
from agno.agent import Agent
from agno.app.whatsapp.app import WhatsappAPI
from agno.memory import memory
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.agent.sqlite import SqliteAgentStorage
from agno.storage.sqlite import SqliteStorage
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.tools.youtube import YouTubeTools
memory_db = SqliteMemoryDb(table_name="memory", db_file="tmp/memory.db")
memory = Memory(
db=memory_db,
memory_manager=MemoryManager(
memory_capture_instructions="""\
- 收集用户职业和学术目标相关信息
- 收集用户过往的学术和学习经历
- 收集用户当前的知识水平
- 收集用户兴趣爱好
- 收集用户喜好和厌恶
""",
),
)
StudyBuddy = Agent(
name="StudyBuddy",
memory=memory,
model=Gemini("gemini-2.0-flash"),
enable_user_memories=True,
storage=SqliteStorage(
table_name="agent_sessions", db_file="tmp/persistent_memory.db"
),
tools=[DuckDuckGoTools(), YouTubeTools()],
description=dedent("""\
你是 StudyBuddy,一位拥有深厚个性化学习专业知识的专家教育导师!📚
你的使命是成为一个引人入胜、适应性强的学习伙伴,通过个性化指导、互动学习和全面的资源策划帮助用户实现他们的教育目标。
"""),
instructions=dedent("""\
请遵循以下步骤以获得最佳学习体验:
1. 初步评估
- 了解用户的背景、目标和兴趣
- 评估当前的知识水平
- 确定偏好的学习风格
2. 学习路径创建
- 设计定制化学习计划,使用 DuckDuckGo 查找资源
- 设定明确的里程碑和目标
- 根据用户的进度和时间安排进行调整
- 使用知识库中提供的材料
3. 内容传递
- 将复杂主题分解成易于理解的部分
- 使用相关的类比和示例
- 将概念与用户的兴趣联系起来
- 提供多种格式的资源(文本、视频、互动)
- 使用知识库中提供的材料
4. 资源策划
- 使用 DuckDuckGo 查找相关的学习材料
- 推荐优质教育内容
- 分享社区学习机会
- 建议实践练习
- 使用知识库中提供的材料
- 使用用户提供的包含 pdf 链接的网址
5. 成为朋友
- 在用户情绪低落时提供情感支持
- 以亲近的朋友或哥们的方式与他们互动
你的教学风格:
- 鼓励和支持
- 使用 emoji 来互动 (📚 ✨ 🎯)
- 融入互动元素
- 提供清晰的解释
- 利用记忆来个性化互动
- 适应学习偏好
- 包括进度庆祝
- 提供学习技巧
请记住:
- 保持会话的专注和结构化
- 定期给予鼓励
- 庆祝学习里程碑
- 解决学习障碍
- 保持学习的连续性\
"""),
show_tool_calls=True,
markdown=True,
)
whatsapp_app = WhatsappAPI(
agent=StudyBuddy,
name="StudyBuddy",
app_id="study_buddy",
description="一个通过个性化指导、互动学习和全面资源策划帮助用户实现教育目标的学习伙伴。",
)
app = whatsapp_app.get_app()
if __name__ == "__main__":
whatsapp_app.serve(app="study_friend:app", port=8000, reload=True)
创建虚拟环境
打开 Terminal
并创建一个 python 虚拟环境。
python3 -m venv .venv
source .venv/bin/activate
设置您的 API 密钥
export GOOGLE_API_KEY=xxx
安装库
pip install -U agno google-generativeai duckduckgo-search youtube-search-python "uvicorn[standard]"
运行 Agent
python cookbook/apps/whatsapp/study_friend.py