dsh-free-image: API Key-free Image Generation for DSH Agents

前言

在 DeepSeek Harness(DSH)里让智能体「画图」,常见做法是接 OpenAI DALL·E、Midjourney API 或各家云厂商的图像服务:要申请 Key、可能要付费,还要在插件或环境里妥善保管凭证。若你只是希望 Agent 在对话里按需生成一张示意图、封面草图或 UI 占位图,而不想为此单独开账号,dsh-free-image 走的是另一条路:通过 HTTP GET 向「把 prompt 写在 URL 里、直接返回图片字节」的端点发请求,默认对接公开的 Pollinations 端点,无需配置 API Key,也无需付费账户。

下面介绍这个由 ozanstn1-stack 维护的联网工具类插件:它做什么、怎么装、默认行为与配置边界,以及使用公开端点时需要注意的限制。

这是什么

dsh-free-image 是 DSH 社区插件(当前 GitHub 星标为 0,版本 0.1.0,MIT 许可证)。它为 Harness 注册两个工具:generate_image 负责根据 prompt 生成一张图并写入本地目录;list_image_models 只读列出当前配置的 provider、尺寸上限、 pacing、超时与输出目录等信息。

Provider 在实现上就是一个 HTTP GET 端点:请求里只带 prompt 与宽高参数,不存储、不发送任何 Key。插件开箱即用默认指向免 Key 的公开端点;若你自建 Automatic1111、ComfyUI 等前端(同样接受 URL path 中的 prompt 并返回 image/*),只需改配置里的 baseUrl, prompt 可不出本机,且不受公开端点约 45 秒一次的 pacing 约束。

核心功能

工具一览

工具 类型 作用
generate_image 写文件 按 prompt 生成一张图,保存到配置目录,返回绝对路径、真实像素尺寸与字节大小
list_image_models 只读 列出已配置的 providers 及 endpoint、model、尺寸限制、pacing、timeout、输出目录

请求与落盘流程

智能体调用出图工具后,插件大致按下列方式工作(默认 provider 为 Pollinations):

prompt ──▶ GET <baseUrl>/<url-encoded prompt>?width=…&height=…&nologo=true
         ◀── image bytes
            saved to <output.dir>/<YYYYMMDD-HHMMSS>-<slug>.<ext>

要点如下:

  1. 响应在写入前会校验为 image/*。
  2. 超过 output.maxBytes 的图片会被拒绝,不会落盘。
  3. 公开免费端点按 IP 限流;插件同一时刻只发起一次调用,并在 bounded budget 内尊重端点返回的「retry after N s」。若等待时间超出 retry.budgetMs,工具会告知剩余等待时间,而不是盲目失败或无限重试。
  4. 对 402 / 429 / 503 等应答,在 budget 允许范围内会按端点要求等待后重试。

安装与启用

官方安装步骤如下。安装命令以 README 为准,不要自行拼接 github:owner/repo 形式。

dsh plugin --profile web add dsh-free-image
systemctl restart dsh-web   # or restart your DSH process

环境要求:

  • DSH >= 0.2.1-rc.4
  • Node ^22.19.0 || >=24.0.0
  • 出站到所配置 endpoint 的 HTTPS(使用默认公开端点时即需能访问 Pollinations)

无需配置即可使用:默认 provider 即为免 Key 的公开端点。插件以当前 DSH 进程权限运行;安装前建议自行查看 GitHub 仓库 源码与 MIT 许可证,确认可接受其行为与依赖。

配置(可选)

若要更换 endpoint、默认尺寸、输出目录或重试策略,可在 DSH 插件配置中增加类似片段(字段含义见 README 配置表):

- id: free-image
  config:
    providers:
      - id: pollinations
        label: Pollinations (keyless)
        baseUrl: https://image.pollinations.ai/prompt
        model: ''
        maxWidth: 1024
        maxHeight: 1024
        rateLimitMs: 45000
        timeoutMs: 120000
    defaults:
      provider: pollinations
      width: 512
      height: 512
    output:
      dir: /root/work/generated/images
      maxBytes: 10485760
    retry:
      budgetMs: 90000
      maxAttempts: 3

常用默认值(未改配置时)包括:baseUrl 为 https://image.pollinations.ai/prompt;默认宽高 512;输出目录 <DSH_HOME>/generated/images;单张最大 10485760 字节;retry.budgetMs 为 90000,maxAttempts 为 3。

典型用法

在 DSH Web 或其它已加载该插件 profile 的环境中,智能体通过工具调用即可出图,无需你在对话里粘贴 Key。可先调用 list_image_models 查看当前 provider 与默认尺寸,再调用 generate_image 并传入 prompt(及可选的宽高、provider id)。具体参数以插件在 Harness 中注册的工具 schema 为准;逻辑上就是向配置的 GET 端点请求一张图并保存到 output.dir。

自建场景:将 providers[].baseUrl 指向本机或内网的生成服务(URL path 携带编码后的 prompt,响应为图片字节),即可在不使用公开端点的情况下同样免 Key 出图。

适用场景与注意

适合:本地或 Web 上的 DSH 智能体需要 occasional 配图、占位图、简单示意图,且可接受公开端点的质量与限流;或已有自建出图 HTTP 前端、希望 Agent 统一通过 generate_image 落盘。

务必知晓的限制(README「Honest limits」):

  1. 公开免费端点按 IP 限流(编写时约每 45 秒一张),可能返回 503,条款也可能变更。
  2. 画质取决于端点默认模型,插件不保证特定风格或分辨率以外的效果。
  3. Prompt 会发送到所配置的 endpoint;敏感内容不要使用公开端点,应改用自建 baseUrl。

DSH 生态强调「一切皆插件」;社区目录站点 SkillHub 插件页 与 DeepSeek / 幻方无官方从属关系,本文仅作技术介绍。

结尾

dsh-free-image 把「GET prompt 端点 → 校验 → 落盘」封装成 Harness 工具,默认免 Key、免付费账户,并对公开端点的限流做了 pacing 与重试预算处理。需要零配置试用时可按上文安装;要私有化或放宽 pacing 时,改 baseUrl 指向自建服务即可。

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

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

Xiaoye