dsh-consult:DeepSeek Harness 的跨供应商第二意见服务

前言

DeepSeek Harness (DSH) 提供了构建智能体的底层能力。在开发和调试过程中,获取跨供应商的模型输出、验证路由逻辑或进行审计是常见需求。dsh-consult 是一个位于本地的辅助插件,它为 DSH 提供了跨供应商的“第二意见”服务,同时提供了一个 OpenAI 兼容的本地 API 端点,让外部 Harness(如 ZCode)也能调用轻量级的顾问功能。

它区别于被动式的 dsh-advisor,是一个主动的咨询工具。

核心功能

该插件主要提供以下能力:

  1. DSH_MODEL 直选模型:通过环境变量或配置改道,强制指定模型进行咨询,不受用户层 settings.yaml 中的默认模型压制。
  2. OpenAI 兼容端点:在 127.0.0.1:3080 提供标准的 POST /v1/chat/completions 接口,支持 SSE 流式和非流式响应,以及结构化输出。
  3. consult 工具:注册给所有 agent,用于在会话中主动请求跨供应商的意见。
  4. scout 调查模式:结合官方模型与实时 Web Search,用于解决人类和模型都无法处理的难题。
  5. 结构化输出:默认要求 JSON 格式的 {recommendation, reasons, confidence, risks, alternatives},支持 json_schema 约束。
  6. 上游溯源与审计:响应头标注上游模型,审计日志落盘至 audit.jsonl,记录调用耗时与路由信息。

安装与启用

安装步骤需要手动克隆仓库并修改 profile 的配置文件。

  1. 克隆仓库:
    git clone https://github.com/1339190177/dsh-consult ~/.dsh/local-plugins/dsh-advisor
  1. 修改 Profile 配置:
    进入 DSH 的 web 和 headless profile 目录,编辑 package.json,添加依赖和 bundle 引用:
    // ~/.dsh/profiles/web/package.json
    {
      "dependencies": {
        "dsh-advisor": "file:../local-plugins/dsh-advisor"
      },
      "dsh": {
        "profile.bundles": ["dsh-advisor"]
      }
    }

    // ~/.dsh/profiles/headless/package.json (同上结构)
  1. 安装依赖:
    分别在 web 和 headless 目录下运行:
    cd ~/.dsh/profiles/web && pnpm install
    cd ~/.dsh/profiles/headless && pnpm install
web profile 重启 `dsh web` 后生效,headless 每次运行即时生效。

配置说明

安装完成后,需要在配置文件中启用 HTTP 端点并设置认证 Token。

Bundle 层配置(cordis.patch.yml):

- id: dsh-advisor
  name: 'dsh-advisor'
  config:
    httpEnabled: true   # 关闭后仅保留 consult 工具

用户层配置(~/.dsh/settings.yaml):

advisor:
  token: dsha_...      # 首次启动自动生成,用于 HTTP 认证
  route:               # 可选:固定 consult 的默认路由
    provider: deepseek
    model: deepseek-v4-flash

使用方式

插件提供了多种调用方式。

1. CLI 模式(Headless)

通过环境变量 DSH_MODEL 指定模型,直接在命令行调用。

# 直选模型并咨询
DSH_MODEL=deepseek/deepseek-v4-flash dsh --profile headless "问题"

# 验证配置与选择一致
DSH_MODEL=deepseek/deepseek-v4-flash dsh --profile headless --dump-config

2. HTTP API 模式

使用标准的 OpenAI 格式调用本地端点。

curl -X POST http://127.0.0.1:3080/v1/chat/completions \
  -H 'content-type: application/json' \
  -H 'authorization: Bearer dsha_...' \
  -d '{"model":"deepseek/deepseek-v4-flash","messages":[{"role":"user","content":"…"}]}'

支持流式 ("stream":true) 和结构化输出 (response_format: json_schema)。

3. Scout 调查模式(多模态)

脚本 ask_advisor.sh 支持图片输入和 Web Search。

bash ask_advisor.sh "问题" "上下文" 图1.png 图2.png

注意事项

  1. 思维等级(Reasoning Effort):默认不传参数,遵循 provider 默认设置(官方 flash 默认为 high 且自适应)。off 是唯一能强制关闭推理的开关。在跨中转商(如 XQAPI)时,该参数可能无效,建议直连官方模型。
  2. 未实现功能:F7(配额限速)、F8(并发 quorum)目前未实现。
  3. 参数限制:CLI 的 --model 旗标本体需要修改 DSH 源码(需提 issue)。本插件通过 DSH_MODEL 环境变量配合 agent/request 改道来实现更稳定的模型选择。
  4. 安全边界:HTTP 端点仅允许回环连接,无 CORS。生产环境建议配置 API 层的 Origin 同源校验。
  5. 审计回填:consult 工具返回中的 adopted 字段目前靠主模型在回复文本中标注“已采纳/未采纳”,尚未实现自动回填。
羽毛球分组比赛记分
小程序二维码

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

小夜