คุณเคยเขียนคำว่า MANDATORY หรือ DO NOT SKIP ลงใน prompt ไหม? ถ้าเคย แสดงว่าคุณกำลังใช้วิธีผิดที่จะทำให้ AI agent ทำงานได้น่าเชื่อถือ บทความจาก Hacker News ที่ได้รับความสนใจอย่างมาก (586 points, 292 comments) โต้แย้งประเด็นสำคัญ: ถ้าคุณต้องเขียนเพื่อ "บังคับ" LLM ด้วยภาษาธรรมดา แสดงว่าคุณใช้เครื่องมือผิดวิธี
ปัญหาของ Prompt Engineering แบบเดิม
เมื่อ AI agent ทำงานผิดพลาด ความรู้สึกแรกของหลายคนคือ "เพิ่ม prompt" อธิบายให้ละเอียดขึ้น เพิ่มกฎเกณฑ์ เพิ่มตัวอย่าง จน prompt ยาวเป็นหน้าๆ แต่นี่คือวิธีที่ไม่ยั่งยืน เพราะ: LLM ไม่ได้ "อ่าน" prompt แบบมนุษย์ — มันประมวลผล token เป็นช่วงๆ ไม่มีความเข้าใจแบบ "บังคับทำตาม" เหมือนพนักงาน Prompt ยาว = พื้นที่ให้ LLM หลุดจากเจตนาเดิมมากขึ้น — ยิ่งยาว ยิ่งมีจุดที่อาจตีความผิดเพี้ยน Silent failure — LLM อาจข้ามขั้นตอนสำคัญโดยไม่บอก และคุณจะไม่มีทางรู้จนกว่าจะสายเกินไป ตัวอย่างที่พบบ่อย: Agent ที่ควรตรวจสอบข้อมูลก่อนส่งอีเมล แต่ข้ามขั้นตอนนั้นไปเพราะ prompt ไม่ได้ "บังคับ" ในระดับโครงสร้าง
Control Flow คืออะไร และทำไมถึงสำคัญ
Control flow คือการกำหนด ลำดับขั้นตอนที่แน่นอน (deterministic) ด้วย code แทนที่จะฝากไว้กับ prompt ลองนึกถึงความแตกต่าง:
แบบ Prompt-based:
"คุณต้องตรวจสอบข้อมูลก่อน แล้วถ้าถูกต้องค่อยส่งอีเมล ห้ามข้ามขั้นตอนนี้เด็ดขาด"
แบบ Control Flow:
validation_result = validate(data) # deterministic check
if not validation_result.passed:
return error_response()
send_email(data) # จะมาถึงตรงนี้ได้ก็ต่อเมื่อผ่าน validation
ความแตกต่างคือ: แบบแรก LLM อาจเลือกข้ามได้ แบบที่สอง ทางเลือกคือทำหรือ error — ไม่มีทางข้าม
สถาปัตยกรรมที่ถูกต้อง: Deterministic Scaffold
แนวคิดหลักคือการสร้าง "scaffold" หรือโครงสร้างที่แน่นอนคลุม LLM ไว้ โดย LLM ทำหน้าที่เป็น component หนึ่ง ในระบบ ไม่ใช่ตัวระบบทั้งหมด
องค์ประกอบสำคัญ:
1. State Machine (เครื่องจักรสถานะ)
กำหนดสถานะที่เป็นไปได้ทั้งหมดของ workflow เช่น: INIT → EXTRACT → VALIDATE → TRANSFORM → SUBMIT → DONE
แต่ละ state transition ต้องผ่านเงื่อนไขที่ชัดเจน ไม่มีการกระโดดข้าม state
2. Validation Checkpoints
จุดตรวจสอบที่กำหนดด้วย code ไม่ใช่ prompt เช่น: ตรวจ schema, ตรวจ range ของค่า, ตรวจ format ถ้าไม่ผ่าน checkpoint → วนกลับไปแก้ ไม่ใช่ข้ามไป
3. Risk Gates
จุดที่ต้องมีการอนุมัติจากมนุษย์ก่อนดำเนินการต่อ เช่น: ก่อนส่งอีเมลจำนวนมาก, ก่อนแก้ไข database ป้องกันไม่ให้ agent ทำอะไรที่กลับคืนไม่ได้โดยไม่มีมนุษย์อนุมัติ
เปรียบเทียบ: Prompt Chain vs Control Flow
Prompt Chain (เปราะบาง):
พึ่งพา LLM ในการตัดสินใจทุกขั้นตอน Error แบบเงียบ (silent failure) เกิดได้ง่าย ยิ่งซับซ้อน ยิ่งไม่น่าเชื่อถือ Debug ยาก เพราะไม่รู้ว่าผิดตรงไหน
Control Flow (แข็งแกร่ง):
โครงสร้างกำหนดด้วย code ที่ตรวจสอบได้ Error ถูกจับและจัดการอย่างชัดเจน ซับซ้อนแค่ไหนก็ยังคงความน่าเชื่อถือ Debug ง่าย เพราะรู้ลำดับและจุดที่เกิดปัญหา
ในทางปฏิบัติ: ออกแบบ Agent อย่างไร
Microsoft เปิดตัว Conductor (พฤษภาคม 2026) เครื่องมือ open-source สำหรับ deterministic orchestration ของ multi-agent workflow โดยกำหนด workflow ด้วย YAML และ routing ระหว่าง agent เป็นแบบ deterministic ทั้งหมด แนวทางที่แนะนำ: ใช้ LLM สำหรับงานที่ต้องใช้ความฉลาด: วิเคราะห์, สรุป, ตัดสินใจเชิงซ้อน ใช้ code สำหรับงานที่ต้องการความแน่นอน: ตรวจสอบ, สลับขั้นตอน, จัดการ error อย่าฝาก "ความปลอดภัย" ไว้กับ prompt — ฝากไว้กับ code
สรุป
ถ้าคุณกำลังเขียน prompt ที่ยาวขึ้นเรื่อยๆ เพื่อควบคุมพฤติกรรมของ AI agent นั่นเป็นสัญญาณว่าคุณต้องการ control flow ไม่ใช่ prompt ที่ยาวขึ้น LLM เป็นเครื่องมือที่ทรงพลัง แต่มันเป็นแค่ component หนึ่ง ไม่ใช่ระบบทั้งหมด การห่อหุ้ม LLM ด้วย deterministic scaffold — state machine, validation checkpoint, risk gate — คือวิธีที่ถูกต้องในการสร้าง agent ที่ทำงานได้น่าเชื่อถือใน production ถอดความจากประชาสัมพันธ์: "ปฏิบัติต่อ LLM เหมือน function call ที่อาจคืนค่าผิด ไม่ใช่เหมือนพนักงานที่อ่านคู่มือแล้วทำตาม" แหล่งอ้างอิง: https://news.ycombinator.com/item?id=48051562