DeepSeek Harness (DSH) 的核心设计理念是「一切皆插件」。要接入 GitHub Copilot 作为模型提供方,开发者需要处理 OAuth 认证流程,并注册对应的模型路由。该插件提供了官方接口的封装,通过设备码流程完成登录,并将模型路由注册到 DSH 环境中。
插件简介¶
该插件由用户 FMDD61 维护,分类为模型提供方(model-provider),开源协议为 MIT。它主要解决两个问题:
1. 将 GitHub Copilot 的认证流程接入 DSH。
2. 注册一个名为 github-copilot 的 LLM 路由,该路由由 pi-ai 的 Copilot 模型目录提供支持。
安装与启用¶
插件通过 NPM 包发布,无需克隆源码即可安装。安装后需重启 dsh web 服务以加载配置。
dsh plugin --profile web add dsh-oauth-copilot
安装完成后,dsh web 进程会加载 dsh.bundle.patch 中的 llm-github-copilot 路由配置,并激活 authorization 服务入口。
认证与状态检查¶
登录是纯终端操作,不涉及 LLM 提示注入风险。CLI 工具提供登录、状态查询、刷新令牌和登出功能。
- 登录:运行以下命令启动设备码流程,并在浏览器中授权。
npx -y dsh-oauth-copilot login
*(也可全局安装 `npm install -g dsh-oauth-copilot` 后直接运行 `dsh-copilot-auth login`)*
- 状态查询:检查授权有效期及可用模型列表。
dsh-copilot-auth status
- 刷新模型列表:重新获取账户允许使用的模型列表并更新至授权记录。
dsh-copilot-auth refresh
- 登出:移除本地存储的授权凭据。
模型路由与工具¶
插件注册了 github-copilot 路由。默认情况下,模型工具(如登录、登出)是关闭的,需要在路由配置中显式开启。
启用模型工具后,模型可以直接调用 github_copilot_login、github_copilot_status 和 github_copilot_logout 等工具。
在路由配置文件中,添加以下内容:
- id: llm-github-copilot
config:
enableModelTools: true
注意事项¶
- 版本依赖:该插件绑定在
dsh 0.1.5-rc.1和pi-ai 0.85.1的包线上,未来升级 DSH 需同步调整版本范围。 - 不支持 GitHub Enterprise:仅支持
github.com。出于安全考虑,插件拒绝处理企业版域名,以防止令牌刷新被重定向至攻击服务器。 - 文件安全:凭据文件以原子写入方式存储,权限设置为
0600,且存储位置位于设置/描述/环境目录之外,CLI 输出时会隐藏令牌与错误详情。 - 并发限制:CLI 命令不应与正在写入凭据文件的其他进程并发运行。
结语¶
该插件通过官方接口实现了 GitHub Copilot 在 DSH 中的接入,适合需要在 DeepSeek Harness 环境中直接使用 Copilot 模型的开发者。更多技术细节与源码可参考 GitHub 仓库。