个性化教育辅导Agent
本章将构建一个个性化教育辅导Agent,涵盖苏格拉底式教学、知识追踪、多模态教学和情感计算。
教学设计:苏格拉底式提问法的Prompt实现
什么是苏格拉底式提问法?
苏格拉底式教学法不直接给答案,而是通过一系列精心设计的问题,引导学生自己发现答案。这种方法的核心信念是:学生自己推导出的知识,比被动接受的记得更牢。
苏格拉底式提示词设计
代码块
Python
SOCRATES_SYSTEM_PROMPT = """你是一位苏格拉底式教学导师。你的教学原则:
## 核心规则
1. 永远不要直接给出答案
2. 通过提问引导学生思考
3. 每次只问一个问题
4. 根据学生的回答调整下一个问题
5. 当学生接近答案时,给予鼓励而非直接确认
## 提问策略
- 如果学生完全没思路:从简单的引导性问题开始
例:"你觉得这个问题和我们学过的哪个概念有关系?"
- 如果学生思路部分正确:追问细节
例:"你说得对一半,那另一半呢?为什么这里会有不同?"
- 如果学生思路错误:不直接否定,而是指出矛盾
例:"如果按照你的想法,那X应该等于Y,但实际是Z,你觉得问题出在哪里?"
- 如果学生接近正确答案:鼓励进一步确认
例:"你快到了!再想想最后一步是什么?"
## 禁止行为
- 不要说"答案是XXX"
- 不要一次性问多个问题
- 不要用"不对"直接否定学生
- 不要跳过学生的思考过程直接给结论
"""
对话状态管理
代码块
Python
from enum import Enum
class LearningState(Enum):
EXPLORING = "exploring" # 学生在探索思路
PARTIALLY_CORRECT = "partial" # 学生思路部分正确
ON_TRACK = "on_track" # 学生方向正确,接近答案
GOT_IT = "got_it" # 学生得出正确答案
CONFUSED = "confused" # 学生感到困惑
class SocratesTutor:
"""苏格拉底式教学Agent"""
def __init__(self):
self.llm = ChatOpenAI(model="gpt-4o", temperature=0.3)
self.conversation_history = []
知识追踪:根据学生表现动态调整难度
知识追踪模型
知识追踪(Knowledge Tracing)的核心问题是:基于学生的历史表现,估计其对某个知识点的掌握程度。
代码块
Python
class KnowledgeTracer:
"""知识追踪系统"""
def __init__(self):
self.knowledge_state: dict[str, float] = {} # topic -> mastery (0-1)
自适应题目生成
代码块
Python
class AdaptiveQuestionGenerator:
"""自适应题目生成器"""
def __init__(self, llm, tracer: KnowledgeTracer):
self.llm = llm
self.tracer = tracer
def generate_question(self, topic: str) -> dict:
"""根据学生掌握度生成适当难度的题目"""
difficulty = self.tracer.recommend_difficulty(topic)
mastery = self.tracer.get_mastery(topic)
difficulty_desc = {
(0, 0.3): "基础概念题,只需要识别和回忆",
(0.3, 0.5): "理解题,需要解释和举例",
(0.5, 0.7): "应用题,需要在新情境中使用知识",
(0.7, 0.9): "分析题,需要比较、推断和总结",
(0.9, 1.0): "综合题,需要创造性应用和评价",
多模态教学:生成数学公式与几何图形
数学公式渲染
代码块
Python
多模态教学内容生成
代码块
Python
class MultimodalTutor:
"""多模态教学Agent"""
def __init__(self, llm):
self.llm = llm
self.tools = [render_math_formula, render_geometry]
def explain_with_visuals(self, concept: str) -> dict:
"""用多模态方式解释概念"""
prompt = f"""
请用多模态方式解释概念:{concept}
输出格式:
1. 文字解释:用简单的语言解释概念
2. 数学公式:给出相关的数学公式(LaTeX格式)
3. 几何图示:描述一个帮助理解的几何图形
情感计算:识别学生情绪并给予鼓励
为什么情感计算对教育Agent很重要?
学习过程中的情绪波动直接影响学习效果。当学生感到挫败时,如果Agent还在不停地追问,只会适得其反。情感计算让Agent能识别学生的情绪状态,并据此调整交互策略。
情绪识别
代码块
Python
from pydantic import BaseModel
class EmotionalState(BaseModel):
primary_emotion: str # 主要情绪
confidence: float # 置信度
engagement: float # 参与度 (0-1)
frustration: float # 挫败感 (0-1)
class EmotionDetector:
情感响应策略
代码块
Python
class EmotionalResponseStrategy:
"""基于情绪的响应策略"""
STRATEGIES = {
"沮丧": {
情感感知的教学Agent
代码块
Python
学习效果评估:基于测试数据的自适应反馈
形成性评估
形成性评估(Formative Assessment)是在学习过程中持续进行的评估,目的是及时发现不足、调整教学策略。
代码块
Python
class FormativeAssessment:
"""形成性评估系统"""
def __init__(self, llm, tracer: KnowledgeTracer):
self.llm = llm
self.tracer = tracer
def generate_quiz(self, topics: list[str], num_questions: int = 5) -> list[dict]:
"""根据知识状态生成自适应测试题"""
questions = []
学习报告生成
代码块
Python
class LearningReportGenerator:
"""学习报告生成器"""
def __init__(self, llm, tracer: KnowledgeTracer):
self.llm = llm
self.tracer = tracer
完整的个性化教育Agent
代码块
Python
class PersonalizedEducationAgent:
"""完整的个性化教育辅导Agent"""
def __init__(self):
self.llm = ChatOpenAI(model="gpt-4o", temperature=0.3)
self.tracer = KnowledgeTracer()
self.tutor = EmotionAwareTutor()
self.assessment = FormativeAssessment(self.llm, self.tracer)
self.report_generator = LearningReportGenerator(self.llm, self.tracer)
def teach(self, topic: str, student_message: str,
context: dict = None) -> dict:
"""教学交互主入口"""
# 情感感知的教学回应
response = self.tutor.respond(topic, student_message, context)
return {
"response": response,
本章小结
| | |
| | |
| | |
| | |
| | |
至此,《AI Agent 原生开发工作流实战》全部12章内容已经完成。从基础理论到核心组件,从进阶架构到工程化落地,再到三个完整的实战项目,我们系统性地走过了AI Agent开发的完整旅程。
回顾全书的核心脉络:
| | |
| | |
| | |
| | |
| | |
Agent开发不是一蹴而就的——从Hello World到生产级应用,需要反复打磨提示词、优化检索、加固安全、完善监控。但核心方法论始终如一:让Agent更好地感知、更聪明地规划、更可靠地行动。