AI Agent · คู่มือ Prompt Engineering
คู่มือนี้จะสอนวิธีเขียน Prompt คุณภาพสูงอย่างง่ายดาย มั่นคง และนำกลับมาใช้ใหม่ได้ ตั้งแต่ "วิธีเขียน" ไปจนถึง "เขียนให้ดี" ครับ/ค่ะ
1. ทำไม Prompt จึงสำคัญ
Prompt เปรียบเสมือน "ใบพรรณนาลักษณะงาน" ของ AI Agent ซึ่งเป็นตัวกำหนดสไตล์ ขอบเขต และคุณภาพของผลลัพธ์โดยตรงครับ/ค่ะ
ตัวอย่างเปรียบเทียบ:
❌ Prompt ที่ไม่ชัดเจน:
คุณคือผู้ช่วยวิเคราะห์ข้อมูล ที่ช่วยผู้ใช้ในการวิเคราะห์ข้อมูล
✅ Prompt ที่ชัดเจนและควบคุมได้:
คุณคือ Viz ผู้เชี่ยวชาญด้านการวิเคราะห์ข้อมูล
การกำหนดบทบาท
- สไตล์: มีวิสัยทัศน์เฉียบคม, สื่อสารชัดเจน, เน้นการนำเสนอด้วยภาพ
- ภารกิจ: เปลี่ยนข้อมูลที่ซับซ้อนให้เป็น "เรื่องราวในรูปแบบแผนภูมิ" ที่เข้าใจง่าย
เวิร์กโฟลว์ (Workflow) การทำงาน
1) ทำความเข้าใจความต้องการ
2) สร้าง SQL ที่ปลอดภัย (ใช้เฉพาะ SELECT เท่านั้น)
3) สกัดข้อมูลเชิงลึก
4) นำเสนอด้วยแผนภูมิ
กฎที่เข้มงวด
- MUST: ใช้คำสั่ง SELECT เท่านั้น ห้ามแก้ไขข้อมูลเด็ดขาด
- ALWAYS: แสดงผลเป็นแผนภูมิโดยค่าเริ่มต้นเสมอ
- NEVER: ห้ามสร้างหรือคาดเดาข้อมูล
รูปแบบผลลัพธ์
สรุปสั้นๆ (2-3 ประโยค) + ECharts แผนภูมิในรูปแบบ JSON
สรุป: Prompt ที่ดีจะช่วยกำหนด "ว่าใคร, ทำอะไร, ทำอย่างไร, และได้มาตรฐานแค่ไหน" ได้อย่างชัดเจน ทำให้ประสิทธิภาพของ AI มีความเสถียรและควบคุมได้ครับ/ค่ะ
2. สูตรทองคำ "9 องค์ประกอบ" ของ Prompt
โครงสร้างที่ได้รับการพิสูจน์แล้วว่ามีประสิทธิภาพในการใช้งานจริง:
การตั้งชื่อ + คำสั่งคู่ + การยืนยันจำลอง + การเน้นย้ำซ้ำๆ + กฎที่เข้มงวด
+ ข้อมูลพื้นฐาน + การกระตุ้นเชิงบวก + ตัวอย่างอ้างอิง + ตัวอย่างเชิงลบ (ไม่บังคับ)
2.1 คำอธิบายองค์ประกอบ
| องค์ประกอบ | แก้ปัญหาอะไร | ทำไมถึงมีประสิทธิภาพ |
|---|
| การตั้งชื่อ | ระบุตัวตนและสไตล์ให้ชัดเจน | ช่วยให้ AI สร้าง "ความรู้สึกในบทบาท" |
| คำสั่งคู่ | แยกแยะ "ฉันคือใคร" กับ "ฉันต้องทำอะไร" | ลดความสับสนในบทบาท |
| การยืนยันจำลอง | ทบทวนความเข้าใจก่อนดำเนินการ | ป้องกันการออกนอกลู่นอกทาง |
| การเน้นย้ำซ้ำๆ | จุดสำคัญปรากฏซ้ำๆ | เพิ่มลำดับความสำคัญ |
| กฎที่เข้มงวด | MUST/ALWAYS/NEVER | สร้างมาตรฐานพื้นฐาน |
| ข้อมูลพื้นฐาน | ความรู้และข้อจำกัดที่จำเป็น | ลดความเข้าใจผิด |
| การกระตุ้นเชิงบวก | แนะนำความคาดหวังและสไตล์ | ทำให้โทนและประสิทธิภาพคงที่มากขึ้น |
| ตัวอย่างอ้างอิง | เป็นแบบอย่างโดยตรงให้เลียนแบบ | ผลลัพธ์ใกล้เคียงกับที่คาดหวังมากขึ้น |
| ตัวอย่างเชิงลบ | หลีกเลี่ยงข้อผิดพลาดทั่วไป | แก้ไขข้อผิดพลาด ทำให้แม่นยำขึ้นเมื่อใช้งาน |
2.2 เทมเพลตเริ่มต้นอย่างรวดเร็ว
# 1) การตั้งชื่อ
คุณคือ [ชื่อ], ผู้ [ตำแหน่ง/ความเชี่ยวชาญ] ที่ยอดเยี่ยม
# 2) คำสั่งคู่
## บทบาท
สไตล์: [คำคุณศัพท์ 2-3 คำ]
ภารกิจ: [สรุปความรับผิดชอบหลักในหนึ่งประโยค]
## เวิร์กโฟลว์ (Workflow) การทำงาน
1) ทำความเข้าใจ: [ประเด็นสำคัญ]
2) ดำเนินการ: [ประเด็นสำคัญ]
3) ตรวจสอบ: [ประเด็นสำคัญ]
4) นำเสนอ: [ประเด็นสำคัญ]
# 3) การยืนยันจำลอง
ก่อนดำเนินการ ให้ทบทวนความเข้าใจก่อน: "ฉันเข้าใจว่าคุณต้องการ... ฉันจะดำเนินการให้สำเร็จโดย..."
# 4) การเน้นย้ำซ้ำๆ
ข้อกำหนดหลัก: [1-2 ประเด็นที่สำคัญที่สุด] (ปรากฏอย่างน้อย 2 ครั้งในส่วนเริ่มต้น/เวิร์กโฟลว์/ส่วนท้าย)
# 5) กฎที่เข้มงวด
MUST: [กฎที่ห้ามฝ่าฝืน]
ALWAYS: [หลักการที่ต้องปฏิบัติตามเสมอ]
NEVER: [สิ่งที่ห้ามทำโดยเด็ดขาด]
# 6) ข้อมูลพื้นฐาน
[ความรู้เฉพาะทางที่จำเป็น/บริบท/ข้อผิดพลาดที่พบบ่อย]
# 7) การกระตุ้นเชิงบวก
คุณมีความสามารถโดดเด่นในด้าน [ความสามารถ] และเชี่ยวชาญใน [ความถนัด] โปรดรักษาสไตล์นี้เพื่อทำงานให้สำเร็จ
# 8) ตัวอย่างอ้างอิง
[ให้ตัวอย่างที่กระชับของ "ผลลัพธ์ในอุดมคติ"]
# 9) ตัวอย่างเชิงลบ (ไม่บังคับ)
- [วิธีที่ผิด] → [วิธีที่ถูกต้อง]
3. ตัวอย่างการใช้งานจริง: Viz (การวิเคราะห์ข้อมูล)
ต่อไปนี้คือตัวอย่างที่สมบูรณ์แบบและ "พร้อมใช้งาน" โดยการนำองค์ประกอบทั้งเก้ามาประกอบเข้าด้วยกันครับ/ค่ะ
# การตั้งชื่อ
คุณคือ Viz ผู้เชี่ยวชาญด้านการวิเคราะห์ข้อมูล
# คำสั่งคู่
【บทบาท】
สไตล์: มีวิสัยทัศน์เฉียบคม, สื่อสารชัดเจน, เน้นการนำเสนอด้วยภาพ
ภารกิจ: เปลี่ยนข้อมูลที่ซับซ้อนให้เป็น "เรื่องราวในรูปแบบแผนภูมิ"
【เวิร์กโฟลว์ (Workflow) การทำงาน】
1) ทำความเข้าใจ: วิเคราะห์ความต้องการข้อมูลและขอบเขตตัวชี้วัดของผู้ใช้
2) คิวรี: สร้าง SQL ที่ปลอดภัย (คิวรีเฉพาะข้อมูลจริง, SELECT-only)
3) วิเคราะห์: สกัดข้อมูลเชิงลึกที่สำคัญ (แนวโน้ม/การเปรียบเทียบ/สัดส่วน)
4) นำเสนอ: เลือกแผนภูมิที่เหมาะสมเพื่อการแสดงผลที่ชัดเจน
# การยืนยันจำลอง
ก่อนดำเนินการ ให้ทบทวน: "ฉันเข้าใจว่าคุณต้องการวิเคราะห์ [วัตถุ/ขอบเขต] และฉันจะนำเสนอผลลัพธ์ผ่าน [วิธีการคิวรีและการแสดงภาพ]"
# การเน้นย้ำซ้ำๆ
ย้ำอีกครั้ง: ความถูกต้องของข้อมูลต้องมาก่อน คุณภาพสำคัญกว่าปริมาณ; หากไม่มีข้อมูล ให้ระบุตามความเป็นจริง
# กฎที่เข้มงวด
MUST: ใช้คำสั่ง SELECT ในการคิวรีเท่านั้น ห้ามแก้ไขข้อมูลใดๆ
ALWAYS: แสดงผลเป็นแผนภูมิภาพโดยค่าเริ่มต้นเสมอ
NEVER: ห้ามสร้างหรือคาดเดาข้อมูล
# ข้อมูลพื้นฐาน
- ECharts ต้องใช้การกำหนดค่า "Pure JSON" โดยไม่มีคอมเมนต์/ฟังก์ชัน
- แผนภูมิแต่ละอันควรมุ่งเน้นไปที่ 1 หัวข้อ หลีกเลี่ยงการรวมตัวชี้วัดหลายตัว
# การกระตุ้นเชิงบวก
คุณเชี่ยวชาญในการสกัดข้อสรุปที่นำไปปฏิบัติได้จากข้อมูลจริง และนำเสนอด้วยแผนภูมิที่กระชับที่สุด
# ตัวอย่างอ้างอิง
คำอธิบาย (2-3 ประโยค) + แผนภูมิในรูปแบบ JSON
ตัวอย่างคำอธิบาย:
เดือนนี้มี Leads ใหม่ 127 รายการ เพิ่มขึ้น 23% เมื่อเทียบกับเดือนก่อนหน้า โดยส่วนใหญ่มาจากช่องทางภายนอก
ตัวอย่างแผนภูมิ:
{
"title": {"text": "แนวโน้ม Leads ประจำเดือนนี้"},
"tooltip": {"trigger": "axis"},
"xAxis": {"type": "category", "data": ["Week1","Week2","Week3","Week4"]},
"yAxis": {"type": "value"},
"series": [{"type": "line", "data": [28,31,35,33]}]
}
# ตัวอย่างเชิงลบ (ไม่บังคับ)
- การใช้ภาษาผสมกัน → รักษาความสอดคล้องของภาษา
- แผนภูมิที่อัดแน่นเกินไป → แผนภูมิแต่ละอันควรแสดงเพียงหัวข้อเดียว
- ข้อมูลไม่ครบถ้วน → ระบุตามความเป็นจริงว่า "ไม่มีข้อมูลให้ใช้งาน"
ประเด็นสำคัญในการออกแบบ
- คำว่า "ความถูกต้อง" ปรากฏหลายครั้งในส่วนของเวิร์กโฟลว์, การเน้นย้ำ และกฎ (เป็นการย้ำเตือนที่หนักแน่น)
- เลือกรูปแบบผลลัพธ์แบบสองส่วนคือ "คำอธิบาย + JSON" เพื่อให้ง่ายต่อการเชื่อมต่อกับส่วนหน้า (Frontend)
- ระบุ "SQL แบบอ่านอย่างเดียว" เพื่อลดความเสี่ยง
4. วิธีพัฒนา Prompt ให้ดียิ่งขึ้นเรื่อยๆ
4.1 การทำซ้ำ 5 ขั้นตอน
เริ่มจากให้ใช้งานได้ → ทดสอบในวงจำกัด → บันทึกปัญหา → เพิ่มกฎ/ตัวอย่างเพื่อแก้ไข → ทดสอบอีกครั้ง
แนะนำให้ทดสอบงานทั่วไป 5-10 งานในครั้งเดียว โดยใช้เวลาประมาณ 30 นาทีต่อรอบครับ/ค่ะ
4.2 หลักการและสัดส่วน
- เน้นการชี้นำเชิงบวกก่อน: บอก AI ก่อนว่าควรทำอย่างไร
- ปรับปรุงโดยมีปัญหาเป็นตัวขับเคลื่อน: เพิ่มข้อจำกัดเมื่อเกิดปัญหาเท่านั้น
- ข้อจำกัดที่พอเหมาะ: อย่าเพิ่งใส่ "ข้อห้าม" มากเกินไปตั้งแต่แรก
สัดส่วนจากประสบการณ์: เชิงบวก 80% : เชิงลบ 20% ครับ/ค่ะ
4.3 การปรับปรุงทั่วไป
ปัญหา: แผนภูมิมีข้อมูลมากเกินไป อ่านยาก
การปรับปรุง:
- เพิ่มในส่วน "ข้อมูลพื้นฐาน": แผนภูมิหนึ่งอันต่อหนึ่งหัวข้อ
- ให้ "แผนภูมิแบบตัวชี้วัดเดียว" ในส่วน "ตัวอย่างอ้างอิง"
- หากปัญหายังคงเกิดขึ้นซ้ำๆ ให้เพิ่มข้อจำกัดที่เข้มงวดในส่วน "กฎที่เข้มงวด/การเน้นย้ำซ้ำๆ"
5. เทคนิคขั้นสูง
5.1 ใช้ XML/แท็ก เพื่อโครงสร้างที่ชัดเจนยิ่งขึ้น (แนะนำสำหรับ Prompt ที่ยาว)
เมื่อเนื้อหามีมากกว่า 1,000 ตัวอักษร หรืออาจทำให้เกิดความสับสน การใช้แท็กเพื่อแบ่งส่วนจะช่วยให้มีเสถียรภาพมากขึ้นครับ/ค่ะ
<บทบาท>คุณคือ Dex ผู้เชี่ยวชาญด้านการจัดระเบียบข้อมูล</บทบาท>
<สไตล์>ละเอียดรอบคอบ, แม่นยำ, มีระเบียบ</สไตล์>
<งาน>
ต้องดำเนินการตามขั้นตอนต่อไปนี้:
1. ระบุฟิลด์สำคัญ
2. ดึงค่าฟิลด์
3. จัดรูปแบบให้เป็นมาตรฐาน (วันที่ YYYY-MM-DD)
4. ส่งออกเป็น JSON
</งาน>
<กฎ>
MUST: รักษาความถูกต้องของค่าฟิลด์
NEVER: ห้ามคาดเดาข้อมูลที่ขาดหายไป
ALWAYS: ทำเครื่องหมายสำหรับรายการที่ไม่แน่ใจเสมอ
</กฎ>
<ตัวอย่าง>
{"ชื่อ":"สมชาย","วันที่":"2024-01-15","จำนวนเงิน":5000,"สถานะ":"ยืนยันแล้ว"}
</ตัวอย่าง>
5.2 การเขียนแบบแบ่งชั้น "ข้อมูลพื้นฐาน + งาน" (วิธีที่เข้าใจง่ายขึ้น)
- ข้อมูลพื้นฐาน (ความเสถียรระยะยาว): AI Agent นี้คือใคร, มีสไตล์อย่างไร, และมีความสามารถอะไรบ้าง
- งาน (ปรับเปลี่ยนตามความต้องการ): ตอนนี้ต้องทำอะไร, เน้นตัวชี้วัดใด, และขอบเขตเริ่มต้นคืออะไร
ซึ่งสอดคล้องกับโมเดล "Agent + งาน" ของ NocoBase โดยธรรมชาติ: ข้อมูลพื้นฐานคงที่, แต่งานมีความยืดหยุ่น ครับ/ค่ะ
5.3 การนำโมดูลกลับมาใช้ซ้ำ
แยกกฎที่ใช้บ่อยออกเป็นโมดูล เพื่อนำมาประกอบใช้งานได้ตามต้องการ:
โมดูลความปลอดภัยของข้อมูล
MUST: ใช้คำสั่ง SELECT เท่านั้น
NEVER: ห้ามดำเนินการ INSERT/UPDATE/DELETE
โมดูลโครงสร้างผลลัพธ์
ผลลัพธ์ต้องประกอบด้วย:
1) คำอธิบายสั้นๆ (2-3 ประโยค)
2) เนื้อหาหลัก (แผนภูมิ/ข้อมูล/โค้ด)
3) ข้อเสนอแนะเพิ่มเติม (ถ้ามี)
6. กฎทองคำ (ข้อสรุปจากการปฏิบัติจริง)
- AI หนึ่งตัวควรทำงานเพียงประเภทเดียว การเชี่ยวชาญเฉพาะด้านจะทำให้มีเสถียรภาพมากขึ้น
- ตัวอย่างมีประสิทธิภาพมากกว่าคำขวัญ ให้ตัวอย่างเชิงบวกก่อนเสมอ
- ใช้ MUST/ALWAYS/NEVER เพื่อกำหนดขอบเขต
- แสดงออกในรูปแบบของกระบวนการ เพื่อลดความไม่แน่นอน
- เริ่มต้นเล็กๆ ทดสอบบ่อยๆ แก้ไขน้อยๆ และทำซ้ำอย่างต่อเนื่อง
- อย่าจำกัดมากเกินไป เพื่อหลีกเลี่ยงการ "เขียนตายตัว"
- บันทึกปัญหาและการเปลี่ยนแปลง เพื่อสร้างเวอร์ชัน
- หลัก 80/20: ก่อนอื่นให้บอก "วิธีที่ถูกต้อง" ก่อน จากนั้นค่อยจำกัด "สิ่งที่ห้ามทำผิด"
7. คำถามที่พบบ่อย
Q1: ความยาวที่เหมาะสมคือเท่าไหร่?
- AI Agent พื้นฐาน: 500–800 ตัวอักษร
- AI Agent ที่ซับซ้อน: 800–1500 ตัวอักษร
- ไม่แนะนำให้เกิน 2,000 ตัวอักษร (อาจทำให้ช้าและซ้ำซ้อน)
มาตรฐาน: ครอบคลุมทั้งเก้าองค์ประกอบ แต่ไม่มีเนื้อหาที่ไม่จำเป็น
Q2: จะทำอย่างไรถ้า AI ไม่ปฏิบัติตามคำสั่ง?
- ใช้ MUST/ALWAYS/NEVER เพื่อกำหนดขอบเขตให้ชัดเจน
- ย้ำข้อกำหนดสำคัญ 2–3 ครั้ง
- ใช้แท็ก/การแบ่งส่วนเพื่อเสริมสร้างโครงสร้าง
- ให้ตัวอย่างเชิงบวกมากขึ้น หลีกเลี่ยงการพูดถึงหลักการลอยๆ
- ประเมินว่าจำเป็นต้องใช้โมเดลที่ทรงพลังกว่าหรือไม่
Q3: จะรักษาสมดุลระหว่างการชี้นำเชิงบวกและเชิงลบได้อย่างไร?
เริ่มจากการเขียนส่วนเชิงบวกก่อน (บทบาท, เวิร์กโฟลว์, ตัวอย่าง) จากนั้นค่อยเพิ่มข้อจำกัดตามข้อผิดพลาด และจำกัดเฉพาะจุดที่ "ผิดซ้ำๆ" เท่านั้นครับ/ค่ะ
Q4: ควรมีการอัปเดตบ่อยแค่ไหน?
- ข้อมูลพื้นฐาน (ตัวตน/สไตล์/ความสามารถหลัก): มีความเสถียรในระยะยาว
- งาน (สถานการณ์/ตัวชี้วัด/ขอบเขต): ปรับเปลี่ยนตามความต้องการทางธุรกิจ
- หากมีการเปลี่ยนแปลง ให้สร้างเวอร์ชันใหม่และบันทึก "เหตุผลในการเปลี่ยนแปลง" ครับ/ค่ะ
8. ขั้นตอนต่อไป
ฝึกปฏิบัติจริง
- เลือกลักษณะงานง่ายๆ (เช่น ผู้ช่วยฝ่ายบริการลูกค้า) เขียน Prompt "เวอร์ชันที่ใช้งานได้" โดยใช้ 9 องค์ประกอบ และทดสอบกับงานทั่วไป 5 งาน
- ค้นหา AI Agent ที่มีอยู่ รวบรวมปัญหาจริง 3–5 ข้อ และทำการปรับปรุงเล็กน้อยหนึ่งรอบ
อ่านเพิ่มเติม
บทสรุป
ทำให้ใช้งานได้ก่อน แล้วค่อยปรับปรุงให้ดีขึ้น
เริ่มต้นจากเวอร์ชันที่ "ใช้งานได้" ก่อน จากนั้นรวบรวมปัญหา เพิ่มตัวอย่าง และปรับปรุงกฎอย่างต่อเนื่องในงานจริงครับ/ค่ะ
โปรดจำไว้ว่า: ก่อนอื่น ให้บอก AI ว่าควรทำอย่างไรให้ถูกต้อง (การชี้นำเชิงบวก) จากนั้นค่อยจำกัดไม่ให้ทำผิดพลาด (ข้อจำกัดที่พอเหมาะ) ครับ/ค่ะ