Skip to content

v2.2.0 — AI Agent 学习层 / Agent study layer

Latest

Choose a tag to compare

@KunyQi KunyQi released this 28 Jul 16:49
· 1 commit to main since this release

🤖 把课件变成 AI Agent 能查询的知识库

v2.2.0 让下载完的课件不再只是硬盘上的一堆 PDF。新增的学习层可以索引本地课件、导出 Obsidian 知识库、生成复习 notebook,并通过 MCP 服务把这些内容开放给 Claude Code 等 AI agent。

全部操作本地文件,不需要登录 Moodle —— 复习流程在认证之前就短路返回了。

python main.py --index                    # 索引本地课件
python main.py --obsidian vault           # 导出 Obsidian 知识库
python main.py --notebook revision.ipynb --days 7   # 生成复习 notebook
python -m moodle_scraper.mcp_server --root .        # 给 agent 用的 MCP 服务

接入 Claude Code:

claude mcp add moodle -- python -m moodle_scraper.mcp_server --root /path/to/materials

✨ 新增 / Added

  • MCP 服务moodle_scraper/mcp_server.py)—— 手写 JSON-RPC over stdio,零额外依赖。5 个工具:list_coursessearch_materialsget_material_textcourse_overviewrevision_plan
  • Obsidian 导出study/obsidian.py)—— 每门课一个 MOC 索引页,材料按周分目录;每篇笔记带 YAML frontmatter、原文件嵌入、复习要点空白区、正文摘要与 wikilink 互联
  • 复习 notebookstudy/notebook.py)—— nbformat 4.5 纯 JSON 生成,含 N 天复习计划与「空白回忆」自测区
  • 本地索引study/index.py)—— 按文件名启发式识别材料类型与周次,可选提取正文,落盘 .moodle-index.json
  • 复习 Skillskills/moodle-revision/)—— 让支持 Skills 的 agent 学会完整复习流程
  • 排期唯一事实源study/planner.py)—— MCP 与 notebook 共用同一套排序与间隔重复实现

🔧 修复 / Fixed

  • revision_plan 此前只做均分、不含间隔重复复习位(只有 notebook 有),现已补齐 d-1 / d-3 / d-7 复习安排,两条路径结果保证一致
  • 消除 MCP 与 notebook 中重复的排序 / 分天实现(约 60 行),根除了两者结果漂移的可能
  • 多课程 notebook 会重复输出课程标题
  • SKILL.md 曾描述过一个实际不存在的能力,已修正

⚠️ 如实说明 / Honest notes

请在使用前了解这些边界:

  • 这不是"官方 ChatGPT Work 集成"。本项目提供的是标准接口:MCP 服务、Obsidian vault、.ipynb、Skill 文件。Claude Code / Claude Desktop 可直接接入;ChatGPT 能否使用取决于它自身的 MCP 连接器支持。除此之外没有任何厂商专有集成。
  • PDF 正文提取未经真实环境验证。该功能通过 pypdf / pdfminer 懒加载,但开发环境两者都未安装,因此只测试到了「库缺失时降级为空文本」这条路径。真实 PDF 的提取质量尚未验证。想要全文检索请 pip install pypdf;不装也能正常运行,只是检索退化为按文件名匹配。
  • .txt / .md / .csv 的正文提取无需任何额外依赖,这部分经过完整验证。
  • 材料类型与周次是启发式识别,靠文件名匹配关键词(Week 3Wk3Topic 3lecturelab 等)。命名不规范的课件可能被归为 other 或识别不出周次——这不影响下载与导出,只影响排序与分组。
  • 测试全部离线,287 项通过。网络访问隐藏在 Protocol 接缝之后,测试用假 HTTP 客户端注入预设响应,不触碰真实 Moodle。

📦 依赖 / Dependencies

无新增硬依赖,仍是 requestsbeautifulsoup4seleniumrich


Full Changelog: v2.1.0...v2.2.0