Hi~ 我是 Eric!🚀
在上一篇我們聊到了 什麼是 AI Agent SKILL ,它定義了 Agent 的能力邊界。但要把這些能力發揮到極致,最關鍵的橋樑就是——Prompt(提示詞)。
很多人問我:「為什麼 AI 總是給我一堆廢話?」或「為什麼它給的 Code 根本跑不動?」
老實說,寫出好的 Prompt 並不是什麼黑魔法。它的核心概念只有一個:「消除模糊性」。
你可以把 AI 想像成一個極度聰明、讀過全世界書籍,但完全沒有讀心能力的實習生。如果你只是隨口說句「幫我買杯咖啡」,他可能會買回一杯他不喝但你討厭的拿鐵;但如果你說「去巷口那家星巴克,買一杯大杯熱美式,不加糖,用我的隨行杯裝」,他就能精準達成任務。
這篇文章,我要跟你分享如何透過標準框架,把你的 AI 調教成真正的「頂級助手」。
撰寫優質 Prompt 的四大關鍵要素
在業界,我們常使用 CO-STAR 或 Role-Context-Task 框架來結構化指令。簡化後,你可以記住這四個核心點:
1. 給予角色設定 (Role)
讓 AI 進入特定的專業狀態。不同的角色會有不同的語氣、專業知識和思考邏輯。
- 普通版: 「幫我優化這段 Code。」
- 優化版: 「你是一位擁有 10 年經驗的資深 C# 後端架構師,專精於分散式系統與資料庫效能調優…」
Eric 的碎碎唸:設定角色不只是為了好玩,它會觸發模型內部的特定知識權重(Attention),讓它從「一般對話模式」切換到「專業模式」。
2. 提供清晰的任務與背景 (Context & Task)
不要只給一個動詞,要說明「為什麼」要做這件事,以及相關的背景資訊。
- 範例: 我正在寫一本技術書,讀者是初學者。請幫我用「左手藍圖,右手魔法」的比喻,簡單說明領域驅動設計 (DDD) 的核心價值。
3. 限制輸出格式 (Output Format)
明確告知你想要的結果長什麼樣子,這能省去大量調整格式的時間。 常見格式包含:表格、Markdown、JSON、列點說明、三分鐘演講稿等。
- 範例: 「請用表格比較 Dapper 與 Entity Framework 的效能與開發難易度。」
4. 設定風格與約束 (Style & Constraints)
規定語氣(幽默、專業、簡潔)以及絕對「不能」出現的內容。
- 範例: 「語氣要親切且帶點冷幽默,避開過於艱澀的專有名詞,字數控制在 300 字以內。」
💡 一個萬用的黃金公式
如果你覺得記住四個要素太麻煩,直接套用這個公式:
[角色設定] + [背景/目標] + [任務步驟] + [限制/格式]
讓我們跳脫「寫文案」或「寫信」,直接進入技術實作與 Debug 的場景。這是一個開發者最常遇到的狀況:「這段 Code 跑不動,但我不知道為什麼」。
🚀 實戰案例:解決資料庫查詢緩慢的問題
這是一個針對 「效能優化與 Bug 排除」 的高品質 Prompt 寫法:
【角色設定】:你是一位精通資料庫效能調優與 C# Entity Framework Core 的資深後端工程師。
【任務背景】:我有一段程式碼在處理「訂單與產品明細」的聯集查詢時速度非常慢。目前資料庫約有 50 萬筆訂單,查詢一次需要花費 8 秒,這在 Production 環境是不可接受的。
【具體任務】:
- 分析我提供的程式碼片段(如下方附錄),找出可能的 N+1 問題 或 全表掃描 原因。
- 請提供優化後的 LINQ 寫法。
- 說明是否需要針對特定欄位建立 Index,以及原因。
【附錄 - 程式碼片段】:
var orders = _context.Orders.ToList(); foreach(var o in orders) { o.Items = _context.OrderItems.Where(x => x.OrderId == o.Id).ToList(); }【輸出格式】:
- 請先指出 「效能殺手」 在哪裡。
- 給出 「優化代碼」(Markdown 代碼區塊)。
- 最後列出 「DB 優化建議」(表格形式)。
🔍 為什麼這個 Prompt 專業?
- 量化背景:你提供了「50 萬筆」、「8 秒」這些數據,AI 會立刻意識到問題的嚴重性。
- 鎖定技術棧:明確指定 EF Core,AI 就不會給你純 SQL 或 Dapper 的語法。
- 分層思考:你不只要「修好」,還要「分析原因」與「DB 建議」。這讓 AI 提供的答案具有深度,而不僅僅是表面修補。
- 指定診斷方向:提到 N+1 或 Index,等於是給了 AI 偵探一個線索。
進階連動:如何透過 Prompt 調動 SKILL
在上一篇我們定義了 SKILL 的標準結構 ,但要讓 AI 在正確的時機「想起」並「啟用」這些技能,你的 Prompt 必須扮演好**調度員(Dispatcher)**的角色。
要讓 Prompt 能精準調動 SKILL,有兩個核心技巧:
1. 定義明確的「觸發情境 (Trigger Condition)」
在 Prompt 中加入決策邏輯,告訴 AI 在什麼條件下應該去查找 SKILL 庫。
- 範例: 「當你發現需求涉及『資料庫效能優化』或『N+1 查詢』時,請優先檢索並遵循
db-optimization-skill中的作業規範。」
2. 提供「意圖匹配 (Intent Matching)」的線索
AI Agent 判斷是否啟用 SKILL,通常是基於你提供的關鍵字與 SKILL 描述的相似度。
- 優化技巧: 在 Prompt 的【任務背景】中,使用與 SKILL 描述一致的專業術語。例如,如果你的 SKILL 叫做
api-security-audit,在 Prompt 中就應該明確提到「進行安全性審查」而非「幫我看看這段 Code 有沒有問題」。
Eric 的實戰觀點:與其讓 AI 盲目地在數百個 SKILL 中搜尋,不如在 Prompt 中直接指定一個「技能範圍」。例如:「請在具備
frontend-expert技能集的狀態下,審視這段 React 代碼。」這能大幅減少 AI 的推理負擔。
🛠️ 寫法升級:如果你想讓 AI 幫你寫單元測試 (Unit Test)
如果你寫完一段複雜的 Logic,想讓 AI 幫你測出 Bug:
「你是一位嚴格的 QA 自動化測試工程師。請針對以下這段『計算折扣優惠』的函數,列出所有可能的 邊際案例 (Edge Cases)(例如:負數價格、過期優惠券、空集合),並使用 xUnit 寫出對應的測試案例。我追求 100% 的邏輯覆蓋率。」
小撇步:迭代優化 (Iterative Optimization)
好的 Prompt 不是一次完成的,而是透過精確的指令不斷「調教」出來的。如果 AI 第一次給的結果不理想,不要急著重寫,試著對話式修正:
- 「太嚴肅了,再輕鬆一點。」
- 「把第二點刪掉,增加更多關於實作細節的描述。」
結語
寫 Prompt 的過程,本質上是在整理你自己的邏輯。當你能把任務講得越清楚,AI 能回饋給你的價值就越高。
在接下來的篇章中,我們將會探討如何將這些精準的 Prompt 整合進 AI Agent 的工作流 中,讓自動化代理程式能獨立處理更複雜的任務。