Skip to main content
本頁提供一個開箱即用的 Agent 技能(Skill):出圖之前先把提示詞過一遍體檢,補齊缺失要素、刪掉會拉低品質的空泛詞,再拿最佳化後的版本去出圖。整套東西就兩個檔案,零第三方依賴
出圖不滿意,八成問題出在提示詞,而不是模型或通道。這個技能把 出圖進階篇 裡講的「改寫層」做成了可以丟進任意編碼 Agent 的技能。

這個技能能做什麼

出圖前診斷

按主體 / 環境 / 光線 / 鏡頭 / 色調 / 構圖六要素逐項判定,給 0-100 分,列出風險項,輸出一條可直接複製使用的最佳化提示詞。

出圖後複診

把實際出圖連同原提示詞一起傳進去,模型看圖對照,指出提示詞裡哪一句沒有被執行、模型自作主張加了什麼,再針對性重寫。

按目標模型給建議

指定 -t 之後會追加該系列特有的提醒:參考圖上限、蒙版支援情況、解析度引數叫什麼名字。

按題材切換檢查重點

人像查膚質與光位,產品圖查背景與文字禁令,插畫則自動降低寫實系檢查的權重。

實測:一條口語提示詞的完整診斷

輸入是使用者會隨手寫的原話,外加它實際出的圖:
口語提示詞生成的咖啡圖:木桌、磨豆機、麻布袋等大量道具,杯身被模型編造了品牌名

實際出圖:這是用上面那條口語提示詞出的圖

診斷輸出(節選真實執行結果):
拿這條最佳化後的提示詞原樣重出一次,同一個模型(gemini-3-pro-image):
最佳化提示詞重出的咖啡圖:中性淺灰背景上一隻暖白陶瓷拿鐵杯,光線方向明確,投影落向右後方,畫面無任何文字,四周留白充足

按診斷給出的最佳化提示詞重出:乾淨可用的電商主圖

道具全部清掉、背景變成可控的中性灰、投影方向明確、沒有任何編造的品牌名,留白也夠放文案了。模型沒變,變的只是提示詞。

什麼時候該跑診斷

不是每次出圖都要審一遍。按需求本身的具體程度決定:
這個技能只改提示詞,不負責出圖。出圖交給 Nano Banana Pro 技能GPT-Image-2 系列技能,兩者串起來就是完整的「先審後出」流程。

能用在哪些 Agent

一個 Skill 本質上就是一個資料夾:一份寫給 Agent 看的說明(SKILL.md)+ 一個幹活的指令碼。所以凡是能讀取本地檔案、執行命令列的編碼 Agent 都能用上——比如 Codex、OpenClaw、hermes-agent、Claude Code 等。唯一要求:跑 Agent 的那臺機器裝了 Python 3 並且能聯網(指令碼要直連 api.apiyi.com)。本技能只用 Python 標準庫,不需要 pip 裝任何包

三步裝好

① 建目錄、貼檔案

新建一個技能資料夾,放入下面兩個檔案(完整內容見後兩節):
不需要 pip install 任何東西。

② 同目錄寫 Key

image-prompt-doctor/.env 裡寫上你的 API易 API Key(在 api.apiyi.com 控制台建立):
指令碼會自動從這個 .env 讀取 Key,無需任何額外配置或環境變數
.env 裡是你的金鑰。如果這個技能要隨專案倉庫共享,務必把 .env 加進 .gitignore,不要提交到 git

③ 交給 Agent

  • 支援技能自動發現的 Agent(如 Claude Code):把整個 image-prompt-doctor/ 目錄放進它的技能目錄——個人級 ~/.claude/skills/,或專案級 .claude/skills/(隨倉庫共享)。
  • 其他 Agent:按它各自的技能/外掛約定放置;或者最簡單——直接讓 Agent「讀一下這個資料夾裡的 SKILL.md,並照著執行」 即可。
裝好後就能用了,跳到 怎麼用 看示例。

SKILL.md

新建 image-prompt-doctor/SKILL.md,完整內容如下(description 寫清「做什麼 + 何時用」,Agent 會據此自動觸發):

scripts/prompt_doctor.py

新建 image-prompt-doctor/scripts/prompt_doctor.py,完整內容如下(純 Python 標準庫,無需安裝依賴):

怎麼換診斷模型

預設用 gpt-5.6-luna——便宜(輸入 $0.2 / 輸出 $1.2 每百萬 tokens)、支援影像輸入,複診模式要看圖,正好夠用。想換成別的模型有兩種方式:
換模型時注意兩點:複診模式必須選支援影像輸入的模型(純文本模型傳圖會報錯),可選清單見 視覺理解;另外指令碼用了 response_format: {"type": "json_object"},不支援該引數的模型可能返回帶程式碼圍欄的文本(指令碼已做剝離兜底,但仍以支援 JSON 模式的模型為準)。

為什麼一句話就會自動診斷

很多人好奇:我又沒敲命令,怎麼說句「幫我畫張圖」它就先去審提示詞了? 原理是這樣:Agent 啟動時會先讀取每個技能 SKILL.md 裡的 description(一段很短的後設資料,說明「這個技能做什麼、什麼時候該用」)。當你說出的需求匹配上這段描述的場景(比如「畫一張……」「這圖為什麼不對」「最佳化下提示詞」),Agent 就自動決定呼叫這個技能,去讀完整的 SKILL.md 並執行指令碼——整個過程你不用記任何命令。 SKILL.md 裡還寫明瞭「需求已經很具體時不必多此一舉」,所以它不會對每條提示詞都動手。想要百分百可控時,用下面的顯性呼叫

怎麼用

自然語言(隱式觸發)

裝好後直接對 Agent 說話即可:

顯性呼叫(更可控)

  • 支援斜槓命令的 Agent(如 Claude Code):
  • 任意 Agent / 直接命令它跑指令碼(最通用):

診斷結果在哪裡

  • 這個技能不產出檔案,結果直接列印到終端,Agent 會把它轉述給你——分數、六要素標記、風險項、最佳化後的提示詞、改了什麼、引數建議。
  • 需要把結果接進自己的程式時加 --json,輸出是一個結構化物件(score / elements / risks / optimized_prompt / changes / suggested_params),重定向落盤即可:
  • 最佳化後的提示詞需要你確認再用:改寫可能順帶改變原意(比如把「咖啡」定成了「拿鐵」),SKILL.md 裡已經要求 Agent 先問一句再出圖。
  • 複診模式傳的圖不會被修改或覆蓋,只作為只讀輸入。

成本

一次診斷的開銷是幾千 tokens 級別,按 gpt-5.6-luna 的標價折算不到一分錢,而一次 high 畫質的出圖是它的幾十倍以上。先診斷再出圖,省下的重試費用遠超診斷本身。 複診模式要傳圖,圖片按輸入 token 計費,成本略高但仍遠低於一次出圖。

相關文件