ออกแบบ System Prompt ให้ AI ทำงานคงเส้นคงวา
โครงสร้าง System Prompt ที่ใช้ได้จริง หลักคิดจากคู่มือ Anthropic และ OpenAI พร้อมตัวอย่างแชตบอตร้านค้าออนไลน์ไทย
แชตบอตของร้านคุณตอบลูกค้าคนแรกสุภาพเรียบร้อย คนที่สองตอบยาวเป็นเรียงความ คนที่สามเผลอสัญญาส่วนลดที่ร้านไม่เคยมี ทั้งที่ใช้โมเดลเดียวกัน อาการ "วันดีวันร้าย" แบบนี้มักมาจาก System Prompt ที่เขียนไว้หลวมเกินไป หรือแน่นจนขัดกันเอง
System Prompt คืออะไร
System Prompt คือคำสั่งชุดที่ตั้งไว้ก่อนบทสนทนาเริ่ม เป็นกรอบว่า AI คือใคร ทำอะไร ไม่ทำอะไร และตอบในรูปแบบไหน ต่างจาก prompt ที่ผู้ใช้พิมพ์ในแต่ละครั้ง คู่มือ Prompting ของ OpenAI แนะนำให้ใส่แนวทางภาพรวม เช่น บทบาทและน้ำเสียง ไว้ใน system message และเก็บรายละเอียดเฉพาะงานกับตัวอย่างไว้ใน user message
บทความนี้เน้นการออกแบบสำหรับงานที่ใช้ซ้ำ เช่น แชตบอต ผู้ช่วยภายในองค์กร หรือ Custom GPT ถ้ายังใหม่กับการเขียน prompt อ่าน Prompt Engineering คืออะไร ก่อนได้
หลักคิด 5 ข้อจากคู่มือของผู้พัฒนาโมเดล
1. บทบาทสั้นๆ ก็ช่วยได้
คู่มือ prompting ของ Anthropic ระบุว่าการกำหนดบทบาท "แม้เพียงประโยคเดียวก็สร้างความแตกต่าง" เพราะช่วยกำหนดโฟกัสและน้ำเสียง
2. บอกเหตุผล ไม่ใช่แค่กฎ
Anthropic ยกตัวอย่างว่า แทนที่จะเขียนว่า "ห้ามใช้จุดไข่ปลา" ให้อธิบายว่า "คำตอบจะถูกอ่านออกเสียงด้วยระบบ text-to-speech จึงไม่ควรใช้จุดไข่ปลา" โมเดลจะนำเหตุผลไปใช้กับกรณีที่คุณไม่ได้เขียนไว้ได้
3. บอกสิ่งที่ต้องทำ แทนสิ่งที่ห้ามทำ
"ตอบเป็นย่อหน้าต่อเนื่อง" ได้ผลดีกว่า "อย่าใช้ bullet" เพราะโมเดลรู้ว่าเป้าหมายคืออะไร
4. แบ่งส่วนให้ชัด
ใช้หัวข้อหรือแท็กแบบ XML เช่น <rules> <context> แยกคำสั่ง ข้อมูล และตัวอย่างออกจากกัน โมเดลจะไม่สับสนว่าส่วนไหนคือคำสั่ง
5. เขียนให้อยู่ "ระดับความสูง" ที่พอดี
บทความ context engineering ของ Anthropic เตือนว่ากฎ if-else ยาวเหยียดทำให้ระบบเปราะ ส่วนคำแนะนำกว้างเกินไปทำให้โมเดลต้องเดา ให้เริ่มจาก prompt สั้นแล้วเพิ่มตามจุดที่พลาดจริง
โครงสร้าง System Prompt ที่แนะนำ
- บทบาทและเป้าหมาย: AI คือใคร ช่วยใคร เพื่ออะไร
- ขอบเขต: เรื่องที่ตอบได้ เรื่องที่ต้องส่งต่อให้คน
- ข้อมูลอ้างอิง: นโยบาย ราคา เงื่อนไข (หรือบอกว่าให้ค้นจากเครื่องมือไหน)
- รูปแบบคำตอบ: ความยาว ภาษา น้ำเสียง
- เมื่อไม่แน่ใจ: ให้ถามกลับหรือบอกตรงๆ ว่าไม่ทราบ
ตัวอย่าง: แชตบอตร้านเสื้อผ้าออนไลน์
คุณคือผู้ช่วยตอบแชตของร้านเสื้อผ้าออนไลน์ ช่วยลูกค้าเลือกไซซ์ เช็กสถานะคำสั่งซื้อ และอธิบายนโยบายคืนสินค้า ตอบภาษาไทยสุภาพแบบเป็นกันเอง ไม่เกิน 4 ประโยค เพราะลูกค้าส่วนใหญ่อ่านบนมือถือ ใช้เฉพาะข้อมูลใน <policy> เท่านั้น ถ้าคำถามเกี่ยวกับส่วนลดหรือข้อยกเว้นที่ไม่มีใน policy ให้แจ้งว่าจะส่งต่อให้แอดมิน เพราะร้านไม่ต้องการให้สัญญาสิ่งที่ทำไม่ได้
สังเกตว่าแต่ละข้อมีเหตุผลกำกับ และมีทางออกชัดเจนเมื่อเจอคำถามนอกขอบเขต
System Prompt ที่ดีไม่ได้ยาวที่สุด แต่ทำให้ AI ตัดสินใจเหมือนกันทุกครั้งในสถานการณ์เดียวกัน
อาการที่เจอบ่อยและวิธีแก้
- ตอบยาวเกินไป: ระบุความยาวเป็นตัวเลขพร้อมเหตุผล เช่น จำนวนประโยคสูงสุด เพราะอ่านบนมือถือ
- แต่งข้อมูลขึ้นเอง: บอกให้ใช้เฉพาะข้อมูลที่ให้ไว้ และบอกว่าถ้าไม่มีข้อมูลต้องทำอะไรแทน
- น้ำเสียงเปลี่ยนไปมา: ใส่ตัวอย่างคำตอบที่ดี 2 ถึง 3 แบบ แทนการบรรยายน้ำเสียงด้วยคำคุณศัพท์อย่างเดียว
- ทำตามคำสั่งผู้ใช้ที่ขัดกับกฎ: ระบุลำดับความสำคัญให้ชัดว่ากฎใน system prompt มาก่อน
ข้อควรระวัง
- ไม่มี system prompt ไหนกันการโจมตีได้ 100% ห้ามใส่รหัสผ่าน API key หรือข้อมูลลับไว้ใน prompt
- กฎที่ขัดกันเอง เช่น "ตอบสั้นที่สุด" กับ "อธิบายละเอียด" ทำให้ผลไม่คงที่ ควรอ่านทวนทั้งชุด
- เปลี่ยนโมเดลหรือเวอร์ชันแล้วพฤติกรรมอาจเปลี่ยน ต้องทดสอบซ้ำทุกครั้ง
เริ่มต้นยังไง
- เขียนเวอร์ชันแรกให้สั้นตามโครงสร้าง 5 ส่วนข้างบน
- เตรียมคำถามทดสอบ 20 ถึง 30 ข้อ รวมคำถามยากและคำถามนอกขอบเขต
- รันแล้วจดว่าพลาดตรงไหน เพิ่มคำสั่งพร้อมเหตุผลเฉพาะจุดนั้น
- เก็บทุกเวอร์ชันไว้ จะได้ย้อนกลับได้เมื่อแก้แล้วแย่ลง
อยากต่อยอดไปเรื่องการจัดข้อมูลทั้งระบบ อ่าน Context Engineering ต่อได้เลย และถ้าคุณกำลังมองหางานที่ใช้ทักษะนี้ ลองค้นใน หน้างานของ Plants.work