Anthropic ตัด system prompt ที่ใช้ควบคุม Claude Code ออกไปถึง 80% โดยรายงานว่าความสามารถในการเขียนโค้ดยังคงเดิม การทดลองนี้แสดงให้เห็นว่าเมื่อโมเดลภาษาขนาดใหญ่ (LLMs) มีความสามารถมากขึ้น นักพัฒนาสามารถตัดโครงสร้าง (scaffolding) ที่เทอะทะออกได้โดยไม่ส่งผลกระทบต่อประสิทธิภาพ

ทำไมในตอนแรก prompt ถึงมีความสำคัญ

เมื่อ Claude Code เปิดตัว system prompt ของมันประกอบด้วยกฎหลายสิบข้อ วิศวกรจะเพิ่มบรรทัดใหม่ทุกครั้งที่พบ bug แต่แทบจะไม่เคยลบอะไรที่ดูเหมือนจะใช้งานได้ออกเลย เมื่อเวลาผ่านไป prompt จึงกลายเป็นเอกสารที่ซับซ้อนและหยุดนิ่ง

ช่องว่างของโมเดลกำลังลดลง

กฎที่เกินมาเหล่านั้นได้ซ่อน "ช่องว่างของโมเดล" (model gap) ซึ่งก็คือความแตกต่างระหว่างสิ่งที่โมเดลทำได้กับสิ่งที่แอปพลิเคชันต้องการ ในปี 2024 นักพัฒนาต้องกำหนดข้อจำกัดที่เข้มงวดเพื่อป้องกันไม่ให้โมเดลทำสิ่งที่เกินความจำเป็น เช่น การเขียนคอมเมนต์ในโค้ดมากเกินไป แต่ในปัจจุบัน โมเดลเดิมสามารถอนุมานสไตล์ที่ต้องการได้จากการสั่งเพียงคำสั่งเดียว เช่น “match the existing code style” กฎต่างๆ จึงเปลี่ยนจากตัวช่วยกลายเป็นสิ่งรบกวน (noise)

สิ่งที่กำลังเปลี่ยนไปในด้าน context engineering

การปรับลดของ Anthropic สะท้อนถึงการเปลี่ยนแปลงในวงกว้างของวิธีการที่นักพัฒนาใช้โครงสร้าง prompt:

  • คำสั่งสำคัญแบบครั้งเดียว (One-time critical instructions) – ระบุคำสั่งเพียงครั้งเดียวและปล่อยให้โมเดลจดจำไว้
  • ใช้พารามิเตอร์ที่ขับเคลื่อนด้วยเครื่องมือแทนตัวอย่างแบบ few-shot (Tool-driven parameters instead of few-shot examples) – อธิบายรูปแบบ input และ output ใน tool schema และปล่อยให้โมเดลเติมข้อมูลเอง
  • การเปิดเผยข้อมูลแบบเป็นลำดับ (Progressive disclosure) – ให้เฉพาะบริบทที่จำเป็นสำหรับขั้นตอนปัจจุบัน และค่อยเพิ่มข้อมูลอื่นภายหลังหากจำเป็น
  • ย้ายคำแนะนำแบบคงที่ไปยังคำอธิบายเครื่องมือ (Move static guidance to tool descriptions) – สิ่งต่างๆ เช่น “use camelCase for variables” ควรอยู่ใน spec ของเครื่องมือ ไม่ใช่ใน system prompt
  • แทนที่กฎที่เขียนตายตัวด้วยหลักการตัดสินใจ (Replace hardcoded rules with heuristics) – ปล่อยให้โมเดลตัดสินใจเองว่ากฎนั้นควรใช้เมื่อใด แทนที่จะบังคับใช้โดยไม่มีเงื่อนไข

กลยุทธ์เหล่านี้ได้ผลเพราะโมเดลมีความรู้เกี่ยวกับธรรมเนียมปฏิบัติ (conventions) มากมายที่เคยต้องใช้การย้ำเตือนอย่างชัดเจน

ความเสี่ยงจากการตัดออกมากเกินไป

การตัดทอนที่ให้ประโยชน์ต่อโมเดลระดับแนวหน้า (frontier models) อาจส่งผลเสียต่อโมเดลขนาดเล็ก Anthropic ตั้งข้อสังเกตว่าโมเดลอย่าง Haiku ยังคงต้องพึ่งพา prompt ที่มีความละเอียดมากกว่าเพื่อให้ทำงานได้ตรงตามเป้าหมาย การตัดคำแนะนำออกจากโมเดลที่มีความสามารถน้อยกว่ามากเกินไปอาจทำให้เกิดข้อผิดพลาดเดิมๆ ที่ prompt ดั้งเดิมพยายามป้องกันขึ้นมาอีก เช่น การตั้งชื่อที่ไม่สอดคล้องกัน การเขียนคอมเมนต์มากเกินไป หรือการมองข้ามกรณีขอบเขต (edge cases)

วิธีตรวจสอบ prompt ของคุณเอง

หากคุณดูแล pipeline การสร้างโค้ด การตรวจสอบ prompt (prompt audit) สามารถช่วยเผยให้เห็นส่วนที่เกินความจำเป็นได้ นี่คือรายการตรวจสอบที่นำไปใช้ได้จริง:

  • ปรับความหนาแน่นของคำสั่งให้เหมาะสม (Re-fit instruction density) – ปรับปริมาณคำแนะนำให้สอดคล้องกับโมเดลที่คุณใช้งานจริง
  • ลบคำสั่งที่ซ้ำซ้อน (Delete duplicated instructions) – หากกฎปรากฏทั้งใน system prompt และคำอธิบายเครื่องมือ ให้เก็บไว้เพียงที่เดียว
  • เปลี่ยนตัวอย่างที่ใช้งานได้จริงให้เป็น schema ที่สมบูรณ์ขึ้น (Turn worked examples into richer schemas) – แทนที่ตัวอย่างที่เป็นรูปธรรมด้วยประเภทพารามิเตอร์แบบระบุรายการ (enumerated parameter types) หรือ enums
  • แยกรายละเอียดตามสถานการณ์ออกมา (Externalize situational details) – ย้ายบล็อกข้อมูลอ้างอิงขนาดใหญ่ไปยังไฟล์แยกต่างหากที่โมเดลสามารถดึงมาใช้ได้เมื่อต้องการ
  • ลบกฎที่ครอบคลุมพฤติกรรมที่หายไปแล้ว (Strip rules covering vanished behaviors) – หากโมเดลไม่เขียนคอมเมนต์ที่ไม่ต้องการอีกต่อไป ให้ลบกฎ “no-comment” ออก

อย่าใช้เพียงความรู้สึก ให้ใช้ “กฎการทดสอบ 3 ขั้นตอน” (3-Test Rule) แบบง่ายๆ: ลองรันงานเขียนโค้ดที่สมจริง 5 งาน เปรียบเทียบผลลัพธ์ก่อนและหลังการลบแต่ละครั้ง และจดบันทึกการถดถอย (regressions) ที่เกิดขึ้น

  1. Baseline – วัดประสิทธิภาพด้วย prompt ฉบับเต็ม
  2. Delete – ลบบรรทัดหรือบล็อกที่ต้องการทดสอบออก
  3. Re-run – รันงานทั้ง 5 งานเดิมอีกครั้ง

หากผลลัพธ์เปลี่ยนไป แสดงว่าคุณได้พบส่วนที่ยังมีความสำคัญอยู่ แต่ถ้าไม่เปลี่ยน แสดงว่าบรรทัดนั้นสามารถตัดออกได้อย่างปลอดภัย

สิ่งที่นักพัฒนาควรจับตามองต่อไป

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

Source: dev.to/ialijr/your-system-prompt-has-a-shelf-life-maintaining-prompts-as-models-improve-cd9