前言¶
在 DeepSeek Harness (DSH) 中,将 API Key、密码等敏感凭据直接写入提示词存在泄露风险。dsh-accounts 是一个 DSH 插件,旨在解决凭据管理问题。它将凭据存储与 AI 执行环境桥接,让 AI 在不将值暴露给模型上下文的前提下,使用凭据执行任务。
核心功能¶
dsh-accounts 提供以下核心能力:
* 浏览器代填登录表单:通过 account_fill 工具,将账号值直接注入内置浏览器的输入框。
* env 注入运行本地 CLI:通过 credential_run 工具,将 API key/token 以环境变量注入子进程。
* 账号列表查询:在 DSH 对话中,让 AI 调用 account_list 列出账号元数据。
* 网页管理界面:提供 /dsh-accounts/ 路径的 Web 管理页,用于增删改查账号。
安装与启用¶
安装前需确保 DSH 版本 >= 0.1.1-rc.1。
使用官方插件命令安装:
dsh plugin --profile web add github:yangwuan55/dsh-accounts
安装后,重启 DSH web 服务即可生效。
典型用法¶
插件提供了三个工具供模型调用:
-
account_fill
用于浏览器代填。需传入{ account, mapping: [{ selector, field }], submit? }参数。其中field可选值包括username、password、totp或自定义键。该工具会返回脱敏后的填充结果与是否需要人工处理的标记。 -
credential_run
用于运行本地 CLI。需传入{ account, command, args?, envKeys?, timeoutMs? }参数。工具会将账号env映射中声明的键以环境变量注入子进程。返回值包含退出码、脱敏后的 stdout/stderr。如果未声明env或未指定envKeys,会报错。 -
account_list
用于查询账号列表。无参数,返回包含账号 ID、Kind、Label、HasTotp、Domains 的元数据列表。
安全与协议¶
插件严格遵循安全隔离原则:
* 内存流转:凭据值仅在插件进程内存中流转,模型与对话永远看不到值。
* 协议校验:payload 的 kind 必填,且为 account、env、secret 三选一。
* 域名白名单:domains 字段用于限制 account_fill 的代填范围,需在账号记录中显式声明。
* 输出脱敏:credential_run 的标准输出和错误输出在返回前会被替换为 [REDACTED]。
管理界面¶
插件提供了一个网页管理界面,访问地址为 http://127.0.0.1:3080/dsh-accounts/。
该页面用于管理账号,支持查看元数据、新建/编辑/删除账号。密码和 Token 输入框默认为密文,支持一键明文查看。页面具备浏览器信任校验(Host Fence、Origin 同源校验),确保操作仅限本机发起。
结尾¶
dsh-accounts 通过插件化方式解决了 DSH 环境下的凭据泄露风险,将值隔离在模型上下文之外。通过命令安装即可快速启用。
GitHub:https://github.com/yangwuan55/dsh-accounts
Catalog:https://www.skillhub.cn/plugins/yangwuan55/dsh-accounts