| name | learning-helper |
| description | 根据网页资料生成学习路线,从 URLs 提取内容并整理成结构化的学习路径。 |
learning-helper 技能
根据用户提供的网页资料链接,分析内容并生成结构化的学习路线。
使用场景
- 发现好的学习资源,想整理成系统的学习路径
- 需要根据多个资料制定学习计划
工作流程
步骤一:收集 URLs
用户提供 1-3 个学习资源 URL(每行一个,或空格分隔)。
示例:
https://example.com/python-tutorial
https://docs.python.org/3/tutorial/
防误触机制:
当用户提交输入后,不要立即开始获取内容,而是先询问:
"已收到 [X] 个网址:
- [URL 1]
- [URL 2]
...
是否还有其他的网址需要添加?没有的话回复"没有"或"否",有的话继续输入。"
只有当用户明确表示没有更多网址后,才进入步骤二(获取内容)。
步骤二:获取内容
使用 WebFetch 工具获取每个 URL 的内容。
错误处理机制:
在获取内容时,可能会遇到以下错误情况:
- 404 错误(页面不存在)
- 403 错误(访问被拒绝)
- 网络连接失败
- 超时等
处理流程:
- 尝试使用 WebFetch 获取每个 URL
- 如果某个 URL 获取失败(返回错误),记录该 URL 和错误类型
- 不要跳过失败的 URL,而是暂停并询问用户:
"获取以下网址时遇到问题:
- [失败的 URL 1] - 错误类型
- [失败的 URL 2] - 错误类型
这些网址可能输入有误或已失效。是否需要:
- 重新输入正确的网址?
- 跳过这些网址,继续处理其他网址?"
- 如果用户选择重新输入,等待用户提供新的 URL,替换失败的 URL,然后重新获取
- 如果用户选择跳过,从列表中移除这些失败的 URL,继续处理其他 URL
注意:
- 只有当所有 URL 都获取成功(或用户选择跳过失败的)后,才能进入下一步
- 不要在用户未确认的情况下自行决定跳过失败的 URL
步骤二点五:提取资源
如果是 GitHub 仓库链接:
- 获取仓库的目录结构(访问 GitHub API 或仓库主页)
- 查找所有可执行的代码文件,不限于特定语言:
- Python:
.py
- Jupyter Notebook:
.ipynb
- JavaScript/TypeScript:
.js, .ts, .jsx, .tsx
- Go:
.go
- Rust:
.rs
- Java:
.java
- C/C++:
.c, .cpp, .h
- 其他语言按需添加
- 记录文件路径、文件名、编程语言和简单用途
- 生成完整的原始文件链接(如
https://raw.githubusercontent.com/USER/REPO/BRANCH/path/file.py)
如果是文档/教程类网站:
- 提取文档结构(章节、小节)
- 记录关键概念、定义、示例
- 提取外部链接(如果有指向其他教程或文档的链接)
步骤三:分析内容
分析网页内容,提取:
- 主要主题和知识点
- 章节/模块结构
- 难度层级(入门/进阶/高级)
- 前置知识要求
- 代码资源:从 GitHub 仓库中查找代码文件,记录其路径和用途
- 文档资源:提取教程、文章、文档等学习资料
步骤三点五:补充资源搜索
每个知识点必须同时包含文档资源和代码资源!
在进入步骤四之前,必须检查每个知识点是否同时具备:
- 文档资源:用于文字学习(教程、文章、文档)
- 代码资源:用于实践学习(GitHub原始文件链接)
如果某个知识点缺少任何一种资源,必须使用 WebSearch 搜索补充!
搜索策略:
- 针对每个缺少资源的知识点,搜索「知识点名 + tutorial/document/code example」
- 优先选择权威来源:官方文档、GitHub 优质仓库、知名技术博客、Medium、Dev.to、CSDN、知乎等
- 验证资源可用性:确保链接可访问、内容相关
- 记录搜索到的资源:标题、URL、类型(文档/代码)、简介
搜索示例:
- "python decorators tutorial"
- "react hooks best practices documentation"
- "machine learning gradient descent code example github"
- "context compression LLM tutorial" (上下文压缩的文档资源)
- "context compression implementation github" (上下文压缩的代码资源)
强制要求:
- 如果原始资源中某个知识点没有代码资源 → 必须搜索代码实现
- 如果原始资源中某个知识点没有文档资源 → 必须搜索文档教程
- 如果某种语言没有代码资源 → 尝试搜索其他语言的实现
- 绝对不能跳过任何缺少资源的知识点
步骤四:生成学习路线
创建结构化的 Markdown 文件,使用 TODO List 格式,每个知识点后面附加文档资源和代码资源链接:
# [主题] 学习路线
## 概述
[简短的主题介绍]
## 学习前提
- [前置知识 1]
- [前置知识 2]
## 学习路径
### 阶段一:[入门]
- [ ] **[知识点 1]**
- 描述:[简短说明]
- 文档资源:
- [文档标题](URL) - 来源/简介
- 代码资源:
- [文件名.py](完整GitHub链接) **Python** - 用途说明
- [文件名.js](完整GitHub链接) **JavaScript** - 用途说明
- [ ] **[知识点 2]**
- 描述:[简短说明]
- 文档资源:
- ...
- 代码资源:
- ...
### 阶段二:[进阶]
- [ ] **[知识点 X]**
- 描述:[简短说明]
- 文档资源:
- [文档标题](URL) - 来源/简介
- 代码资源:
- [文件名.py](完整GitHub链接) - 用途说明
### 阶段三:[高级]
- [ ] **[知识点 Y]**
- 描述:[简短说明]
- 文档资源:
- [文档标题](URL) - 来源/简介
- 代码资源:
- ...
### 阶段四:实践项目
**实践项目要求**:
- 基于用户提供的资源来构建
- 每个项目给出:
- **项目名称**:基于资源的核心功能
- **实现思路**:如何利用资源中的代码/概念实现
- **实现方法**:具体的步骤和方法
- **参考资料**:相关的文档和代码资源链接
**实践项目模板**:
```markdown
### 阶段四:实践项目
- [ ] **[项目名称]**
- 基于资源:[资源名称]
- 实现思路:[简述如何利用资源实现]
- 实现方法:
1. [步骤 1]
2. [步骤 2]
3. [步骤 3]
- 参考资料:
- 文档:[文档标题](URL) - 内容简介
- 代码:[文件名.py](完整链接) **Python** - 用途说明
- [ ] **[项目名称]**
- ...
注意:
- 实践项目主要基于用户提供的资源
- 如果资源不足,可使用 WebSearch 搜索相关的项目示例
- 优先选择资源中有完整实现的项目作为参考
- 实现方法要具体、可执行
推荐资源
实践建议
**注意**:
- 使用 `[ ]` 表示未完成,`[x]` 表示已完成
- **文档资源**:每个知识点必须包含至少一个文档资源(教程/文章),来源可以是:
- 用户提供的原始资源
- 通过网络搜索补充的权威文档(官方文档、知名博客、技术网站等)
- **代码资源**:代码资源需要完整的 GitHub 原始文件链接
- **支持所有编程语言**,根据仓库实际情况添加
- **【强制要求】每个知识点必须同时包含文档资源和代码资源**
- 如果某个知识点只有文档没有代码 → 必须搜索代码资源
- 如果某个知识点只有代码没有文档 → 必须搜索文档资源
- 如果都没有 → 必须同时搜索文档和代码资源
- 当资源不足时,主动使用 WebSearch 工具搜索补充
- 标注来源:原始资源标注「原始」,搜索补充的标注网站名称
### 步骤五:保存文件
文件保存路径:`learning-roadmaps/[主题]/README.md`
例如:`learning-roadmaps/python-advanced/README.md`
## 注意事项
- 优先选择权威、有体系的学习资源(如官方文档、知名教程)
- URL 数量控制在 1-3 个,避免信息过载
- 学习路线需要与现有知识库主题对齐
- **必须确认用户没有更多 URL 后才能进入下一步**,避免用户误触 enter 导致输入不完整