# 提示工程的進階應用指南 * 本篇完全由 AI 產出,僅由 @Eudicotz 我規劃章節段落與審核內容 ## 摘要 本文教你如何從「隨便問問AI」進階到「精準控制AI的思考方式」。我們將學習如何給AI設定完整的角色、使用簡單的標籤來組織資訊,以及讓AI展示它的思考過程,讓你的AI助手變得更專業、更可靠。 ![image](https://hackmd.io/_uploads/SyvMiV9jgx.png) ## 問題分析與解決方案 在上一篇文章中,我們學會了如何提升AI回答的品質。現在,我們要更進一步:**不只是讓AI回答得更好,而是讓AI按照我們設計的方式來思考和工作。** ### 1. 完整角色設定:讓AI真正「入戲」 大部分人給AI設定角色時會說「你是一位行銷專家」就結束了。但想像一下,如果你要請一位真正的行銷專家幫忙,你會想知道: - 他的專業背景是什麼? - 他平常用什麼方法工作? - 他的價值觀和原則是什麼? - 他絕對不會做哪些事? **把AI當成一個真實的專家來「面試」和「培訓」,而不只是貼個標籤。** **舉個例子:** ❌ **簡單設定:** ```md 你是一位理財顧問。 ``` ✅ **完整設定:** ```md 你是一位專門幫助30-40歲上班族規劃退休的理財顧問。 **你的工作哲學:** 你相信「穩健增長比快速致富更重要」。你總是優先保護客戶的本金,然後才考慮獲利。 **你的工作方法:** 1. 你會先了解客戶的風險承受度(能接受多少虧損) 2. 你會建議分散投資,絕不把雞蛋放在同一個籃子裡 3. 你會用最簡單的話解釋複雜的金融商品 4. 你會主動告知每個投資的風險 **你的底線:** 你絕對不推薦客戶把超過30%的錢投入高風險商品,也不會為了賺佣金而推薦不適合的產品。 ``` 這樣設定後,AI就會像一位真正有經驗、有原則的理財顧問一樣回答你的問題。 ### 2. 系統提示:給AI裝上「作業系統」 想像你的電腦有Windows或Mac作業系統,它決定了電腦的基本運作方式。**系統提示(System Prompt)就像是給AI裝上一套「思考作業系統」**,讓它在整個對話過程中都按照你設定的規則運作。 **簡單來說:** - **一般提問:** 每次都要重新說明你要什麼 - **系統提示:** 一開始就告訴AI「你永遠都要這樣工作」 **實際應用:** 假設你經常需要AI幫你檢查文章,你可以設定一個「文章檢查助手」的系統提示: ```md 你是我的專業文章檢查助手。每當我給你一篇文章時,你都要: 1. **檢查錯字和語法** 2. **指出邏輯不清楚的地方** 3. **建議如何讓文章更好讀** **回答格式:** 請用這個表格格式回答: | 問題類型 | 具體問題 | 修改建議 | |---------|---------|---------| | 錯字語法 | ... | ... | | 邏輯問題 | ... | ... | | 可讀性 | ... | ... | **說話風格:** 請用鼓勵、建設性的語氣,像是幫助朋友改文章一樣。 ``` 設定好後,以後你只要貼上文章說「請檢查」,AI就會自動按照這套標準來工作。 ### 3. 標籤的策略性運用:什麼時候用什麼工具 當你要給AI很多資訊時,選對工具很重要。就像蓋房子,有些地方需要鋼筋水泥(嚴謹),有些地方用木材就夠了(彈性)。 **工具選擇原則:** **XML標籤 = 嚴謹流程專用** - **什麼是XML:** 就像給每個資料貼上身分證,讓AI絕對不會搞混 - **什麼時候用:** 需要AI按照固定步驟處理、不能出錯的情況 - **特色:** 強制約束,AI必須按照你的結構來理解和處理,另一個巨大優勢是**語意清晰** **Markdown格式 = 一般情境專用** - **什麼是Markdown:** 就像Word的格式工具,讓內容更好看、更好讀 - **什麼時候用:** 希望AI的回答有特定格式,但不需要太嚴格的情況 - **特色:** 彈性呈現,主要是讓輸出更美觀 **XML實際應用(嚴謹流程):** ```xml 請幫我分析這個投資案,必須按照我的風險評估流程。 <investment_analysis> <basic_info> <product_name>台積電股票</product_name> <investment_amount>100000</investment_amount> <time_horizon>5年</time_horizon> </basic_info> <market_data> <current_price>500</current_price> <pe_ratio>15.2</pe_ratio> <industry_trend>半導體成長期</industry_trend> </market_data> <risk_assessment_process> <step1_market_risk> <!-- 必須分析市場風險並給出1-10分評分 --> </step1_market_risk> <step2_company_risk> <!-- 必須分析公司風險並給出1-10分評分 --> </step2_company_risk> <step3_overall_rating> <!-- 必須給出綜合評分和明確的投資建議:買入/持有/賣出 --> </step3_overall_rating> </risk_assessment_process> </investment_analysis> ``` **Markdown實際應用(一般情境):** ```md 請幫我寫一份「週末台北一日遊」的推薦,用以下格式: # 台北週末一日遊攻略 ## 上午行程(9:00-12:00) - **地點:** - **特色:** - **建議停留時間:** ## 下午行程(13:00-17:00) - **地點:** - **特色:** - **建議停留時間:** ## 美食推薦 ### 必吃小吃 - 店名1:特色菜 - 店名2:特色菜 ### 餐廳推薦 - 店名:推薦理由 ``` **關鍵差異:** - **XML情境:** 你嚴格指定這些投資分析必須具備的規格,每一步都不能遺漏,這時使用 XML 來約束的效果會比起 markdown 好 - **Markdown情境:** 旅遊推薦可以有彈性,格式好看就行,內容可以靈活調整 #### 標籤選擇決策矩陣 (Tag Selection Decision Matrix) | 使用場景 | 推薦格式 | 核心原則 | 軟體工程類比 | | :--- | :--- | :--- | :--- | | **內容呈現與美化**<br>(報告、清單、文案) | **Markdown** | **表現層分離 (Presentation Layer Separation)** | CSS / HTML Formatting | | **資料與指令分離**<br>(批量生成、模板化) | **Markdown/XML** | **關注點分離 (Separation of Concerns)** | 樣板引擎 (Template Engine) | | **強制資料結構**<br>(API 輸入、資料提取) | **XML** | **模式強制 (Schema Enforcement)** | 資料庫結構 (DB Schema) / DTO | | **強制推理過程**<br>(複雜分析、決策模擬) | **XML + 思維鏈** | **程序控制 (Process Control)** | 演算法 / 狀態機 (State Machine) | @Eudicotz 註:如果不想額外花時間學 XML ,其實 markdown 就很夠用了。 2025.01.07 加筆更新:[使用思維鏈 (CoT) 可能會使得推理模型產出品質不增反降](https://gail.wharton.upenn.edu/research-and-insights/tech-report-chain-of-thought/) 如果使用的模型是推理模型:例 GPT-5 系列、Claude Sonnet 4.5、Gemini 3.0......等,這反而會使得回覆品質下降,但如 GPT-4o、GPT-4.1等這些較為經濟實惠的模型時,他們通常不會有推理功能,思維鏈仍可使用,但通常不符合成本效益。 > 工具必須挑著用,如果你不想記這麼多,只想知道思維鏈到底用不用,結論就是「先不用」。 ### 4. 英文思維 + 中文輸出:兼顧精準與自然 **核心概念:** AI在英文環境下的邏輯理解能力更強,但我們需要中文輸出。解決方案是「英文搭建框架,中文呈現結果」。 **為什麼這樣做:** - **英文prompt更精確:** AI的訓練數據中英文技術文檔更多,理解更準確 - **邏輯結構更清晰:** 英文的語法結構讓AI更容易理解複雜指令 - **中文輸出更自然:** 最終用戶看到的是流暢的中文內容 **實際對比:** ❌ **全中文(容易產生歧義):** ``` 你是專業顧問,要分析問題然後給建議,要按照我說的步驟來做。 ``` ✅ **英文框架 + 中文輸出:** ``` You are a professional business consultant. Follow this analysis framework strictly: <analysis_process> <step1_problem_definition> <!-- Identify the core business problem --> </step1_problem_definition> <step2_data_analysis> <!-- Analyze provided data and identify patterns --> </step2_data_analysis> <step3_solution_design> <!-- Generate actionable solutions --> </step3_solution_design> </analysis_process> **Output Language:** All responses must be in Traditional Chinese (繁體中文). **Output Format:** Use clear headings and bullet points for readability. ``` ### 6. 建立「PROMPT優化AI助手」 整合前述兩篇文章,讓我們建立一個專門幫你優化prompt的AI助手: 括弧內為說明,如果想要直接取此段 prompt 來用,則須自行把說明移除以免汙染 prompt 。 ```markdown # PROMPT Optimization Assistant (腳色設定) You are an expert AI Prompt Engineer specializing in creating high-performance prompts for various use cases. Your mission is to transform basic user requests into sophisticated, effective prompts. ## [Core Competencies] (指定核心準則) - **Prompt Architecture:** Role definition, context setting, constraint specification - **Output Control:** Format specification, quality assurance, error prevention - **Logic Framework:** Chain-of-thought design, step-by-step reasoning - **Language Optimization:** Precision in English structure, natural Chinese output ## [Output Specification] (規範輸出格式) **Language:** All responses in Traditional Chinese (繁體中文) **Structure:** 1. **[原始需求分析]** - Analysis of user's original request 2. **[優化策略]** - Optimization strategy explanation 3. **[優化後PROMPT]** - Complete optimized prompt (in code block) 4. **[使用說明]** - Instructions for implementation 5. **[進階建議]** - Advanced tips for further customization ## [Quality Standards] (規範輸出內容) - **Precision:** Every instruction must be clear and unambiguous - **Completeness:** Cover all aspects needed for consistent results - **Practicality:** Provide immediately usable, tested prompt structures - **Scalability:** Design prompts that can be easily modified for similar use cases ## [Constraints] (嚴格說明限制事項) - Never provide vague or generic advice - Always include specific, actionable prompt examples - Explain the reasoning behind each optimization choice - Focus on practical implementation over theoretical concepts ``` ## 補充 1. **工具選擇要對症下藥:** - 需要嚴謹流程時用XML(如:分析、診斷、決策) - 只是要好看格式時用Markdown(如:文案、清單、報告) 2. **XML標籤用英文更精準:** 英文標籤讓AI更容易理解結構,避免中文可能產生的歧義。 3. **從簡單開始:** 不要一開始就用很複雜的設定,先從完整的角色設定開始練習。 4. **什麼時候用思維鏈條:** 當你需要AI做複雜分析、比較選擇、或解決問題時使用。簡單的問答就不需要。 5. **建立你的範本庫:** 把有效的XML框架和Markdown格式記錄下來,下次遇到類似情況可以直接套用。 6. **把AI當作可訓練的助手:** 現在你不只是在「問問題」,而是在「訓練一個專業助手」。花時間設定好,之後就能省很多時間。 7. **測試和調整:** 最好的設定都是經過多次測試和修改的。不要怕實驗,找出最適合你需求的方式。 8. **善用 AI 自我迭代(上篇提及的元提示):** 這是我自己( @Eudicotz )的建議 - 當你發現產出不如預期的時候,可以直接在聊天室內說:「我覺得你目前的設定 (system prompt) 不夠好,我希望他可以 OOO ,達到 XXX 效果,回答問題前先給我你調整過後的設定 (system prompt)。」 - 把提示詞貼到新的聊天室中,而且我強烈建議去了解如何套用 system prompt,有了 system prompt,相當於每次回答之前都跟 AI 重新核對他的核心指令,不容易讓回答越來越歪,或是忘記核心設定。