當您的應用程式將 Claude 的回覆直接傳送給使用者時,沒有人會先檢查它。Claude 寫出什麼,使用者就會得到什麼。所以 Claude 需要知道這則回覆要送到哪裡、看起來該是什麼樣子,以及要省略哪些內容。
要讓提示清晰直接,請給 Claude 這三樣東西:上下文、您想要的輸出格式,以及限制條件。 每一項都回答了一個新同事在開始任務前會問您的問題。
一個讓 Claude 胡亂猜測的提示
假設一個牙醫預約應用程式會在病患看診前一天,傳送一則提醒簡訊。該應用程式傳送給 Claude 一行任務說明和四行資料,然後將收到的回覆原封不動地傳給病患。以下是其中一位病患的提示:
為這個預約撰寫一則提醒。
病患:Dana Okafor
日期:3 月 12 日星期四
時間:下午 2:30
治療項目:根管治療,第二次回診
Claude 傳回了以下回覆。這裡以原始文字顯示,讓您可以看到應用程式將傳送出去的每一個字元:
**預約提醒**
Dana 您好,
這是您即將到來的牙科預約的友善提醒:
**日期:** 3 月 12 日星期四
**時間:** 下午 2:30
**治療項目:** 根管治療(第二次回診)
**看診前須知:**
- 請提前約 10 分鐘到場。
- 事先吃一頓清淡的餐點,因為看診後您的嘴巴可能會麻木幾個小時。
- 除非牙醫另有指示,否則請繼續依處方服用藥物。
- 如果您自上次回診以來有任何疼痛、腫脹,或暫時填補物出現問題,請告知我們。
如果您需要改期或有任何疑問,請至少提前 24 小時致電 [電話號碼]。
我們期待您的到來!
[診所名稱]
應用程式會把這些內容全部傳給 Dana,而其中大部分內容都不該出現在她的手機上:
- 星號和連字號是用來標示粗體文字和清單的 Markdown 語法。手機會把它們顯示成普通字元。
- 關於飲食和提前到場的建議,是關於看診本身的建議,這類建議應該由牙醫來提供。
- 「根管治療(第二次回診)」這類字眼可能會出現在 Dana 鎖定的手機螢幕上,讓其他人也能看到。
- 「[電話號碼]」和「[診所名稱]」都是空白欄位,而在簡訊發出之前,沒有人把它們填上。
這些缺失都可以追溯到提示遺漏的內容。提示從未說明這是一則簡訊、沒有人會先檢查,或是其他人可能會在鎖定螢幕上看到它。它也沒有說明提醒內容應該涵蓋什麼,也沒有提供診所名稱或電話號碼。因此 Claude 寫出了一則一般性的提醒,並在沒有資訊的地方留下空白。
您得到的回覆,主要取決於您輸入的內容。 在您重新琢磨提示的措辭之前,先把 Claude 缺少的事實資訊提供給它。
想想同事會問什麼
要找出遺漏了什麼,可以想像把這個提示交給一位從未見過這個應用程式的同事。他們必須僅憑這個提示寫出提醒內容。如果他們會感到困惑,Claude 也會如此。
在動筆之前,這位同事會先向您提出問題。每個問題都對應到您可以加入提示中的三個部分之一:
| 部分 | 它告訴 Claude 什麼 | 同事會問什麼 |
|---|---|---|
| 上下文 | 這則回覆是用來做什麼的、送到哪裡,以及誰會閱讀它 | 「這是簡訊還是電子郵件?它是由誰發出的?發出前有人會先檢查嗎?」 |
| 輸出格式 | 回覆看起來是什麼樣子,例如長度,以及能不能使用 Markdown | 「它該有多長?能不能用粗體文字或清單?」 |
| 限制條件 | 回覆必須遵守或省略哪些內容 | 「該不該寫出治療項目?該不該提供建議?」 |
在提示中該屬於的部分,逐一回答同事的每個問題。
加入上下文、格式與限制條件
把上下文當作事實陳述,把輸出格式和限制條件寫成指示。 對於任何 Claude 無法猜出目的的指示,補上其理由。
以下這個牙醫預約應用程式的完整提示,用三個段落回答了同事的問題,分別對應上下文、輸出格式和限制條件。
試著加入和移除各個部分,看看提示的表現。每一則回覆都是真實的,是 Claude 針對該確切提示所產生的紀錄。
自己動手試試看
現在請您自己動手,把一個提示改寫得清晰直接。假設有一個天氣應用程式,會原封不動地將 Claude 的回覆,以推播通知的形式傳送出去,使用者會在早上 7 點於鎖定畫面上閱讀它。該應用程式的提示只給了 Claude 一行任務說明,以及一些資料:
為這則天氣預報撰寫一則通知。
城市:Portland
早上:多雲,攝氏 9 度(48°F)
下午:下午 3 點起有大雨
風力:陣風可達時速 35 英里
想想一位從未見過這個應用程式的同事會問您什麼。然後挑選出能回答這些問題的上下文、輸出格式和限制條件。每次選擇後,閱讀說明,了解它正確或錯誤的原因。
這個天氣應用程式的提示只寫著「為這則天氣預報撰寫一則通知。」您會加入哪一行來提供上下文給 Claude?
這則通知必須能容納在鎖定畫面上。您會加入哪一行作為輸出格式?
同樣的提示每天早上都會執行,每天都有新的天氣預報。您會加入哪一行作為限制條件?
接下來該做什麼
每當有回覆需要在您的應用程式使用前先修正,就去找出您的提示尚未回答的問題。 要在您自己的程式碼中修正提示,請依序完成以下步驟:
- 想像一位從未見過您應用程式的同事,思考他們在執行任務前會問什麼。
- 在提示中,將每個問題歸類為上下文、輸出格式或限制條件來回答。把上下文當作事實陳述,並對任何 Claude 無法猜出目的的指示,補上理由。
- 用您應用程式中的多個輸入內容,送出這個新提示。
- 以原始文字的形式閱讀每則回覆,讓您能看到應用程式將傳送出去的每一個字元。留意您原本想修正的缺失,例如應用程式無法顯示的 Markdown、沒有人填上的空白,或是使用者不該看到的細節。
如果某個缺失仍然存在,就找出提示中仍未回答的問題,並把它也解決掉。
僅僅閱讀幾則回覆,無法告訴您這個提示在您應用程式的所有輸入情境下表現如何。要做到這一點,您需要一個評測(eval):一項針對您自己案例的測試,能給您一個數字來做判斷依據。接下來,請修讀「評測入門」課程。