Bundle
dsh-resume-expert
简历专家插件 × DeepSeek Harness 适配层(Phase 1:工具化接入)
- Source
- wmw343
- stars
- 1 stars
- License
- MIT
- Updated
- Updated yesterday
Readme
# dsh-resume-expert · 简历专家插件(DSH 版)
引导式简历生成插件:用户说一句"帮我做份简历",插件先诊断、再一轮一轮引导补齐,最终产出**可直接投递的单页 A4 PDF**。
已在两个宿主实跑验证:自研 Demo 宿主 + **DeepSeek Harness 0.1.5**。471 项自动化验收。
## 安装
需要 DeepSeek Harness ≥ 0.1.5 与 Node.js ≥ 22。
```bash
dsh plugin --profile web add github:wmw343/dsh-resume-expert
```
设置环境变量 `DEEPSEEK_API_KEY`(模型调用由插件适配层直连 DeepSeek API,密钥不出宿主环境):
```powershell
# 写入 DSH 主目录的 .env
Add-Content "$env:USERPROFILE\.dsh\.env" "DEEPSEEK_API_KEY=sk-你的Key"
```
启动 `dsh web`,在会话里直接说 **"帮我做一份简历,我是××专业应届生,会××和××"**。
会话默认持久化到 `~/.dsh/resume-expert-store.json`——重启 `dsh web` 不丢草稿;可用环境变量 `RESUME_EXPERT_STORE` 指定存储路径。
## 工作方式
用户在对话里自然表达,Agent 自主调用 6 个工具完成四阶段:
| 工具 | 阶段 | 作用 |
|---|---|---|
| `resume_intake` | 首轮诊断 | 一句模糊需求 → 第一版文字稿 + 待补充清单 + 追问 |
| `resume_refine` | 迭代补全 | 多轮吸收用户补充(姓名/教育/实习/项目/技能) |
| `resume_compose` | 成稿 | 整合成可直接投递的定稿(删除占位、只留有信息量的内容) |
| `resume_export` | 导出 | A4 排版直出 PDF(本机无 Chrome 时降级为可打印 HTML) |
| `resume_set_photo` | 证件照 | 本机图片 → 简历右上角 |
| `resume_tailor` | JD 定制 | 按目标岗位 JD 重写简历 |
简历质量规则内建:量化句式(手段在前、结果在后,"从 A 到 B"式表达)、关键数字加粗、技能分组、关键指标置顶(≤3 条)、城市分主次、手机号 3-4-4。
## 架构
```
DSH Agent ──工具调用──► 适配层(本包 src/adapter.ts)
│ 实现宿主契约:llm / auth / storage / telemetry / config / logger (+render)
▼
简历专家插件核心(src/plugin/,框架无关、零依赖)
│ llm 调用直连 DeepSeek API(OpenAI 兼容)
▼
A4 HTML ──Chrome CDP──► PDF
```
三条边界(可直接写进安全评审):
- 插件**不持密钥**:模型凭证在适配层(宿主侧),接入方可对接自己的模型网关
- 插件**不落库、不外联**:会话状态经宿主 storage 存取
- 出入参全部可 JSON 序列化:为 iframe / 子进程隔离留路
## 验收
插件核心 **471 项自动化验收**:内核 204(类型/渲染/合并/边界)+ 真实模型 70 + 端到端 37 + 真实浏览器 72 + 集成 58 + 启动器 30。导出 PDF 经 pypdf 实体解析验收(页数/纸张/结构/无占位残留)。
本适配层自带一套离线自测(**不需要网络、不需要启动 dsh**):
```bash
npm install && npm run build # 首次:装依赖 + 编译
npm test # 21 项:会话持久化的全部不变量
```
`npm test` 覆盖的是最容易被忽视也最要紧的一条——**跨进程存活**:它会真的起子进程,
模拟 `dsh web` 重启,验证上一进程写入的草稿能被下一进程读到并继续修改。
另有 TTL、原子写(不留 `.tmp`)、损坏自愈(改名留档而非崩掉)、防抖窗口内不丢数据。
## License
MIT —— 见 [LICENSE](./LICENSE)。
Install
dsh plugin --profile web add github:wmw343/dsh-resume-expert
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-resume-expert from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.