前言¶
在 DSH(DeepSeek Harness)会话中,模型经常需要访问密码、用户名或 TOTP 动态码。与其在每次对话中都让用户手动输入,不如让模型先在本地凭据库中检索。jindom/dsh-bitwarden 插件通过在 DSH 会话中内置 Bitwarden 凭据库及管理工具,实现了这一需求。
功能¶
该插件为 DSH 提供了以下能力:
- 设置卡片:在 DSH 插件配置中提供图形化表单,用于配置连接参数。
- 管理工具:
bitwarden_find:检索条目列表(不含密码)。bitwarden_get:获取特定条目的密码、用户名、TOTP 或自定义字段。bitwarden_status:检查配置状态、连通性及解锁状态。
- 系统提示词注入:在全局注入一段引导,要求模型在需要任何账号、密码、API key 时,优先自查凭据库。
- 配置表单:在 DSH 设置界面中渲染配置项,支持主密码与 API 密钥的加密存储。
配置¶
配置支持三种方式,优先级从高到低:用户设置(GUI) > 插件组合配置 > 环境变量 > 默认值。
1. DSH 设置界面(推荐)¶
进入 设置 → 插件 → 插件配置 → Bitwarden / Vaultwarden 凭据库,使用插件提供的卡片进行配置。主密码与 API 密钥为只写字段,保存后不会回传明文。
| 字段 | 说明 |
|---|---|
serverUrl |
服务器地址,默认 https://bitwarden.jindom.cc。 |
email |
登录邮箱。必须与账号一致,它是 KDF 的盐值。 |
masterPassword |
主密码(secret)。用于派生主密钥,仅存在内存。 |
apiKeyClientId |
可选。Bitwarden 网页端 → 账户设置 → 安全 → 密钥 的 client_id。填入后可绕过两步验证。 |
apiKeyClientSecret |
可选。对应的 client_secret(secret)。 |
cacheMinutes |
解锁后的内存缓存时长,默认 30 分钟。 |
2. 环境变量¶
支持以下环境变量名(也支持去掉 DSH_ 前缀的写法):
DSH_BITWARDEN_SERVERDSH_BITWARDEN_EMAILDSH_BITWARDEN_MASTER_PASSWORDDSH_BITWARDEN_CLIENT_IDDSH_BITWARDEN_CLIENT_SECRET
3. 组合配置¶
在 profile 的 cordis 配置中,给插件传入同名字段,作为 settings 的 base 层。
用法¶
模型侧调用工具时使用 JSON 格式。bitwarden_get 的 field 参数支持 all(默认)、password、username、totp、notes、fields。
检索条目¶
bitwarden_find { "query": "github jindom" }
返回条目列表(id/名称/用户名/网址),不含密码。
获取凭据¶
bitwarden_get { "id": "...", "field": "password" }
获取 TOTP¶
bitwarden_get { "name": "GitHub 工作账号", "field": "totp" }
返回当前 6/8 位动态码。
检查状态¶
bitwarden_status { "refresh": true }
丢缓存重新登录同步并报告状态。
安全说明¶
- 数据存储:主密码、用户密钥及解密后的条目仅存在内存,不写盘、不打日志。插件只持久化用户填写的配置。
- 凭证流转:工具返回的明文凭据会进入会话上下文。提示词要求模型不要回显或写入文件。如需更严格,可只用
field: "password"进行窄查询。 - 证书信任:服务器证书必须受信任(本机 Node 的 CA 策略)。自签证书需替换为受信任证书。
装配方式¶
本插件以 profile bundle 的方式装配。在 package.json 中配置 dsh.bundle.patch 和 cordis.patch.yml 的 insert 条目,并在 profile 的 bundles 中列出包名。
注意:同一插件只能有一条装配路径。如果已经通过 bundle 装配,不要再使用注入器的
dev_inject_plugin运行,否则client-modules会在启动期因组合错误拒绝启动。热更代码请使用dev_reload_package。
依赖说明¶
- Argon2id KDF:插件默认支持 Argon2id。如果服务器使用该算法且未安装可选依赖,插件会报错。可在服务器端将 KDF 改为 PBKDF2-SHA256,或安装
hash-wasm(npm install hash-wasm)。
项目地址:
* 生态目录:https://www.skillhub.cn/plugins/Jindom/dsh-bitwarden
* GitHub:https://github.com/Jindom/dsh-bitwarden