前言¶
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 是一个轻量级工具,它仅专注于注入缺失的兼容性字段,不改变官方适配器的核心逻辑。对于需要在非标准端点启用思考模式的开发者,这是一个必要的补充。