前言¶
在北京理工大学校内用 DeepSeek Harness(DSH)做助手时,模型往往不知道你是否已连上深澜网关、流量还剩多少,也无法直接查成绩、课表或空闲教室。手工打开门户或教务系统再复制信息,和「对话里一问就有」的体验之间差一截。社区插件 dsh-bit-login(维护者 yuanstarstar)把 DSH 接到校内 Srun 网关与 BIT101 社区运维的 BIT-Login 网关,通过工具、设置面板和可选的上下文注入,把联网状态与学校系统查询放进同一套 Harness 工作流。
这是什么¶
dsh-bit-login 是 DSH 的 联网工具 类插件(当前 package 版本 1.3.0,MIT 许可证)。它主要做两件事:
- 校园网(深澜 Srun,
http://10.0.0.55):在线状态、流量与余额、登录 / 登出、一键排障,并可将实时网络状态注入模型上下文。 - 学校系统(成绩 / 课表 / 学籍 / 空闲教室 / 考试):经 BIT-Login 网关完成统一身份认证,查询本科成绩、课表、学籍与学分进度,导出可信电子成绩单与课表日历(
.ics),并查询教学中心空闲教室与考试安排(校内直连优先,失败时自动改走 webvpn)。
设置页提供 「BIT 校园服务」 实时面板(约 15 秒轮询),两套能力均可在此操作。插件目录与源码:SkillHub 目录页、GitHub 仓库。
核心功能¶
下面按 README 中的能力表归纳;模型侧对应工具名与面板入口一致。
校园网(Srun)¶
| 能力 | 工具名 | 面板 |
|---|---|---|
| 在线状态 / 已用流量 / 在线时长 / 余额 | bit_login_status |
顶部卡片 |
登录(账号、密码、运营商、ac_id) |
bit_login_login |
登录表单 |
| 登出 | bit_login_logout |
「登出」 |
一键排障(网关可达性、ac_id 探测、challenge、在线状态、门户劫持) |
bit_login_diagnose |
「一键诊断」 |
学校系统(BIT-Login 网关)¶
| 能力 | 工具名 | 面板 |
|---|---|---|
| 成绩(本科教务) | bit_school_scores |
「查询成绩」 |
| 课表(教学中心) | bit_school_schedule |
「查询课表」 |
| 学籍与学分进度 | bit_school_profile |
「学籍 / 学分」 |
| 可信电子成绩单 | bit_school_transcript |
「成绩单」 |
课表日历 .ics(约 30 分钟有效) |
bit_school_ics |
「课表日历」 |
| 空闲教室(双通道) | bit_school_classroom |
「查询空闲教室」 |
| 考试安排(双通道) | bit_school_exam |
「考试安排」 |
| 统一身份认证登录 / 验证码 / 会话 / 登出 | bit_school_login、bit_school_verify、bit_school_status、bit_school_logout |
面板下半部分 |
宿主集成¶
- 登录态保活:后台定时器在会话临近过期时静默续期;面板可提示登录态会续到关闭 DSH(依赖
rememberCredentials等配置)。 - 上下文注入:通过
systemPrompt.section与systemPrompt.context写入实时状态;promptInjection可设为auto/always/off。 - 实现要点:纯 Node、零第三方依赖;
srun.js独立封装深澜协议;school.js对接 BIT101 REST(POST /api/auth/start+X-Challenge-Token轮询 +Authorization: Bearer);jxzxehall.js处理教学中心直连与 webvpn 回退。
安装与启用¶
插件以 DSH bundle 形式安装:在本机 DSH profile 中通过 plugin_manager → install_bundle,target 填本插件目录的绝对路径(需先自行取得源码目录,README 未提供 dsh plugin add 一类一键命令):
<你克隆到的路径>\dsh-bit-login
新装 bundle 经 HMR 直接生效;替换已安装的同名包需要重启 DSH 才会加载新的 JS 模块。卸载:plugin_manager → remove_bundle,target 为 dsh-bit-login。
运行环境:Node ≥ 20(与 package.json 中 engines 一致)。
配置¶
在 cordis.patch.yml 的 config: 段修改(patch 层跨 DSH 升级保留)。常用项如下:
| 键 | 默认 | 说明 |
|---|---|---|
gateway |
http://10.0.0.55 |
Srun 网关 |
isp |
'' |
运营商:'' / cmcc / cmct / unicom |
timeoutMs |
6000 |
单次 HTTP 超时 |
refreshSeconds |
60 |
后台状态采集间隔;0 关闭 |
promptInjection |
auto |
上下文注入策略 |
schoolEnabled |
true |
是否启用成绩 / 课表等学校工具 |
schoolBaseUrl |
https://login.bit101.flwfdd.xyz |
BIT101 BIT-Login 网关(第三方) |
rememberCredentials |
true |
统一身份密码仅进程内存,用于静默重登 |
keepAlive |
true |
后台保活 |
完整键名与默认值见仓库 README「配置」一节。
典型用法¶
1. 在设置面板操作¶
打开 DSH 设置 → 「BIT 校园服务」:查看校园网卡片,填写 Srun 登录表单;在学校系统区完成统一身份认证(含短信或图形验证码时配合 bit_school_verify);按需点成绩、课表、空闲教室等按钮。面板路由前缀默认 routePrefix: /dsh-bit-login。
2. 由模型调用工具¶
用户或模型可按次传参,例如校园网登录(密码每次传入,插件不保留 Srun 密码):
bit_login_login({ username, password, ... })
学校系统首次登录:
bit_school_login({ username, password })
需要验证码时继续 bit_school_verify;查询类工具在会话就绪后由插件内部 ensureReady() 处理过期与重登(在 rememberCredentials: true 且已登录过的前提下)。
3. 关闭学校系统或第三方网关¶
不信任第三方网关时,可在配置中设 schoolEnabled: false 整体关闭成绩 / 课表能力;或设 rememberCredentials: false,使会话更接近「一次登录约 30 分钟」、不长期驻留内存凭据。
适用场景与注意¶
适合谁:北理工师生、已在用 DSH 做日常问答或自动化、希望在校内网状态与教务查询与对话同一入口的用户。
权限与安全(使用前请读 README「凭据」「安全边界」):
- 插件以 当前 DSH 进程权限 运行;安装前应自行审阅 源码与 MIT 许可证。
- Srun 网关为 明文 HTTP,密码会出现在局域网报文中,与常见 BIT 登录脚本相同;勿在不可信网络使用。
- 成绩 / 课表经 BIT101 社区第三方网关(非学校官方);统一身份密码经 HTTPS 提交到该网关。默认
rememberCredentials: true时,密码在 进程内存 中保留至登出或关闭 DSH,用于自动重登。 - 插件声明 不写盘、不落日志、不进
storageDomain;工具返回值经sanitize()剔除口令与 token 等字段,避免回灌模型。 - 自 2020-10-09 起校园网账号即统一身份认证账号;自动化使用需自行评估合规风险。
SkillHub(skillhub.cn)是社区插件目录,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本插件是其中面向 BIT 联网与教务的一条链路。
结尾¶
dsh-bit-login 把深澜校园网状态与 BIT 教务查询收进 DSH 的工具与面板,并可选把网络状态写进系统提示,减少在校内反复开门户、拷课表的重复劳动。安装与配置以仓库 README 为准。