前言¶
DSH 本身不提供生图能力。智能体要在对话或任务里产出一张图片,就得自己对接外部图像模型,写请求、处理重试、落盘、维护提示词规范,成本不低。这个插件做的事就是把火山方舟 / 豆包 Seedream 的文生图、图生图封装成 DSH 可直接调用的模型工具,并附带一个内置技能,让模型知道怎么用它。
下面介绍这个插件:它由 zmengle 维护,分类是模型推理,GitHub 仓库是 zmengle/dsh-plugin-ark-image-gen,许可为 MIT,版本 0.1.1。
插件定位¶
这是一个 DSH 插件,README 里的位置说明是:给 DeepSeek Harness 两个模型工具加一个内置技能。
ark_generate_image:文生图 / 图生图,支持单张或多张参考图、一次出多张、固定 seed 复现。ark_image_gen_status:自检工具,报告密钥是否就绪、生效模型、网关、输出目录,不发请求、不计费。
出图会落盘到输出目录,并追加写 manifest.json,记录文件名、模型、尺寸、seed、prompt、时间。
安装与启用¶
安装命令来自 README,两种来源都可以。下面这步把插件装进 web profile:
# npm
dsh plugin --profile web add dsh-plugin-ark-image-gen
如果要直接装源码,用 GitHub 地址:
dsh plugin --profile web add https://github.com/zmengle/dsh-plugin-ark-image-gen
装好后重启 dsh web(或桌面端)。插件行是 ark-image-gen。注意本插件对 Node 的要求是 >=18,并且 peer 依赖 @deepseek-ai/cordis、@deepseek-ai/dsh-skill、@deepseek-ai/dsh-tools,实际安装前需要确认这些依赖版本与当前 DSH 环境匹配。
配置¶
密钥只从环境变量或插件配置读取,不写入任何文件。
# Windows:设置环境变量后重开终端
setx ARK_API_KEY "ark-xxxx"
也可以写进 profile 补丁。下面这个补丁用 !!js process.env.ARK_API_KEY 读环境变量,避免把密钥明文留在仓库里:
- id: ark-image-gen
config:
apiKey: !!js process.env.ARK_API_KEY
outDir: D:/ark-output
配置项对照如下:
| 环境变量 | 插件配置键 | 默认值 | 说明 |
|---|---|---|---|
ARK_API_KEY |
apiKey |
—(必填) | 火山方舟 API Key,形如 ark-... |
ARK_MODEL |
model |
doubao-seedream-5-0-flash-260915 |
生图模型 |
ARK_BASE_URL |
baseUrl |
https://ark.cn-beijing.volces.com/api/v3 |
网关地址 |
ARK_OUT_DIR |
outDir |
<工作目录>/ark-output |
出图目录 |
outDir 等配置可以在工具参数里临时覆盖,见下一节。
典型用法¶
模型侧直接调用 ark_generate_image。参数如下:
| 参数 | 类型 | 说明 |
|---|---|---|
prompt |
string(必填) | 提示词。不要用 ASCII 双引号,用「」或转义 |
size |
string | "2K"(默认,沿用参考图比例)/ "4K" / "1024x1024" 这类精确尺寸 |
seed |
integer | 随机种子,固定它可复现 |
image |
string[] | 参考图:本地绝对路径 / http URL / data URL。单张也用数组 |
count |
integer | 出几张(1-4,默认 1);多张时 seed 依次 +1 |
file |
string | 输出文件名(不带扩展名),默认 ark_<时间戳> |
model |
string | 覆盖默认模型(必须是 doubao-seedream-*) |
outDir |
string | 覆盖输出目录 |
调用成功后的返回形如:
{
"ok": true,
"model": "doubao-seedream-5-0-flash-260915",
"size": "2K",
"files": [{ "path": "D:/ark-output/ark_1750000000000.png", "bytes": 1843200, "seed": 42 }]
}
插件同时注册技能 ark-image-gen(skills/ark-image-gen/SKILL.md),里面说明用法和踩坑表。模型可以自己发现它,也可以直接说一句「用 ark 生成一张……」触发。
行为说明¶
请求形态是 POST <baseUrl>/images/generations,response_format: url,watermark: false。几点实现细节:
- 429 与 5xx 自动重试 2 次,指数退避;单次请求超时 300 秒,工具级超时 600 秒。
- 图片按文件头(magic number)识别
png/jpg/webp再落盘,不信任响应里的扩展名。 - 本地参考图会转成 base64 data URL 发送,大图会显著增加请求体体积。
- 默认模型名可能随火山方舟下线调整,遇到 404 用
model参数或ARK_MODEL指定当前可用模型。
安全与适用范围¶
安全方面,密钥只从 ARK_API_KEY 或 config.apiKey 读取,不写入任何文件、不进日志、不进 manifest.json;ark_image_gen_status 只报告「已配置(长度 N)」,不显示密钥片段的任何字符。密钥随 Authorization 头发送,因此 baseUrl 必须是 https,明文 http 只允许 localhost / 127.0.0.1 / [::1] 的本机调试,其他地址直接拒绝。报错只带 HTTP 状态码和响应体前 400 字符,不回显请求头。参考图会以 base64 data URL 随请求发送,图片越大请求体越大,注意不要顺手把含隐私的截图发出去。
适用场景是:已经在 DSH 里跑智能体或工作流,需要稳定调用火山方舟 Seedream 出图,尤其是要让模型自己决定何时出图、出什么图的场景。
要注意两点。第一,插件运行在当前 dsh 进程权限下,装之前应检查源码与许可证,确认它满足你环境的信任要求。第二,本插件就是按 DSH「一切皆插件」的方式接入的,其能力边界就是上面的工具和技能,不涉及 DSH 核心行为。
结尾¶
这个插件的价值在于把「接一个外部生图模型」这件事压缩成一次安装加一份配置,出图、重试、落盘、manifest 都由插件处理,模型侧只需要按参数调用。维护者是 zmengle,分类为模型推理,许可 MIT。
目录页:https://www.skillhub.cn/plugins/zmengle/dsh-plugin-ark-image-gen
GitHub:https://github.com/zmengle/dsh-plugin-ark-image-gen