dsh-provider-copilot:將 GitHub Copilot 接入 DeepSeek Harness

前言

DeepSeek Harness (DSH) 採用插件化架構,允許通過插件擴展模型提供商。開發者通常需要爲不同的模型接口編寫適配器。dsh-provider-copilot 插件解決了這一痛點,它將 GitHub Copilot 訂閱轉換爲 DSH 原生的 LLM 提供商,使你能在 DSH 的統一模型選擇器中使用 Copilot 模型,無需修改應用代碼。

插件概覽

dsh-provider-copilot 是一個將 GitHub Copilot 訂閱橋接到 DSH 的插件。由 youngrock-labs 維護,採用 MIT 許可證。它作爲一個 cordis 對象插件,通過 ctx.llm.registerAdapter 註冊路由。

核心功能

該插件提供以下能力:
* 聊天補全(流式):支持流式響應。
* 模型列表:顯示白名單與遠程模型列表的交集。
* 推理流透傳:支持將 delta.reasoning_content 轉換爲 DSH 的 reasoning 塊,在 UI 中渲染爲可摺疊的“思考”行。
* 管理命令:提供 /copilot login | logout | status 命令。
* 可觀測性:支持 JSONL 格式的日誌記錄,字段採用嚴格白名單。

安裝與啓用

使用 dsh plugin 命令安裝該插件包。安裝後,DSH 會自動發現並註冊“Copilot (GitHub)”模型組,無需修改 DSH 源碼。

# 安裝
dsh plugin --profile <your-profile> add github:youngrock-labs/dsh-provider-copilot

安裝後,重啓 DSH 或重新加載配置文件以激活插件。插件會立即掛載,模型選擇器中會出現“Copilot (GitHub)”分組。

典型用法

1. 命令行交互

插件註冊了三個管理命令:

  • /copilot login
    啓動設備流程,打印驗證 URL 和一次性代碼。授權過程在後臺完成。

  • /copilot status
    顯示當前憑據來源、過期時間、可用模型數量以及 P50/P95 延遲。

  • /copilot logout
    清除緩存、內存和指標數據。

2. 程序化調用 (BYOK)

你可以通過編程方式使用 AuthManager、CopilotClient 和 CopilotProvider。

import { AuthManager, CopilotClient, CopilotProvider } from "dsh-provider-copilot";

const auth = new AuthManager({
    byok: { kind: "github", token: process.env.MY_GITHUB_TOKEN! },
});

const client = new CopilotClient({
    getBearer: async () => {
        const s = await auth.getSession();
        return { token: s.token, endpoints: { api: s.endpoints.api } };
    },
});

const provider = new CopilotProvider({ client });

for await (const chunk of provider.stream({
    model: "gpt-4o-mini",
    messages: [{ role: "user", content: "hi" }],
})) {
    if (chunk.type === "text") process.stdout.write(chunk.text);
}

注意事項與限制

  • 非公開 API:插件使用 api.github.com/copilot_internal/v2/token 進行令牌交換。該接口是非公開且不穩定的,GitHub 可能隨時更改或撤銷該端點。生產環境使用需自行承擔風險。
  • User-Agent 要求:HTTP 請求的 User-Agent 必須以 GitHubCopilot* 開頭。否則,服務器會返回 403 錯誤(看起來像認證錯誤)。
  • 權限範圍:設備流程的權限範圍僅爲 read:user,不會請求倉庫、代碼庫或問題權限。
  • 客戶端 ID:插件內置了官方 VSCode Copilot Chat OAuth client_id (Iv1.b507a08c87ecfe98)。生成的令牌僅用於用戶自己的訂閱。
  • 不支持工具調用:該插件不實現工具或函數調用,這些功能明確不在範圍內。

生態背景

DSH 的核心理念是“一切皆插件”。此插件託管在社區目錄,與 DeepSeek 或幻方研究院無官方隸屬關係。開發者在使用前應檢查源碼以確認符合項目要求。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜