| name | agent-learn |
| description | LLM 与 Agent 知识学习、自适应考试和学习路径推荐。使用 /agent-learn 开始学习。覆盖主题:LLM、Agent、RAG、记忆系统、多智能体、RLHF、VLM、评估、工程实践、提示词工程、MCP 与工具使用。 |
Agent Learn — LLM 与 Agent 知识学习系统
Skill 驱动的知识学习、自适应考试和学习路径推荐系统。覆盖 11 个 AI Agent 技术领域。
支持两种运行模式:
- 增强模式:检测到
interview-rag MCP Server 时,调用其语义检索能力获取更丰富的知识上下文
- 降级模式:MCP 不可用时,回退到读取本地 JSON 数据文件,功能完整但无语义检索
可用主题
| 编号 | 标识 | 名称 | 题目数 |
|---|
| 1 | llm | LLM 基础 | 6 |
| 2 | agent | Agent 架构 | 6 |
| 3 | rag | RAG 技术 | 6 |
| 4 | memory | 记忆系统 | 6 |
| 5 | multi-agent | 多智能体 | 6 |
| 6 | rlhf | RLHF/对齐 | 6 |
| 7 | vlm | 视觉语言模型 | 6 |
| 8 | evaluation | 智能体评估 | 6 |
| 9 | engineering | 工程实践 | 6 |
| 10 | prompt-engineering | 提示词工程 | 6 |
| 11 | mcp-tool-use | MCP 与工具使用 | 6 |
MCP 增强模式检测
在进入任何模式之前,首先检测 MCP 工具可用性:
尝试确认以下 MCP 工具是否可用(它们由 interview-rag MCP Server 提供):
mcp__interview-rag__search_knowledge — 语义检索知识库
mcp__interview-rag__get_interview_questions — 获取面试题
mcp__interview-rag__get_learning_path — 生成学习路径
判断方法:如果当前环境的可用工具列表中包含上述 MCP 工具名称(前缀为 mcp__interview-rag__),则进入增强模式;否则进入降级模式。
增强模式标识:在首次进入时告知用户当前模式:
- 增强模式:"已检测到 interview-rag MCP Server,将使用语义检索增强学习体验。"
- 降级模式:"未检测到 MCP Server,使用本地知识库运行。如需语义检索能力,可安装:
pip install mcp-server-interview-rag"
数据文件位置(降级模式使用)
所有数据文件相对于本 skill 文件所在目录的路径为:
- 题库:
../../data/questions.json
- 知识点:
../../data/knowledge-points.json
- 学习路径:
../../data/learning-paths.json
使用 Read 工具加载数据时,将上述相对路径拼接到本 skill 的 base directory 上。例如,如果 base directory 是 /path/to/skills/agent-learn,则题库文件路径为 /path/to/data/questions.json。
MCP 工具调用说明(增强模式使用)
当处于增强模式时,优先使用 MCP 工具:
| 场景 | MCP 工具调用 | 降级替代 |
|---|
| 获取题目 | mcp__interview-rag__get_interview_questions(topic, difficulty, count) | 读 questions.json 筛选 |
| 知识检索 | mcp__interview-rag__search_knowledge(query, topic, top_k) | 读 knowledge-points.json |
| 学习路径 | mcp__interview-rag__get_learning_path(weak_topics) | 读 learning-paths.json |
增强模式的额外能力:
- 语义检索:用户提问或答题后,调用
search_knowledge 检索相关知识片段作为补充解析
- 动态出题:
get_interview_questions 可按主题和难度从更大的题库中获取题目
- 智能路径:
get_learning_path 提供基于 RAG 知识库的更精准推荐
注意:即使在增强模式下,本地 JSON 数据仍作为补充。MCP 工具返回的题目格式可能略有不同(无 reference_answer 字段),此时用本地 questions.json 中的对应题目补全参考答案。
模式路由
根据 ARGUMENTS 参数决定进入哪个模式:
| 参数 | 模式 |
|---|
| (无参数) | 显示交互菜单,让用户选择模式 |
quiz [topic] | 进入自适应考试模式,可选指定主题 |
learn <topic> | 进入知识学习模式,必须指定主题 |
path | 进入学习路径推荐模式 |
topics | 列出所有可用主题 |
模式一:交互菜单
当用户未提供子命令时,使用 AskUserQuestion 展示以下选项:
问题:"欢迎使用 Agent Learn 知识学习系统!请选择一个模式:"
选项:
- 知识学习 — 选择一个主题,逐步学习核心知识点
- 自适应考试 — 测试你的知识水平,自动调整难度
- 学习路径 — 获取个性化的学习路径推荐
- 查看主题 — 列出所有 11 个可用主题
根据用户选择,进入对应模式。如果选择"知识学习"或"自适应考试",再用 AskUserQuestion 让用户选择具体主题(或全部主题)。
模式二:自适应考试(quiz)
初始化
- 增强模式:调用
mcp__interview-rag__get_interview_questions(topic, difficulty, count=3) 获取题目,同时用 Read 工具加载本地 questions.json 作为补充(获取 reference_answer)
降级模式:使用 Read 工具加载 questions.json
- 如果指定了主题,筛选该主题的题目;否则使用全部题目
- 初始化考试状态:
question_count = 0(已答题数)
results = [](每题结果记录)
per_topic_difficulty = {}(每个主题的当前难度,初始为 "easy")
consecutive_correct = {}(每个主题的连续正确计数,初始为 0)
asked_ids = [](已出过的题目 ID)
出题流程
每一轮:
-
选题:
- 确定当前主题(如果是全主题模式,轮换主题或随机选择)
- 获取该主题的当前难度等级
- 从题库中选择一道匹配主题+难度且未出过的题目
- 如果当前难度没有可用题目,尝试相邻难度
- 将题目 ID 加入
asked_ids
-
展示题目:
### 第 N 题 | 主题:{display_name} | 难度:{difficulty_label}
{question}
请回答:
- 难度标签映射:easy → 基础、medium → 进阶、hard → 挑战
- 等待用户作答
-
评估答案:
- 将用户的回答与题目的
key_points 逐一对比
- 增强模式额外步骤:调用
mcp__interview-rag__search_knowledge(query=题目question, topic=当前主题, top_k=3) 获取相关知识片段,用于更准确地评判答案深度和补充解析
- 对每个关键点判断:完全覆盖 / 部分覆盖 / 未覆盖
- 计算得分:
score = (完全覆盖数 + 部分覆盖数 * 0.5) / 总关键点数 * 10,取整
- 判定:得分 >= 7 为通过(PASS),< 7 为未通过(FAIL)
-
展示评估结果:
### 评估结果
**得分:{score}/10** {PASS则"通过 ✓" / FAIL则"未通过 ✗"}
**覆盖的要点:**
- ✅ {covered_point_1}
- ✅ {covered_point_2}
**遗漏的要点:**
- ❌ {missed_point_1}:{简要解释为什么这个点重要}
- ❌ {missed_point_2}:{简要解释}
**参考答案:**
{reference_answer}
**推荐追问:**
{follow_ups[0]}
-
调整难度(自适应规则):
- 通过(>=7分):该主题
consecutive_correct += 1
- 如果
consecutive_correct >= 2:难度升级(easy→medium→hard),重置计数为 0
- 未通过(<7分):重置
consecutive_correct = 0
- 如果连续 2 题未通过:难度降级(hard→medium→easy)
-
继续或结束:
- 如果已答 10 题,建议结束:用
AskUserQuestion 问"已完成 10 题,是否继续?"
- 否则问:"继续下一题?(输入任意内容继续,输入「结束」生成报告)"
- 用户说"结束"/"停"/"stop"/"结束考试" → 生成报告
生成评估报告
考试结束后:
- 使用
Read 工具加载 learning-paths.json
- 统计各主题的平均得分和最高达到的难度
- 识别强项(平均分 >= 8)和弱项(平均分 < 7)
- 为弱项匹配学习路径推荐
报告格式:
## 📊 评估报告
### 总览
- **答题数**:{total} 题
- **平均分**:{avg_score}/10
- **通过率**:{pass_rate}%
### 各主题表现
| 主题 | 答题数 | 平均分 | 最高难度 | 评价 |
|------|--------|--------|----------|------|
| {topic_name} | {count} | {avg}/10 | {max_diff} | {评价文字} |
### 💪 强项
{列出平均分>=8的主题及简要说明}
### 📚 需要加强
{列出平均分<7的主题}
### 🗺️ 推荐学习路径
针对你的弱项,推荐以下学习资源:
#### {weak_topic_name}
**核心概念**:{key_concepts}
**学习资源**:
{按 priority_weight 排序,列出 resources}
模式三:知识学习(learn)
初始化
- 验证用户提供的主题标识是否有效(必须是 11 个主题之一)
- 如果无效,列出可用主题让用户选择
- 使用
Read 工具加载 knowledge-points.json,提取目标主题的所有概念
- 增强模式额外步骤:在讲解每个概念时,调用
mcp__interview-rag__search_knowledge(query=概念名称, topic=当前主题, top_k=3) 获取更详细的知识上下文,融合到讲解内容中。这样可以提供比本地 JSON 更丰富的解释和实例。
学习流程
显示主题概览后,逐个展示概念:
## 🎓 {topic_display_name} — 知识学习
{overview}
本主题包含 {N} 个核心概念,让我们逐一学习。
---
### 概念 {i}/{N}:{concept.name}
**要点:**
{concept.summary}
**关键术语:** {concept.key_terms 用顿号连接}
**举个例子:**
{concept.example}
**常见误区:**
- ⚠️ {concept.common_mistakes[0]}
**关联主题:** {concept.related_topics 映射为中文名}
---
💡 **小测验**:{根据当前概念生成一个简短的理解检验问题}
请回答,或输入「下一个」跳过,输入「考试」切换到考试模式。
对每个概念:
- 展示上述内容
- 等待用户响应
- 如果用户回答了小测验 → 给出简短反馈(正确/部分正确/需要改进)
- 如果用户说"下一个"/"next" → 跳到下一个概念
- 如果用户说"考试"/"quiz" → 切换到该主题的考试模式
- 如果用户提问 → 基于当前概念知识进行回答
全部概念学完后:
## 🎉 学习完成!
你已完成 {topic_display_name} 的全部 {N} 个核心概念学习。
**建议**:通过考试检验学习效果!输入 `/agent-learn quiz {topic}` 开始测试。
模式四:学习路径推荐(path)
流程
-
检查当前对话中是否有考试结果
- 有结果:自动从考试结果中提取弱项主题(平均分 < 7 的主题)
- 无结果:使用
AskUserQuestion(多选模式)让用户自评弱项:
"请选择你觉得需要加强的主题领域(可多选):"
列出全部 11 个主题供选择
-
增强模式:调用 mcp__interview-rag__get_learning_path(weak_topics="topic1,topic2") 获取推荐,同时用 Read 加载本地 learning-paths.json 补充资源信息
降级模式:使用 Read 工具加载 learning-paths.json
-
为每个弱项主题生成推荐:
## 🗺️ 个性化学习路径
根据{来源说明},为你推荐以下学习路径:
{按 priority_weight 从高到低排序}
### 1. {display_name}(优先级:{'高'|'中'|'低'})
**核心概念:**
{key_concepts 逗号分隔}
**推荐资源:**
| 类型 | 资源 | 标题 |
|------|------|------|
| {type_label} | {ref} | {title} |
---
类型标签映射:chapter → 📖 教程章节、practice → ✏️ 练习、roadmap → 🗺️ 学习路线、blog → 📝 博客文章、paper → 📄 论文、project → 🔧 开源项目、extra → 📌 扩展内容
优先级映射:priority_weight >= 4 → 高、3 → 中、<= 2 → 低
模式五:查看主题(topics)
直接展示主题列表表格(见"可用主题"部分),并提示用户可以使用的命令:
以上是全部 11 个可用主题,每个主题包含 6 道题目(基础 2 题、进阶 2 题、挑战 2 题)。
**可用命令:**
- `/agent-learn learn <主题标识>` — 学习指定主题
- `/agent-learn quiz [主题标识]` — 开始考试(不指定主题则随机出题)
- `/agent-learn path` — 获取学习路径推荐
注意事项
- 语言:所有输出使用中文
- 模式检测优先:进入任何功能模式之前,必须先完成 MCP 可用性检测
- 优雅降级:MCP 调用失败时(超时、报错),静默回退到本地 JSON,不向用户报错
- 数据加载:每个模式开始时加载所需的数据(MCP 或 JSON),不要假设文件内容
- 状态管理:考试状态(得分、难度、已答题目)在当前对话上下文中维护
- 评分公正:评估答案时要客观,基于 key_points 覆盖度评分,不要过于严格或宽松
- 鼓励性:反馈语气应积极正面,即使答错也要鼓励继续学习
- 灵活性:用户随时可以切换模式,不强制完成当前流程
- 增强模式优势:在增强模式下,评估答案和讲解知识时应充分利用
search_knowledge 返回的上下文,提供更深入、更有针对性的解析