clioo/dsh-claude-agent:在 DeepSeek Harness 裏跑你自己的 Claude 登錄

前言

做智能體應用的開發者通常會遇到一個問題:harness 的界面、工具和歷史記錄都做好了,但模型通道還要自己接。接 Claude 有兩條路,一條是自己寫客戶端去讀訂閱憑據,另一條是不做客戶端,直接驅動用戶已經登錄過的 claude 二進制。clioo 維護的 dsh-claude-agent 選了後者。

它給 DeepSeek Harness(以下簡稱 DSH)增加了一個名爲 claude-agent 的模型 provider,實現方式沿用 opencode 自己的 claude-agent provider 設計:通過 Anthropic 官方 Claude Agent SDK 調用用戶本機安裝的 claude 程序。Claude Code 繼續使用自己的認證、客戶端和請求方式,插件只是在外面套上 harness 的 UI、工具和歷史。

這個做法的直接收益是提示緩存命中率。按作者測量,穩定狀態下緩存命中超過 90%,單輪工具調用中多數步驟在 96% 到 100% 之間。

下面介紹這個插件的定位、安裝方式和配置項。

定位:爲什麼不做第三方客戶端

插件的設計前提只有一句話:不要成爲訂閱憑據的第三方客戶端。

具體約束如下:

1、插件不讀取 ~/.claude/.credentials.json,不跑 OAuth 流程,沒有登錄界面。
2、每一個模型請求都由用戶自己安裝並登錄的 claude 程序在用戶機器上以用戶賬號發起。
3、插件不收集、不存儲、不代理、不重放任何內容,只傳遞 SDK 文檔中記錄的選項和環境變量。
4、claude 二進制不做修改,也不禁用任何認證方式;插件反而會清掉會跳過登錄的 CLAUDE_CODE_SIMPLE。
5、命名上遵循 Agent SDK 的品牌規範:產品名是 Claude Agent,不使用 Claude Code 作爲產品名。

依據是 Anthropic 當前的 Legal and compliance 頁面:OAuth token 只用於 Claude Code 和其他原生 Anthropic 應用的常規使用,開發者不得把 Claude.ai 登錄放進自己的應用,也不得替用戶用 Free、Pro、Max、Ultra 計劃憑據轉發請求,或收集、存儲、中間代存憑據與會話 token。同一份文檔明確允許終端用戶用自己的訂閱登錄未經修改的 Claude Code 二進制。插件實現的就是這後一種情況。

付費路徑也因此沒有被強制:訂閱、API key、Bedrock、Vertex、Foundry 或企業網關都可以,因爲插件不決定計費路由。如果要做一個向第三方提供 Claude 的託管產品,應該走 API key 或商業協議,那是另一種情況。

核心功能

以下能力均來自倉庫 README。

1、用自己的登錄使用 Claude 模型:Opus、Sonnet、Haiku,以及 Claude Code 運行時報告出來的顯式模型 id,運行時發現並緩存。
2、harness 工具通過 MCP 暴露:Claude Code 自帶工具被關閉,harness 的工具通過進程內 MCP server 暴露,JSON Schema 原樣發送。
3、工具輪次不丟進程:一個 Claude turn 停在工具邊界,等 harness 返回結果後恢復,而不是重啓進程重來。
4、歷史可恢復:harness 歷史是唯一事實來源,只發送 Claude 還沒看過的消息;Claude 的會話記錄在重啓後恢復。
5、隔離:不使用 Claude Code 的配置文件、hooks、skills、CLAUDE.md、MCP server、auto-memory、auto-compaction、advisor、tool search,也沒有非流式或拒答的回退路徑。
6、用量上報準確:按每次調用上報 token 用量,包含 cache reads 和 cache writes,harness 可以據此顯示真實的緩存命中率。
7、SDK 懶加載:SDK 在首次使用時加載,也可以換成 PATH 中的版本或配置指定的可執行文件。

運行要求

- DeepSeek Harness 0.2.1 或更高版本(該 provider 是 Host bundle)
- 已安裝並登錄的 Claude Code 2.1.248 或更高版本:

先確認本機環境:

claude --version
claude auth login

claude 二進制必須在 PATH 上,或者在插件配置裏顯式指定 executable。插件不會使用 SDK 自己下載的那份二進制,它運行的就是你自己裝的版本,CLI 版本和登錄狀態以你的爲準。

安裝與啓用

在 DeepSeek Harness Desktop 裏打開 Plugin Manager,從目錄頁安裝 bundle。bundle 只插入一行 claude-agent,不會禁用其他任何東西。

對於 Electron 不管理的 profile,使用命令行:

dsh plugin --profile <profile> add /path/to/dsh-claude-agent

替換文件後要重新加載插件或重啓 DSH,Host 纔會加載新的模塊生成結果。

然後在模型選擇器裏選 Claude Agent,或者直接設爲默認模型:

- id: agent-default-model
  config:
    provider: claude-agent
    model: opus          # 或者 sonnet、haiku、claude-opus-5-5 等
    reasoningEffort: high

配置項

插件配置塊如下,未寫的項都有默認值:

- id: claude-agent
  name: 'dsh-claude-agent'
  config:
    # 可選。默認使用 PATH 上的 claude。
    executable: /usr/local/bin/claude
    # 可選。Claude 進程的工作目錄。
    cwd: /home/you/project
    # 可選。輸出上限,對應 CLAUDE_CODE_MAX_OUTPUT_TOKENS。
    maxOutputTokens: 32000
    # 進程在多少分鐘無活動後停止(默認 5)。
    idleMinutes: 5
    # 一個處於等待狀態的工具輪次保留多少分鐘(默認 30)。
    parkedMinutes: 30
    # 連接設置,映射方式與 opencode 完全一致。
    baseURL: https://api.anthropic.com
    apiKey: sk-ant-...
    # authToken、headerTimeout、chunkTimeout、headers、body

連接類配置項與 Claude Code 環境變量的對應關係:

Plugin config Claude Code setting
baseURL ANTHROPIC_BASE_URL
apiKey ANTHROPIC_API_KEY
authToken ANTHROPIC_AUTH_TOKEN
headerTimeout API_TIMEOUT_MS
chunkTimeout CLAUDE_STREAM_IDLE_TIMEOUT_MS
headers ANTHROPIC_CUSTOM_HEADERS
body CLAUDE_CODE_EXTRA_BODY
maxOutputTokens CLAUDE_CODE_MAX_OUTPUT_TOKENS

不顯式配置連接項時,插件沿用當前環境,把決定權交給 claude 的登錄狀態。配置優先級高於 shell 環境。

提示緩存的實際表現

緩存命中率高不是靠調參,而是靠保持前綴穩定。README 裏列了四條機制:

1、每個 harness 會話只用一個長駐 claude 進程,工具輪次停在進程內等待,而非重啓。
2、系統提示、工具列表和連接設置會被哈希,只有其中某一項真正變化時才重啓進程。
3、harness 歷史被打指紋。只追加 Claude 還沒看過的消息;如果歷史本身變了(編輯、撤銷、切換模型),就發送一次 <conversation-checkpoint> 重建,而不是假裝舊前綴依然有效。
4、用量從每個 API 消息上報,不使用 SDK 的整輪彙總值,這樣命中率統計不會失真。

README 記錄了一個真實 turn 的逐步驟數據,模型爲 claude-haiku,Claude Code 2.1.317。完整 28 步的總量是 3,348,680 cached input、161,101 次 cache write、110 個未緩存輸入,整體命中率 95.4%,從第 6 步起穩定在 97% 到 99.8%。這些數字是作者單次會話的測量結果,不同負載下會有差異,但機制本身是可覈查的。

順帶一提,會話日誌裏記錄的 cached input 比逐消息彙總要大,原因是最後一個步驟攜帶了整輪的聚合值。這也是爲什麼要按消息上報而不是按 SDK 彙總。

適用場景與注意

適合的場景:你本人已經用 Claude 訂閱(或 API key、Bedrock、Vertex、Foundry、企業網關)登錄了本地 claude,想在 DSH 的界面、工具鏈和歷史管理下做開發,同時不想把憑據暴露給任何第三方客戶端。README 的完整分析見倉庫裏的 docs/opencode-approach.md。

不適合的場景:要做一個向第三方提供 Claude 能力的託管產品。那種情況應該用 API key 認證或商業協議,插件的本地登錄方案不適用。

需要留意的地方:

1、插件以當前 DSH 進程的權限運行,能讀到該進程能讀到的文件和環境。安裝前應先檢查源碼和許可證,倉庫根目錄有 LICENSE 與 SECURITY.md。
2、README 聲明插件與 Anthropic、opencode、DeepSeek 沒有隸屬、背書或贊助關係。
3、倉庫爲社區個人項目,包名爲 dsh-claude-agent,當前 package.json 版本 1.0.0,依賴 @anthropic-ai/claude-agent-sdk 0.3.318 與 @modelcontextprotocol/sdk 1.32.2,要求 Node.js 18.14.0 以上。目錄頁顯示星標 0,屬於很新的項目,接入前值得自己跑一遍冒煙測試。
4、配置裏的 idleMinutes 和 parkedMinutes 決定進程何時被回收,長任務場景需要留意默認值。

小結

這個插件的價值不在於多提供了一種模型,而在於換了一種接 Claude 的方式:不碰憑據、不重啓進程、保持前綴穩定,從而拿到穩定且可觀的緩存命中率,同時讓 harness 的工具鏈和歷史成爲事實來源。如果你本來就在用 Claude Code,想在 DSH 裏繼續用同一套登錄,這是目前實現上最省事的一條路徑。

  • 目錄頁:https://www.skillhub.cn/plugins/clioo/dsh-claude-agent
  • 源碼:https://github.com/clioo/dsh-claude-agent

(社區目錄是獨立站點,與 DeepSeek 無官方從屬關係。)

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

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

小夜