前言¶
DeepSeek Harness (DSH) 采用插件化架构,允许用户根据需求扩展功能。对于本地部署 Qwen3.8 系列模型(27B, Flash-Next)的开发者来说,管理不同推理后端的思考预算(Thinking Budget)以及处理上下文窗口压缩(Compaction)是一个常见的痛点。dsh-qwen38-local-qol 插件旨在为这套本地工作流提供一套统一的配置入口和优化策略。
插件简介¶
这是一个针对 DeepSeek Harness 的 Quality of Life (QoL) 插件,由用户 Yunado 维护,采用 MIT 许可证。它主要解决在 llama.cpp、NInfer、TabbyAPI 和 oMLX 等本地推理引擎上运行 Qwen3.8 时的配置碎片化问题。
核心特性¶
- 按请求的思考预算:支持 llama.cpp、NInfer、TabbyAPI 和 oMLX 四种方言,允许在每条请求中动态调整推理预算。
- 压缩后端优化:在触发压缩时,会修剪预填充内容(保留近期推理、降级图片为文本占位、截断工具结果),防止因输出上限导致的检查点截断。
- 工具结果中的视觉支持:嵌套在工具结果中的图片块(如
read_image输出)会被传输而非丢弃。 - 可视化设置面板:提供 Settings Tab,支持实时配置所有行参数。
安装与启用¶
通过命令行安装插件:
dsh plugin --profile web add github:Yunado/dsh-qwen38-local-qol
安装完成后,需要重启 dsh web 服务。服务启动时,插件会从标准预设组合中生成 qwen38 用户预设。如果未配置默认代理预设,该预设会被设为默认。新会话将自动使用此预设,而现有会话则保持其创建时的预设不变。
若需固定特定版本,可在规格中添加标签(如 #v0.2.0 或任何历史发布版本)。
配置详解¶
插件在 DSH 设置中增加了一个名为 Qwen3.8 Local 的设置 Tab。这里列出了所有配置项,支持实时修改和热重载。
状态指示¶
设置面板中的状态点颜色表示当前 qwen38 预设的默认状态:
* 绿色:qwen38 是默认预设。
* 琥珀色:默认预设是 qwen38 以外的其他预设。
* 灰色:qwen38 预设不存在。
服务器配置¶
该 Tab 支持配置四种不同的本地推理服务器:
- llama.cpp (
llamacpp):标准的llama-server,支持通过请求参数动态发送思考预算。 - NInfer:高性能 TensorRT-LLM 引擎,思考预算通常在服务器启动时配置(
--default-thinking-budget)。 - TabbyAPI:基于 ExLlamaV3 的后端,原生支持按请求预算。
- oMLX:Apple Silicon MLX 推理服务器,原生支持
thinking_budget和chat_template_kwargs.enable_thinking。
主要配置项包括:
* Dialect (dialect):选择上述引擎之一(默认 llamacpp)。
* Base URL:本地服务地址(默认端口分别为:llama.cpp 8080,NInfer 8082,TabbyAPI 8083,oMLX 8000)。
* Model:服务器识别的模型 ID 或别名。
* Display Name:在 UI 模型选择器中显示的标签。
* API Key:可选的认证令牌。
上下文窗口与输出限制¶
- Context Window:模型支持的总 Token 容量,用于判断何时触发压缩。
- Max Tokens:单次响应的最大 Token 数,默认约为窗口的 20%(约 52428),为压缩触发预留空间。
思考预算¶
插件支持为 llama.cpp、TabbyAPI 和 oMLX 设置不同级别的思考预算:
* Low: 4,096 tokens
* Medium: 8,192 tokens
* Extra High: 16,384 tokens
对于 NInfer,则通过 defaultThinkingBudget 配置。此外还有 defaultEffort 参数,用于设置默认的思考强度。
压缩与修剪¶
为了防止上下文溢出,插件提供了一套压缩策略(主要在 Env 变量层面配置,也可在 Tab 中配置):
* Summarize Images:处理历史图片的策略。strip(推荐)会将旧图片替换为文本占位符以节省空间;keep 则保留图片。
* Keep Recent Reasoning:保留最近的几轮助手回复。
* Tool Chars:限制工具结果的最大字符数。
注意事项¶
- 依赖要求:插件需要 Node.js 环境版本 >= 22.14。
- 无核心补丁:该插件不包含核心补丁或 pi-ai patchfile。
- 持久化:所有在设置面板中的修改会实时生效,并持久化保存到
settings.yaml文件中。