你的AI学习搭档:定计划、讲知识、做项目,学透一门科目
StudyMate 是面向数学与计算机科目学习的助手,原则是「learn with doing」
快速开始 · 它是什么 · 核心功能 · 常见问题 · 使用说明 · Antigravity 说明
本项目原先是vibe出来给自己用的一个小项目,没想到有这么多人喜欢。但是vibe出来的东西有很多的问题,包括但不限于「文档过于臃肿且充满AI味、可读性极差」、「海量且无用的防御性代码」、「混乱的功能模块」。
虽然现在跑起来的效果也不差,但是跟我理想中的效果还是有很大差距
我觉得这样的东西对不起这么多的信任与star,我会直视这些问题,并且人工修改审查每一个文件,在未来的更新维护中给大家带来更好的体验,感谢大家的使用与支持,有任何建议都可以提个issue,本项目将长期维护。
DSH 依赖:DSH 0.1.5-rc.2+、Node.js(支持范围见 package.json 的 engines)、Python 3.9+、PyYAML。
npx -y @yunmiao/studymate@latest install- 桌面端(DeepSeek Harness Desktop):桌面端自带 DSH。它启动过一次之后,安装器就会用桌面端自带的
dsh,把「学习模式」装进它的desktop档位。装完完全退出桌面端再重新打开,新建会话时选「学习模式」。 - 官方 CLI:先
npm install -g @deepseek-ai/dsh@latest,同一条安装命令默认注册到web档位,之后用dsh web启动。
更新:再次运行上述 npx 命令,然后重启对应的 DSH(桌面端完全退出再打开;CLI 重启并新建会话)。
- 第一次学习:新建会话时选「学习模式」,说一句「我想学 [某个科目]」。会话开在学习工作区目录里(权限选
workspace-write或danger-full-access)最省事——课程就地建,零授权。 - 会话开在别处也行(比如某个代码仓):课程先建在会话目录下的
.studymate-stage/<slug>(全程零授权),结束时总控问你一句放哪——学习工作区/桌面/文档文件夹/用户根目录/先留着——然后一次cp -a搬过去。 - 还没想好学什么:在学习对话里说「我不知道学什么,帮我选方向」,可选探索后再决定是否开课;已有明确科目或恢复学习直接走原流程。
- 学习工作区默认在
~/StudyMate,所有课件与记忆均存放在工作区;已有配置会沿用。 - 第一次生成课程后,课程主页在工作区目录
<workspace>/index.html,是未来所有课件的入口
指定工作区、依赖安装、桌面端非默认安装位置和换机器续学见 安装说明。
从 最新 Release 下载 studymate-openai.zip,通过 Codex/ChatGPT 提供的插件导入入口导入(详见 导入说明)。
更新时下载最新版 ZIP,找到已有的插件链接,在浏览器中打开,选择上传新版本
在项目根目录运行以下命令一键构建并安装:
node bin/studymate.mjs build-antigravity --install或者通过 npm run build:antigravity 构建 ZIP 包手动导入(详见 Antigravity 说明)。
StudyMate 是一套数学/计算机学习工作流、SKILL 与 HTML 课件引擎,支持 DSH(DeepSeek Harness)的「学习模式」预设、Google Antigravity 原生多智能体插件,也可打包为 Codex 和 ChatGPT Work 插件。它按需组织收集资料、采图、课程设计、讲解、练习评估五个角色;宿主支持时可委派给子代理,否则依次完成各角色工作。
- 课程组成:讲解|练习|项目实操:每门课一份大纲——知识点按前置依赖排成路线图,每个知识点标课的类型「概念课 | 实操课 | 实验课」(大纲里写
概念/实操/实验)。学习进度落在文件里,每次新对话可继承已有进度。 - 跨科目共享记忆:记住你的现有水平、哪种讲法有效、常见卡点,下一门课不用重新自我介绍。
| 常见做法 | 卡在哪 | StudyMate 的做法 |
|---|---|---|
| 直接跟 AI 聊天学 | 会话一长上下文就吃不下;聊完不留痕,下次从零开始 | 信息与偏好由记忆文件保存;每次会话只带相关记忆、上下文短;课件是教科书式的讲解与配图 |
| 看视频课 / 网课 | 质量参差不齐;付费;无法跟随前沿发展的节奏 | 讲解方式定制化;收集最新的资料与标准;完全开源 |
课程总览与大纲路线图:总览页列全部科目与当前节点,点进去是那门课的知识点路线图,按依赖分层排开、按状态着色,点节点原地展开课件子卡片。
课件是学习的主载体:经典教材的讲解风格,丰富的配图,定制化的题目与项目目标。
想翻一遍真实产出:仓库里的 examples/ 是一份完整示例工作区(线性代数 + 计算机网络),页面已经渲染入库——clone 下来用浏览器打开 examples/index.html,就能一路点到科目主页与课件。
- 「我不知道学什么,帮我选方向」 → 一次聊一个问题,可跳过或先看建议;选定方向后补齐开课信息,确认后接回建课与首课流程(见 可选方向探索)。
- 「我想学 C++ 打竞赛」 → 先盘问目的/程度/项目/实验方式,再产出大纲路线图与科目主页,开第一课。
- 带着指定教材自学 → 盘问结束后主动提供本地资料路径(讲义、笔记或教材目录),系统把教材转成 Markdown 放进
reference/(学生能翻),把它收集到的在线来源转成 Markdown 放进sources/(写课对齐用);大纲与课件都对着这批原文写。 - 贴一段看不懂的课文 + 「这里没懂」 → 主教练当场答一小段,记一条档案,送你回原位接着读。
- 「考考我」 → 现场出题 + 按可运行证据核验,给一份评估记录并更新进度。
- 「太简单了 / 没听懂」 → 换讲法(加边界与反例,或降一层抽象),并把这条偏好记进共享记忆。
日常要跑的命令只有一条,就是你装完之后自检的那条:
npm test它不需要真实 DSH、浏览器或模型服务;测试自己造临时科目,不碰你的学习工作区。生成与校验脚本的完整清单见工程约束 §四 脚本一览,各命令的前置、按需入口(真实浏览器、真实 DSH)与退出码语义见测试说明——两处各是唯一出处,本文不重抄。
目录树、每个目录干什么、哪个文件归谁维护,见工程约束 §二 目录与规则归属 与文件归属——两处各有唯一出处,这里不再抄一份。
DSH 安装到 ~/.dsh/studymate/engine/,预设与工作区配置也由安装器管理。学习数据默认位于独立的 ~/StudyMate,无需保留源码仓库;详见 安装说明。
学习工作区里面长什么样(科目文件夹、课件、lab、档案、课型与题型、模板与生成器的契约),见 使用说明 §六。
装完没有主页 / 直接打开 templates/ 里的 HTML 没样式
主页要从学习数据生成:跑 python3 scripts/gen_home.py 再看 <workspace>/index.html(还没科目时是空状态页)。templates/*.html 引用的是生成后的工作区相对路径,单独打开只有裸 HTML,这是设计如此。
已装 Python,但提示缺少 PyYAML
Python 不自带 PyYAML。请在系统终端复制安装器给出的依赖安装命令,使用它检测到的同一个解释器,完成后重试原 npx 命令并保留参数。看到 >>> 或提示缺少 pip 时,按 依赖安装说明 处理。
完整课件校验还需要 jsonschema;缺少它时,大纲检查会跳过 schema 校验。
更多问题(手改 YAML 的坑、大纲改节点后指针为什么会错、能不能离线)见 使用说明 §八 常见问题。
- 项目交流群(QQ):161914370
- 参与开发:CONTRIBUTING.md(改哪块先读哪份、本地怎么验、提交信息规范)
- 变更日志:CHANGELOG.md
- 文档:使用说明(日常怎么用、课型与题型、检查与档案规则)· Codex 与 ChatGPT(OpenAI 插件构建、安装与工作区)· Antigravity 说明(Antigravity 插件构建、多智能体协同与安装)· 课件内容格式(内容文件与题目位置的语法)· 文件归属(代称 ↔ 路径 ↔ 维护者)· Agent 交接协议(staged 子代理交付的机器边界)· 设计方案(产品视角)· 工程约束(目录约定、占位符契约、脚本一览、技术选型)· VitePress 课程工作区(可选阅读端提案,对接 #22)· 模板说明 · 前端资源契约
规矩见 CONTRIBUTING.md;各命令要跑什么、前置是什么见 测试说明。
MIT(见 LICENSE,版权 Cattofu)。




