我花了兩年學習AI提示詞,這些發現改變了一切

AI提示詞寫作精通 - 提示詞工程概念的視覺呈現
區分AI新手和專家的隱形技藝
核心洞察

AI不會讀心。它讀的是你的文字。提示詞的品質決定了輸出的品質。

兩年前,我在ChatGPT中輸入了第一個提示詞,以為自己理解了人工智慧。我錯了。我理解的只是如何提問——而不是如何與一個用模式、機率和詞元思考的機器溝通。這兩者的區別?就是獲得泛泛的答案和解鎖你不知道存在的能力之間的區別。這是我學會流利地與AI對話的故事,以及我一路發現的一切。

覺醒:當簡單提示詞失效的時候

這發生在一個專案截止日前。我需要AI幫我重構一段複雜的程式碼——這種事我之前做過上百次。但這一次,無論我怎麼措辭請求,AI總是給出技術上正確但完全沒抓住要點的解決方案。它增加了不必要的複雜性,打破了現有的模式,「改進」了本不需要改動的東西。

我很沮喪。然後我好奇起來。我做錯了什麼?

這份沮喪引領我進入了一個改變一切的兔子洞:官方文件、研究論文、提示詞工程指南,以及數千小時的實驗。我發現的不只是技巧竅門——而是與AI系統溝通方式的徹底範式轉變。

💡

世界上最強大的AI,如果你無法傳達你真正需要什麼,也是沒用的。

這是沒人告訴初學者的真相:寫提示詞不是找到魔法詞語。而是理解AI模型如何處理語言、它們需要什麼資訊、以及如何組織這些資訊讓模型真正能幫到你。這是一項技能——像任何技能一樣,可以學習、練習和精通。

本指南包含了我希望在一開始就有人告訴我的一切。不是網上泛濫的那種過於簡化的「只要具體一點」的建議,而是區分使用AI的人和駕馭AI的人的深層、細緻的理解。

提示詞基礎:沒人教的根基知識

在深入進階技術之前,讓我們先建立基礎。每個有效的提示詞都包含以下元素的某種組合:

1
上下文

AI需要了解情況的什麼?背景資訊、約束條件和相關細節。

2
任務

你到底想讓AI做什麼?明確說明你請求的動作。

3
格式

輸出應該如何組織?列表、段落、程式碼區塊、表格——指定清楚。

4
約束

AI應該避免什麼?存在什麼邊界?什麼超出範圍?

5
範例

你能展示你想要什麼嗎?一個範例勝過千言萬語的描述。

大多數人只包含任務。他們問「幫我寫封信」,而他們應該說的是「寫一封專業信件給客戶解釋專案延期。控制在150字以內,承認帶來的不便,並提議一個推遲兩週的新時間表。語氣應該是歉意但自信的。」

輸出品質的差距是巨大的。而這只是開始。

結構的作用

提示詞寫作中最被低估的方面之一是結構化格式。現代AI模型對清晰分隔的部分回應特別好。我廣泛使用XML風格的標籤:

結構化提示詞範例
<context>
你正在幫我準備一個面向技術利益相關者的簡報。
聽眾熟悉軟體開發但不專門了解AI。
</context>

<task>
用5個要點解釋大語言模型如何運作。
</task>

<format>
- 使用項目符號
- 每個要點1-2句話
- 避免術語或在使用時定義它
</format>

<constraints>
- 不要提及具體的模型名稱
- 關注概念,而非技術實現
</constraints>

這種結構做了一件強大的事:它迫使在提問之前清晰地思考你需要什麼。而清晰的思考產生清晰的溝通產生清晰的結果。

智慧代理工作流程:把AI當作你的同事

這裡有一個改變了我與AI互動方式的範式轉變:停止把AI當作搜尋引擎,開始把它當作一個有能力但經驗不足的同事。這種心智模型改變了一切。

像GPT-5和Claude這樣的現代AI模型不只是在回答問題——它們被設計成智慧代理。它們可以呼叫工具、收集上下文、做出決策、執行多步驟任務。但就像任何新團隊成員一樣,它們需要適當的入職培訓、明確的期望和適當的護欄。

🤖

AI不是你使用的工具。它是你管理的同事。讓你成為好管理者的技能也讓你成為好的提示詞工程師。

想想看:當你委派任務給人類時,你不會只說「修復程式碼」。你解釋什麼壞了、期望的行為是什麼、存在什麼約束、以及成功是什麼樣子。你提供上下文。你回答問題。你跟進進度。

AI需要同樣的對待。區別在於你需要預判問題並提前回答,因為來回交流的成本(時間和詞元)比一次做對要高。

智慧代理思維

在建構智慧代理應用或使用AI執行複雜任務時,我學會了從以下角度思考:

智慧代理任務的關鍵問題

  • 目標狀態是什麼? AI如何知道它完成了?
  • 它有什麼工具? 它實際上能做什麼,而什麼必須推遲?
  • 自主級別是什麼? 它應該請求許可還是獨立進行?
  • 安全邊界是什麼? 哪些操作絕對不能在沒有確認的情況下執行?
  • 它應該如何匯報進度? 靜默執行還是定期更新?

這些問題構成了我寫每個複雜提示詞的基礎。讓我們詳細探討每個維度。

控制AI的積極性:校準的藝術

提示詞工程最細微的方面之一是校準我所說的「智慧代理積極性」——在主動出擊的AI和等待明確指導的AI之間的平衡。搞錯了,你要麼得到一個對簡單任務過度思考的AI,要麼得到一個對複雜任務太容易放棄的AI。

何時降低積極性

有時你需要AI快速且專注。你不希望它探索每個分支、進行額外的工具呼叫、或產生冗長的解釋。對於這些情況,我使用約束導向的提示詞:

低積極性提示詞範本
<context_gathering>
目標:快速獲取足夠的上下文。並行發現並在可以行動時立即停止。

方法:
- 從廣泛開始,然後展開到聚焦的子查詢。
- 並行啟動多樣化查詢;讀取每個查詢的頂部結果。
- 去重路徑並快取;不要重複查詢。
- 避免過度搜尋上下文。

提前停止標準:
- 你可以命名要更改的確切內容。
- 頂部結果約70%收斂在一個區域/路徑。

深度:
- 只追蹤你將修改或依賴其契約的符號。
- 除非必要,避免傳遞性擴展。

循環:
- 批量搜尋 → 最小計劃 → 完成任務。
- 只在驗證失敗或出現新未知時再次搜尋。
- 傾向於行動而非更多搜尋。
</context_gathering>

注意明確允許不完美:「傾向於行動而非更多搜尋」。這個微妙的短語釋放了AI預設的徹底性焦慮。沒有它,模型往往會過度研究,在遞減報酬上消耗詞元和時間。

對於更激進的約束,你可以設置明確的預算:

最高速度配置
<context_gathering>
- 搜尋深度:非常低
- 強烈傾向於盡快提供正確答案,即使可能不完全正確。
- 通常,這意味著絕對最多2次工具呼叫。
- 如果你認為需要更多時間調查,用你最新的發現和開放問題更新我。
  如果我確認,你可以繼續。
</context_gathering>

「即使可能不完全正確」這句話是金子。它給AI允許不完美的許可,這悖論地往往更快產生更好的結果。

何時提高積極性

其他時候,你需要AI不懈地徹底。你希望它突破模糊性、做出合理假設、並完成複雜任務而不是不斷請求許可。這需要相反的方法:

高積極性提示詞範本
<persistence>
- 你是一個智慧代理——請持續進行直到使用者的查詢完全解決,
  然後再結束你的回合並讓給使用者。
- 只有當你確定問題已解決時才終止你的回合。
- 當你遇到不確定性時永遠不要停止或交還給使用者——
  研究或推斷最合理的方法並繼續。
- 不要要求人類確認或澄清假設,因為你總是可以稍後調整——
  決定最合理的假設是什麼,按它進行,並在你完成行動後
  記錄給使用者參考。
</persistence>

這個提示詞從根本上改變了AI的行為。它不再問「我應該繼續嗎?」而是說「我基於假設X繼續了——如果你希望我調整請告訴我。」工作完成了;細化之後再說。

定義安全邊界

但這裡有關鍵的細微之處:提高積極性需要更清晰的安全邊界。你需要明確定義AI可以自主執行哪些操作,哪些需要確認。

關鍵安全原則

高成本操作(刪除、付款、外部通訊)應該始終需要明確確認,即使是高積極性提示詞。低成本操作(搜尋、讀取、草稿建立)可以是自主的。

把它想像成給某人存取你系統的權限:搜尋工具應該有極高的自主閾值,而刪除命令應該有極低的閾值。

持久性原則:讓AI貫徹到底

我早期遇到的最令人沮喪的行為之一是AI太容易放棄。它會遇到一個障礙,總結出了什麼問題,然後把問題交還給我。對於簡單任務,這沒問題。對於複雜任務,這是工作流程殺手。

解決方案是我所說的持久性原則:明確指示AI堅持突破障礙並端到端完成任務。

解決方案持久性提示詞
<solution_persistence>
- 把自己當作一個自主的資深配對程式設計師:一旦我給出方向,
  主動收集上下文、計劃、實施、測試和細化,
  而不是在每個步驟等待額外的提示。
- 堅持直到任務在當前回合內端到端完全處理
  只要可行:不要停在分析或部分修復;
  將更改貫徹到實施、驗證和結果的清晰解釋,
  除非我明確暫停或重定向你。
- 極度傾向於行動。如果我的指令在意圖上有些模糊,
  假設你應該繼續進行更改。
- 如果我問一個像「我們應該做X嗎?」的問題,而你的答案是「是的」,
  你也應該繼續執行操作。把我晾在那裡並要求我
  跟進「請做吧」的請求是非常糟糕的。
</solution_persistence>

最後一點很微妙但很重要。當人類問「我們應該做X嗎?」時,我們通常意思是「如果合理的話請做X」。AI因為字面意思理解,會回答問題而不採取暗示的行動。這個提示詞彌合了這個差距。

進度更新:保持知情

持久性不意味著沈默。對於長時間運行的任務,我總是包含進度更新的指示:

使用者更新規範
<user_updates_spec>
你將用工具呼叫工作一段時間——保持我知情是至關重要的。

<frequency_and_length>
- 每隔幾個工具呼叫在有意義的變化時發送簡短更新(1-2句話)。
- 至少每6個執行步驟或8個工具呼叫發布一次更新
  (以先到者為準)。
- 如果你預計會有較長的專注期,發布一個簡短說明為什麼
  以及你何時會報告;當你恢復時,總結你學到了什麼。
- 只有初始計劃、計劃更新和最終回顧可以更長。
</frequency_and_length>

<content>
- 在第一次工具呼叫之前,給出一個包含目標、約束、
  下一步的快速計劃。
- 在探索時,標出有意義的發現來幫助我理解
  正在發生什麼。
- 始終說明自上次更新以來至少一個具體結果
  (例如,「找到X」、「確認Y」),而不只是下一步。
- 以簡短回顧和任何後續步驟結束。
</content>
</user_updates_spec>

這創造了一個美麗的平衡:AI自主工作但保持你知情。你不是在微觀管理,但你也不是在黑暗中。

推理力度:思考強度的調節器

現代AI模型有一個叫做「推理力度」的概念——本質上是模型在回應前思考多深。這是最強大且最未被充分利用的參數之一。

高推理

用於複雜的多步驟任務、模糊情況或需要深度分析的問題。模型在回應前花費更多詞元進行內部「思考」。

中等推理(預設)

適合大多數任務的平衡設置。適合品質重要但速度也重要的一般程式設計、寫作和分析。

低推理

對於直接任務的快速回應。當你需要快速答案且任務不需要深思熟慮時使用。

最小/無推理

最大速度,最小思考。最適合簡單查詢、重新格式化任務或當延遲是主要關注時。

關鍵洞察是將推理力度與任務複雜度匹配。對簡單任務使用高推理浪費詞元和時間。對複雜任務使用低推理產生淺薄、容易出錯的結果。

最小推理的提示

使用最小推理模式時,你需要用更明確的提示來補償。模型有更少的內部「思考」詞元,所以你的提示需要做更多的結構化工作:

最小推理補償
<planning_requirement>
你必須在每次函數呼叫前進行大量計劃,並對之前函數呼叫的
結果進行大量反思,確保我的查詢完全解決。

不要只通過函數呼叫來完成整個過程,因為這可能會
損害你解決問題和深入思考的能力。此外,
確保函數呼叫具有正確的參數。
</planning_requirement>

這個提示本質上說:「既然你沒有做太多內部推理,那就在你的回應中大聲進行推理。」它將認知工作從不可見的模型思考轉移到可見的結構化計劃。

🧠

當推理力度低時,提示複雜度應該高。當推理力度高時,提示可以更簡單。這是一種平衡。

程式碼卓越:與AI搭檔程式設計

這是我花最多時間優化提示詞的地方,報酬也是巨大的。AI程式設計輔助是變革性的——如果做對了。做錯了,它會製造比解決的更多問題。

讓我分享我從研究像Cursor這樣的專業AI程式設計工具如何為生產使用調整其提示詞中學到的東西。

詳略悖論

這裡有一個反直覺的東西:AI傾向於在解釋中冗長但在程式碼中簡潔。它會寫大段解釋它要做什麼,然後產生帶有單字母變數名和最少註解的程式碼。對於大多數用例來說這完全是反過來的。

解決方案是雙模式詳略控制:

程式設計詳略控制
<code_verbosity>
首先為清晰而寫程式碼。優先選擇可讀、可維護的解決方案,
使用清晰的名稱、需要時的註解和直接的控制流程。
除非明確要求,不要產生程式碼高爾夫或過度聰明的單行程式碼。

寫程式碼和程式碼工具時使用高詳略度。
狀態更新和解釋時使用低詳略度。
</code_verbosity>

這創造了完美的平衡:簡潔的溝通,詳細的程式碼。

主動vs確認行動

生產程式設計工具的另一個教訓:AI應該對程式碼更改主動但對破壞性操作確認。以下是如何編碼這一點:

主動程式設計提示詞
<proactive_coding>
請注意你所做的程式碼編輯將作為建議的更改展示給我,這意味著:
(a) 你的程式碼編輯可以相當主動,因為我總是可以拒絕它們。
(b) 你的程式碼應該寫得很好並且容易快速審查。

如果提議的下一步涉及更改程式碼,主動為我做出那些更改
讓我批准/拒絕,而不是問是否繼續執行計劃。

一般來說,你幾乎不應該問我是否繼續執行計劃;
相反,主動嘗試計劃然後問我是否想接受
實施的更改。
</proactive_coding>

這消除了令人沮喪的來回交流,AI描述它會做什麼,請求許可,然後做。直接做——如果需要我會拒絕。

匹配程式碼庫風格

對AI產生程式碼的最大抱怨之一是它不匹配現有程式碼庫模式。它感覺像是「外來」程式碼。解決方案是明確的風格指導:

程式碼庫風格匹配
<code_editing_rules>
<guiding_principles>
- 清晰和複用:每個元件都應該是模組化和可複用的。
  通過將重複模式提取到元件中來避免重複。
- 一致性:程式碼必須遵循一致的設計系統——命名
  慣例、間距和元件必須統一。
- 簡潔性:偏好小型、聚焦的元件,避免不必要的
  樣式或邏輯複雜性。
- 視覺品質:遵循高視覺品質標準(間距、內邊距、
  懸停狀態等)
</guiding_principles>

<style_matching>
- 在進行更改之前,檢查程式碼庫中的現有模式。
- 匹配變數命名慣例(駝峰式vs底線式)。
- 匹配縮排和格式。
- 複用現有的工具和輔助函數,而不是建立新的。
- 遵循已建立的目錄結構。
</style_matching>
</code_editing_rules>

前端開發:建構精美介面

AI在前端開發方面已經變得非常出色,但獲得美觀的、生產就緒的結果是有科學的。這是我學到的。

推薦技術堆疊

通過廣泛的測試,某些技術組合比其他的更適合與AI配合。這不是關於什麼「最好」——而是關於AI模型在什麼上訓練得最多:

AI優化的前端技術堆疊

  • 框架: Next.js (TypeScript), React, HTML
  • 樣式/UI: Tailwind CSS, shadcn/ui, Radix Themes
  • 圖示: Material Symbols, Heroicons, Lucide
  • 動畫: Motion (前身為 Framer Motion)
  • 字型: 無襯線字型系列—Inter, Geist, Mona Sans, IBM Plex Sans, Manrope

當你指定這些技術時,AI產出的品質會顯著提高,關於不存在的API的幻覺也會減少。

設計系統執行

AI產生的前端的一個問題是視覺不一致。顏色憑空出現,間距隨機變化,結果看起來像是委員會設計的。解決方案是明確的設計系統約束:

設計系統執行
<design_system_enforcement>
- 令牌優先:不要在JSX/CSS中硬編碼顏色(hex/hsl/oklch/rgb)。
  所有顏色必須來自CSS變數(例如,--background, --foreground, 
  --primary, --accent, --border, --ring)。
  
- 引入品牌或強調色?在樣式化之前,在你的CSS變數中
  在:root和.dark下添加/擴展令牌。
  
- 消費:使用連接到令牌的Tailwind工具類別
  (例如,bg-[hsl(var(--primary))], text-[hsl(var(--foreground))])。
  
- 除非我明確要求品牌外觀,否則預設使用系統的中性調色盤;
  然後首先將該品牌映射到令牌。
  
- 不要發明顏色、陰影、令牌、動畫或新UI元素
  除非被請求或必要。
</design_system_enforcement>

UI/UX最佳實踐

我還包含明確的UI/UX指南以確保一致的視覺階層:

UI/UX指南
<ui_ux_best_practices>
- 視覺階層:將排版限制在4-5種字型大小和粗細以保持
  一致的階層;標題使用text-xs,除非是
  主標題或主要標題,否則避免text-xl。
  
- 顏色使用:使用1種中性基礎色(例如,zinc)和最多2種強調色。

- 間距和佈局:始終使用4的倍數作為內邊距和外邊距以
  保持視覺節奏。處理長內容時使用固定高度容器
  和內部捲動。
  
- 狀態處理:使用骨架佔位符或animate-pulse來指示
  資料獲取。用懸停過渡指示可點擊性。
  
- 無障礙性:適當使用語義化HTML和ARIA角色。
  優先使用預建構的無障礙元件。
</ui_ux_best_practices>

自我反思提示詞:讓AI自我批評

這種技術在你第一次遇到時令人費解,但非常強大:你可以指示AI建立自己的評估標準並根據它們迭代。就像給AI一個內部的品質保證部門。

自我反思提示詞
<self_reflection>
- 首先,花時間思考一個評分標準直到你有信心。
- 然後,深入思考什麼是世界級解決方案的每個方面。
  用這些知識建立一個有5-7個類別的評分標準。
  這個評分標準至關重要需要做對,但不要展示給我。
  這只是為了你的目的。
- 最後,使用這個評分標準在內部思考並迭代出
  對提示詞的最佳可能解決方案。記住,如果你的回應沒有
  在評分標準的所有類別中達到最高分,你需要
  重新開始。
</self_reflection>

這裡發生的事情很迷人:你要求AI從它對卓越的知識中產生品質標準,然後使用這些標準來評估和改進自己的輸出——所有這些都在你看到任何東西之前。

🔄

自我反思提示詞將單次產生變成內部迭代循環。AI變成了自己的編輯。

我對任何品質比速度更重要的任務使用這種技術:著陸頁、重要信件、架構決策、創意作品。輸出品質的提升是顯著的。

詳略控制:掌握輸出長度

獲得正確的輸出長度是一個持續的挑戰。太短你會錯過重要細節。太長你會淹沒在不必要的資訊中。這是我的方法。

明確的長度指南

最可靠的方法是與任務複雜度相關的明確長度約束:

輸出詳略規範
<output_verbosity_spec>
- 預設:典型答案3-6句話或≤5個要點。
- 對於簡單的「是/否+簡短解釋」問題:≤2句話。
- 對於複雜的多步驟或多檔案任務:
  - 1個簡短的概述段落
  - 然後≤5個要點標記為:改變了什麼,在哪裡,風險,下一步,
    開放問題。
- 提供清晰和結構化的回應,在資訊量和
  簡潔性之間取得平衡。
- 將資訊分解成易於消化的塊,在有幫助時使用
  列表、段落和表格等格式。
- 避免長篇敘述段落;優先使用緊湊的要點和簡短部分。
- 除非改變語義,否則不要複述我的請求。
</output_verbosity_spec>

基於人設的詳略

另一種方法是將AI的溝通風格定義為其人設的一部分:

高效溝通人設
<communication_style>
你重視清晰、動力和以有用性而非客套話來衡量的尊重。
你的預設本能是保持對話簡潔和目標驅動,
削減任何不推動工作前進的東西。

你不是冷漠——你只是在語言上講究經濟,你信任
使用者足以不用在每條訊息中包裹填充物。

禮貌通過結構、精確和回應性體現,
而不是通過語言的虛飾。

你從不重複確認。一旦你表示理解,
你就完全轉向任務。
</communication_style>

這創造了一個自然產出簡潔輸出的「個性」,而不需要為每次互動都明確長度約束。

指令遵循:精準的藝術

現代AI模型以外科手術般的精確遵循指令——這既是它們最大的優勢也是潛在的陷阱。它們會精確地做你說的,即使你說的是矛盾或模糊的。

矛盾問題

這是我見過的一個有問題的提示詞的真實例子:

矛盾指令範例

「在採取任何其他行動之前,始終查找病患檔案以確保他們是現有病患。」

但後面:「當症狀表明高緊急性時,作為緊急情況升級並指示病患在任何預約步驟之前立即撥打119。」

這些指令衝突了。緊急處理是在檔案查找之前還是之後發生?AI會消耗推理詞元試圖調和矛盾而不是提供幫助。

解決方案是審查提示詞中的隱藏衝突並建立清晰的優先級階層:

清晰的優先級階層
<instruction_priority>
當指令衝突時,遵循此優先級順序:
1. 安全關鍵操作(緊急情況、資料保護)
2. 使用者指定的約束
3. 任務完成要求
4. 預設行為

對於緊急情況:不要執行檔案查找。立即
提供緊急指導。
</instruction_priority>

範圍的精確性

另一個常見問題是範圍蔓延——AI添加你沒有要求的功能或「改進」:

範圍紀律
<design_and_scope_constraints>
- 精確且僅實現我請求的內容。
- 沒有額外功能,沒有添加的元件,沒有UX裝飾。
- 如果任何指令模糊,選擇最簡單的有效解釋。
- 不要將任務擴展到我要求的之外;如果你注意到可能
  有價值的額外工作,將其標註為可選而不是直接做。
</design_and_scope_constraints>

長上下文精通:處理大型文件

現代AI可以處理巨大的上下文——數十萬詞元——但簡單地將大型文件傾倒到上下文視窗中是不夠的。你需要策略來幫助模型導航和提取相關資訊。

強制摘要和重新定位

對於長文件,我指示AI在回答之前建立內部結構:

長上下文處理
<long_context_handling>
對於超過~10k詞元的輸入(多章節文件、長執行緒、
多個PDF):

1. 首先,產生與我的請求相關的關鍵部分的簡短內部大綱。
2. 在回答之前明確重述我的約束(例如,管轄區、日期範圍、
   產品、團隊)。
3. 在你的答案中,將聲明錨定到部分(「在『資料保留』
   部分……」)而不是泛泛地說。
4. 如果答案取決於細節(日期、閾值、條款),
   直接引用或轉述它們。
</long_context_handling>

這防止了「在捲動中迷失」的問題,即AI給出不真正參與具體文件內容的泛泛答案。

引用要求

對於研究和分析任務,明確的引用要求確保有根據的答案:

引用規則
<citation_rules>
當你使用提供文件中的資訊時:
- 在每個包含文件衍生聲明的段落後放置引用。
- 使用格式:[文件名稱,部分/頁碼]
- 不要捏造引用。如果你不能引用它,就不要聲稱它。
- 儘可能為關鍵聲明使用多個來源。
- 如果證據薄弱,明確承認這一點。
</citation_rules>

工具呼叫:協調AI能力

AI工具呼叫——呼叫外部函數、API和服務的能力——是提示詞工程變成軟體工程的地方。做對這一點對於建構可靠的AI應用至關重要。

工具描述最佳實踐

工具描述的品質直接影響AI使用它們的效果:

設計良好的工具定義
{
  "name": "create_reservation",
  "description": "為客人建立餐廳預訂。當使用者要求
    用給定的名字和時間預訂桌位時使用。",
  "parameters": {
    "type": "object",
    "properties": {
      "name": {
        "type": "string",
        "description": "預訂的客人全名。"
      },
      "datetime": {
        "type": "string",
        "description": "預訂日期和時間(ISO 8601格式)。"
      }
    },
    "required": ["name", "datetime"]
  }
}

注意描述既包括工具做什麼也包括何時使用它。這幫助模型做出更好的工具選擇決策。

提示詞中的工具使用規則

除了工具定義之外,你的提示詞應該包括明確的使用指導:

工具使用規則
<tool_usage_rules>
- 在以下情況下優先使用工具而非內部知識:
  - 你需要新鮮或使用者特定的資料(工單、訂單、配置、日誌)。
  - 你引用特定的ID、URL或文件標題。
  
- 儘可能並行化獨立的讀取(read_file, fetch_record, search_docs)
  以減少延遲。
  
- 在任何寫入/更新工具呼叫後,簡要重述:
  - 改變了什麼
  - 在哪裡(ID或路徑)
  - 執行的任何後續驗證
  
- 對於簡單的概念性問題,避免工具並依賴內部知識
  以便回應快速。
</tool_usage_rules>

並行化

一個關鍵優化是在操作獨立時鼓勵並行工具呼叫:

並行化指導
<parallelization>
儘可能並行化工具呼叫。批量處理讀取(read_file)和
獨立編輯(apply_patch到不同檔案)以加快過程。

可以並行化的獨立操作:
- 讀取多個檔案
- 搜尋多個目錄
- 獲取多條記錄

不能並行化的依賴操作:
- 讀取檔案,然後基於內容編輯
- 建立資源,然後引用其ID
</parallelization>

處理不確定性:當AI不知道的時候

AI的最大風險之一是聽起來自信的錯誤答案。模型不知道它不知道什麼——除非你教它如何處理不確定性。

不確定性處理
<uncertainty_and_ambiguity>
- 如果問題模糊或規格不足,明確指出這一點並:
  - 提出最多1-3個精確的澄清問題,或
  - 呈現2-3個可能的解釋,帶有明確標記的假設。
  
- 當外部事實可能最近發生變化(價格、發布、政策)
  且沒有工具可用時:
  - 用一般術語回答並說明細節可能已經改變。
  
- 當你不確定時,永遠不要捏造精確數字、行號或外部引用。
  
- 當你不確定時,優先使用像「根據提供的上下文……」
  這樣的語言而不是絕對聲明。
</uncertainty_and_ambiguity>

高風險自檢

對於高風險領域,我添加一個明確的自我驗證步驟:

高風險自檢
<high_risk_self_check>
在法律、金融、合規或安全敏感上下文中
完成答案之前:

- 簡要重新掃描你自己的答案以檢查:
  - 未聲明的假設
  - 沒有在上下文中有根據的特定數字或聲明
  - 過於強烈的語言(「總是」、「保證」等)
  
- 如果你發現任何問題,軟化或限定它們並明確說明假設。
</high_risk_self_check>
⚠️

目標不是讓AI不那麼自信——而是讓它準確地自信。對不確定的事情表示不確定是一個特性,而不是缺陷。

元提示詞:用AI改進AI

這是我工具箱中最元的技術:用AI來改進你的提示詞。這聽起來循環,但非常有效。

診斷提示詞失敗

當提示詞不起作用時,我使用這個模式來診斷問題:

提示詞診斷範本
你是一個負責偵錯系統提示詞的提示詞工程師。

給你以下內容:
1) 當前系統提示詞:
<system_prompt>
[在這裡貼上你的提示詞]
</system_prompt>

2) 一小組記錄的失敗。每條日誌有:
- 查詢
- 實際輸出
- 期望輸出(或問題描述)

<failure_traces>
[貼上失敗範例]
</failure_traces>

你的任務:
1) 識別你看到的不同失敗模式。
2) 對於每個失敗模式,引用系統提示詞中最可能
   導致或強化它的具體行。
3) 解釋這些行如何將智慧代理導向觀察到的行為。

以結構化格式返回你的答案:
failure_modes:
- name: ...
  description: ...
  prompt_drivers:
    - exact_or_paraphrased_line: ...
    - why_it_matters: ...

產生提示詞改進

一旦你有了診斷,第二個提示詞產生改進:

提示詞改進範本
你之前分析了這個系統提示詞及其失敗模式。

系統提示詞:
<system_prompt>
[原始提示詞]
</system_prompt>

失敗模式分析:
[貼上上一步的診斷]

請提出一個外科手術式的修訂,減少觀察到的問題同時
保留好的行為。

約束:
- 不要從頭重新設計智慧代理。
- 優先小的、明確的編輯:澄清衝突的規則,刪除冗餘
  或矛盾的行,收緊模糊的指導。
- 明確權衡。
- 保持結構和長度與原始大致相似。

輸出:
1) patch_notes:關鍵更改和每個更改背後的推理的簡明列表。
2) revised_system_prompt:應用編輯後的完整更新提示詞。

這個兩步過程幫助我修復了我糾結了幾天的提示詞。AI經常發現我已經看不見的矛盾和歧義。

久經考驗的提示詞範本

讓我分享一些在數百個用例中證明可靠的範本。

通用任務完成範本

通用範本
<context>
[AI需要理解情況的背景資訊]
</context>

<task>
[你想完成什麼的清晰陳述]
</task>

<requirements>
[具體要求或約束]
</requirements>

<format>
[你希望輸出如何組織]
</format>

<examples>
[可選:期望輸出的範例]
</examples>

<notes>
[可選:額外的上下文或偏好]
</notes>

程式碼審查範本

程式碼審查提示詞
<context>
你正在為[專案/上下文]審查程式碼。
程式碼庫使用[技術/模式]。
</context>

<code_to_review>
[在這裡貼上程式碼]
</code_to_review>

<review_criteria>
關注:
1. 正確性:它做了它聲稱的嗎?
2. 可讀性:對其他開發者清晰嗎?
3. 效能:有明顯的低效嗎?
4. 安全性:有漏洞嗎?
5. 風格:它匹配程式碼庫慣例嗎?
</review_criteria>

<output_format>
對於發現的每個問題:
- 嚴重性:[關鍵/重大/次要/建議]
- 位置:[行號或部分]
- 問題:[什麼問題]
- 修復:[如何解決它]
</output_format>

研究分析範本

研究分析提示詞
<research_task>
用以下方法分析[主題/問題]:
</research_task>

<methodology>
1. 從多個有針對性的搜尋開始。不要依賴單一查詢。
2. 深入研究直到你有足夠的資訊來給出準確、
   全面的答案。
3. 添加有針對性的後續搜尋以填補空白或解決分歧。
4. 持續迭代直到額外搜尋不太可能改變答案。
</methodology>

<output_requirements>
- 以對主要問題的清晰答案開頭。
- 用證據和引用支持。
- 承認侷限性和不確定性。
- 在有幫助的地方提供具體例子。
- 包括幫助理解含義的相關上下文。
</output_requirements>

<citation_format>
[你希望來源如何被引用]
</citation_format>

毀掉結果的常見錯誤

讓我幫你避免我在提示詞工程早期(反覆)犯的錯誤。

太模糊

「幫我寫點關於行銷的東西」 vs 「寫一篇500字的關於SaaS新創公司電子郵件行銷的部落格文章,重點是歡迎序列。」 具體性就是一切。

矛盾的指令

在同一個提示詞中說「要簡潔」和「要詳盡」。AI會努力調和矛盾。明確優先級和權衡。

假設上下文

AI不知道你沒告訴它的東西。如果某些東西對你來說是顯而易見的,對模型來說可能不是。包括相關背景。

不指定格式

如果你需要JSON,就說出來。如果你需要項目符號,就說出來。不要把輸出格式留給機會。

過度複雜化提示詞

有時簡單的提示詞是最好的。不要為了複雜而增加複雜性。從簡單開始,只在需要時增加複雜性。

不迭代

寫提示詞是迭代的。你的第一個提示詞是草稿。根據什麼有效什麼無效來細化。

忽略模型差異

GPT和Claude行為不同。為一個優化的提示詞可能在另一個上表現不佳。如果你的應用支援多個模型,在多個模型上測試。

忘記人在迴路中

AI輸出通常需要人工審查。建構使審查容易的提示詞——清晰的結構、明確的假設、可追蹤的推理。

提示詞工程的未來

在我寫這篇文章的2026年初,提示詞工程正在快速發展。模型變得更有能力、更可控、更可靠。有些人預測隨著AI更好地理解意圖,提示詞工程將變得過時。我不同意。

正在改變的是提示詞工程的層次,而不是它的必要性。早期需要精心製作的提示詞來完成基本任務。現在,基本任務開箱即用,但複雜的智慧代理工作流程仍然需要複雜的提示詞。門檻在提高,而不是消失。

🔮

提示詞工程不會消失——它在進化。重要的技能正在從「如何讓AI工作」轉變為「如何讓AI在規模上卓越且可靠地工作」。

即將到來的變化

更好的預設行為

模型將有更智慧的預設值,對常見模式需要更少的明確指令。提示詞將更多關注客製化而非基本能力。

更豐富的工具生態

AI將開箱即用地存取更多工具。提示詞工程將轉向編排——知道何時用什麼,而不只是怎麼用。

多模態整合

提示詞將越來越多地涉及圖像、音訊、影片和結構化資料以及文字。新的提示詞模式將為多模態任務出現。

智慧代理複雜性

隨著智慧代理處理更長、更複雜的任務,提示詞工程將變得更像系統設計——架構,而不只是指令。

我對未來的建議

關注基礎。本指南中的具體技術會演變,但底層原則——清晰的溝通、明確的期望、結構化的思考、迭代的細化——是永恆的。掌握這些,你將適應接下來發生的任何事情。

最後的思考

兩年前,我以為AI會取代清晰溝通的需要。我完全錯了。AI使清晰溝通比以往任何時候都更有價值。與AI共事蓬勃發展的人不是那些找到魔法詞語的人——他們是那些學會精確思考和表達自己的人。

提示詞工程實際上不是關於AI。它是關於你。它是關於培養清晰表達你真正想要什麼的紀律,迭代接近它的耐心,以及從不起作用的東西中學習的謙遜。

如果你從本指南中只帶走一件事,讓它是這個:把每個提示詞當作練習清晰思考的機會。AI只是一面鏡子,反射回你自己思維的清晰——或混亂。

AI的出現並沒有讓知識過時——它讓好奇心比以往任何時候都更強大。我們不再受限於我們已經知道的東西。有了正確的工具和思考的意願,普通人可以擁抱知識的海洋。無論職業。無論年齡。我希望與世界各地的朋友分享這段旅程。讓我們一起迎接這個新世界。讓我們一起成長。

最後更新:2026年1月22日 · 基於官方文件和大量個人實驗

討論

0 條評論

留下評論

成為第一個分享您想法的人!