前言¶
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 或幻方研究院無官方隸屬關係。開發者在使用前應檢查源碼以確認符合項目要求。