前言¶
在 DeepSeek Harness(DSH)里做模拟面试,常见做法是把面试官人设、考核点、题库和判分文案写死在插件代码里。想换岗位、换风格就要改仓库或 fork 一份。维护者 tomorrozy 在 dsh-coach-plugins 里做过四个面向电控岗的固定老师(硬件评审 / 排错 / 测试 / 安全成本),后来把能力抽到本插件:一套通用面试引擎 + 左侧栏控制台 + 定制向导,老师是谁由 teacher profile(JSON + Markdown 配置)定义,代码不再承载具体人设。
下面介绍插件定位、架构、安装方式与两条定制路径,事实以 GitHub README 为准。社区目录见 skillhub.cn 插件页;DSH 生态主张「一切皆插件」,该目录为独立站点,与 DeepSeek / 幻方无官方从属关系。当前版本在 package.json 中为 0.1.0,许可证 MIT。
这是什么¶
dsh-generic-interview-teacher 是 DSH 工作流类插件:profile 驱动的面试引擎 + 左侧栏「面试教练」面板。用户可创建多个 profile、在面板中切换,每个老师的面试进度彼此独立。
分工原则(README 原述):面板负责「记住」和「展示」,模型扮演的老师负责「问」和「判」,profile 负责「定义老师是谁」。
架构与数据流¶
会话里模型按当前激活的 profile 出题、追问、判分;人设由 skill 模板与 profile 动态组装。引擎通过 interview_* / teacher_* 工具与通用逻辑(lib/index.js)协作:profile 装载与校验、多老师切换、状态机、原子落盘、复盘文案、按 profile 规则做工程扫描。浏览器侧 lib/client.js 经 POST /plugins/dsh-generic-interview-teacher/rpc 提供老师切换器、考核点进度、计时、提示/答案与复盘展示。
数据默认落在 <DSH_HOME>/interview-teacher/(<DSH_HOME> 默认为 ~/.dsh,可用环境变量覆盖):
| 内容 | 位置 |
|---|---|
| 用户定制老师 | profiles/<id>/ |
| 当前激活老师 | active.json |
| 各老师进度 | state-<id>.json |
| 复盘报告 | <workspace>/<recordDir>/<prefix>-<id>-<时间>.md |
工程目录可由 cordis.patch.yml 的 config.workspace、profile 的 workspace.default 或面板「切换工程目录」指定。
核心能力¶
Profile 可配置项¶
一个 profile 可定制:
- 人设:身份、语气、考什么 / 不考什么、开场白
- 考核点:编号、分组、必考/选考、建议用时(可内联或同目录
checklist.json) - 题库:题干、追问、提示、参考答案、风险点;缺题时可按模板合成(可内联或
question-bank.json) - 流程:面试模式、追问层数、时间预算、用户命令
- 判分:档位文案、待加强折算、覆盖率门槛、复盘总结语
- 扫描:文件后缀 + 正则,从工程提取证据(不做语义分析,规则质量取决于 profile)
- 落盘:复盘目录与文件名前缀
字段契约见仓库 docs/PROFILE.md;空白模板为 templates/teacher.template.json。
内置示例¶
profiles/example-hardware/ 为原「电控硬件面试老师」的完整转制(RoboMaster 硬件评审人设、H01–H20 考核点、20 题题库、STM32 扫描规则)。安装后可直接练习,也可复制后作为定制起点。
定制向导与工具¶
会话内可说「定制面试老师」:interview-teacher-customizer skill 引导约 6 轮问题(岗位、面试官身份、考核维度、追问方式、判分严格度、个性化细节),起草 profile 并经 teacher_create_profile 写入 profiles/<id>/。说「开始面试」即可训练;面板可随时切换老师。
安装与启用¶
前置:DeepSeek Harness(桌面端或 Web 端)。仅运行仓库自测脚本时需要 Node.js 18+。
官方 README 给出的安装方式是通过仓库内 PowerShell 脚本(幂等:备份 profile 的 package.json、登记 link: 依赖与 dsh.profile.bundles、建立 node_modules junction)。装毕需重启 DSH,左侧栏应出现「面试教练」。
# 装进桌面客户端 profile
powershell -ExecutionPolicy Bypass -File .\scripts\install.ps1 -Profile desktop
# 装进 Web profile
powershell -ExecutionPolicy Bypass -File .\scripts\install.ps1 -Profile web
卸载(README 说明会保留所有 profile、状态与复盘):
powershell -ExecutionPolicy Bypass -File .\scripts\uninstall.ps1 -Profile desktop
插件在 DSH 进程权限下运行;安装前建议自行查阅源码与 MIT 许可证,确认符合你的环境策略。README 未提供 dsh plugin add github:... 类一行命令,本文不臆造安装指令。
典型用法¶
路线 A:会话内向导(推荐)¶
- 完成安装并重启 DSH。
- 在会话中说:定制面试老师,按向导确认 profile。
- 说 开始面试,在左侧面板查看进度;需要时说「切换到
<id>」换老师。
路线 B:手改配置文件¶
- 将
templates/teacher.template.json复制到<DSH_HOME>/interview-teacher/profiles/<你的id>/teacher.json。 - 按
docs/PROFILE.md填写;按需添加同目录的checklist.json、question-bank.json。 - 在面板刷新或会话中说「切换到
<id>」。
离线自测(开发者)¶
不启动 DSH 时可在克隆后的插件目录执行(临时 DSH_HOME + 假 cordis ctx):
node scripts/selftest.mjs
覆盖 profile 装载、状态机与计分、缺题合成、复盘、skill 组装、RPC(含新建老师与进度隔离)、扫描与落盘等。
适用场景与边界¶
适合:需要在 DSH 里反复模拟技术面试、且希望按岗位/风格维护多套老师配置的智能体开发者或自学者;已从 dsh-coach-plugins 迁出、希望统一引擎的用户。
需注意(README「已知边界」):
- 面板不自动判分:通过 / 待加强 / 跳过由模型扮演老师或用户写入。
- 工程扫描为正则证据提取,非语义理解。
- 作者在自有 DSH 版本与 Node 18/20/24 下验证;换宿主版本建议先跑
node scripts/selftest.mjs。
结尾¶
dsh-generic-interview-teacher 把面试老师从代码里抽到 profile,用同一套引擎支撑多老师、独立进度与可复现的复盘落盘。若要扩展或二次开发,可从 lib/index.js、skill/TEACHER.md 与 docs/PROFILE.md 入手。