前言¶
DeepSeek Harness (DSH) 的生態通過插件擴展功能。在使用官方 dsh-llm-pi-ai 適配器時,如果模型聲明瞭推理能力,系統會將系統提示詞重寫爲 OpenAI 的 developer 角色。許多第三方 OpenAI 兼容端點(例如騰訊 CodeBuddy)並不支持 developer 消息,這會導致請求被拒絕或觸發 content_filter,而使用 system 角色則能正常工作。dsh-plugin-thinking-api 插件旨在解決這一兼容性問題。
插件定位¶
此插件用於一鍵配置任意 OpenAI 兼容 API 並自動啓用思考模式,同時規避第三方端點因 developer 角色被拒絕的問題。作者爲 qjf44,許可證爲 MIT。其核心邏輯是複用官方 PiAiAdapter 類,但在構建模型時注入 compat.supportsDeveloperRole: false,從而強制使用 system 角色發送請求。
核心功能¶
- 一鍵配置:無需手動編寫
reasoningEfforts或thinkingFormat等內部字段,直接配置通用 OpenAI 格式。 - 思考模式:在模型配置中設置
thinking: true即可自動啓用推理層級。 - 修復角色拒絕:解決非官方白名單端點在啓用推理時因
developer角色被拒絕的問題。
安裝與啓用¶
在 DeepSeek Harness 的 Profile 配置目錄下,修改 package.json。在 dependencies 中添加插件依賴,並在 dsh.profile.bundles 中註冊。
// ~/.dsh/profiles/<profile>/package.json
{
"dependencies": {
"dsh-plugin-thinking-api": "github:qjf44/dsh-plugin-thinking-api"
},
"dsh": {
"profile": {
"bundles": [
"dsh-plugin-thinking-api"
]
}
}
}
安裝完成後重啓 Harness。插件通過 cordis.patch.yml 自動註冊,無需手動修改配置。
典型用法¶
通過 YAML 配置¶
在 ~/.dsh/settings.yaml 中添加 thinking-api 配置區塊。
thinking-api:
providers:
codebuddy:
displayName: CodeBuddy
baseURL: https://copilot.tencent.com/v2
apiKeyEnv: CODEBUDDY_API_KEY
thinkingFormat: deepseek
models:
deepseek-v4-pro:
name: DeepSeek V4 Pro
thinking: true
通過 Web UI 嚮導¶
- 打開 Settings 菜單,找到 Thinking API 面板。
- 選擇模板(如 CodeBuddy)或自定義。
- 輸入 API Key。
- 點擊 Fetch models 列出端點模型(騰訊 CodeBuddy 無此端點時會使用模板默認模型),勾選需要啓用的模型,設置
thinking: true。 - 保存。
注意:Web UI 的客戶端部分通過
exports["./client"]導入。修改插件源碼後,需重建 Web 構建包以使新客戶端生效。
配置參考¶
Provider 配置¶
baseURL: API 端點地址(必填)。apiKeyEnv: 存儲密鑰的環境變量名。thinkingFormat: 推理格式,默認爲deepseek。models: 模型配置字典。
Model 配置¶
thinking: 布爾值,設爲true啓用思考模式。input: 聲明輸入模態,如["text", "image"],否則默認爲僅文本。
適用場景與注意¶
本插件適用於使用非官方 PiAiAdapter 白名單端點(如騰訊 CodeBuddy、自建 vLLM 等)且需要開啓推理功能的場景。
前置要求:
- DeepSeek Harness 版本需在 0.1.0-rc.6 到 0.1.5-rc.1 之間,或更高兼容版本。
- 依賴官方 @deepseek-ai/dsh-llm-pi-ai 庫。
注意:
- Web UI 需要重建客戶端構建包才能識別插件的新功能。
- 插件以當前 DSH 進程權限運行,使用前請確認源碼與許可證。
結語¶
dsh-plugin-thinking-api 是一個輕量級工具,它僅專注於注入缺失的兼容性字段,不改變官方適配器的核心邏輯。對於需要在非標準端點啓用思考模式的開發者,這是一個必要的補充。