DeepSeek Harness 自定义模型:Catalog Picker 丢失 reasoningEfforts

作者
DeepSeekAgent.io 编辑部
发布
更新

DeepSeek Harness 的模型目录可以帮助用户快速添加模型,但目录条目并不一定包含自定义 Provider 的全部能力声明。社区在 DSH 0.2.1-rc.3 中发现:通过 Catalog Picker 新增模型时,手工声明的 reasoningEfforts 会被静默丢弃,模型仍能请求成功,编辑器却显示它不支持推理强度。

这类问题最容易被误判为模型或中转服务不支持 Reasoning。实际路由可以正常工作,缺失的是 DSH 本地模型配置中的能力元数据。

丢失发生在首次采用目录条目时

Picker 创建新模型行时,只复制它认识的固定字段,例如:

  • id 与 name;
  • contextWindow 与 maxTokens;
  • 输入模态等目录能力。

用于展示推理档位的 reasoningEfforts 没有进入固定字段对象,因此首次新增、自定义 Provider、自托管模型和中转路由都可能失去该字段。保存后模型会物化为 reasoning: false,Composer 随之隐藏推理强度选项。

已有模型行通常不会受影响,因为合并逻辑会优先保留 byId 中的旧对象。删除后重新添加,则会再次走目录采用路径并丢失扩展字段。

为什么请求仍然能成功

模型 ID、Base URL、协议和认证信息仍然存在,Provider 可以继续接受请求。reasoningEfforts 主要告诉 DSH UI 和运行时“允许用户选择哪些推理等级”,并不一定是路由连通的必要条件。

因此诊断时要把两个问题分开:

  1. 模型是否可调用;
  2. Harness 是否完整认识模型能力。

仅用一次成功回复验证配置,会漏掉 Reasoning、图片输入、工具调用、最大输出与缓存等能力字段。

如何恢复配置

当前可在模型的逐项编辑界面重新声明推理等级,或通过 Profile Patch / YAML 把 reasoningEfforts 写回对应模型。修改后应重新打开模型设置与 Composer,确认推理档位能够选择,再执行一条带 Trace 的请求检查实际参数。

保存前后建议保留结构化 Diff,重点核对:

  • 能力数组和自定义扩展字段是否仍在;
  • 模型 ID 相同但对象是否被整体替换;
  • 删除再添加是否产生不同配置;
  • UI 显示能力是否与实际请求参数一致。

Picker 应采用怎样的合并语义

模型目录适合提供默认值,不适合成为覆盖用户配置的完整 Schema。更稳妥的规则是:

  • 新增时复制目录字段,同时保留用户已经提供的未知字段;
  • 更新目录信息时按字段合并,不整体替换模型对象;
  • 删除能力字段需要明确确认;
  • 对自定义 Provider 做保存—重开—再保存的 round-trip 测试;
  • 把 Reasoning、Vision、Tool Use 和 Cache 作为可独立验证的能力。

如果你正在配置 DeepSeek V4.1 Flash,可配合模型接入 Harness 指南核对模型 ID、图片输入和推理参数。版本升级相关入口变化可参考DSH v0.2.1-rc.3 更新。

参考资料