Prompt Chaining: แตกงานใหญ่เป็นขั้นตอนให้ AI
Prompt Chaining คืออะไร เมื่อไหร่ควรแตกงานเป็นหลายขั้น เมื่อไหร่ปล่อยให้โมเดลคิดเอง พร้อมตัวอย่าง chain เขียนประกาศรับสมัครงาน
ลองสั่ง AI ในข้อความเดียวว่า "อ่านโน้ตจากหัวหน้าทีม สรุปคุณสมบัติ เขียนประกาศรับสมัครงาน ตรวจภาษาให้ไม่กีดกัน แล้วแปลเป็นอังกฤษ" ผลที่ได้มักครบทุกข้อแบบผิวๆ และพอผิดตรงไหน คุณก็ไม่รู้ว่าผิดตั้งแต่ขั้นไหน วิธีแก้ที่ทีมทำ AI workflow ใช้กันคือ Prompt Chaining
Prompt Chaining คืออะไร
Prompt Chaining คือการแตกงานใหญ่เป็นหลายขั้น แต่ละขั้นเป็นการเรียกโมเดลแยกกัน และส่งผลลัพธ์ของขั้นก่อนหน้าเป็นอินพุตของขั้นถัดไป คู่มือ prompting ของ Anthropic อธิบายว่าการแยกเป็นการเรียกทีละขั้นยังมีประโยชน์เมื่อคุณ ต้องการตรวจผลลัพธ์ระหว่างทาง หรือ ต้องการบังคับโครงสร้าง pipeline ที่แน่นอน เพราะคุณสามารถบันทึก ประเมิน หรือแยกเส้นทางได้ทุกจุด
เมื่อไหร่ควร chain และเมื่อไหร่ไม่ต้อง
ควร chain เมื่อ
- แต่ละขั้นต้องใช้คำสั่ง ข้อมูล หรือแม้แต่โมเดลต่างกัน
- คุณต้องเก็บ log หรือให้คนตรวจระหว่างทาง เช่น ก่อนส่งอีเมลจริง
- บางขั้นต้องเรียกระบบอื่น เช่น ค้นฐานข้อมูล แล้วค่อยให้ AI ทำต่อ
- ต้องการแยกเส้นทางตามผลลัพธ์ เช่น ถ้าเป็นคำร้องเรียนให้ส่งไปอีกเส้น
ไม่ต้อง chain เมื่อ
Anthropic ระบุว่าโมเดลรุ่นใหม่ที่มี adaptive thinking และการสั่งงาน sub-agent จัดการเหตุผลหลายขั้นภายในได้เองเป็นส่วนใหญ่ ถ้างานไม่ต้องตรวจระหว่างทาง การเขียน prompt เดียวที่ชัดเจนอาจพอ และง่ายกว่าดูแล chain ยาว
รูปแบบ chain ที่ใช้บ่อย
1. Sequential: ทำทีละขั้น
สกัดข้อมูล แล้ววิเคราะห์ แล้วเขียน แต่ละขั้นมีหน้าที่เดียว
2. Self-correction: ร่าง ตรวจ แก้
Anthropic ระบุว่ารูปแบบที่พบบ่อยที่สุดคือ ให้ AI ร่างงาน แล้วให้ AI ตรวจงานนั้นตามเกณฑ์ จากนั้นแก้ตามผลตรวจ
3. Planner กับ Worker
คู่มือ reasoning ของ OpenAI อธิบายว่าหลาย workflow ใช้ reasoning model เป็น "planner" วางแผนและแตกงาน แล้วให้โมเดลที่เร็วและถูกกว่าเป็น "workhorse" ลงมือทำแต่ละขั้น
4. แตกงานให้ sub-agent
บทความ context engineering ของ Anthropic อธิบายรูปแบบที่ agent หลักคอยประสานงาน แล้วส่งงานย่อยให้ sub-agent ที่ทำงานใน context ที่สะอาด เมื่อเสร็จ sub-agent ส่งกลับเฉพาะบทสรุปที่กลั่นแล้ว เหมาะกับงานค้นคว้าหลายหัวข้อที่ไม่ต้องรอกัน และช่วยไม่ให้ context ของตัวหลักรกด้วยรายละเอียดที่ไม่จำเป็น
ตัวอย่าง: chain เขียนประกาศรับสมัครงานของทีม HR
- สกัด: อ่านโน้ตของหัวหน้าทีม แล้วคืนเป็นข้อมูลโครงสร้าง ได้แก่ ชื่อตำแหน่ง หน้าที่ ทักษะจำเป็น ทักษะที่มีก็ดี (ใช้ Structured Output เพื่อให้ขั้นต่อไปอ่านได้แน่นอน)
- ร่าง: เขียนประกาศจากข้อมูลขั้นแรกตามเทมเพลตบริษัท
- ตรวจ: ตรวจตามเช็กลิสต์ เช่น ไม่ระบุอายุ เพศ หรือรูปลักษณ์ที่ไม่เกี่ยวกับงาน และไม่มีคุณสมบัติที่ขัดกันเอง คืนรายการปัญหาที่พบ
- แก้: แก้ร่างตามรายการปัญหา
- คนตรวจ: HR อ่านรอบสุดท้ายก่อนเผยแพร่
ส่งผลระหว่างขั้นโดยครอบด้วยแท็ก เช่น <draft> หรือ <issues> เพื่อให้แต่ละขั้นรู้ชัดว่าอะไรคือข้อมูลจากขั้นก่อน
Chain ที่ดีคือ chain ที่คุณชี้ได้ทันทีว่าผิดตั้งแต่ขั้นไหน
ข้อควรระวัง
- ความผิดพลาดสะสมได้ ถ้าขั้นแรกสกัดข้อมูลผิด ทุกขั้นต่อจากนั้นจะผิดตาม จึงควรตรวจผลขั้นแรกให้เข้ม
- ทุกขั้นที่เพิ่มคือเวลาและค่าใช้จ่ายที่เพิ่ม อย่าแตกขั้นเกินความจำเป็น
- ให้ AI ตรวจงาน AI ไม่ได้แทนการตรวจของคนในงานที่มีผลกับคนจริง เช่น การจ้างงาน
เริ่มต้นยังไง
- เขียนขั้นตอนที่คุณทำงานนั้นเองด้วยมือออกมาเป็นข้อๆ
- รวมขั้นที่ใช้ข้อมูลและคำสั่งชุดเดียวกัน แยกขั้นที่ต้องตรวจหรือเรียกระบบอื่น
- ให้แต่ละขั้นมีเป้าหมายเดียวและรูปแบบผลลัพธ์ชัด
- ทดสอบทีละขั้นก่อนต่อเป็น chain เต็ม แล้วเก็บ log ผลลัพธ์ระหว่างทางไว้ดู
ถ้าคุณอยากต่อ chain แบบนี้เข้ากับเครื่องมือ automation อ่านต่อใน AI Workflow Automation และถ้าคุณเป็นนายจ้างที่อยากลงประกาศงานที่เขียนเสร็จแล้ว เริ่มได้ที่ Plants.work สำหรับนายจ้าง