用 Cursor 模型接入 DeepSeek Harness

前言

DeepSeek Harness(DSH)採用「一切皆插件」的理念,通過插件擴展能力。在本地開發或使用 DeepSeek Desktop 時,如果希望用 Cursor 的模型作爲 LLM 提供方,就需要一個把 Cursor 接入 DSH 的插件。cursor-to-dsh 正是爲此設計,它通過官方 @cursor/sdk 把 Cursor 註冊爲 DSH 的 cursor 提供方,讓 DSH 繼續管理 agent 循環、工具和權限,Cursor 只作爲模型層。

這是什麼

cursor-to-dsh 是 DeepSeek Harness 的一個插件,由維護者 lukeinx 開發,分類爲「模型推理」。它把 Cursor 的模型能力以 cursor 提供方的形式掛載到 DSH,每個 DSH 會話對應一個 Cursor agent。插件通過 DSH 的 ctx.llm.registerAdapter 註冊,不改動宿主代碼,也不依賴 Cursor IDE 的登錄態。插件使用官方 @cursor/sdk 和你自己的 Cursor API Key,對 Cursor 私有協議進行逆向,也不讀取登錄態。

核心功能

  • 官方接口:只用 Cursor 官方 @cursor/sdk 和你的 API Key,通過 DSH 的 ctx.llm.registerAdapter 註冊,不改宿主代碼。
  • 工具歸 DSH:Cursor 內置工具全部關閉,讀寫文件、執行命令都由 DSH 執行,沿用 DSH 的沙箱和審批。
  • 緩存複用:每個 DSH 會話對應一個 Cursor agent,只發送新增內容;工具結果回填到同一個 run 繼續。
  • 模型與用量:模型和推理強度來自 Cursor 實時目錄,始終 fast=false;按 DSH 互不重疊的用量桶上報,不誤報超限。
  • 圖片:用戶消息和工具結果裏的圖片轉給 Cursor。

安裝與啓用

前置條件:DSH 0.2.0-rc.2 及以上(DeepSeek Desktop 內置 0.2.1-rc.2)。

  • CLI 或其他 profile:
dsh plugin --profile <名稱> add cursor-to-dsh
  • DeepSeek Desktop:

desktop profile 由 Desktop 獨佔,dsh plugin add 會報 managed exclusively by the Electron application,需要手動修改 ~/.dsh/profiles/desktop/package.json:

  1. 完全退出 DeepSeek Harness Desktop。
  2. 在 ~/.dsh/profiles/desktop/package.json 裏追加兩處,已有條目不動:
{
  "dependencies": { "cursor-to-dsh": "^0.1.1" },
  "dsh": { "profile": { "bundles": ["…已有條目…", "cursor-to-dsh"] } }
}
  1. 用 Desktop 自帶的 pnpm 安裝,然後啓動:
cd ~/.dsh/profiles/desktop
node "/Applications/DeepSeek Harness.app/Contents/Resources/runtime/primary-runtime/dependencies/pnpm/bin/pnpm.mjs" install
open -a "DeepSeek Harness"

升級:改版本號後重復第 3 步。

配置 API Key

在 cursor.com/dashboard → API Keys → New API Key 創建(個人 key 或 service account key,不支持 Team Admin key)。

Desktop 的「模型」設置頁不能給第三方插件填 key,推薦寫進 ~/.dsh/.credentials.yaml(權限 0600,熱加載);文件已存在時只在 refs: 下加一行:

version: 1
refs:
  CURSOR_API_KEY: <你的 key>

查找順序:憑據文件 → 環境變量 CURSOR_API_KEY → 插件配置 apiKey。

驗證與典型用法

在「設置 → 模型」裏出現 Cursor,模型選擇裏有 cursor 下的模型即成功。也可以把 agent-default-model 設爲 provider: cursor。

典型用法示例(命令行):

DSH="/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh"
CURSOR_API_KEY=... DSH_CURSOR_DEBUG=1 "$DSH" --profile headless --json "Read README.md and summarize it in one line"

調試日誌裏工具結果回填那次應顯示 plan=results,多輪對話的第二輪應顯示 plan=send。

配置項與環境變量

默認不用配。需要時在 profile 的 cordis.patch.yml 覆蓋插件這一行(patch 會替換整個 config,要寫全):

- id: llm-cursor
  name: cursor-to-dsh
  config:
    apiKeyEnv: CURSOR_API_KEY
    context: min
配置項 默認值 環境變量覆蓋 含義
apiKeyEnv CURSOR_API_KEY 存 key 的憑據名 / 環境變量名
apiKey 無 明文 key,不推薦
context min DSH_CURSOR_CONTEXT 上下文檔位:min、max 或如 300k;被拒時自動降檔
cwd 會話工作目錄 DSH_CURSOR_CWD Cursor agent 的工作目錄

其他環境變量:

  • DSH_CURSOR_DEBUG=1:輸出調試日誌到 stderr。
  • DSH_CURSOR_PREWARM=0:關閉預熱(插件加載後在後臺預建一次 agent,省掉 Cursor SDK 首次約 8 秒的初始化)。

已知限制

  • 文件附件、已卸載(offloaded)或讀不出的圖片不轉給 Cursor,只留佔位說明;重放歷史時只帶最後一條用戶消息的圖片。
  • 工具交接期間不報用量,上下文用量在 run 結束時更新。
  • 不支持 stop(報 UNSUPPORTED_OPTION);temperature、maxTokens 被忽略。

開發與調試

本地開發時,先安裝依賴並構建:

npm install && npm run build   # DSH 加載的是 lib/,改源碼後要重新 build 並重啓 DSH
npm test                       # 假 Cursor agent 的單測
npm run check                  # 類型檢查
npm run check:public           # 推 GitHub / 發 npm 前:不含內網鏈接和本機路徑
CURSOR_API_KEY=... node --experimental-strip-types scripts/live.ts [模型 id]   # 真實 Cursor 實測

本地源碼接入 Desktop:安裝第 2 步的依賴寫成 "cursor-to-dsh": "link:<倉庫絕對路徑>"。

適用場景與注意

適合希望在 DSH 或 DeepSeek Desktop 中使用 Cursor 模型,並希望由 DSH 統一管理工具和權限的用戶。插件以當前 dsh 進程的權限運行,安裝前應檢查源碼與許可證(MIT)。目錄頁與 GitHub 倉庫提供更多信息。

短結尾

通過 cursor-to-dsh,你可以把 Cursor 的模型接入 DeepSeek Harness,同時保留 DSH 對 agent 循環、工具和權限的控制。目錄頁:https://www.skillhub.cn/plugins/lukeinx/cursor-to-dsh;GitHub:https://github.com/lukeinx/cursor-to-dsh。

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

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

小夜