# Agent Learn

> LLM 与 Agent 知识学习、自适应考试和学习路径推荐。使用 /agent-learn 开始学习。覆盖主题：LLM、Agent、RAG、记忆系统、多智能体、RLHF、VLM、评估、工程实践、提示词工程、MCP 与工具使用。

- Skill: `ddhjx-code/agent-learn` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ddhjx-code/agent-learn`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ddhjx-code/agent-learn/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: Ddhjx-code (https://skillmd.com/u/ddhjx-code)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ddhjx-code/agent-learn

---


# 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 知识学习系统！请选择一个模式："

选项：
1. **知识学习** — 选择一个主题，逐步学习核心知识点
2. **自适应考试** — 测试你的知识水平，自动调整难度
3. **学习路径** — 获取个性化的学习路径推荐
4. **查看主题** — 列出所有 11 个可用主题

根据用户选择，进入对应模式。如果选择"知识学习"或"自适应考试"，再用 `AskUserQuestion` 让用户选择具体主题（或全部主题）。

---

## 模式二：自适应考试（quiz）

### 初始化

1. **增强模式**：调用 `mcp__interview-rag__get_interview_questions(topic, difficulty, count=3)` 获取题目，同时用 `Read` 工具加载本地 `questions.json` 作为补充（获取 `reference_answer`）
   **降级模式**：使用 `Read` 工具加载 `questions.json`
2. 如果指定了主题，筛选该主题的题目；否则使用全部题目
3. 初始化考试状态：
   - `question_count = 0`（已答题数）
   - `results = []`（每题结果记录）
   - `per_topic_difficulty = {}`（每个主题的当前难度，初始为 "easy"）
   - `consecutive_correct = {}`（每个主题的连续正确计数，初始为 0）
   - `asked_ids = []`（已出过的题目 ID）

### 出题流程

每一轮：

1. **选题**：
   - 确定当前主题（如果是全主题模式，轮换主题或随机选择）
   - 获取该主题的当前难度等级
   - 从题库中选择一道匹配主题+难度且未出过的题目
   - 如果当前难度没有可用题目，尝试相邻难度
   - 将题目 ID 加入 `asked_ids`

2. **展示题目**：
   - 格式如下：

```
### 第 N 题 | 主题：{display_name} | 难度：{difficulty_label}

{question}

请回答：
```

   - 难度标签映射：easy → 基础、medium → 进阶、hard → 挑战
   - 等待用户作答

3. **评估答案**：
   - 将用户的回答与题目的 `key_points` 逐一对比
   - **增强模式额外步骤**：调用 `mcp__interview-rag__search_knowledge(query=题目question, topic=当前主题, top_k=3)` 获取相关知识片段，用于更准确地评判答案深度和补充解析
   - 对每个关键点判断：完全覆盖 / 部分覆盖 / 未覆盖
   - 计算得分：`score = (完全覆盖数 + 部分覆盖数 * 0.5) / 总关键点数 * 10`，取整
   - 判定：得分 >= 7 为通过（PASS），< 7 为未通过（FAIL）

4. **展示评估结果**：

```
### 评估结果

**得分：{score}/10** {PASS则"通过 ✓" / FAIL则"未通过 ✗"}

**覆盖的要点：**
- ✅ {covered_point_1}
- ✅ {covered_point_2}

**遗漏的要点：**
- ❌ {missed_point_1}：{简要解释为什么这个点重要}
- ❌ {missed_point_2}：{简要解释}

**参考答案：**
{reference_answer}

**推荐追问：**
{follow_ups[0]}
```

5. **调整难度**（自适应规则）：
   - 通过（>=7分）：该主题 `consecutive_correct += 1`
     - 如果 `consecutive_correct >= 2`：难度升级（easy→medium→hard），重置计数为 0
   - 未通过（<7分）：重置 `consecutive_correct = 0`
     - 如果连续 2 题未通过：难度降级（hard→medium→easy）

6. **继续或结束**：
   - 如果已答 10 题，建议结束：用 `AskUserQuestion` 问"已完成 10 题，是否继续？"
   - 否则问："继续下一题？（输入任意内容继续，输入「结束」生成报告）"
   - 用户说"结束"/"停"/"stop"/"结束考试" → 生成报告

### 生成评估报告

考试结束后：

1. 使用 `Read` 工具加载 `learning-paths.json`
2. 统计各主题的平均得分和最高达到的难度
3. 识别强项（平均分 >= 8）和弱项（平均分 < 7）
4. 为弱项匹配学习路径推荐

报告格式：

```
## 📊 评估报告

### 总览
- **答题数**：{total} 题
- **平均分**：{avg_score}/10
- **通过率**：{pass_rate}%

### 各主题表现

| 主题 | 答题数 | 平均分 | 最高难度 | 评价 |
|------|--------|--------|----------|------|
| {topic_name} | {count} | {avg}/10 | {max_diff} | {评价文字} |

### 💪 强项
{列出平均分>=8的主题及简要说明}

### 📚 需要加强
{列出平均分<7的主题}

### 🗺️ 推荐学习路径

针对你的弱项，推荐以下学习资源：

#### {weak_topic_name}
**核心概念**：{key_concepts}
**学习资源**：
{按 priority_weight 排序，列出 resources}
```

---

## 模式三：知识学习（learn）

### 初始化

1. 验证用户提供的主题标识是否有效（必须是 11 个主题之一）
2. 如果无效，列出可用主题让用户选择
3. 使用 `Read` 工具加载 `knowledge-points.json`，提取目标主题的所有概念
4. **增强模式额外步骤**：在讲解每个概念时，调用 `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 映射为中文名}

---

💡 **小测验**：{根据当前概念生成一个简短的理解检验问题}

请回答，或输入「下一个」跳过，输入「考试」切换到考试模式。
```

对每个概念：
1. 展示上述内容
2. 等待用户响应
3. 如果用户回答了小测验 → 给出简短反馈（正确/部分正确/需要改进）
4. 如果用户说"下一个"/"next" → 跳到下一个概念
5. 如果用户说"考试"/"quiz" → 切换到该主题的考试模式
6. 如果用户提问 → 基于当前概念知识进行回答

全部概念学完后：

```
## 🎉 学习完成！

你已完成 {topic_display_name} 的全部 {N} 个核心概念学习。

**建议**：通过考试检验学习效果！输入 `/agent-learn quiz {topic}` 开始测试。
```

---

## 模式四：学习路径推荐（path）

### 流程

1. 检查当前对话中是否有考试结果
   - **有结果**：自动从考试结果中提取弱项主题（平均分 < 7 的主题）
   - **无结果**：使用 `AskUserQuestion`（多选模式）让用户自评弱项：
     "请选择你觉得需要加强的主题领域（可多选）："
     列出全部 11 个主题供选择

2. **增强模式**：调用 `mcp__interview-rag__get_learning_path(weak_topics="topic1,topic2")` 获取推荐，同时用 `Read` 加载本地 `learning-paths.json` 补充资源信息
   **降级模式**：使用 `Read` 工具加载 `learning-paths.json`

3. 为每个弱项主题生成推荐：

```
## 🗺️ 个性化学习路径

根据{来源说明}，为你推荐以下学习路径：

{按 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` — 获取学习路径推荐
```

---

## 注意事项

1. **语言**：所有输出使用中文
2. **模式检测优先**：进入任何功能模式之前，必须先完成 MCP 可用性检测
3. **优雅降级**：MCP 调用失败时（超时、报错），静默回退到本地 JSON，不向用户报错
4. **数据加载**：每个模式开始时加载所需的数据（MCP 或 JSON），不要假设文件内容
5. **状态管理**：考试状态（得分、难度、已答题目）在当前对话上下文中维护
6. **评分公正**：评估答案时要客观，基于 key_points 覆盖度评分，不要过于严格或宽松
7. **鼓励性**：反馈语气应积极正面，即使答错也要鼓励继续学习
8. **灵活性**：用户随时可以切换模式，不强制完成当前流程
9. **增强模式优势**：在增强模式下，评估答案和讲解知识时应充分利用 `search_knowledge` 返回的上下文，提供更深入、更有针对性的解析

