ผมเลิกเขียน Prompt ให้ดีขึ้น แต่ผมเริ่มออกแบบ AI Skills ให้ดีขึ้นแทน
ผู้คนใช้เวลาสองปีหมกมุ่นอยู่กับการทำ prompt engineering พวกเขาต้องการคำตอบที่ดีขึ้นผ่าน prompt ที่ดีขึ้น
ผมได้ตระหนักถึงบางสิ่งที่แตกต่างออกไปหลังจากได้ทำงานกับ AI coding agents อนาคตไม่ใช่เรื่องของ prompt ที่ดีขึ้น แต่อนาคตคือการออกแบบความสามารถของ AI ที่นำกลับมาใช้ซ้ำได้ (reusable AI capabilities)
Claude Skills คือตัวแทนของการเปลี่ยนแปลงนี้
บ่อยครั้งที่เราเขียน prompt ยาวเหยียด คุณบอกให้ AI สวมบทบาทเป็น architect คุณบอกให้มันใช้ TypeScript คุณบอกให้มันเขียน test มันอาจจะทำงานได้ดีในครั้งแรก แต่พรุ่งนี้คุณก็ต้องคัดลอกข้อความมหาศาลเดิมนั้นมาวางใหม่อีกครั้ง ในที่สุด prompt ของคุณก็จะกลายเป็นเอกสารที่มีความยาวถึง 700 บรรทัด ซึ่งไม่มีใครอยากจะมานั่งดูแลรักษา (maintain) มันหรอก
เลิกบอก AI ว่าต้องทำงานอย่างไรในทุกๆ ครั้ง แต่จงแพ็กความรู้นั้นไว้เพียงครั้งเดียว
Prompt ทำงานได้เพียงหนึ่งการสนทนา แต่ Skill สามารถทำงานได้ในการสนทนาที่ไม่จำกัด
Skill ที่ดีที่สุดควรปฏิบัติตามหลักการทางวิศวกรรมซอฟต์แวร์ (software engineering principles)
- Skill ที่ไม่ดี: ช่วยในการพัฒนา (development)
- Skill ที่ดี: ดึงข้อมูลที่มีโครงสร้าง (structured data) ออกจากแบบฟอร์ม PDF
Skill ที่ดีควรทำงานเพียงอย่างเดียวให้ดีที่สุด
อย่าใช้ไฟล์ขนาดใหญ่ไฟล์เดียวสำหรับทุกอย่าง จงแบ่งความรับผิดชอบ (split responsibilities) ใช้ไฟล์อ้างอิงและสคริปต์ นี่เหมือนกับการทำ lazy loading ในซอฟต์แวร์ โดยที่ AI จะโหลดบริบท (context) เฉพาะเมื่อจำเป็นต้องใช้เท่านั้น
เลิกขอให้ AI ทำงานที่โค้ดทำได้ดีกว่า
- AI ควรทำหน้าที่ใช้เหตุผล (reason)
- Code ควรทำหน้าที่คำนวณ (compute)
อย่าขอให้ AI parse ไฟล์ PDF แต่จงใช้ parser อย่าขอให้ AI คำนวณค่าต่างๆ แต่จงรัน Python อย่าขอให้ AI เรียงลำดับข้อมูล (sort data) แต่จงรันสคริปต์
ใช้หลักการ progressive disclosure อย่ามอบคู่มือ 500 หน้าให้เด็กฝึกงานตั้งแต่วันแรก ให้พวกเขาเพียงหน้าเดียว และให้ข้อมูลเพิ่มเติมเมื่อพวกเขาต้องการเท่านั้น
สิ่งนี้จะนำไปสู่:
- การตอบสนองที่เร็วขึ้น
- การใช้ token ที่น้อยลง
- การโฟกัสที่ดีขึ้น
- การเกิด hallucination ที่น้อยลง
นักพัฒนาหลายคนพยายามสร้าง "super prompt" เพียงหนึ่งเดียว พวกเขาต้องการ prompt เดียวที่สามารถสร้างเว็บไซต์, เขียน backend และแก้บั๊กได้ นี่คือการออกแบบที่แย่ มันเหมือนกับการเขียน class เดียวที่ทำทุกอย่าง
Skill ที่มีขนาดเล็กและเฉพาะเจาะจงจะทำงานได้ดีกว่า
หากคุณไม่สามารถอธิบายวัตถุประสงค์ของ skill ได้ภายในประโยคเดียว แสดงว่ามันทำงานมากเกินไปแล้ว
เรากำลังเปลี่ยนจากการสร้างซอฟต์แวร์ไปสู่การออกแบบพฤติกรรม (behavior) Stack ใหม่ของเราจะมีลักษณะดังนี้:
- Frontend
- Backend
- AI Agent
- Skills
- Tools
Skill ไม่ได้ทำให้ AI ทำงานได้โดยอัตโนมัติ (autonomous) แต่มันคือการรวบรวมความเชี่ยวชาญ (expertise) ไว้ คุณยังคงเป็นผู้ตัดสินใจเรื่อง architecture, security และ quality โดยที่ Skill จะทำหน้าที่แพ็กการตัดสินใจเหล่านั้นเอาไว้
Prompt engineering สอนให้เรารู้จักวิธีตั้งคำถาม ส่วน skill engineering สอนให้ AI รู้จักวิธีแก้ปัญหา
ผู้ชนะในยุค AI จะไม่ใช่แค่ผู้ที่มีโมเดลที่ฉลาดที่สุดเท่านั้น แต่จะเป็นผู้ที่มีคลังความรู้ที่นำกลับมาใช้ซ้ำได้ดีที่สุด
Optional learning community: https://t.me/GyaanSetuAi
