ข้ามไปยังเนื้อหา

เทคนิคการสร้าง AI Agent

การสร้างและออกแบบคำสั่งของ AI Agent ให้มีประสิทธิภาพ สามารถทำงานได้ตามที่เราต้องการ และมีความเป็นธรรมชาติ จำเป็นจะต้องผ่านการทดสอบด้วยการแก้ไขและปรับแต่ง Prompt และ Flow อย่างต่อเนื่อง

เราจึงได้รวบรวมตัวอย่าง Prompt หรือการออกแบบ Flow ที่จะช่วยให้การสร้าง AI Agent ได้ง่ายขึ้น


ใช้ Markdown ใน Prompt ของคุณ

Markdown เป็นรูปแบบการเขียน Prompt ที่จะทำให้ AI สามารถเข้าใจได้ง่ายขึ้น และยังทำให้ Prompt มีความเป็นระเบียบ

ตัวอย่าง

## Objection Handling (จัดการลูกค้าที่ปฏิเสธ)
---
### 💸 "แพงไป / งบไม่พอตอนนี้"
เข้าใจเลยค่ะ ลองเทียบกันดูนะคะ ระหว่าง A กับ B ....
---
### ⏰ "ไม่มีเวลา"
สำหรับคนที่ไม่มีเวลา อิงฟ้าขอแนะนำว่า.....
---

แก้ไขคำพูดเมื่อ AI ไม่มีข้อมูล

เมื่อ AI Agent เจอคำถามหรือความต้องการของลูกค้าที่ทางตัว AI Agent เองไม่มีข้อมูล คุณสามารถใช้ Prompt ตัวอย่างนี้ในการปรับแต่งวิธีการพูดให้สอดคล้องกับนโยบายของบริษัทได้ สำหรับบางบริษัท คุณอาจจะตั้งค่าให้ AI Agent แจ้งว่าจะให้เจ้าหน้าที่ติดต่อกลับ หรือสำหรับบางบริษัทอาจจะแจ้งว่าไม่มีข้อมูลแล้วสิ้นสุดแค่นั้น

# การจัดการคำถามที่ตอบไม่ได้ (Unknown Question Handling)
## หลักการหลัก
เมื่อถูกถามในสิ่งที่ตอบไม่ได้ ให้แสดงความเห็นใจ แล้วเสนอให้เจ้าหน้าที่ติดต่อกลับ
**ห้ามใช้ประโยคเดิมซ้ำกันทุกครั้ง** ให้สุ่มเลือกรูปแบบจาก Variation Pool ด้านล่าง
และปรับน้ำเสียงให้เหมาะกับบริบทของการสนทนา
---
## Variation Pool — สลับใช้ตามสถานการณ์
- "ขออภัยด้วยครับ เรื่องนี้ผมไม่ทราบข้อมูลเลยครับ เดี๋ยวผมขอให้ทีมงานที่ดูแลส่วนนี้โดยตรงโทรกลับหาคุณลูกค้านะครับ"
- "ขออภัยด้วยครับ เรื่องนี้ผมอาจจะยังไม่มีข้อมูลนะครับ เดี๋ยวผมนัดให้เจ้าหน้าที่ที่เกี่ยวข้องโทรกลับหาคุณลูกค้านะครับ"
- "เรื่องนี้ผมยังไม่มั่นใจในข้อมูลครับ เดี๋ยวให้ทีมงานติดต่อกลับนะครับ"
- "ส่วนนี้ผมยังไม่มีข้อมูลเลยครับ เดี๋ยวให้เจ้าหน้าที่โทรกลับนะครับ"
- "ขออนุญาตประสานงานให้เจ้าหน้าที่ที่เกี่ยวข้องติดต่อกลับนะครับ"
- "เรื่องนี้ผมยังไม่ทราบครับ เพื่อความถูกต้อง เดี๋ยวผมให้ทีมงานติดต่อกลับให้ข้อมูลนะครับ"
- "ส่วนนี้ผมไม่มีข้อมูลเลยครับ เดี๋ยวให้เจ้าหน้าที่โทรกลับนะครับ"
- "อันนี้ผมไม่ทราบเหมือนกันครับ เดี๋ยวผมส่งเรื่องให้ทีมที่ดูแลโดยตรงติดต่อกลับมาอธิบายนะครับ"
---
## Switching Rules — เลือกตาม context
- **ถ้าถูกถามซ้ำในเรื่องเดียวกัน** → ต้องสลับไปใช้ variation ที่ต่างออกไป ห้ามพูดซ้ำ
- **ห้ามขึ้นต้นด้วย** `"ขออภัยครับ ผมขอให้ทางพนักงาน..."` ทุกครั้ง — ถือว่า robotic
- **สามารถผสม variation** หรือเพิ่มรายละเอียดเล็กน้อยให้เป็นธรรมชาติมากขึ้นได้

แก้ไขการออกเสียงคำที่ผิด

สำหรับคำเฉพาะ หรือหน่วยวัดต่างๆ AI Agent อาจจะอ่านไม่ถูกต้อง หรืออ่านไม่ตรงตามที่เราต้องการ เราสามารถเขียน Prompt เพื่อแก้ไขในส่วนนี้ได้ เช่น

  • AI อ่าน “14:00 น.” เป็น “14:00 นอจุด”
  • AI อ่าน “300,000 มล.” เป็น “สามแสนมอลอจุด”
  • AI อ่านรหัสไปรษณีย์ “10700” เป็น “หนึ่งหมื่นเจ็ดร้อย”
## General Pronunciation Rules
- อย่า Output ตัวเลข ให้ output เป็นตัวเลขภาษาเขียน เช่น
25 -> ยี่สิบห้า
100 -> หนึ่งร้อย
- สำหรับ dash ในการบอกค่าหนึ่งถึงค่าหนึ่ง ให้ใช้คำว่า "ถึง" แทน เช่น
100-150 -> หนึ่งร้อยถึงหนึ่งร้อยห้าสิบ
- สำหรับเวลา เช่น "14:00 น." ให้อ่าน "น." เป็น "นาฬิกา"
- "มล." -> "มิลลิลิตร"
---
## Address Pronunciation Rules
- การอ่านเลขที่บ้าน เช่น 444 ให้อ่านเป็น สี่สี่สี่ หรือ 123/1 ให้อ่านเป็น หนึ่งสองสามทับหนึ่ง
- การอ่านรหัสไปรษณีย์ในที่อยู่ ให้อ่านเป็นตัวเลขแบบนี้ 77000 -> เจ็ดเจ็ดศูนย์ศูนย์ศูนย์
- ตัวอย่างการอ่านที่อยู่ ให้เติม "," หลังแต่ละส่วนของที่อยู่ด้วย:
* 28/1 ม.2 ต.อ่าวน้อย อ.เมือง จ.ประจวบ 77000 -> ยี่สิบแปดทับหนึ่ง, หมู่สอง, ตำบลอ่าวน้อย, อำเภอเมือง, จังหวัดประจวบคีรีขันธ์, เจ็ดเจ็ดศูนย์ศูนย์ศูนย์
* 444 หมู่ 6 ซอยเศรษฐศิริ ถนนพุทธมณฑลสาย 2 แขวงทวีวัฒนา เขตทวีวัฒนา กรุงเทพมหานคร 10170 -> สี่สี่สี่, หมู่หก, ซอยเศรษฐศิริ, ถนนพุทธมณฑลสายสอง, แขวงทวีวัฒนา, เขตทวีวัฒนา, กรุงเทพมหานคร, หนึ่งศูนย์หนึ่งเจ็ดศูนย์

AI ตอบยาวไป หรือพูดไม่เป็นธรรมชาติ

เพื่อประสบการณ์ของลูกค้าที่ดี Agent AI ควรจะพูดด้วยเนื้อหาที่กระชับและไม่ยาวจนเกินไปเหมือนเป็นพนักงานมนุษย์จริงๆ ทาง ingfah แนะนำว่าให้พูดยาวไม่เกิน 3 ประโยค หรือถ้าในการใช้งานมีสถานการณ์ที่ตอบยาวไป ให้นำมาเพิ่มเป็น Negative Case ใน Prompt ตัวอย่างด้านล่างนี้ เทคนิคในการแสดงตัวอย่างการสนทนาให้ดูว่าแบบไหนควรทำ และไม่ควรทำ เป็นวิธีที่ช่วยปรับพฤติกรรม AI Agent ได้ดี และสามารถประยุกต์ใช้ได้หลายแบบ

- ตอบคำถามโดยใช้ภาษาพูด ไม่ใช่ภาษาเขียน ไม่ต้องบรรยายยาว เน้นใจความ เนื้อๆเท่านั้น ให้เลือกคำตอบที่คิดว่าดีที่สุดเสมอ ไม่ต้องยื่นตัวเลือกให้กับ user
- ❌ ตัวอย่างที่ห้ามตอบ
- [user] รอสักครู่นะครับ
- [assistant] ได้เลยค่ะ ให้อิงฟ้ารอที่สาย หรือว่าต้องการให้วางสายก่อนไหมคะ
- ✅ ตัวอย่างที่ถูกต้อง
- [user] รอสักครู่นะครับ
- [assistant] ได้เลยค่ะ
- ❌ ตัวอย่างที่ห้ามตอบ
- [user] ครับ แล้วสินค้าตัวนี้ใช้งานยังไงครับ
- [assistant] โอเคค่ะ สำหรับสินค้า XXX นะคะ คุณลูกค้าสามารถเปิดใช้งานได้ทันทีเลยค่ะ มีคำถามส่วนไหนให้อิงฟ้าช่วยเพิ่มเติมไหมคะ
- ✅ ตัวอย่างที่ถูกต้อง
- [user] ครับ แล้วสินค้าตัวนี้ใช้งานยังไงครับ
- [assistant] สำหรับสินค้า XXX นะคะ คุณลูกค้าสามารถเปิดใช้งานได้ทันทีเลยค่ะ

เวลาบอกขั้นตอนลูกค้า ให้แบ่งการสนทนา อย่าพูดทั้งหมดทีเดียว

การแนะนำวิธีการแก้ไขปัญหาให้ลูกค้า หรือการบอกข้อมูลที่มีหลายข้อ ไม่จำเป็นที่จะต้องพูดให้จบในหนึ่งบทสนทนา วิธีที่เป็นธรรมชาติที่สุดคือการค่อยๆบอกทีละข้อ และมีการหยุดรอดให้ลูกค้าทำตามหรือสอบถามเพิ่มเติม

### ทำไมแอปแจ้งว่าอยู่นอกพื้นที่ และสแกนจ่ายไม่ได้?
วิธีการเปิด Location (Android):
1. ไปที่ "ตั้งค่า" เลือก "แอป"
2. เลือก "XXXX"
3. เลือก "การอนุญาต"
4. เลือก "ตำแหน่ง"
5. เลือก "อนุญาตขณะมีการใช้งานแอป" และเปิดใช้งาน "ตำแหน่งที่แน่นอน"
วิธีการเปิด Location (iOS):
1. ไปที่ "ตั้งค่า" เลือก "แอป"
2. เลือก "XXXX"
3. เลือก "ตำแหน่งที่ตั้ง"
4. เลือก "ในระหว่างใช้แอป" และเปิดใช้งาน "ตำแหน่งที่ตั้งจริง"
ตัวอย่างบทสนทนา 1:
[user] แอปแจ้งว่าอยู่นอกพื้นที่ สแกนจ่ายไม่ได้อะครับ
[assistant] ลูกค้าเปิดการอนุญาตตำแหน่งบนมือถือไว้หรือยังคะ
[user] ยังเลยครับ
[assistant] ลูกค้าใช้เป็นแอนดรอยหรือไอโอเอสคะ?
[user] แอนดรอยครับ
[assistant] ลูกค้าไปที่ "ตั้งค่า"<break time="2ms"/>แล้วก็เลือก "แอป" นะคะ
[user] ครับ
[assistant] เลือก "XXXX"<break time="2ms"/>แล้วก็เลือก "การอนุญาต" ค่ะ
[user] ครับ
[assistant] จากนั้นเลือก "ตำแหน่ง"<break time="2ms"/>และเลือก "อนุญาตขณะมีการใช้งานแอป" ได้เลยค่ะ
[user] โอเคครับ เดี๋ยวผมลองทำดู
ตัวอย่างบทสนทนา 2:
[user] แอปแจ้งว่าอยู่นอกพื้นที่ สแกนจ่ายไม่ได้อะครับ
[assistant] ลูกค้าเปิดการอนุญาตตำแหน่งบนมือถือไว้หรือยังคะ
[user] ยังเลยครับ
[assistant] ลูกค้าใช้เป็นแอนดรอยหรือไอโอเอสคะ?
[user] ไอโอเอสครับ
[assistant] ลูกค้าไปที่ "ตั้งค่า"<break time="2ms"/>และเลือก "แอป" นะคะ
[user] ครับ
[assistant] เลือก "XXXX"<break time="2ms"/>แล้วก็เลือก "ตำแหน่งที่ตั้ง" ค่ะ
[user] ครับ
[assistant] จากนั้นเลือก "ในระหว่างใช้แอป"<break time="2ms"/>และเปิดใช้งาน "ตำแหน่งที่ตั้งจริง" ได้เลยค่ะ
[user] โอเคครับ เดี๋ยวผมลองทำดู

ตีกรอบไม่ให้ AI ตอบเกินข้อมูลที่ให้ไว้

หัวข้อ แก้ไขคำพูดเมื่อ AI ไม่มีข้อมูล ด้านบนจัดการกรณีที่ AI รู้ตัวว่าไม่มีข้อมูล แต่ปัญหาที่อันตรายกว่าคือกรณีที่ AI อนุมานจากสิ่งที่ Prompt บอกเป็นนัย แล้วพูดออกไปเหมือนเป็นข้อเท็จจริง เช่น Prompt เขียนว่า “ติดต่อช่องทางอื่นได้” AI ก็ไปเดาเองว่ามี LINE และบอกชื่อบัญชีที่ไม่มีอยู่จริง

## ขอบเขตความรู้ (เข้มงวด)
- ตอบได้**เฉพาะ**ข้อมูลที่ระบุไว้ใน Prompt นี้หรือในคลังความรู้เท่านั้น
- **ห้าม**คาดเดา อนุมาน หรือใช้ความรู้ทั่วไปมาเติมช่องว่าง
- **ห้าม**สร้างเงื่อนไข นโยบาย หรือข้อเท็จจริงที่ไม่ได้ระบุไว้
- ก่อนตอบทุกครั้ง ให้ตรวจสอบกับตัวเองว่า ข้อมูลนี้มีระบุไว้ตรงๆ หรือไม่
- ถ้า**ไม่มี** → ใช้คำตอบสำรองและเสนอให้เจ้าหน้าที่ติดต่อกลับ
- ถ้า**มี** → ตอบสั้นกระชับ
**ห้ามอนุมานจากสิ่งที่บอกเป็นนัย:**
แม้ข้อความใน Prompt จะบอกเป็นนัยถึงบางเรื่อง (เช่น "มีช่องทางอื่น")
ก็**ห้าม**ระบุชื่อ อธิบาย หรือขยายความสิ่งที่ไม่ได้เขียนไว้ตรงๆ
การบอกเป็นนัยไม่ใช่การอนุญาต ถ้าชี้ข้อความใน Prompt ที่รองรับคำตอบนั้นไม่ได้ ห้ามพูด
**ห้ามพูดถึงเรื่องต่อไปนี้ เว้นแต่ระบุไว้ชัดเจนใน Prompt:**
- ช่องทางติดต่อ (LINE, สาขา, เบอร์โทร, เว็บไซต์, อีเมล)
- ราคา ค่าธรรมเนียม หรือส่วนลด นอกเหนือจากที่ระบุไว้
- ระยะเวลาดำเนินการ
- คุณสมบัติสินค้าหรือเงื่อนไขการสมัคร
- การเปรียบเทียบกับคู่แข่ง
หากถูกถามเรื่องเหล่านี้โดยไม่มีข้อมูลรองรับ → ใช้คำตอบสำรองทันที

จำแนกประเภทตัวเลขก่อนเขียนกฎการอ่าน

ตัวเลขแต่ละประเภทต้องอ่านคนละแบบ ก่อนเขียนกฎการออกเสียง ให้ไล่ดูก่อนว่าตัวเลขในแคมเปญของคุณเป็นประเภทไหน

ประเภทตัวอย่างต้องอ่านแบบ
วันที่30/06/2569”สามสิบมิถุนายน สองพันห้าร้อยหกสิบเก้า” ห้ามอ่าน / เป็น “ทับ”
เวลา06:30”หกนาฬิกาสามสิบนาที” ห้ามอ่านเลขศูนย์นำหน้า
เลขอ้างอิงเลขที่สัญญา, เบอร์โทร, รหัสไปรษณีย์อ่านทีละตัว
จำนวนเงิน1,500อ่านเป็นค่าของจำนวน
ปริมาณ25 ชิ้นอ่านเป็นค่าของจำนวน

สำหรับวันที่และเวลา แนะนำให้ใช้ <say-as> แทนการเขียนกฎเอง เพราะแม่นยำกว่า

คำย่อภาษาไทยต้องเขียนติดกับคำข้างเคียง

ช่องว่างในภาษาไทยทำให้เสียงอ่านสะดุด

ตัวย่อ (เช่น อสม. ธกส. รพสต.) ต้องเขียนติดกับคำข้างหน้าและคำข้างหลังเสมอ
ห้ามมีช่องว่างทั้งหน้าและหลังตัวย่อ
- ❌ ผิด: "สำหรับกลุ่ม อสม. ดิฉันแนะนำ"
- ✅ ถูก: "สำหรับกลุ่มอสม.ดิฉันแนะนำ"

รายการหลายอย่างให้คั่นด้วยจุลภาค

พูดรายการหลายอย่าง (เช่น ชื่อธนาคาร เอกสารที่ต้องเตรียม) ให้คั่นด้วยจุลภาค ( , )
ไม่ใช่เว้นวรรค เพราะการเว้นวรรคในภาษาไทยทำให้เสียงอ่านหยุดเป็นช่วงๆ ฟังขาดๆ
- ❌ ผิด: "บัตรประชาชน ทะเบียนบ้าน สลิปเงินเดือน"
- ✅ ถูก: "บัตรประชาชน, ทะเบียนบ้าน, หรือสลิปเงินเดือน"

สะกดทีละส่วนเมื่อลูกค้าฟังไม่ออก

สำหรับข้อมูลที่ฟังยาก เช่น ID ไลน์ อีเมล หรือเลขอ้างอิง ให้ออกแบบเป็นขั้น ยิ่งถามซ้ำยิ่งละเอียดขึ้น

# การแจ้ง ID
รอบแรก: อ่านตามปกติ
รอบสอง (ลูกค้าถามซ้ำ): พูดช้าลงด้วย <speed ratio="0.6"/>
รอบสาม (ลูกค้ายังฟังไม่ทัน): แบ่งเป็นส่วน บอกทีละส่วน รอลูกค้าตอบรับก่อนไปส่วนถัดไป
[ai] เครื่องหมายแอทนะคะ
[user] ครับ
[ai] <speed ratio="0.6"/>เอ แอปเปิ้ล. ที ไทเกอร์. เอ็ม มังกี้. ค่ะ
[user] ครับ
[ai] ตามด้วย ขีดล่าง ค่ะ

พจนานุกรมการออกเสียงสำหรับแบรนด์ภาษาอังกฤษ

## พจนานุกรมการออกเสียง
* Oppo / OPPO → ออกเสียง "ออปโป้" (ห้ามอ่านทีละตัวอักษร เช่น โอ พี พี โอ)
* Samsung → "ซัมซุง"
* iPhone → "ไอโฟน"
* SMS → "เอสเอ็มเอส"
* 5G → "ไฟว์จี"

เทคนิคทำให้กฎที่เขียนไป AI ทำตามจริง

เขียนกฎไปแล้ว AI ยังทำผิดเหมือนเดิม เป็นสถานการณ์ที่เจอบ่อยที่สุดตอนปรับแต่ง Agent นี่คือลำดับวิธีแก้ตามความแรง

1. แปลงกฎที่เป็นคำบรรยาย ให้เป็นคู่ตัวอย่าง ❌ / ✅

กฎที่เขียนเป็นข้อความบรรยายมักแพ้ให้กับตัวอย่างบทสนทนาที่อยู่ใกล้ๆ กัน ถ้าเขียนกฎแล้วลองใหม่หนึ่งรอบยังไม่ได้ผล ให้แปลงเป็นคู่ตัวอย่างที่ใช้ ประโยคที่ AI พูดผิดจริงๆ จากสายที่ทดสอบ ไม่ใช่ประโยคสมมติ

2. รวมกฎย่อยเป็นเช็กลิสต์ตรวจก่อนพูด

ถ้ามีกฎเล็กๆ หลายข้อที่ AI ชอบลืม ให้รวบเป็นเช็กลิสต์ไว้ที่เดียว

# เช็กลิสต์ก่อนพูดทุกครั้ง
ก่อนตอบลูกค้า ให้ตรวจสอบทุกข้อต่อไปนี้
1. ไม่มีคำต้องห้ามที่ระบุไว้
2. ไม่ใช้คำลงท้ายซ้ำกับ 3 เทิร์นที่ผ่านมา
3. ใช้คำว่า คะ/ค่ะ ถูกต้องตามรูปประโยค
4. ข้อมูลที่กำลังจะพูดมีอยู่ใน Prompt หรือคลังความรู้จริง
5. ความยาวไม่เกิน 3 ประโยค

3. ถ้าห้ามแล้วยังไม่หยุด ให้ตัดความสามารถนั้นทิ้ง

การเขียนห้ามเป็นข้อความอาจเอาชนะบริบทที่แรงกว่าไม่ได้ เช่น ห้ามโอนสายนอกเวลาทำการ แต่พอลูกค้ายืนกรานหนักๆ AI ก็ยอมโอนอยู่ดี วิธีที่ได้ผลจริงคือ อย่าให้ AI มีความสามารถนั้นตั้งแต่แรกในสถานการณ์นั้น เช่น ปิดการใช้งาน Tool โอนสายในช่วงเวลาที่ไม่ควรโอน แทนที่จะเขียนกฎห้าม