插件目录 / UI & Skins / dsh-llm-bailian-kimi
dsh-llm-bailian-kimi
已验证 · 实测可装 sologuy
功能简介
Bailian (DashScope) Kimi LLM adapter plugin for DeepSeek Harness — kimi-k3 with image input, thinking and tool calling. No build step.
可用 — 实测通过,早期项目
Bailian (DashScope) Kimi LLM adapter plugin for DeepSeek Harness — kimi-k3 with image input, thinking and tool calling. No build step. 实测能干净安装、正常启动。早期项目,但功能可用。
「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
dsh-llm-bailian-kimi
DeepSeek Harness 的 LLM 适配器插件,
用于接入阿里云百炼(DashScope)上的 Kimi 模型。
只解决一件事:在 DSH 里用百炼的 kimi/kimi-k3,并且能发图片。
- ✅ 图片输入(多模态)
- ✅ 流式输出 + 思考链(
reasoning_content) - ✅ Function Calling
- ✅ token / 缓存命中统计
- ✅ 纯 ESM JavaScript,无构建步骤——
dsh plugin add一步装完,不会触发 pnpm 的allowBuilds拦截
安装
dsh plugin --profile web add github:sologuy/dsh-llm-bailian-kimi
然后在 $DSH_HOME/.credentials.yaml 里放百炼 API Key:
DASHSCOPE_API_KEY: sk-xxxxxxxx
重启 DSH 即可在模型选择器里看到「阿里云百炼」分组。
不重启热挂载
如果不想重启正在跑的实例,改用 $DSH_HOME/cordis.patch.yml(DSH 会 watch 该文件并事务性重新应用):
- insert:
- id: llm-bailian
name: dsh-llm-bailian
需要插件能按包名被解析到,即位于 $DSH_HOME/profiles/node_modules/ 下。
⚠️ 热挂载能换"挂不挂",换不了已 import 进内存的代码。
改了插件源码、或改了包名但文件路径不变时,Node 的 ESM 模块缓存会继续返回旧模块,
必须重启 DSH 进程才生效。会话都持久化在磁盘上,重启不会丢。
配置
插件开箱即用(默认只带 kimi/kimi-k3)。要改模型目录或端点,在 $DSH_HOME/settings.yaml 加 llm-bailian-kimi: 段——该段热加载,改完存盘即在下一次请求生效:
llm-bailian-kimi:
apiKeyEnv: DASHSCOPE_API_KEY
baseURL: https://dashscope.aliyuncs.com/compatible-mode/v1
reasoningEffort: max # high | max
models:
- id: kimi/kimi-k3
name: Kimi K3 · 百炼
description: 1M 上下文 · 支持图片
contextWindow: 1000000
input: [text, image] # ← 声明 image 才能发图
| 字段 | 默认值 | 说明 |
|---|---|---|
apiKeyEnv |
DASHSCOPE_API_KEY |
凭证引用名,按请求解析 |
baseURL |
百炼 OpenAI 兼容端点 | 换 workspace 端点时改这里 |
reasoningEffort |
max |
调用方未指定时的兜底档位 |
maxTokens |
65536 |
单请求输出上限默认值 |
defaultContextWindow |
1000000 |
目录里没写 contextWindow 的模型用它 |
headers |
{} |
附加请求头(如 workspace 路由) |
streamIdleTimeoutMs |
300000 |
流空闲超时 |
模型条目的 input 不声明 image 就是纯文本模型——这是对端点的声明而非探测,声明了但端点不支持会在请求时被服务端拒绝。
范围:这不是通用百炼适配器
插件注册的路由是 bailian-kimi,不是 bailian —— 名字是刻意收窄的,因为它的思考参数派发
(thinking: {type: 'enabled'} + reasoning_effort)是 Kimi 方言,换个模型就未必成立。实测:
| 百炼模型 | 本插件的思考派发 |
|---|---|
kimi/kimi-k3 |
✅ |
qwen3.8-max |
✅(顺带能用,但未做完整验证) |
deepseek-v3.2 |
❌ 400 'reasoning_effort' must be one of: 'none','minimal','low','medium','high' |
而且 off 档位被刻意拿掉了(见下方坑 3),这对能关思考的模型是错的。
要接百炼上的其他模型,建议另开 dsh-llm-bailian-qwen / -glm 之类的兄弟插件,
各自占一个路由名。两个插件抢同一个路由会直接 DUPLICATE_ADAPTER,整个注册失败。
为什么需要这个插件
DSH 自带两个适配器,接百炼时都过不去:
| 适配器 | 阻塞点 |
|---|---|
dsh-llm-deepseek |
对图片直接抛 UNSUPPORTED_CONTENT,根本不发图 |
dsh-llm-pi-ai |
对未知 baseURL 自动推断 supportsDeveloperRole: true,把系统提示发成 role: 'developer',百炼返回 400 role 'developer' is not allowed。而 DSH 的 PiAiCompatProfile 只暴露 thinkingFormat / supportsReasoningEffort 两个开关,配置层够不到这个字段 |
这个插件本质上是在绕过 upstream 缺失的一个配置字段。
如果PiAiCompatProfile补上supportsDeveloperRole(约 3~5 行),接百炼就退化成一段settings.yaml配置,本插件即可退役。欢迎去 upstream 推动这个改动。
顺带说明:百炼官方文档写"图片仅支持公网 URL,不支持 Base64",但实测 base64 完全可用,含 7MB 大图(见 probe/RESULTS.md)。所以本插件不需要 OSS 签名 URL 那一套。这属于未文档化行为,未来若收紧,只需改 lib/serialize.js 的 imagePart() 一个函数。
百炼特有的三个坑(实现时已处理)
- 系统提示必须用
role: 'system',developer会被 400 拒绝。 - 工具调用续片的
id/name是 JSONnull,不是空串也不是缺字段。判断必须写typeof x === 'string' && x.length > 0;写!== undefined会被null击穿,
首片的有效值被续片覆盖,工具调用随即失败。 - 绝不能发
thinking: {type: 'disabled'}。kimi-k3不允许关思考,会返回一条
极具误导性的400 invalid temperature: only 0.6 is allowed for this model。
因此本插件只提供high/max两档,不提供off。
另有一条 Node 侧注意事项:using 显式资源管理语法 Node 22 原生 ESM 尚不支持,本插件用显式[Symbol.dispose]();且不要加 export default——Cordis 以模块命名空间读取name/inject/Config/apply,多一个默认导出会让它改用裸函数,从而丢掉 Config schema 的默认值。
验证
probe/ 下是可复现的实测脚本,对着你自己的百炼 Key 跑:
export DASHSCOPE_API_KEY=sk-xxxx
python3 probe/mkimg.py # 生成三档测试图(含随机数字,排除幻觉)
python3 probe/t_image.py # base64 图片输入
python3 probe/t_wire.py # wire 兼容性边界(9 项)
python3 probe/t_stream_tool.py # 流式 + 工具调用分片形态
实测结果记录在 probe/RESULTS.md。
兼容性
针对 DSH 0.1.0-rc.6 开发与验证。契约以运行时node_modules/@deepseek-ai/dsh-llm/lib/types/*.d.ts 为准。
License
MIT
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dsh-llm-bailian-kimi」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:sologuy/dsh-llm-bailian-kimi Headless(CLI)profile:
dsh plugin --profile headless add github:sologuy/dsh-llm-bailian-kimi 实测报告
验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。