ฉันได้เขียนเกี่ยวกับวิธีการที่ดีที่สุดในการ prompt โมเดล Claude 5 รุ่นใหม่ และทำงานร่วมกับมันแบบวนซ้ำเพื่อค้นหาสิ่งที่คุณต้องการสร้าง
แต่เมื่อคุณส่งข้อความไปยัง Claude นั้น prompt เป็นเพียงส่วนเล็กๆ ของบริบทที่ Claude ได้รับเท่านั้น บริบทส่วนใหญ่ของคุณประกอบขึ้นจาก system prompt, Skills, ไฟล์ CLAUDE.md, memory, และแหล่งอื่นๆ เราเรียกสิ่งนี้ว่า context engineering และมันส่งผลกระทบอย่างมากต่อผลลัพธ์ที่คุณสร้างเมื่อใช้ Claude Code หรือในการสร้าง agent ของคุณเอง
แตกต่างจาก prompt ตรงที่ context ถูกใช้โดยทั่วไปในหลายคำขอ ดังนั้นจึงไม่สามารถเจาะจงได้มากเท่า คุณจะสร้าง prompt ทั่วไปและคำแนะนำเหล่านี้สำหรับ Claude ได้อย่างไร โดยเฉพาะเมื่อคุณไม่รู้ว่า prompt ของผู้ใช้จะเป็นอะไร
สิ่งนี้อาจยากอย่างน่าประหลาดใจเมื่อความสามารถของ Claude เองมีการพัฒนา ล่าสุดเราสังเกตเห็นการก้าวกระโดดครั้งใหญ่ในวิธีที่เราสั่งโมเดล Claude รุ่นใหม่ เราได้ลบ system prompt ของ Claude Code กว่า 80% สำหรับโมเดลอย่าง Claude Opus 5 และ Claude Fable 5 โดยไม่มีการสูญเสียที่วัดได้ในการประเมินการเขียนโค้ดของเรา
นี่คือสิ่งที่เราได้เรียนรู้เกี่ยวกับการ prompting โมเดลคลาสใหม่นี้ และวิธีที่คุณสามารถใช้มันเพื่ออัปเดต context engineering ของคุณ เราได้ใส่แนวทางปฏิบัติที่ดีที่สุดเหล่านี้ไว้ใน claude doctor ให้ใช้คำสั่ง /doctor ใน Claude Code เพื่อปรับขนาด skills และไฟล์ CLAUDE.md ของคุณให้เหมาะสม
การปลด枷锁ให้ Claude
โดยรวมแล้ว เราพบว่าเรากำลังจำกัด Claude Code มากเกินไป ทั้งผ่าน system prompt และในไฟล์ CLAUDE.md และ skills ของเรา
ตัวอย่างเช่น เมื่อเราอ่านบันทึกการใช้งาน Claude Code ภายในของเราเอง เราเห็นข้อความที่ขัดแย้งกันหลายข้อความในคำขอเดียว เช่น "leave documentation as appropriate" หรือ "DO NOT add comments" เนื่องจาก system prompt, skills, และคำขอของผู้ใช้ขัดแย้งกัน

โดยทั่วไปแล้ว Claude สามารถตีความเจตนาของผู้ใช้เพื่อไปถึงคำตอบที่ถูกต้อง แต่ Claude ต้องคิดอย่างรอบคอบมากขึ้นเกี่ยวกับข้อความที่ทับซ้อนและขัดแย้งเหล่านี้ก่อนตัดสินใจว่าจะทำอย่างไร
และแม้ว่าข้อจำกัดเหล่านี้เคยจำเป็นเพื่อหลีกเลี่ยงสถานการณ์ที่เลวร้ายที่สุด แต่ตอนนี้เราพบว่าเราสามารถลบหลายข้อออกไปและปล่อยให้โมเดลใช้บริบทรอบข้างและการตัดสินใจแทน
นอกจากนี้ ตอนนี้ Claude Code มีเครื่องมือมากขึ้นอีกมาก Claude เคยพึ่งพา CLAUDE.md เป็นแหล่งของ memory, ข้อมูล, และคำแนะนำ ตอนนี้เรามี memory, artifacts, และ skills ซึ่ง Claude สามารถใช้สร้างวิธีการใหม่ๆ ในการโหลดและแบ่งปันบริบทระหว่างเซสชันต่างๆ
แล้วกับตอนนี้
มีแนวทางปฏิบัติที่ดีที่สุดในอดีตหลายข้อเกี่ยวกับ context engineering ที่กลายเป็นความเชื่อผิดๆ รวมถึง:

**
**แล้ว: ให้กฎกับ Claude
ตอนนี้: ปล่อยให้ Claude ใช้ดุลยพินิจ**
เมื่อเราเปิดตัว Claude Code ครั้งแรก เราจำเป็นต้องแน่ใจว่า Claude หลีกเลี่ยงสถานการณ์ที่เลวร้ายที่สุด เช่น การลบไฟล์ ซึ่งหมายความว่าเราจะให้คำแนะนำที่หนักแน่นเป็นพิเศษซึ่งอาจไม่เป็นจริงเสมอไป ตัวอย่างเช่น ใน system prompt เราเคยบอกว่า:
In code: default to writing no comments. Never write multi-paragraph docstrings or multi-line comment blocks — one short line max. Don't create planning, decision, or analysis documents unless the user asks for them — work from conversation context, not intermediate files.
แต่สำหรับ prompt บางกลุ่ม คำแนะนำนี้จะผิด ในกรณีของเอกสาร ผู้ใช้อาจมีความชอบของตัวเอง หรือส่วนเฉพาะของโค้ดที่ซับซ้อนมากอาจต้องใช้ comment blocks หลายบรรทัด
อย่างไรก็ตาม หากไม่มีหลักป้องกันเหล่านี้สำหรับโมเดลเก่า comment ที่ Claude เขียนจะผิดในหลายกรณี และเราต้องยอมรับการแลกเปลี่ยนนี้ แต่โมเดลใหม่กว่ามีดุลยพินิจที่ดีกว่าและสามารถจัดการการตัดสินใจเหล่านี้ได้ดีโดยไม่มีกฎที่ชัดเจน
ใน system prompt ใหม่เราบอกว่า: Write code that reads like the surrounding code: match its comment density, naming, and idiom.
**แล้ว: ตัวอย่างให้ Claude
ตอนนี้: ออกแบบอินเทอร์เฟซ**
กฎข้อแรกสุดสำหรับการใช้งานเครื่องมือคือการให้ตัวอย่างแก่ Claude เกี่ยวกับวิธีการใช้เครื่องมือเหล่านั้น กับโมเดลใหม่ล่าสุดของเรา เราพบว่าการให้ตัวอย่างกลับจำกัดให้พวกเขาอยู่ในพื้นที่การสำรวจที่แน่นอน

แทนที่จะใช้ตัวอย่าง ให้คิดถึงการออกแบบเครื่องมือ สคริปต์ และไฟล์ของคุณมากขึ้น - Claude มีพารามิเตอร์อะไรบ้าง และจะทำให้มันแสดงออกได้มากขึ้นได้อย่างไร?
ตัวอย่างเช่น ในตัวอย่างเครื่องมือ Todo การระบุสถานะเป็น enumeration ระหว่าง pending, in_progress, และ completed ก็บอกใบ้ให้ Claude รู้วิธีใช้งานแล้ว คำแนะนำในการเก็บรายการหนึ่งไว้ใน in_progress ช่วยกำหนดพฤติกรรมที่เราต้องการ
**แล้ว: วางทั้งหมดไว้ข้างหน้า
ตอนนี้: ใช้การเปิดเผยแบบค่อยเป็นค่อยไป**
เนื่องจาก Claude Code เน้นที่การเขียนโค้ด system prompt ของเราจึงรวมข้อมูลโดยละเอียดเกี่ยวกับวิธีตรวจสอบโค้ดและยืนยันผล สิ่งเหล่านี้ไม่จำเป็นเสมอไป แต่เมื่อจำเป็น ก็เป็นข้อมูลสำคัญ
ตั้งแต่นั้นมา Claude Code ก็มีความสามารถในการใช้การเปิดเผยแบบค่อยเป็นค่อยไป (progressive disclosure) มากขึ้น - การโหลดบริบทที่เหมาะสมในเวลาที่เหมาะสม ตัวอย่างเช่น เราย้ายการตรวจสอบและยืนยันโค้ดไปไว้ใน skills ของตัวเองที่ Claude Code สามารถเรียกใช้ได้ตามต้องการ
แต่การเปิดเผยแบบค่อยเป็นค่อยไปไม่ใช่สำหรับ skills เท่านั้น เรายังใช้กับเครื่องมือด้วย เครื่องมือบางอย่างของเราเป็น 'deferred loading' ซึ่งหมายความว่า agent ต้องค้นหาคำจำกัดความทั้งหมดโดยใช้ ToolSearch ก่อนใช้งาน วิธีนี้ทำให้เรามีเครื่องมือมากขึ้น (เช่น เครื่องมือ Task) ที่ไม่กินบริบทจนกว่าจะจำเป็น
สิ่งเดียวกันนี้สามารถนำไปใช้กับไฟล์ CLAUDE.md และ Skill.md ของคุณเองได้ ความเชื่อผิดๆ ทั่วไปคือคุณต้องการทำให้ไฟล์เหล่านี้เป็นแหล่งรวมแนวทางปฏิบัติที่รู้จักทั้งหมดที่คุณ อาจ เจอ เพราะ Claude จะไม่พบมันหากไม่เป็นเช่นนั้น แต่ให้ พิจารณามีโครงสร้างไฟล์แบบต้นไม้ที่สามารถโหลดได้ในเวลาที่เหมาะสม
**แล้ว: พูดซ้ำ
ตอนนี้: คำอธิบายเครื่องมือที่ง่าย**
โมเดล Claude รุ่นก่อนหน้าบางครั้งอาจต้องการคำแนะนำซ้ำๆ หรือมีแนวโน้มที่จะฟังคำแนะนำที่ท้าย context window มากกว่าตอนต้น ซึ่งหมายความว่า system prompt ของเราบางครั้งมีการอ้างอิงถึงเครื่องมือใน system prompt หลัก รวมถึงคำแนะนำในคำอธิบายเครื่องมือ
เราพบว่าเราสามารถลบตัวอย่างที่ซ้ำเหล่านี้และใส่คำแนะนำเกี่ยวกับวิธีใช้เครื่องมือไว้ในคำอธิบายเครื่องมือแทนที่จะอยู่ใน system prompt
**แล้ว: Memory ในไฟล์ CLAUDE.md
ตอนนี้: Auto-memory**
เราเคยสนับสนุนให้ผู้ใช้บันทึกสิ่งต่างๆ ลงใน memory ของ Claude โดยใช้ # hotkey เพื่อเขียนไปยัง CLAUDE.md โดยอัตโนมัติ แต่ตอนนี้ Claude จะบันทึก memories ที่เกี่ยวข้องกับงานและกับคุณโดยอัตโนมัติ
**แล้ว: Specs แบบง่าย
ตอนนี้: ข้อมูลอ้างอิงที่สมบูรณ์**
ในโหมด plan นั้น Claude Code พึ่งพาไฟล์ markdown ที่มีแผนอย่างมาก การจัดเก็บไฟล์เหล่านี้เป็นแผนช่วยให้ Claude อ้างอิงได้เมื่อจำเป็น แนวทางปฏิบัติที่ดีอีกอย่างที่คล้ายกันคือการจัดเก็บ specs ไว้ใน codebase เพื่อให้ Claude อ้างอิงขณะทำงานในโปรเจ็กต์ที่ยาวขึ้น
แต่เราพบว่า Claude สามารถจัดการข้อมูลอ้างอิงที่ซับซ้อนมากขึ้นเรื่อยๆ แทนที่จะเป็นไฟล์ markdown ง่ายๆ Claude สามารถอ้างอิง HTML artifacts ที่สร้างขึ้นด้วยฟีเจอร์ artifacts ใหม่ของเรา
คุณยังสามารถให้ข้อมูลอ้างอิงแก่ Claude ในรูปแบบของโค้ดได้อีกด้วย Spec อาจเป็นชุดทดสอบโดยละเอียด หรือฟังก์ชันใน codebase อื่นที่ Claude อาจพอร์ต
Rubrics เป็นข้อมูลอ้างอิงอีกรูปแบบหนึ่ง Rubrics อนุญาตให้ Claude ลองและตรวจสอบรสนิยมของคุณในสาขาเฉพาะ (เช่น API design ที่ดีควรเป็นอย่างไร) โดยใช้ dynamic workflows และสร้าง verifier agents ขึ้นมาพร้อมกับ rubrics เหล่านั้น
การนำสิ่งนี้ไปใช้กับบริบทของคุณ
เมื่อรวมทั้งหมดเข้าด้วยกันแล้ว สิ่งนี้จะมีลักษณะอย่างไรเมื่อคุณประกอบบริบทของคุณ?

System Prompt
system prompt เชื่อมโยงอย่างมากกับบริบทของผลิตภัณฑ์ มันบอก Claude ว่ามันกำลังทำงานในผลิตภัณฑ์อะไรและกำลังทำอะไรอยู่ สำหรับ Claude Code คุณอาจไม่ต้องแก้ไขสิ่งนี้เลย แต่ถ้าคุณกำลังสร้าง agent harness ของคุณเอง นี่คือจุดที่คุณควรใช้เวลามาก
CLAUDE.md
ทำให้ CLAUDE.md ของคุณมีน้ำหนักเบาและอธิบายสั้นๆ ว่า repo ของคุณใช้สำหรับอะไร แต่ใช้ tokens ส่วนใหญ่ไปกับ gotchas ภายใน codebase ตัวอย่างเช่น คุณอาจจัดระเบียบโค้ดให้เก็บ types ไว้ในไฟล์ monolithic ไฟล์เดียวและไม่มีที่อื่น หลีกเลี่ยงการระบุสิ่งที่ 'ชัดเจน' ที่ Claude ควรรู้ได้จากการดูระบบไฟล์หรือ repo ของคุณ
ใช้การเปิดเผยแบบค่อยเป็นค่อยไปสำหรับรายละเอียดเพิ่มเติม เช่น หากคุณมีคำแนะนำเฉพาะหลายข้อเกี่ยวกับวิธีตรวจสอบงานของคุณ ให้สร้าง verification skill และอ้างอิงจาก CLAUDE.md ของคุณ
Skills
คิดว่า skills เป็นคู่มือน้ำหนักเบาที่ให้ Claude ค้นหาข้อมูลเมื่อจำเป็น หลีกเลี่ยงการทำให้มันถูกจำกัดมากเกินไป ยกเว้นในพื้นที่ที่สำคัญมาก
สำหรับ skills ที่ยาว ให้พยายามใช้การเปิดเผยแบบค่อยเป็นค่อยไปให้มากที่สุด - แบ่งเป็นหลายไฟล์และแยกออกจากกัน
จะดีที่สุดเมื่อ skills เข้ารหัสความคิดเห็น ความรู้ หรือแนวทางปฏิบัติที่ดีที่สุดเฉพาะที่เกี่ยวข้องกับคุณ ทีม หรือผลิตภัณฑ์ของคุณ
References
คุณสามารถ @ mention ไฟล์เพื่อรวมเป็นข้อมูลอ้างอิง ข้อมูลอ้างอิงอนุญาตให้ Claude อ้างอิงข้อมูลเชิงลึกเกี่ยวกับแผนปัจจุบัน
สิ่งนี้อาจอยู่ในไฟล์ specs, mockups หรือแม้แต่ codebase ทั้งหมด โดยทั่วไปคุณควรเลือกไฟล์ที่อยู่ในโค้ด เพราะมันให้คำแนะนำที่ชัดเจนและมีความเที่ยงตรงสูงแก่ Claude ในภาษาที่มันรู้จักดี ตัวอย่างเช่น HTML mockup ของการออกแบบมักจะให้ผลลัพธ์ที่ดีกว่าคำอธิบายของการออกแบบหรือภาพหน้าจอ
ลองทำให้ง่ายขึ้น
ใน system prompt, skills, และไฟล์ CLAUDE.md ของคุณ คุณอาจต้องทำให้ง่ายขึ้นเหมือนที่เราทำ เราได้เปิดตัวคำสั่งใหม่ที่ชื่อว่า claude doctor ซึ่งจะช่วยให้คุณทำสิ่งนี้โดยอัตโนมัติเช่นกัน สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการ prompting โมเดลขั้นสูงโดยเฉพาะ ลองดู คู่มือภาคสนาม Fable ของเรา





