DeepSeek Harness 插件:dsh-llm-kimi

前言

DeepSeek Harness (DSH) 采用插件化架构,允许通过适配器接入不同的 LLM 服务。Kimi (Moonshot AI) 提供了 Code 专用接口与通用开放平台接口,且存在国内与海外区域差异。dsh-llm-kimi 插件为 DSH 提供了 Kimi 模型的 LLM 适配层,通过三个路由覆盖三种 Key 类型,解决多 API 端点与密钥管理的集成问题。

核心功能

该插件实现以下能力:
* 多路由适配:支持 Kimi Code 订阅与 Moonshot 开放平台两种 Key,覆盖国内与海外区域。
* 思考模式:支持通过 reasoning_effort 参数控制思考深度。
* 工具调用与多模态:支持 Function Calling 以及图片输入(通过 base64 data URI)。
* 热更新:配置与密钥修改后,无需重启进程即可生效。

安装与启用

通过命令行安装插件。构建产物已随仓库提交,无需本地编译。

# 从 GitHub 安装
dsh plugin --profile web add github:haveanote06/dsh-llm-kimi

# 或从 npm 安装(发布后)
dsh plugin --profile web add dsh-llm-kimi

安装完成后,重启 dsh web 服务,并在 Web 界面的 “Kimi” 设置页进行配置。

路由与密钥配置

插件定义了三个路由,分别对应不同的 API 端点和 Key 引用。配置时需指定路由类型与对应的 API Key。

路由详情

路由 Key 类型 默认端点 默认 Key 环境变量
kimi-code Kimi Code 订阅 (sk-kimi-*) https://api.kimi.com/coding/v1 KIMI_API_KEY
kimi-cn Moonshot 开放平台(国内) https://api.moonshot.cn/v1 MOONSHOT_API_KEY
kimi-global Moonshot 开放平台(海外) https://api.moonshot.ai/v1 MOONSHOT_API_KEY

密钥配置方式

支持三种配置方式,任选其一。路由默认读取对应的环境变量,也可通过 apiKeyEnvCode/apiKeyEnvCn/apiKeyEnvGlobal 或公共 apiKeyEnv 覆盖。

  1. 环境变量
    启动 dsh web 前设置:
   export KIMI_API_KEY=sk-kimi-...
   # 或
   export MOONSHOT_API_KEY=sk-...
  1. Web 凭证库(推荐)
    通过 API 直接写入凭证库,无需重启。写入后 Models 页面对应行显示绿色”已配置”圆点。
   curl -X POST http://127.0.0.1:3080/api/credentials.set \
     -H "Content-Type: application/json" \
     -d '{"type":"client-request","rpcId":"set1","method":"credentials.set","payload":{"ref":"KIMI_API_KEY","value":"<你的key>"}}'
  1. 凭证文件
    在 ~/.dsh/.credentials.yaml 文件中追加(文件权限建议 0600):
   KIMI_API_KEY: <key>

注意:当前 DSH 平台限制,内置 Models 页面对 llm-deepseek / llm-pi-ai 以外的命名空间(如本插件的 llm-kimi)渲染为只读。因此第三方 LLM 插件的 Key 无法直接在 Models 页填写,需使用上述方式或本插件自带的 “Kimi” 设置页。

模型与思考模式

支持的模型

插件提供联合模型目录,覆盖 Kimi Code 与开放平台模型。上下文长度与模态如下:

模型 上下文 模态 备注
kimi-for-coding 256k 文本+图片 Kimi Code (K2.7 Coding)
kimi-for-coding-highspeed 256k 文本+图片 Kimi Code 高速
k3 1M 文本+图片 Kimi Code K3
k3-256k 256k 文本+图片 Kimi Code K3 精简
kimi-k3 1M 文本+图片 开放平台 K3
kimi-k2.6 / kimi-k2.7-code 256k 文本+图片 开放平台
moonshot-v1-8k/32k/128k 8k~128k 文本 开放平台旧版

思考模式参数

使用 thinking 参数控制。旧式 enable_thinking 布尔值会被静默忽略。

{
  "thinking": {
    "type": "enabled",
    "reasoning_effort": "low"
  }
}

reasoning_effort 支持 low、high、max。

协议义务

插件严格对齐官方 LLM 适配器协议:
* 流式响应顺序:usage 事件优先于 finish 事件,finish 后不再输出内容。
* 工具参数:工具调用参数保持 RAW JSON 格式。
* 错误处理:遵循双路径错误处理,并尊重 options.signal 取消请求。

生态链接

羽毛球分组比赛记分
小程序二维码

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

小夜