Prompt งานโค้ด
& AI Agent
งานโค้ดคืองานที่ AI เก่งที่สุด — ถ้าเราให้ข้อมูลครบ
โค้ดมีไวยากรณ์ชัด มี test พิสูจน์ได้ — AI จึงเขียนโค้ดได้เก่งกว่างานไหน ๆ แต่ผลลัพธ์จะดีหรือพังขึ้นกับ ข้อมูลที่เราให้ ล้วน ๆ บทนี้สอน 4 เรื่อง: ขอโค้ด · ถาม bug · มอบงาน agent · และจุดที่ต้องระวัง
5
ส่วนผสมของ prompt ขอโค้ด
ภาษา+เวอร์ชัน · บริบท · ข้อจำกัด · ตัวอย่าง I/O · format
5
ส่วนของคำถาม bug ที่ดี
error เต็ม · โค้ด · คาดหวัง vs จริง · ลองแล้ว · environment
4
ข้อใน job brief ของ agent
เป้าหมาย · ขอบเขต · เกณฑ์สำเร็จ · ข้อจำกัด
01 · ขอโค้ดให้ได้ของจริง
สูตรขอโค้ด — 5 ส่วนผสมที่ AI ต้องรู้
"เขียนฟังก์ชันให้หน่อย" ได้โค้ดจากความน่าจะเป็น — แต่ถ้าให้ภาษา บริบท ข้อจำกัด ตัวอย่าง และ format ครบ จะได้โค้ดที่ใช้ในโปรเจกต์ได้จริง
01
ภาษา + เวอร์ชัน + framework
บอก "Python 3.12 + FastAPI" ไม่ใช่แค่ "Python" — คนละเวอร์ชัน syntax กับ lib ต่างกันมาก
02
บริบทโปรเจกต์
โค้ดรอบข้าง, convention ที่ทีมใช้, ฟังก์ชันนี้ถูกเรียกจากไหน ใครเป็นคนใช้
03
ข้อจำกัด
ห้ามใช้ lib ภายนอก / ต้อง type-safe / ต้องรองรับ edge case ไหนบ้าง — กันเซอร์ไพรส์
04
ตัวอย่าง input → output
1–2 คู่ก็พอ — ตัวอย่างเดียวอธิบาย spec ได้แม่นกว่าคำบรรยายสิบบรรทัด
05
Format ผลลัพธ์
"ฟังก์ชันเดียว + docstring" หรือ "เต็มไฟล์พร้อม imports" — บอกให้ชัดว่าอยากได้รูปแบบไหน
ลองดู — โจทย์เดียวกัน prompt ต่างกัน
prompt แย่ไม่มีส่วนผสมสักข้อ — AI ต้องเดาทั้งหมด
💬 Prompt ที่พิมพ์
เขียนฟังก์ชัน validate email หน่อย
🤖 ผลที่ได้ (mock output)
function validateEmail(email) {
const re = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;
return re.test(email);
}ได้ JavaScript — ทั้งที่โปรเจกต์เราเป็น Python (AI ไม่รู้ เพราะเราไม่ได้บอก)
"สมชาย@บริษัท.ไทย" → false — regex รับเฉพาะ A–Z ปฏิเสธ user ไทยทั้งหมด
คืน bool หรือ throw? ไม่มีสัญญาชัดเจน — เอาไป integrate แล้วเสี่ยงพังเงียบ ๆ
"" → false — รอดมาข้อเดียวแบบฟลุก ๆ
หมายเหตุ: นี่คือ mock output — ของจริงแต่ละรอบอาจต่างไปอีก และนั่นแหละคือประเด็น: prompt ที่คลุมเครือ = ผลลัพธ์สุ่ม, prompt ที่ระบุครบ = ผลลัพธ์ตรวจรับได้
02 · ถาม bug ให้ AI ช่วยได้จริง
Anatomy ของคำถาม bug — 5 ส่วนที่ทำให้ AI เลิกเดา
"โค้ดพัง ช่วยหน่อย" บังคับให้ AI เดา — แต่ถ้าให้ error เต็ม โค้ด ความคาดหวัง สิ่งที่ลองแล้ว และ environment ครบ AI จะชี้บรรทัดที่พังได้เลย
ทดลอง — ติ๊กข้อมูลที่จะแนบ แล้วดูว่าคำตอบ AI เปลี่ยนยังไง
สถานการณ์: หน้า /orders ใน Next.js พังเป็นจอขาว — คุณจะแนบอะไรไปกับคำถามบ้าง?
💬 คำถามของคุณ
ช่วยดูหน่อย หน้า orders พังครับ
ความแม่นของคำตอบ
🎲 AI ต้องเดาล้วน ๆ · 0/5
🤖 คำตอบที่จะได้กลับมา
เป็นไปได้หลายสาเหตุครับ 🤔 ลองไล่ตรวจดู: (1) ตัวแปรที่เรียก .map อาจเป็น undefined — ใส่ console.log ดูค่า (2) ตรวจว่า import ครบไหม (3) ลองลบโฟลเดอร์ .next แล้ว restart dev server (4) ลองอัปเดต dependency เป็นเวอร์ชันล่าสุด (5) ถ้ายังไม่หาย ส่งโค้ดมาดูหน่อยครับ
ได้ checklist กว้าง ๆ ที่คุณก็คิดเองได้ — เสียเวลาไป-กลับหลายรอบ
หลักคิด
ยิ่งให้ context มาก AI ยิ่งไม่ต้องเดา
AI ไม่เห็นหน้าจอคุณ ไม่เห็น repo คุณ — ทุกอย่างที่ไม่ได้แนบไป คือช่องว่างที่มันต้องเติมด้วยการเดา ข้อมูล 5 ส่วนนี้คือการย้ายงาน "เดา" ออกจากคำตอบให้หมด
เคล็ดลับใช้ทุกวัน
วาง error ก่อน แล้วค่อยพิมพ์คำถาม
เปิดข้อความด้วย stack trace ทั้งดุ้น แล้วค่อยตามด้วยคำถามสั้น ๆ ก็พอ — บ่อยครั้ง error บอกคำตอบไปแล้วครึ่งหนึ่ง และ AI อ่านของยาว ๆ ได้เร็วกว่าคุณพิมพ์สรุปเองเยอะ
03 · มอบหมายงานให้ AI Agent
Prompt ของ agent คือ Job Brief ไม่ใช่คำถาม
agent อย่าง Claude Code ไม่ได้แค่ตอบ — มันแก้ไฟล์จริง รันคำสั่งจริง วนทำหลายขั้นเอง ดังนั้นสิ่งที่มันต้องการคือใบสั่งงานที่ชัด ไม่ใช่บทสนทนา
AI ตอบ → คุณลงมือ
ได้คำตอบ/โค้ดกลับมา 1 ก้อน คุณเป็นคน copy ไปวาง รันเอง ตรวจเอง — ความเสียหายจำกัดอยู่ที่คำตอบผิด
AI ลงมือเองหลายขั้น
อ่าน repo → แก้หลายไฟล์ → รัน test → วนแก้จนผ่าน โดยไม่ถามคุณทุกก้าว — ทรงพลังมาก แต่ถ้า brief คลุมเครือ มันจะ "ขยัน" ไปผิดทางหลายก้าวเช่นกัน
01
เป้าหมายผลลัพธ์สุดท้าย
"ทุก test ผ่าน" ไม่ใช่ "ลองแก้ดู" — agent ทำงานจนกว่าจะถึงเป้า ถ้าเป้าคลุมเครือมันจะหยุดเอง
02
ขอบเขต
แตะไฟล์/โฟลเดอร์ไหนได้ ห้ามแตะอะไร — agent ที่ไม่รู้ขอบเขตจะ 'ช่วยแก้' ของที่ไม่ควรแตะ
03
เกณฑ์สำเร็จที่ตรวจได้
build ผ่าน, lint ผ่าน, ผลลัพธ์หน้าตาเป็นยังไง — เกณฑ์ที่รันเช็คได้คือสิ่งที่ agent ใช้ verify ตัวเอง
04
ข้อจำกัด
อย่าเพิ่ม dependency, ตาม convention เดิมของโปรเจกต์ — กติกาที่ผิดไม่ได้แม้งานจะ 'เสร็จ'
งานเดียวกัน — brief ต่างกัน ชะตากรรมต่างกัน
✗ Brief แย่ — สั่งเหมือนคุยเล่น
ช่วยแก้ bug ตะกร้าสินค้าหน่อย มันคิดราคาผิด
สิ่งที่มักเกิด
agent เดาว่า bug อยู่ไหน → ไล่แก้สูตรราคาใน 4 ไฟล์ รวมถึง checkout/ ที่ไม่เกี่ยว → รายงานว่า "น่าจะหายแล้ว" ทั้งที่ไม่มี test พิสูจน์ — คุณต้องไล่รีวิวเองทุกไฟล์
✓ Brief ดี — ครบ 4 ส่วน
🎯 เป้าหมายผลลัพธ์สุดท้าย
แก้ bug: ตะกร้าคิดส่วนลดซ้ำ เมื่อ user ใส่คูปองแล้วเปลี่ยนจำนวนสินค้า — เป้าหมาย: ราคาใน cart ตรงสูตรใน docs/pricing.md ทุกกรณี
📦 ขอบเขต
แตะได้เฉพาะ src/cart/ และ tests ของมัน — ห้ามแก้ checkout/ และ pricing API
✅ เกณฑ์สำเร็จที่ตรวจได้
เกณฑ์สำเร็จ: npm test ผ่านทั้งหมด · เพิ่ม test ใหม่ครอบเคส 'คูปอง + เปลี่ยนจำนวน' · npm run lint ไม่มี error
🚧 ข้อจำกัด
ห้ามเพิ่ม dependency ใหม่ · ตาม convention เดิม: เก็บเงินเป็นสตางค์ (integer) ห้ามใช้ float
สิ่งที่มักเกิด
agent เขียน test reproduce bug ก่อน → แก้จุดเดียวใน cart-discount.ts → รัน test + lint จนผ่าน → ส่งงานพร้อมหลักฐาน — ตรวจรับได้ใน 5 นาที
กติกาที่ใช้ซ้ำทุกงาน — ย้ายไปไว้ใน CLAUDE.md / AGENTS.md
สังเกตว่า "เก็บเงินเป็นสตางค์ integer" หรือ "ใช้ next-themes ห้ามเพิ่ม lib" เป็นกติกาที่จริง ทุกงาน ของโปรเจกต์นี้ — แทนที่จะพิมพ์ซ้ำใน prompt ทุกครั้ง ให้เขียนไว้ในไฟล์ประจำโปรเจกต์อย่าง CLAUDE.md หรือ AGENTS.md ที่ agent อ่านเองอัตโนมัติทุก session — prompt ของคุณจะเหลือแค่ส่วนที่เฉพาะของงานนั้น
นี่คือก้าวแรกจาก prompt engineering สู่ context engineering — ต่อยอดได้ที่ GenAI Fundamentals บทที่ 4
04 · จุดที่ต้องระวัง
4 กับดักของโค้ดจาก AI
ใช้ AI เขียนโค้ดให้เร็วได้เต็มที่ — แต่ความรับผิดชอบต่อโค้ดยังเป็นของเรา นี่คือ 4 จุดที่คนพลาดบ่อยที่สุด
ท่าทีที่ถูกต้อง
AI คือ junior dev ที่เร็วที่สุดในโลก — ไม่ใช่ senior ที่เชื่อได้ทุกคำ
ความเร็วเอามาจากมันได้เลย แต่การตัดสินใจและการตรวจรับยังเป็นหน้าที่ของเรา
เคสคลาสสิก
df.summarize() # ❌ pandas ไม่มี method นี้ — AI แต่งขึ้น
df.describe() # ✅ ของจริงชื่อนี้
requests.get(url, retries=3) # ❌ requests ไม่มี param retries
# (ต้องใช้ HTTPAdapter + Retry)🛡️ วิธีกัน
ตรวจ docs ของจริงก่อนเชื่อ · ลองรันก่อน merge เสมอ · ถ้าใช้ agent ให้มันรันโค้ด/test พิสูจน์เองก่อนส่งงาน
Recap · บทที่ 5
4 ข้อที่ต้องจำ
งานโค้ดคืองานที่ AI เก่งที่สุด — และทั้ง 4 ข้อนี้คือสิ่งที่เปลี่ยน 'ของที่ AI เดาให้' เป็น 'ของที่ใช้งานจริงได้'
01
ขอโค้ด = ให้ส่วนผสมครบ 5 อย่าง
ภาษา+เวอร์ชัน+framework · บริบทโปรเจกต์ · ข้อจำกัด · ตัวอย่าง input→output · format ที่อยากได้ — ขาดข้อไหน AI เดาข้อนั้นแทนคุณ
02
ถาม bug = วาง 5 ส่วนให้ AI เลิกเดา
error เต็มทั้ง stack trace · โค้ดที่เกี่ยว · คาดหวัง vs เกิดจริง · สิ่งที่ลองแล้ว · environment — ครบเมื่อไหร่ AI ชี้บรรทัดที่พังได้ในรอบเดียว
03
มอบงาน agent = เขียน job brief
เป้าหมายผลลัพธ์สุดท้าย · ขอบเขตไฟล์ · เกณฑ์สำเร็จที่ตรวจได้ · ข้อจำกัด — และกติกาที่ใช้ซ้ำทุกงานให้ย้ายไป CLAUDE.md / AGENTS.md
04
AI คือ junior ที่เร็วมาก ไม่ใช่ senior
ระวัง hallucinated API · รันได้ ≠ ถูก · ห้ามวาง secret ใน prompt · ห้ามให้ agent รันคำสั่งอันตรายอัตโนมัติ — รีวิวและตรวจรับเป็นหน้าที่เราเสมอ
🎓 จบหมวด Prompt 101
ครบทั้ง 5 บท — เขียน prompt ให้เก่งทุกงาน
หลักการเดียวกันทั้งหมวด: บอกให้ชัดว่าอยากได้อะไร ในบริบทไหน ภายใต้เงื่อนไขอะไร — เปลี่ยนแค่ "ภาษา" ของแต่ละงาน