前言¶
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 覆盖。
- 环境变量
启动dsh web前设置:
export KIMI_API_KEY=sk-kimi-...
# 或
export MOONSHOT_API_KEY=sk-...
- 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>"}}'
- 凭证文件
在~/.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 取消请求。