前言
🔥 随着 AI Agent 技术的快速发展,越来越多的开发者开始关注如何将 AI 能力应用到实际场景中。今天,我们就来一步步学习如何构建一个强大的智能教学团队系统。这个项目在 GitHub 上已获得 12.6k Star 的关注度,充分说明了其实用价值。
LLM 在生成教育内容和学习路径方面表现出色,但在处理复杂的多步骤工作流程时往往力不从心。虽然你可以让 LLM 创建课程大纲,然后单独设计练习,再手动整理资源 —— 但这个过程既繁琐又需要持续的人工协调。在本教程中,我们将通过构建一个 AI 教学团队系统来解决这个问题。
我们使用 Phidata 和 Composio 来构建 AI agents。
Phidata 专门用于构建和编排 AI agents,它提供了 agent 通信、内存管理和工具集成的基础设施。 Composio 是一个强大的工具,可以将 AI agents 与 Google Docs、Gmail 和 GitHub 等外部服务连接起来。它处理认证、管理连接,为我们的 agents 提供了一个安全的工作方式。
一、我们要构建什么
这个 Streamlit 应用程序整合了一个专业的 AI 教学团队,像真实的教学团队一样协同工作:一个创建知识库,一个设计学习路径,一个整理资源,还有一个开发练习材料。
🪄 认识你的 AI 教学团队
🧠 教授 (Professor Agent)
在 Google Docs 中创建基础知识库 使用适当的标题和章节组织内容 提供详细的解释和示例 输出: 包含目录的综合知识库文档
在 Google Docs 中设计结构化的学习路径 创建渐进式的里程碑标记 包含时间估算和前置要求 输出: 包含清晰进度路径的可视化路线图
在 Google Docs 中编译整理学习资源 收集学术论文和教程链接 添加难度等级描述 输出: 带质量评级的分类资源列表
在交互式 Google Docs 中开发练习 创建结构化的练习部分 包含解决方案指南 输出: 包含答案的完整练习工作簿
二、环境准备
在开始之前,请确保你具备以下条件:
Python 环境(推荐 3.10 或更高版本) OpenAI 和 Composio API 密钥(下面会详细说明) 代码编辑器(推荐 VS Code 或 PyCharm) 基本的 Python 编程知识
1. 基础环境配置
# 1. 克隆项目代码
git clone https://github.com/Shubhamsaboo/awesome-llm-apps.git
# 2. 进入项目目录
cd ai_agent_tutorials/ai_teaching_agent_team
# 3. 安装依赖包
pip install -r requirements.txt
2. API 配置说明
OpenAI API 配置
创建新账号 进入 Dashboard 导航到 API Keys 生成新密钥
要使用该应用,你需要创建一个与 Google Docs 的新连接:
在终端中运行:composio add googledocs 创建新连接 > 选择 OAUTH2 > 选择 Google 账号 在 Composio 平台的 Dashboard:
转到 Apps 导航到 Googledocs 工具 点击创建集成(紫色按钮) 点击"Try connecting default's googldocs"按钮完成设置
三、代码实现
让我们一步步创建这个应用程序。创建一个新文件teaching_agent_team.py:
1. 设置导入
import streamlit as st
from phi.agent import Agent, RunResponse
from phi.model.openai import OpenAIChat
from composio_phidata import Action, ComposioToolSet
import os
from phi.tools.arxiv_toolkit import ArxivToolkit
from phi.utils.pprint import pprint_run_response
from phi.tools.serpapi_tools import SerpApiTools
2. 初始化会话状态
st.set_page_config(page_title="👨🏫 AI Teaching Agent Team")
# 初始化会话状态
if 'openai_api_key' not in st.session_state:
st.session_state['openai_api_key'] = ''
if 'composio_api_key' not in st.session_state:
st.session_state['composio_api_key'] = ''
if 'serpapi_api_key' not in st.session_state:
st.session_state['serpapi_api_key'] = ''
3. 设置 Composio 工具
composio_toolset = ComposioToolSet(api_key=st.session_state['composio_api_key'])
google_docs_tool = composio_toolset.get_tools(
actions=[Action.GOOGLEDOCS_CREATE_DOCUMENT]
)[0]
google_docs_tool_update = composio_toolset.get_tools(
actions=[Action.GOOGLEDOCS_UPDATE_EXISTING_DOCUMENT]
)[0]
4. 创建教授 Agent
professor_agent = Agent(
name="Professor",
role="Research and Knowledge Specialist",
model=OpenAIChat(id="gpt-4o-mini"),
tools=[google_docs_tool],
instructions=[
"Create comprehensive knowledge base",
"Explain from first principles",
"Include key terminology",
"Create formatted Google Doc"
]
)
5. 创建学术顾问 Agent
academic_advisor_agent = Agent(
name="Academic Advisor",
role="Learning Path Designer",
model=OpenAIChat(id="gpt-4o-mini"),
tools=[google_docs_tool],
instructions=[
"Create detailed learning roadmap",
"Break down into subtopics",
"Include time estimates",
"Create formatted Google Doc"
]
)
6. 创建研究馆员 Agent
research_librarian_agent = Agent(
name="Research Librarian",
role="Learning Resource Specialist",
model=OpenAIChat(id="gpt-4o-mini"),
tools=[
google_docs_tool,
SerpApiTools(api_key=st.session_state['serpapi_api_key'])
],
instructions=[
"Find quality learning resources",
"Use SerpApi for searches",
"Include various resource types",
"Create curated Google Doc"
]
)
7. 创建助教 Agent
teaching_assistant_agent = Agent(
name="Teaching Assistant",
role="Exercise Creator",
model=OpenAIChat(id="gpt-4o-mini"),
tools=[google_docs_tool, SerpApiTools()],
instructions=[
"Create practice materials",
"Include progressive exercises",
"Add real-world applications",
"Create Google Doc with solutions"
]
)
8. 设置 Streamlit 界面
with st.sidebar:
st.title("API Keys Configuration")
st.session_state['openai_api_key'] = st.text_input(
"OpenAI API Key",
type="password"
)
st.session_state['composio_api_key'] = st.text_input(
"Composio API Key",
type="password"
)
st.session_state['serpapi_api_key'] = st.text_input(
"SerpAPI Key",
type="password"
)
9. 实现主题处理
topic = st.text_input(
"Enter topic:",
placeholder="e.g., Machine Learning"
)
if st.button("Start"):
with st.spinner("Generating Knowledge Base..."):
professor_response = professor_agent.run(
f"topic: {topic}"
)
10. 提取 Google Doc 链接
def extract_google_doc_link(response_content):
if "https://docs.google.com" in response_content:
return response_content.split("https://docs.google.com")[1].split()[0]
return None
st.markdown("### Google Doc Links:")
if professor_doc_link:
st.markdown(f"- **Professor Document:** [View](https://docs.google.com{professor_doc_link})")
11. 显示 Agent 响应
st.markdown("### Professor Response:")
st.markdown(professor_response.content)
pprint_run_response(professor_response, markdown=True)
12. 错误处理和验证
if not st.session_state['openai_api_key'] or not st.session_state['composio_api_key']:
st.error("Please enter all required API keys.")
st.stop()
try:
composio_toolset = ComposioToolSet(api_key=st.session_state['composio_api_key'])
except Exception as e:
st.error(f"Error initializing ComposioToolSet: {e}")
st.stop()
13. 进度跟踪
with st.spinner("Creating Practice Materials..."):
teaching_assistant_response = teaching_assistant_agent.run(
f"topic: {topic}"
)
四、运行应用程序
完成代码编写后,是时候启动应用程序了:
在终端中导航到项目文件夹 运行命令:
streamlit run teaching_agent_team.py
五、进阶优化建议
为了使你的教学团队更加高效,可以考虑以下改进:
为技术主题添加交互式编程练习 添加多种学习风格支持 实现进度跟踪和分析 为 Google Docs 实现版本控制以跟踪内容演变 添加多语言支持 实现自适应学习路径
六、常见问题解答
Q: API 调用失败怎么办?
检查 API 密钥是否正确配置 确认 API 额度是否充足 检查网络连接状态
Q: 如何提高内容质量?
调整 Agent 的 system_message 优化提示词工程 增加内容审核机制
Q: 生成速度较慢怎么优化?
使用内容缓存 实现并行处理 优化 API 调用策略
七、结语
通过本教程,你已经成功搭建了一个完整的 AI 教学团队系统。该系统不仅展示了如何使用 AI Agents 构建复杂的应用,还为教育领域提供了一个可扩展的自动化解决方案。
项目代码地址:https://github.com/Shubhamsaboo/awesome-llm-apps
欢迎在评论区分享你的实现成果和改进建议!如果这个教程对你有帮助,别忘了给项目点个星标。持续探索和改进,让我们一起构建更智能的 AI 解决方案!
如果你觉得今天的分享有帮助,记得点赞、收藏并转发,下次找起来更方便哦!