前言¶
在 DeepSeek Harness(DSH)里做联网或自动化类能力时,常见做法是写脚本挂 cron,或自己拼浏览器驱动。超星学习通这类页面有防挂机弹窗、章节切换、弹题作答等状态,纯脚本很难统一启停、看日志,也和 DSH 里已配好的 LLM 脱节。dsh-cx-learn 是社区维护者 forgotfish 发布的 DSH 插件(分类:联网工具),用 CDP 驱动真实 Chromium,把「看课推进」收成带设置页和 HTTP 接口的后台任务,支持 AI 答题与人工答题,并可自选浏览器内核与模型。下文按安装、配置与典型流程说明用法;事实以 GitHub 仓库 README 为准,当前 package 版本为 0.2.0,MIT 许可证。
这是什么¶
dsh-cx-learn 的定位是:DeepSeek Harness 插件,超星学习通自动刷课与作业答题(README 表述为自动看课与弹题作答)。引擎零 npm 依赖,仅用 Node 内置模块,不引入 puppeteer / playwright。插件不碰后端:不篡改数据、不伪造进度上报、不调用任何进度写接口;检测到人脸识别、活体或验证码会立即停止,不做绕过。运行期数据落在 $DSH_HOME/cx-learn/(配置、日志、登录态、浏览器 profile 按用户隔离)。
核心功能¶
README 将能力按优先级归纳如下,并附带章节模式与拟人化节奏(随机延迟集中在 CONFIG,可统一调节)。
| 能力 | 说明 |
|---|---|
| P0 播放态检测 | 视频暂停则恢复播放;关闭防挂机弹窗 |
| P1 自动切节 | 当前节自然结束后自动切下一节 |
| P2 弹题作答 | ai 模型代答,或 manual 暂停等人工 |
| P3 跳过已完成 | 识别已看完的任务点并跳过 |
| P4 章节模式 | continue_chapters 连播 / current_chapter 只跑当前章,带 maxSections 上限 |
扫码登录:设置页显示二维码,用手机学习通 App 扫一次,登录态可长期复用。
其他特点(README「特点」节):内核与插件解耦(共享目录换机器即可);模型来源读取 DSH 已配置的服务商与模型,另支持内置智谱 GLM(需 ZHIPU_API_KEY);host 半端负责进程生命周期与 HTTP,引擎子进程通过 loopback 回调 host 使用 ctx.llm 答题。
安装与启用¶
插件以当前 DSH 进程权限运行,安装前应自行审阅源码与 MIT 许可证,并知悉平台服务条款与免责声明(自动化可能导致进度退回或账号处罚)。
方式一:DSH 插件市场
在 DSH 插件管理页搜索 dsh-cx-learn,安装后启用。
方式二:手动安装
# 克隆到 DSH 的插件目录(路径按你的部署调整)
git clone https://github.com/forgotfish/dsh-cx-learn.git
# 让 profile 认识这个 bundle
dsh plugin --profile web add dsh-cx-learn
# 本地开发时指向本地目录
dsh plugin --profile web add link:/绝对路径/dsh-cx-learn
安装后在 DSH 设置 → 学习通看课 可见面板。
全局安装(多用户)
在共享插件清单 access.yaml 的 base_bundles 中加入 dsh-cx-learn:
base_bundles:
- '@deepseek-ai/dsh-base'
- '@deepseek-ai/dsh-web-app'
- dsh-cx-learn
环境要求(package.json):dsh >= 0.2.0-rc.1,node >= 22。
浏览器内核与答题模型¶
内核不在插件目录内,插件按顺序查找:CX_BROWSER_ROOT → $DSH_HOME/cx-learn/browsers → /vol1/@apphome/dsh-shared/browsers → /opt/dsh-shared/browsers → 插件目录 .browser/。每个子目录为一个内核,内含 chrome、chromium 等可执行文件;可从 Chrome for Testing 或 npmmirror 镜像下载。部分精简 Chromium 缺 H.264/AAC,可能导致部分课程无法播放。
答题模型下拉来自:DSH 已配置模型(listProviders / listModels)与插件内置智谱系列。设置页可用「测试模型」「批量体检」探活;常见失败含额度、凭据、模型下线、余额等(README 表格有对照)。
典型用法¶
先做浏览器内核准备,再进设置页完成登录与选课。
- 打开 DSH → 设置 → 学习通看课
- 点「开始登录」→ 约 10 秒后「刷新二维码」→ App 扫码
- 「读取我的课程」→ 下拉选课(自动带上
clazzid/enc) - 选答题方式:
manual或ai(AI 需选quizModel) - 「保存配置」→「开始看课」
持久化配置在 $DSH_HOME/cx-learn/config.json,主要字段如下:
| 字段 | 默认值 | 说明 |
|---|---|---|
courseUrl |
'' |
课程学习页 URL |
mode |
continue_chapters |
连播 / 只跑当前章 |
maxSections |
5 |
单轮最多节数 |
videoDoneAt |
98.5% |
判定看完的阈值 |
browserId / chromiumPath |
'' |
内核选择或自定义路径 |
headless |
true |
是否无头 |
quizMode |
manual |
ai / manual |
quizModel |
'' |
答题模型 id |
HTTP 接口前缀为 /api/cx-learn,例如 GET /status、POST /start、POST /stop、GET /courses、GET /qr 等;完整列表见 README。
脱离 DSH 时,引擎可独立运行或 --serve-mcp 暴露 cx_learn、cx_login 工具(见 README「脱离插件独立运行」)。
适用场景与注意¶
适合已在 DSH 部署环境中、需要把学习通看课做成可启停任务、并复用现有 LLM 配置的场景。不适合期望绕过平台人机验证或改写服务端进度的用法——插件设计明确拒绝后者。
社区目录 skillhub.cn 插件页 与 GitHub 为独立信息源,与 DeepSeek / 幻方无官方从属关系;安装与使用责任由使用者自行承担。
链接¶
- 目录页:https://www.skillhub.cn/plugins/forgotfish/dsh-cx-learn
- 源码与文档:https://github.com/forgotfish/dsh-cx-learn