Claude Code เผยเคล็ดลับ Prompt Caching เร็วขึ้น ประหยัดค่าใช้จ่าย AI
เขียนโดยMango
ร่างเนื้อหาด้วย AI ตรวจทานและแก้ไขโดยคน
![]()
TL;DR
- Prompt caching คือเทคโนโลยีสำคัญที่ทำให้ผลิตภัณฑ์ AI แบบ Agent ที่ทำงานต่อเนื่อง เช่น Claude Code เป็นไปได้จริง
- การจัดโครงสร้าง Prompt โดยวางเนื้อหาส่วนที่ คงที่ ไว้ก่อนเนื้อหาส่วนที่ เปลี่ยนแปลง ช่วยเพิ่มประสิทธิภาพการจับคู่ Prefix และลด Cache Miss
- การเปลี่ยนแปลงเล็กน้อย เช่น การเพิ่ม Timestamp หรือการสลับลำดับ Tool อาจทำให้ Cache Miss และเพิ่มความหน่วง/ค่าใช้จ่าย
- การ เปลี่ยนโมเดล กลางคัน หรือการเพิ่ม/ลด Tools ในระหว่าง Session อาจทำให้ Cache ต้องถูกสร้างใหม่ทั้งหมด ซึ่งไม่คุ้มค่า
Anthropic ได้ออกมาแบ่งปันบทเรียนอันมีค่าจากการพัฒนา Claude Code โดยเน้นย้ำว่า Prompt Caching คือหัวใจสำคัญที่ทำให้ผลิตภัณฑ์ AI แบบ Agent ที่ต้องทำงานต่อเนื่องยาวนานเป็นไปได้จริง เทคนิคนี้ช่วยให้สามารถนำการประมวลผลจากการโต้ตอบก่อนหน้ามาใช้ซ้ำได้ ส่งผลให้ความหน่วง (latency) และค่าใช้จ่ายลดลงอย่างมาก ทีมงาน Claude Code ได้สร้างโครงสร้างพื้นฐานทั้งหมดโดยมี Prompt Caching เป็นแกนหลัก การรักษาอัตราการ Cache Hit ที่สูงไม่เพียงแต่ช่วยลดต้นทุน แต่ยังช่วยให้สามารถเสนอ Rate Limit ที่สูงขึ้นสำหรับแผนการใช้งานต่างๆ
กุญแจสำคัญในการเพิ่มประสิทธิภาพ Prompt Caching คือการจัดลำดับข้อมูลใน Prompt อย่างชาญฉลาด Claude Code มีการจัดระเบียบ System Prompt ให้ส่วนที่ คงที่ (stable pieces) ถูกแคชไว้ ในขณะที่ส่วนของบทสนทนาจะค่อยๆ เพิ่มขึ้นตามการโต้ตอบแต่ละครั้ง กลไก Prompt Caching ทำงานโดยการเปรียบเทียบ Prefix ของข้อความ ทำให้ลำดับการเรียงข้อมูลมีความสำคัญอย่างยิ่ง โดยหลักการคือการวางเนื้อหาส่วนที่เป็น Static Content ไว้ก่อน และเนื้อหาส่วนที่ Dynamic Content ไว้ท้ายสุด สำหรับ Claude Code โครงสร้างนี้ประกอบด้วย: Static System Prompt & Tools (แคชระดับ Global) -> CLAUDE.md (แคชภายใน Project) -> Session Context (แคชภายใน Session) -> Conversation Messages วิธีการนี้ช่วยเพิ่มโอกาสในการใช้ Cache Hit ให้ได้มากที่สุด
แม้ว่าโครงสร้างข้างต้นจะมีประสิทธิภาพ แต่ก็มีความเปราะบางอย่างไม่น่าเชื่อ การเปลี่ยนแปลงเพียงเล็กน้อยก็อาจทำให้ Cache พังได้ ตัวอย่างเช่น การใส่ Timestamp ที่ละเอียดใน System Prompt, การสลับลำดับการเรียกใช้ Tool แบบสุ่ม หรือแม้แต่การอัปเดตพารามิเตอร์ของ Tool (เช่น Agent Tool ที่สามารถเรียกใช้ Agent อื่นๆ) ล้วนสามารถทำให้เกิด Cache Miss ได้ หากข้อมูลใน Prompt ล้าสมัยไป เช่น เวลาที่เปลี่ยนไป หรือผู้ใช้แก้ไขไฟล์ การอัปเดต Prompt โดยตรงอาจนำไปสู่ Cache Miss ซึ่งมีค่าใช้จ่ายสูงสำหรับผู้ใช้ แนวทางที่แนะนำคือการส่งข้อมูลที่อัปเดตผ่าน Messages ในการโต้ตอบถัดไปของ Agent โดยใช้แท็ก <system-reminder> ในข้อความของผู้ใช้ถัดไป หรือผลลัพธ์จาก Tool เพื่อรักษาความสมบูรณ์ของ Cache
Prompt Cache มีลักษณะเฉพาะสำหรับแต่ละโมเดล ซึ่งอาจทำให้การคำนวณดูไม่น่าเชื่อนัก เช่น การสนทนาที่ยาว 100k โทเค็นด้วย Opus แล้วต้องการถามคำถามที่ง่ายๆ การเปลี่ยนไปใช้ Haiku อาจมีค่าใช้จ่ายสูงกว่าให้ Opus ตอบ เนื่องจาก Cache ต้องถูกสร้างใหม่ทั้งหมด วิธีที่ดีที่สุดในการเปลี่ยนโมเดลคือการใช้ Sub-agents โดยให้ Opus เตรียมข้อความ "ส่งต่อ" (hand-off) ไปยังโมเดลอื่นสำหรับงานที่ต้องทำ นอกจากนี้ การเพิ่มหรือลบ Tool กลางคันของการสนทนาเป็นวิธีทั่วไปที่ทำให้ Prompt Caching เสียหาย แม้ว่าการให้ Tool ที่จำเป็นในขณะนั้นจะดูสมเหตุสมผล แต่เนื่องจาก Tool เป็นส่วนหนึ่งของ Prefix ที่ถูกแคช การเพิ่มหรือลบ Tool จึงทำให้ Cache ทั้งหมดของการสนทนาเป็นโมฆะ
Plan Mode เป็นตัวอย่างที่ดีของการออกแบบ Features โดยคำนึงถึงข้อจำกัดของ Caching วิธีที่ตรงไปตรงมาที่สุดคือการสลับชุด Tool ให้เหลือเฉพาะ Tool แบบอ่านอย่างเดียวเมื่อผู้ใช้เข้าสู่ Plan Mode แต่วิธีนี้จะทำให้ Cache เสียหาย วิธีที่ Anthropic ใช้คือการคง Tool ทั้งหมดไว้ใน Request ตลอดเวลา และใช้ Tool อย่าง EnterPlanMode และ ExitPlanMode เป็นกลไกในการเข้าและออกจากโหมดนี้ เมื่อผู้ใช้เปิดใช้งาน Plan Mode Agent จะได้รับข้อความระบบที่อธิบายว่ากำลังอยู่ใน Plan Mode พร้อมคำแนะนำ เช่น ให้สำรวจโค้ดเบส ห้ามแก้ไขไฟล์ และเรียกใช้ ExitPlanMode เมื่อแผนเสร็จสมบูรณ์ การกำหนด Tool จะไม่เปลี่ยนแปลง นอกจากนี้ การใช้ Tool Search เพื่อรอโหลด Tool แทนการลบ Tool ก็เป็นหลักการเดียวกัน Claude Code สามารถโหลด Tool ได้หลายสิบรายการ การรวม Tool ทั้งหมดในทุก Request อาจมีค่าใช้จ่ายสูง แต่การลบ Tool กลางคันจะทำให้ Cache เสียหาย วิธีแก้ปัญหาคือการส่ง Stub (เพียงชื่อ Tool พร้อม defer_loading: true) ที่ Agent สามารถ "ค้นพบ" ผ่าน Tool Search ได้เมื่อจำเป็น และจะโหลด Schema Tool ฉบับเต็มเมื่อโมเดลต้องการใช้งานเท่านั้น
สรุป
- Prompt caching คือเทคนิคหลักที่ทำให้ AI Agent อย่าง Claude Code ทำงานได้อย่างมีประสิทธิภาพ ลดความหน่วงและค่าใช้จ่าย
- การจัดเรียง Prompt ให้ส่วนคงที่อยู่ก่อนส่วนเปลี่ยนแปลง และการใช้ Messages หรือ
<system-reminder>สำหรับข้อมูลที่อัปเดต เป็นกลยุทธ์สำคัญ - ควรหลีกเลี่ยงการ เปลี่ยนโมเดล กลางคัน หรือการเพิ่ม/ลบ Tool ในระหว่าง Session เพื่อรักษาประสิทธิภาพของ Cache
- การออกแบบ Features เช่น Plan Mode หรือการใช้ Tool Search ช่วยให้ทำงานกับข้อจำกัดของ Cache ได้อย่างมีประสิทธิภาพ
แหล่งที่มา: Lessons from building Claude Code: Prompt caching is everything | Claude
อ่านต่อ

Cursor เปิดตัว Beta Security Review สำหรับ PR และ Codebase
เอเจนต์รักษาความปลอดภัย Beta ใหม่ของ Cursor สแกน Pull Request อัตโนมัติเพื่อหาช่องโหว่ และสแกน codebase ตามกำหนดเพื่อหาความเสี่ยงกับ dependencies ที่ล้าสมัย
อ่านข่าวนี้