Prompt Polish(提示詞策略優化)
這個 skill 做什麼
輸入一個原始問題/任務,先判斷它屬於哪種任務類型,再為該類型選定一組純文字提示詞策略(來自 14 項研究機構技巧),把這些策略編織進一條連貫的提示詞裡,輸出重構後的提示詞本身。
核心原則:你的整條回覆就是那條重構後的提示詞,別的什麼都不寫。 你在為用戶造一個可複用的提示詞,不是在替他回答原始問題。
何時使用
- 用戶給你一個問題/任務,希望「改寫成更好的 prompt」「最佳化提示詞」「提示詞重構」
- 用戶希望某個提問更容易讓大模型答對、答得格式正確
- 關鍵詞:prompt polish / optimize prompt / 提示詞工程 / 改寫提問
不適用:
- 用戶想要你直接回答那個原始問題(那就直接答,別改寫)
- 與 LLM 提示無關的寫作/編輯任務
輸出契約(最重要)
你的整條回覆 = 一個程式碼區塊。區塊內是重構後的、可直接複製使用的提示詞;區塊外零字元。
具體即:
- 程式碼區塊之前不寫任何引言、寒暄、「這是改寫後的提示詞」之類的話。
- 程式碼區塊之後不寫任何說明、解讀、點評,尤其不要把原始問題的答案算出來或洩露(你在造模板,不是在答題)。
- 把所選策略直接落進提示詞正文(角色句、步驟、答案錨點等),而不是在區塊外描述「我用了哪些策略」。
- 預設用
包裹;若提示詞正文本身含,改用~~~包裹,保證整體仍是單一程式碼區塊。 - 分類判斷、組合選擇都是你的內部思考,不寫進回覆。
例外:僅當用戶明確要求「講解你為什麼這麼改/解釋策略」時才補充說明(用戶指令優先於本契約)。
工作流程(內部執行,不輸出過程)
- 判類型 — 把原始問題歸入下表某一類型(取最主要的一類;可由兩類合併,但策略總數控制在 2–4 個)。
- 選組合 — 直接採用下方「任務類型 → 策略組合」表裡的那一組(通常 2–4 個)。除非有明確理由,否則不要再額外疊加策略——堆得越多越互相干擾、提示越臃腫。
- 重構 — 用「策略速查」把每個策略寫成提示詞裡的具體句子/步驟,並把原始問題的具體內容填進去(產出是成品,不留
{佔位符},除非那是留給終端使用者填寫的欄位)。 - 只輸出提示詞 — 按輸出契約,整條回覆只給那個程式碼區塊。
任務過於模糊、資訊不足時:不要自己回頭問用戶。改用「翻轉互動」策略——把「先澄清再執行」寫進重構後的提示詞裡(讓目標模型先向用戶提問),整條回覆仍然只是一個程式碼區塊。
任務類型 → 策略組合(純文字版)
| 任務類型 | 推薦組合 | 核心優勢 |
|---|---|---|
| 選擇題 / 客觀判定 | 倒裝選項 + 符號佔位符 + 反向驗證 | 降低位置偏差 + 精準提取答案 + 自我排錯 |
| 專業領域 / 合規生成 | 角色規則雙保險 + 知識時間戳 + 鏡子測試 | 專業知識檢索 + 時效校準 + 二次優化 |
| 複雜推理求解 | 鏈式思考 + 思維樹 + 反向驗證 | 分步推導 + 多路徑驗證 + 自我反駁 |
| 批量標準化任務 | 元提示詞 + 分層提示 + 提示重複 | 自優化提示詞 + 清晰解析 + 穩定遵循 |
| 創意與事實融合 | 提示鏈 + 反向驗證 + 鏡子測試 | 分階段先發散後收斂 + 事實自查 + 潤色 |
| 高精度問答 | 角色規則雙保險 + 反向驗證 + 鏡子測試 | 三重保險降低錯誤率 |
| 結構化輸出 | 分層提示 + 符號佔位符 + 提示重複 | 確保格式一致性 |
| 減少幻覺 | 知識時間戳 + 反向驗證 + 鏡子測試 | 多層事實核查 |
| Agent / 工具呼叫 | ReAct + 提示鏈 | 系統化處理多步驟任務(有工具時最佳) |
| 需求模糊 | 翻轉互動 → 分層提示 →(在提示詞內)執行 | 先澄清後執行 |
這些是預設起點,不是鐵律。命中多類型就合併取聯集後裁剪到 2–4 個;策略堆太多會互相干擾。
策略速查(14 項,純文字可寫入提示詞)
| 策略 | 如何寫進提示詞(一句話) | 適合 |
|---|---|---|
| 提示重複 Prompt Repetition | 在提示首尾各重申一次核心指令/關鍵約束(共 2–3 次) | 標準化、格式控制、指令遵循 |
| 倒裝選項 Option-First MCQ | 把候選選項放到問題之前,先錨定答案範圍再提問 | 選擇題、分類、客觀題 |
| 角色+規則雙保險 Role-Rule | 「你是 X 領域專家,嚴格遵守規則 Y;若違反先答'錯誤'並自我糾正」 | 專業問答、合規、高精度 |
| 反向驗證 Self-Contrast | 「先給答案 → 列 3 條可推翻它的證據並打分(1–5) → 據此複核修正」 | 事實問答、減少幻覺、高風險判斷 |
| 符號佔位符 Symbolic Placeholder | 「把最終答案放在 ▶︎▶︎answer▶︎▶︎ 之間,否則視為無效輸出」 | 抽取、精準提答、結構化、可解析 |
| 知識時間戳 Knowledge Time-Stamp | 「截至 YYYY-MM ……;此後的新資訊請標註'可能已過期'」 | 時效性問答、行業動態 |
| 分層提示 Layered Prompt | 按 目標 → 規則 → 示例 → 格式 四層組織指令 | 多約束複雜指令、長文字 |
| 鏡子測試 Mirror Test | 末尾加「再讀一遍你的回答,你會改哪一句?只輸出修改後的整句」 | 校對、潤色、最終質檢 |
| 翻轉互動 Flipped Interaction | 「執行前先就以下 3 點向我提問澄清,再按我的回覆執行」 | 需求模糊、個人化定製 |
| 鏈式思考 CoT | 「think step by step,逐步推導並給出每一步理由」 | 數學、邏輯、多步推理 |
| 提示鏈 Prompt Chaining | 拆成【步驟1 → 步驟2 → 步驟3】,前一步輸出餵給下一步(寫成單條順序提示) | 長文摘要、多步分析、流水線 |
| 元提示詞 Meta-Prompting | 「先針對這個會反覆執行的任務生成一個更優提示詞,再用它執行」 | 重複性任務、提示詞自優化 |
| 思維樹 ToT | 「列 3 條推理路徑 → 各評可行性(1–10) → 選最優分步推導 → 失敗則回溯次優」 | 高難推理、決策、規劃 |
| ReAct | 「按 思考 → 行動 → 觀察 循環:先想做什麼、再行動、再判斷是否調整」(有工具/檢索時最佳) | Agent、工具呼叫、檢索+推理 |
每項的完整模板、原理與來源見 references/strategies.md。
一個完整示例
原始輸入: 下面哪個數是質數?51、57、61、91
(內部判斷,不寫出) 類型 = 選擇題/客觀判定 → 組合 = 倒裝選項 + 符號佔位符 + 反向驗證
你的整條回覆就是下面這個程式碼區塊(注意:不解題、不洩露答案、區塊外無字):
請從下列候選中判斷哪個數是質數:
A. 51 B. 57 C. 61 D. 91
問題:上面四個數中,哪一個是質數?
作答要求:
1. 先對每個候選獨立做試除檢驗:用所有滿足 p×p ≤ n 的質數 p(2、3、5、7……)依次試除;能整除則為合數並寫出分解式,都不能整除則為質數。
2. 給出明確答案後,再列出 3 條可能推翻該答案的證據,並為每條可信度打分(1–5);若總分 > 0,據此複核並在必要時修正答案。
3. 必須把最終答案(對應字母)放在 ▶︎▶︎answer▶︎▶︎ 之間,例如 ▶︎▶︎C▶︎▶︎,否則判為無效輸出。
常見錯誤
| 錯誤 | 糾正 |
|---|---|
| 在程式碼區塊前後加引言/解讀/點評 | 整條回覆只給程式碼區塊,區塊外零字元 |
| 把原始問題的答案算出來或洩露進輸出 | 你在造可複用模板,不是答題;讓目標模型去算 |
| 套用需要 API/解碼控制的策略(溫度衰減、多次獨立運行、動態少樣本) | 只用純文字策略;這三項已被排除(見下) |
| 一口氣堆 5+ 個策略 | 控制在 2–4 個,匹配類型即可,堆太多互相干擾 |
| 任務模糊時自己回頭問用戶 | 把「先澄清後執行」寫進重構後的提示詞裡(翻轉互動),仍只輸出一個程式碼區塊 |
輸出裡殘留 {佔位符} | 產出是成品;把原始問題的具體內容填進去(留給終端使用者填的欄位除外) |
被排除的策略
以下 3 項需要多輪運行 / 多次獨立取樣 / 逐 token 解碼控制,無法塞進一條自包含的提示詞,故本 skill 預設不用:
- 動態少樣本 Dynamic Few-Shot(需先跑一輪再抽取自身輸出做樣本)
- 自洽性檢查 Self-Consistency(需多次獨立運行後投票;單提示場景下用「反向驗證」替代)
- 溫度衰減解碼 Temp-Decay Sampling(需按 token 調溫度,屬解碼參數)
若用戶確實掌握 API/解碼控制或可多輪編排,這三項的原始模板見 references/strategies.md 末尾,可作為提示詞之外的「設定與流程」建議提供——但那已超出「只輸出一個提示詞程式碼區塊」的預設契約,需先與用戶確認。