前言¶
在 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>
要點如下:
- 響應在寫入前會校驗爲
image/*。 - 超過
output.maxBytes的圖片會被拒絕,不會落盤。 - 公開免費端點按 IP 限流;插件同一時刻只發起一次調用,並在 bounded budget 內尊重端點返回的「retry after N s」。若等待時間超出
retry.budgetMs,工具會告知剩餘等待時間,而不是盲目失敗或無限重試。 - 對
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」):
- 公開免費端點按 IP 限流(編寫時約每 45 秒一張),可能返回
503,條款也可能變更。 - 畫質取決於端點默認模型,插件不保證特定風格或分辨率以外的效果。
- Prompt 會發送到所配置的 endpoint;敏感內容不要使用公開端點,應改用自建
baseUrl。
DSH 生態強調「一切皆插件」;社區目錄站點 SkillHub 插件頁 與 DeepSeek / 幻方無官方從屬關係,本文僅作技術介紹。
結尾¶
dsh-free-image 把「GET prompt 端點 → 校驗 → 落盤」封裝成 Harness 工具,默認免 Key、免付費賬戶,並對公開端點的限流做了 pacing 與重試預算處理。需要零配置試用時可按上文安裝;要私有化或放寬 pacing 時,改 baseUrl 指向自建服務即可。