给 DeepSeek Harness 写了个生图插件,补上了原生对话生图能力

最近在折腾 DeepSeek Harness。

用了一段时间之后,我发现一个挺明显的问题:它现在作为 Agent 框架已经可以调各种工具、执行任务了,但如果我在对话里直接说:

帮我画一张雨夜霓虹街头的赛博朋克猫咪。

它没办法像 ChatGPT 那样,直接把图片生成出来放在当前对话里。

想生图的话,还是得自己跑到 Gemini、豆包或者其他生图网站,再把 Prompt 复制过去。

感觉差了那么一点。

所以这两天干脆自己写了一个插件:

dsh-image-gen

GitHub:

github.com/shanliuling...

目前已经开源


最终效果很简单

安装好插件以后,在 DeepSeek Harness 里直接说:

复制代码
帮我画一张雨夜霓虹街头的赛博朋克猫咪。

Agent 会自己识别这是一个生图请求,然后调用插件提供的:

复制代码
generate_image

图片生成完成以后,不是只返回一个 URL,也不是让你自己去本地找文件,而是直接显示在当前聊天记录里。

也就是说,实际体验基本就是:

markdown 复制代码
你:帮我画一张极简主义的现代建筑客厅插画

DeepSeek Harness
        ↓
generate_image
        ↓
Gemini / OpenAI / Seedream
        ↓
图片直接出现在对话里

我想做的其实就这么简单。

不是重新做一个生图网站,而是把生图变成 DeepSeek Harness 本身的一项工具能力。


安装也尽量做简单了

在 DeepSeek Harness 项目目录执行:

arduino 复制代码
pnpm dsh plugin --profile web add dsh-image-gen

如果你已经全局安装了 dsh

arduino 复制代码
dsh plugin --profile web add dsh-image-gen

也可以直接从 GitHub 安装:

csharp 复制代码
pnpm dsh plugin --profile web add git+https://github.com/shanliuling/dsh-image-gen.git

装完以后打开 DSH Web。

进入:

复制代码
Settings
→ Plugins
→ Image generation

填自己的 API Key 就可以用了。

不需要去改源码,也不需要自己手写配置文件。


这个插件其实没用什么特别玄学的技术

整个实现比我一开始想象得简单。

核心就是给 DeepSeek Harness 注册一个 Tool:

复制代码
generate_image

这个 Tool 接收的主要参数就是:

arduino 复制代码
prompt
aspect_ratio
image_size
size

当 Agent 判断用户确实想生成图片的时候,就会调用它。

插件再根据用户设置选择对应 Provider:

复制代码
Google
OpenAI
OpenAI Compatible
Seedream

然后请求对应的生图接口。

真正比较关键的地方反而不是"怎么调生图 API"。

而是:

怎么让生成出来的图片真正进入 DeepSeek Harness 的对话体系。


图片不是单独丢在本地

一开始我其实考虑过最简单的实现:

复制代码
生成图片
→ 保存到本地
→ 返回文件路径

后来感觉这么做体验很割裂。

比如 Agent 回复:

bash 复制代码
图片已生成:
/tmp/generated-123.png

这跟真正的对话生图还是差很多。

所以最后接的是 DeepSeek Harness 自己的 Attachment 体系。

图片生成以后:

markdown 复制代码
Provider 返回图片
        ↓
转换成图片数据
        ↓
ctx.attachments.saveImage()
        ↓
保存成 DSH Attachment
        ↓
挂到当前 Conversation
        ↓
前端直接显示图片

这样有两个好处。

第一是图片可以直接出现在聊天消息里。

第二是重新打开历史会话以后,之前生成的图片还在。

它不是一次性的临时文件。


API Key 也没有直接塞配置文件

另外一个我比较在意的是 API Key。

这种插件如果最后要求大家:

ini 复制代码
API_KEY=xxxx

写进某个项目配置甚至源码里,其实挺难受的。

所以现在直接用了 DeepSeek Harness 自己的 credentials 服务。

设置界面里填写 Key,插件运行的时候再通过 credentials 读取。

前端不用一直拿着明文 Key。

这也是为什么我最后选择把它做成真正的 DSH 插件,而不是简单写个脚本。


为什么没直接做成一个独立生图网站?

因为生图网站真的已经太多了。

现在缺的不是:

再来一个输入 Prompt 然后点"生成"的网页。

我更想要的是这种体验:

复制代码
我正在和 Agent 聊一个项目

突然需要一张图

直接说:
"顺便帮我画一张这个项目的封面图"

Agent 自己调用工具

图片出来

继续聊天

这样生图只是整个任务过程中的一步。

以后如果 DeepSeek Harness 里面的工具越来越多:

复制代码
搜索
代码
浏览器
文件
图片
视频

用户其实不需要关心背后到底调了哪个网站。

只需要告诉 Agent:

我要什么。

剩下的交给工具处理。

我觉得这种体验才比较像真正的 Agent。


目前还比较早期

项目现在还属于刚做出来的阶段。

目前我的目标不是一下子做一个特别复杂的"AI 绘图工作台",而是先把最核心的事情做好:

让 DeepSeek Harness 能稳定地在对话里生成图片。

后面如果继续有人用,我会考虑再加一些东西,例如:

  • 更多图片 Provider
  • 更完整的尺寸和参数支持
  • 图生图
  • 图片编辑
  • 多图生成
  • 更好的生成结果展示
  • 更多 OpenAI Compatible 服务适配

但这些都可以慢慢补。

第一版能做到:

vbnet 复制代码
安装
→ 配 Key
→ 对话里说一句话
→ 出图

我觉得就够了。


最后

如果你也正在玩 DeepSeek Harness,可以装一下试试。

安装命令:

arduino 复制代码
pnpm dsh plugin --profile web add dsh-image-gen

GitHub:

github.com/shanliuling...

项目目前完全开源,MIT License。

如果遇到不兼容的模型、接口或者安装问题,可以直接提 Issue。

如果刚好对你有用,也欢迎顺手点个 Star。

相关推荐
“AI国潮设计-小江”43 分钟前
《Python实战 | SDXL大模型批量生成“英歌舞海浪”蛋糕IP,附核心Prompt控制代码与IP授权变现思路》
人工智能·python·prompt·aigc
虹科网络安全1 小时前
使用艾体宝 IOTA 10 CORE+ 监控企业网络中的 AI 流量
网络·人工智能
朝阳资本论1 小时前
群核科技:从空间设计龙头到物理AI“卖水人”的升维之战
人工智能
七夜zippoe1 小时前
为什么 2026 年每个 Java 团队都该懂 AI Agent
java·开发语言·人工智能
举个栗子。1 小时前
SwarmForge:AI 智能体协同编程框架,让多个 Agent 在隔离工作区并行协作
人工智能·开源·ai编程
编程的一拳超人1 小时前
DeepSeek Harness Linux/macOS/Windows 本地下载、启动与模型配置指南
linux·windows·macos·deepseek
AIGC小尼1 小时前
Windows 本地 AI 漫剧全自动生产线部署完整教程(零基础、全指令、带源码、模型配置、排错方案)
人工智能·windows·ai漫剧
合米AI SOP系统1 小时前
传统产线如何快速上马落地 AI 防错?合米科技 AI SOP 7天即可上线。
大数据·人工智能·科技
思录Echo1 小时前
什么决定具身智能的最终走向?多技术路线与落地现实辨析
大数据·人工智能
ShallWeL2 小时前
Orin 上多模型常驻与显存预算
人工智能·嵌入式硬件·nvidia·orin