dsh-bit-login:在 DSH 里查北理工校园网与教务

前言

在北京理工大学校内用 DeepSeek Harness(DSH)做助手时,模型往往不知道你是否已连上深澜网关、流量还剩多少,也无法直接查成绩、课表或空闲教室。手工打开门户或教务系统再复制信息,和「对话里一问就有」的体验之间差一截。社区插件 dsh-bit-login(维护者 yuanstarstar)把 DSH 接到校内 Srun 网关与 BIT101 社区运维的 BIT-Login 网关,通过工具、设置面板和可选的上下文注入,把联网状态与学校系统查询放进同一套 Harness 工作流。

这是什么

dsh-bit-login 是 DSH 的 联网工具 类插件(当前 package 版本 1.3.0,MIT 许可证)。它主要做两件事:

  1. 校园网(深澜 Srun,http://10.0.0.55):在线状态、流量与余额、登录 / 登出、一键排障,并可将实时网络状态注入模型上下文。
  2. 学校系统(成绩 / 课表 / 学籍 / 空闲教室 / 考试):经 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 为准。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜