Introduction

提示工程(Prompt Engineering)屬大型語言模型(Large Language Models, LLMs)的新興研究學科領域。

為何可以將提示作為一種「工程」學科?
為了將 LLMs 應用到特定領域中,常見的方法之一是透過該特定領域的知識對 LLMs 進行微調(fine-tuning)。然而,微調 LLMs 需要高品質的專業知識資料集以及用於調整模型權重的計算資源,屬於技術、資源與時間密集的任務。
而相較於手動微調模型以及需要大量訓練數據的機器學習方法相比,提示工程提供更為輕量、快速且使用自然語言無須額外撰寫代碼的解決方案。透過描述與示範的方式,提示工程可以有效地引導 LLMs 完成特定任務。
不同於日常使用 LLMs 的方式可以逐步透過試誤調整提示,當需要特定領域的應用時(包含 AI 應用程式、檔案生成、自動化流程等),透過精確的提示工程可以提高回應的準確性、穩定性與效率。

提示框架

提示框架都是被歸納整理出來**「教科書式」**的提示方法,實際上在應用中,提示的設計與調整往往是根據具體任務與需求進行的,並且需要不斷地試驗與優化以達到最佳效果。
實際上,提示框架的目的在於提供一個速記指南,在面對一個能力好的陌生人(LLMs)時,如何完整的交代任務的細節與要求,讓對方能夠理解並且完成任務。
因此,沒有特別哪個框架比較好:

  • 對於專業/生產用途:一個架構良好的提示詞可以在「第一次」就得到預期的結果,並且可「重複使用」,減少反覆修改與對話的時間與部署成本。
  • 對於日常/一般用途:AI 是聰明的陌生人,框架像是一份檢查清單,幫助使用者把它需要的背景資訊具體表達。

ICIO Framework

ICIO (Instruction-Context-Input-Output) 是一個常見的提示框架,包含以下四個步驟:

  1. Instruction (指示):明確的指示 LLMs 需要完成的任務或回答的問題。
  2. Context (背景):提供相關的背景資訊或情境,以幫助 LLMs 更好地理解任務的要求。
  3. Input (輸入):提供必要的數據或資訊,讓 LLMs 能夠基於這些資訊進行推理或生成回應。
  4. Output (預期輸出):明確指定期望的回應格式或內容,以確保 LLMs 的回應符合需求。

CRISPE Framework

CRISPE 是一個普遍用於提示工程的框架,包含以下五個步驟:

  1. Capacity and Role (能力與角色):從一開始就明確定義 LLMs 的角色或能力,有助於提示 LLMs 如何進行應對。
  2. Insight (洞察):在此步驟中提供必要的背景知識或上下文資訊,以幫助 LLMs 準確、適當的回應。
  3. Statement (陳述):此步驟為提示的核心,需具體的提示 LLMs 需要作什麼任務。
  4. Personality (個性):在此步驟中,提示 LLMs 的回應應給其回應產生何種印象。有助於添加更多的人性化元素(如語氣、風格、態度)。
  5. Experiment (實驗):提供需要的回應形式,並且可以要求數個回應(如格式或是提供數個方案供比較選擇)。

其他提示框架

  • APE:Action (行動) – Purpose (目的) – Execution (執行結果)
  • TAG:Task (任務) – Action (行動) – Goal (目標)
  • CARE:Context (背景) – Action (行動) – Result (結果) – Example (範例)
  • RACE:Role (角色) – Action (行動) – Context (背景) – Explanation (解釋)
  • COAST:Context (背景) – Objective (目標) – Actions (行動) – Scenario (情境) – Task (任務)
  • ROSES:Role (角色) – Objective (目標) – Scenario (情境) – Expected Solution (期望解決方案) – Steps (步驟)
  • CREATE:Character (角色) – Request (請求) – Examples (範例) – Adjustment (調整說明) – Type of Output (輸出類型) – Extras (附加資訊)

模型參數

響應的 Token 數量限制(Output length)

輸出的 Token 一般不會影響產出的風格與性能,但越多的輸出需要更高的響應時間和成本。

取樣控制參數

LLM 模型透過過去的 Token 預測下一個可能的可能出現 Token 的=機率=。因此,不一定是選擇最高機率的輸出,透過取樣控制可以調整模型輸出的隨機性與自由度,產生更加多元或受限的輸出。
備註:以下三種模型取樣控制參數可一併使用,得到較精確的微調模型成果。

Temperature

由於 LLM 基於機率隨機選擇下一個 Token,透過不一定選擇機率最高的輸出使其輸出豐富。 Temperature 參數類似 softmax 函數,當越接近 1 時,所有 Token 的出現機率越相近(都有可能被選到);而越接近 0 時,趨近於只有出現機率最高的 Token 會被選擇(當 Temperature == 0 時,仍可能因最高機率相同而產生不同的輸出)。

Top-K & Top-P

  • Top-K:只從出現機率最高的 K 個 Token 中選擇。
  • Top-P:從出現機率最高的 Token 中只從最高機率向下累積小於 K 機率的 Token 中選擇。

提示技巧

零樣本提示(Zero-Shot Prompting)

零樣本提示,指在提示不包含範例或演示的情況下,僅透過任務描述直接指導模型完成特定任務。在此情況下,任務的成功與否取決於 LLMs 的初始能力以及提示的描述。類似於提示沒有任何專業技術與背景知識的人完成特定任務,缺乏先備知識的情況下對於問題的理解與解決能力將會受到挑戰。

常見的零樣本提示應用舉例:

  • 翻譯
  • 問答
  • 分類

少樣本提示(Few-Shot Prompting)

透過給予 LLMs 少量範例或演示(通常在 1~3 個範例左右),可能有助於模型更好的由上下文理解任務的本質,以提高回應的準確性。相較於零樣本提示,少樣本提示一般在解決特定任務時會有更好的表現。
然而,再增加更多範例不一定能夠提高模型的性能,不僅大幅增加輸入 LLMs 前後文的 Token 數量使得運行成本增加,同時也容易使模型困惑。
而少樣本提示的成功與否不僅取決於範例的品質,與零樣本提示相同,先備知識的缺乏將會對模型的表現產生影響。且對於推理、邏輯等複雜任務,少樣本提示與零樣本提示的性能仍受限。

退步提示(Step-back Prompting)

透過二階段的提示,於第一個階段歸納重要性議題,第二階段提示模型根據重要性議題進行回覆。

思維鍊提示(Chain-of-Thought Prompting, CoT)

思維鍊提示透過鼓勵 LLMs 「逐步思考」產生一系列推理式的回應。透過系統性的將特定任務分解為一系列的子任務模仿人類逐步思考問題以獲取答案的過程,提高生成的回應的準確性與連貫性。
為了提升回應的準確率,Temperature 應設為 0。

自我一致性(Self-consistency)

透過結合抽樣與投票,提升回應的正確率。通常遵循以下步驟:

  1. 透過高 Temperature 設定讓模型產生指定數量的多樣推理。
  2. 從回應提取答案。
  3. 投票選擇最常見的答案。

思維樹提示(Tree-of-Thought Prompting, ToT)

思維樹提示是思維鍊提示的進階版本,透過樹狀結構將任務分解為更多的子任務,以更細緻的方式引導 LLMs 進行推理。思維樹提示有助於更好地控制 LLMs 的生成過程,提高回應的準確性與連貫性。
使用思維樹提示時,如同思維鍊提示,需要確定每個子任務的描述清晰明確。而思維樹提示則透過定義更多的候選人執行子任務的方式對子任務的結果進行採樣比較,以提高回應的品質。

ReAct(reason & act)

透過結合外部工具,讓 LLM 先建立策略,再透過逐步執行與外部工具調用取得結果,再透過對結果的推理判斷執行策略,以迴圈重複執行直到產生解決方案。

現代日常提示技巧

2026/04/17

以上提示技巧主要適用於系統、流程或是專業領域的開發應用,需要每次給予 LLMs 明確的提示以獲得特定的回應。
日常生活中,仍多是用對話式或內嵌式的方式與 LLMs 互動,透過不斷的試誤來調整提示以獲得更好的回應。特別在於當今的對話式或內嵌式的 LLMs 不僅具備了舊有的語言能力,多模態 (Multimodal, 指能處理多種形式的輸入與輸出,如圖像、音頻等) 與工具使用能力 (Tool use, 指能夠調用外部工具如計算機、Python 執行環境、網路搜尋等),因此在日常使用中,提示技巧的應用也更加多樣化與靈活。

日常提示的核心原理

日常提示的核心原理在於「引導 LLMs 以特定方式思考與回應」,而非僅僅是提供任務指令。因為日常提示與前一章的 Prompt Engineering 有根本上的不同,因為 LLM 模型本身不會主動學習,前一章的 Prompt Engineering 是直接與 LLMs 互動,提供給模型我們客製化的所有必要的資訊與指令以獲得特定的回應。 而日常提示則將許多功能進行整合以符合大眾日常使用的習慣,我們透過提供更多資訊給模型。包含:

  • 系統提示 (System prompt):在對話式或內嵌式的 LLMs 中,系統提示是預先設定的提示,通常用於定義模型的角色、行為或是回應風格(通常在使用者設定可以設定回應風格等等,就是在系統提示中設定的。而大多服務提供商都已經針對不同的使用情境預設了系統提示,使用者一般看不到)。包含角色設定、回應風格設定、行為規則設定等。
  • 工具使用提示 (Tool use prompt):當 LLMs 具備工具使用能力時,工具使用提示用於指導模型如何調用外部工具以完成特定任務。包含工具調用指令、工具使用規則、工具選擇提示等。
  • 使用者記憶提示 (User memory prompt):如果使用者有開啟記憶功能,LLM 會將使用者給它過的資訊進行摘要作為記憶,並且在後續的提示中將這些記憶作為上下文資訊提供給模型,以幫助模型更好地理解使用者的需求與偏好。(所以,不要產生這些 LLM 很貼心都幫你記住的幻覺,這些都是你自己給它的資訊,並且它只是幫你做了摘要然後你每次傳訊息給它的時候都在複述這些資訊給它,這些資訊的品質與準確性完全取決於你提供的資訊。
  • 該輪對話紀錄與工具調用響應:在對話式的 LLMs 中,只要在這個聊天室中,模型就會將之前的對話紀錄作為上下文資訊提供給模型,以幫助模型更好地理解當前的對話內容與使用者的需求。如果 LLMs 具備工具使用能力,當模型調用外部工具後,工具的響應也會作為上下文資訊提供給模型,以幫助模型更好地理解工具的結果並且進行後續的回應。
  • 檢索文檔:有些服務可以讓模型從外部知識庫中提取最新資訊(RAG),補足模型的知識截止日期與特定領域的知識缺口。
  • 思考流程:現今模型多已經內建了思維鏈框架,在思維鏈中先進行 todo 的規劃、子任務的處理等再回應使用者。
  • 使用者輸入提示 (User input prompt):最後才是使用者的輸入提示,這是使用者每次與模型互動時提供的直接提示,包含具體的問題、指令或是需求等。

因此,日常提示的核心原理在於透過上述多種提示方式的結合,引導 LLMs 以特定方式思考與回應,以滿足使用者的需求與偏好。這些提示方式的有效結合可以大幅提升 LLMs 的回應品質與使用者體驗。

個人的日常提示技巧

在我的日常生活中,主要有幾個日常的策略來提升 LLMs 的回應品質與使用者體驗:

  1. 提供具體的背景資訊:在與 LLMs 互動時,我會盡量提供具體的背景資訊,以幫助模型更好地理解我的需求與偏好。像是在寫程式時,我預想的程式碼的結構與功能,或是在寫文章時,我預想的文章的結構與內容等等。
  2. 最佳化搜尋提示:儘管 LLMs 能夠從多輪對話中逐漸理解我的需求,但我仍然會盡量在第一次提示時就提供足夠的資訊,以減少後續的試誤過程。因此,如果當第一次提示的回應不符合我的預期,我會回頭重複根據模型對我的誤解來調整我的提示,讓模型能夠更好地理解我的需求。(這同時讓我的對話紀錄變得很像 Beam Search 演算法生成的決策樹)
    主要考量目前多數的模型在處理長文本時仍然存在理解與記憶的限制,會將注意力特別集中在系統提示與當前的提示上,中間且冗長的對話紀錄與工具調用響應則不一定能夠被模型完全理解與記住。
    特別在當前提示與回應的互動中,輸入模型的 Token 數量越來越多。也因此開發了許多提示壓縮的技術(如提示摘要、提示重寫、提示優化等)來幫助模型更好地理解與記住提示的內容。然而,最容易被吃掉的,當然是那些冗長的對話紀錄與工具調用響應了。
    試想一下,如果我給你一整本流體力學的教科書,然後問你一個問題,你不太可能從這本教科書中找到答案,因為你不太可能完全理解這本教科書的內容並且記住它的細節。你會根據書名是流體力學、以及你對流體力學的基本理解來回答我的問題,頂多再加上看一下這本書的目錄或是章節標題來幫助你回答我的問題。
  3. 複述關鍵要求:如第二點所述,多數模型最關注的是開頭與結尾的提示,因此,對於複雜的請求,我會於提示的結尾再次提醒模型關於我要的回應相關注意事項,以確保模型能夠理解並且遵守這些要求。
  4. 意識模型的不確定性:意識 LLMs 的產出是基於大數據與機率的結果,任何的輸出只要是輸出機率最高的對於 LLMs 來說都是正確的,其不具實質穩定判定是非對錯的能力。基於此討論,個人對於複雜問題會同時提問給多種模型,做為不同視角的參考。而如果可以腳本化的程序,則會與其共構一套腳本化的系統,最小化本質不確定性

References

  1. Lee, B. (2025). Prompt Engineering. https://drive.google.com/file/d/1AbaBYbEa_EbPelsT40-vj64L-2IwUJHy/view
  2. DAIR.AI. (2024). Prompt Engineering Guide. https://www.promptingguide.ai/
  3. Fatih Kadir Akın (2026). The Prompting Book: A Guide to Crafting Clear and Efective Prompts (2nd Edition). https://prompts.chat/book