DeepSeek Harness 插件

dsh-credential-handoff

Conversation-local credential handoff that writes through the DSH credential service without returning the secret to model context.(英文原文)

跳到安装方式

来源信息

GitHub 仓库
xiaohj233/dsh-credential-handoff
最近更新
2026年8月15日
分类
安全与权限
GitHub stars
2
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/xiaohj233/dsh-credential-handoff
插件名:dsh-credential-handoff
作者:xiaohj233

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh.md来源说明 · 只读预览
README 语言

dsh-credential-handoff

English | 中文

状态:功能插件,已在 DeepSeek Harness 0.1.0-rc.6 上测试。

dsh-credential-handoff 让 agent 向用户索要一个指定名称的凭据,而无须把秘密放进模型上下文。浏览器会弹出会话局部的密码对话框,把值写入 DSH 的凭据服务,最后只向工具调用返回固定的状态元数据。

问题

agent 能发现某个凭据缺失,但让用户把密钥粘进普通聊天,密钥就会落进对话记录和模型上下文。本插件为这个时刻提供一条只写的交接路径。

行为

request_credential 工具接受一个凭据引用(如 TAVILY_API_KEY)、可选的标签和原因。每个会话同一时刻只允许一个待处理的请求;对话框十分钟后过期。工具结果只报告该引用,以及它是新建的还是替换的。

HTTPS 下允许提交凭据;明文 HTTP 下只对精确的回环主机(localhost127.0.0.1 和 IPv6 回环)放行。非回环的明文 HTTP 提交,界面控件和提交处理都会拦下。

非目标

本包不是保险库、加密提供者、凭据查看器,也不为子进程注入凭据,更不是 DSH 凭据 provider 的替代品。它无法保护被攻陷的浏览器、宿主进程或 DSH 凭据后端。

机制

  • Host:注册 request_credential,等待一个带标签的 userQuestions 请求。
  • Client:只处理这个带标签的问题,直接调用 credentials.set
  • 结果:用固定文本回答待处理的问题,返回不含值的元数据。

秘密不会出现在本插件产生的问题回答、工具结果、常规日志或会话事件负载里。

兼容性

已在 DeepSeek Harness 0.1.0-rc.6、Node.js ^22.19.0 || >=24、pnpm >=10 上测试。DSH 仍是发布候选版本,后续版本可能改动 question、credential 或 client-slot 的约定。

安装

dsh plugin --profile web add "github:xiaohj233/dsh-credential-handoff#v0.1.0"

安装后重启 Web profile。

配置

无需任何插件设置,模型直接调用:

{"ref":"TAVILY_API_KEY","label":"Tavily API key","reason":"Required for Tavily search"}

凭据引用采用 shell 风格命名:以字母或下划线开头,后面跟字母、数字或下划线。

卸载

dsh plugin --profile web remove dsh-credential-handoff

移除插件会一并移除工具和对话框,但不会删除 DSH 凭据 provider 里已存好的凭据。

安全

不要把 DSH Web 控制面暴露给不可信网络。拦下明文非回环提交,只保证本插件不会经由这条通道把秘密发出去,并不会给 DSH 加上认证;配置的凭据 provider 自身的存储特性需要另行审查。

测试

npm test
npm run check:syntax
npm run scan:secrets -- synthetic-test-value lib/index.js lib/client.js test/validate.test.js
npm pack --dry-run

测试覆盖:引用校验、秘密形态处理、传输分类、问题/结果映射和包语法。

局限性与上游现状

DSH 已提供 resolvedescribesetunset 凭据服务,本插件只是补了一个会话局部的交接 UI 和模型工具,不会把凭据值读回浏览器或模型。

rc.6 的通用问题 UI 总会提供一个 Other 文本答案;若客户端的接管 bundle 加载失败,回退问题会提醒用户不要粘贴秘密、直接取消,但宿主无法去掉那个通用字段。直接客户端也可以绕过本插件调用 DSH 自己的凭据 API;更广的 Web 控制面的传输与认证仍是上游的职责。

License

MIT。详见 LICENSE