คุณมีปัญหาเหล่านี้ตอนใช้ Claude Code หรือไม่?

・เมื่อเซสชัน Claude Code ยาวขึ้น คุณภาพคำตอบกลับลดลงโดยไม่ทราบสาเหตุ
・คำสั่งมีอะไรบ้าง? ฉันไม่ค่อยเข้าใจความแตกต่าง
・ตัดสินใจไม่ถูกว่าจะใช้ subagents เมื่อไหร่
・context รกหมดเลย
ตอนนี้ โพสต์ของ Thariq (@trq212) พนักงานของ Anthropic เกี่ยวกับ "การจัดการเซสชัน Claude Code และ context 1 ล้านโทเคน" กำลังเป็นไวรัลด้วยยอดเข้าชม 540,000 ครั้ง 😳

ดังนั้น สำหรับทุกคนที่มีปัญหาเหล่านี้ ฉันจะแยกย่อยและอธิบายเนื้อหาให้เข้าใจง่าย ๆ 👇
โพสต์ต้นฉบับที่นี่: https://x.com/trq212/status/2044548257058328723?s=20
■ พื้นฐานของ 𝗰𝗼𝗻𝘁𝗲𝘅𝘁 𝘄𝗶𝗻𝗱𝗼𝘄
ก่อนอื่น ข้อกำหนดเบื้องต้นคือ context window ของ Claude Code มีขนาด 1 ล้านโทเคน

context ประกอบด้วยทั้งหมดต่อไปนี้:
・System prompt
・ประวัติการสนทนาที่ผ่านมา
・การเรียกใช้เครื่องมือทั้งหมดและผลลัพธ์
・เนื้อหาของไฟล์ที่โหลด
กล่าวอีกนัยหนึ่ง ยิ่งเซสชันยาวนาน ข้อมูลก็ยิ่งสะสมใน context นี้มากขึ้น
■ 𝗰𝗼𝗻𝘁𝗲𝘅𝘁 𝗿𝗼𝘁 คืออะไร?

แนวคิดสำคัญที่นี่คือ "context rot"
เมื่อ context เติบโตขึ้น ความสนใจของโมเดลจะกระจายไปทั่วหลายโทเคน และข้อมูลเก่าหรือไม่เกี่ยวข้องกลายเป็นสัญญาณรบกวนที่เริ่มรบกวนงานปัจจุบัน
ตามที่ Thariq กล่าว พบ context rot เริ่มประมาณ 300,000 ถึง 400,000 โทเคนในโมเดล 1 ล้านโทเคน อย่างไรก็ตาม นี่ไม่ใช่กฎตายตัวเพราะขึ้นอยู่กับงานอย่างมาก
เนื่องจาก context window มีขีดจำกัดตายตัว เมื่อคุณใกล้ถึงขีดจำกัด คุณต้องสรุปงานก่อนหน้าและดำเนินการต่อใน context ใหม่ กระบวนการนี้เรียกว่า "compaction"
■ ทุกเทิร์นคือ "จุดเปลี่ยน"

Claude Code ควรทำอย่างไรหลังจากทำงานหนึ่งเสร็จ? นี่คือจุดตัดสินใจที่สำคัญที่สุด
Thariq ระบุตัวเลือกไว้ 5 ข้อ:
𝟭. 𝗖𝗼𝗻𝘁𝗶𝗻𝘂𝗲
ส่งข้อความถัดไปในเซสชันเดียวกัน เป็นตัวเลือกที่เป็นธรรมชาติที่สุด
𝟮. /𝗿𝗲𝘄𝗶𝗻𝗱 (กด Esc สองครั้ง)
กลับไปยังข้อความก่อนหน้าและเริ่มต้นใหม่จากจุดนั้น ข้อความที่ตามมาจะถูกลบออกจาก context
𝟯. /𝗰𝗹𝗲𝗮𝗿 (เซสชันใหม่)
สรุปข้อมูลสำคัญด้วยตัวเองและเริ่มเซสชันใหม่
𝟰. /𝗰𝗼𝗺𝗽𝗮𝗰𝘁
ให้โมเดลสรุปการสนทนาจนถึงตอนนี้และดำเนินการต่อบนพื้นฐานของสรุปนั้น
𝟱. 𝗦𝘂𝗯𝗮𝗴𝗲𝗻𝘁𝘀
มอบหมายงานส่วนถัดไปให้กับ agent ที่มี context สะอาดของตัวเอง โดยส่งคืนเฉพาะผลลัพธ์ให้เซสชันหลัก
■ เมื่อไหร่ควรเริ่มเซสชันใหม่
ต้องขอบคุณ context window 1 ล้านโทเคน งานยาว ๆ เช่นการสร้างแอป full-stack ตั้งแต่ต้นสามารถดำเนินการได้อย่างเสถียรมากขึ้น
อย่างไรก็ตาม การที่มีพื้นที่ context เหลือไม่ได้หมายความว่าคุณควรใช้เซสชันเดิมต่อไป
กฎง่าย ๆ ของ Thariq คือ:

🔥 "ถ้าคุณเริ่มงานใหม่ คุณควรเริ่มเซสชันใหม่"
มีข้อยกเว้น เช่น การเขียนเอกสารทันทีหลังจาก implement ฟีเจอร์ ถ้าคุณเริ่มเซสชันใหม่ Claude Code ต้องอ่านไฟล์ที่เพิ่ง implement ใหม่ ซึ่งช้าและมีค่าใช้จ่ายสูง สำหรับงานอย่างเอกสารที่ไม่ต้องการ "ความฉลาดสูง" การยอมรับ context pollution บ้างแล้วดำเนินการต่อมีประสิทธิภาพมากกว่า

■ 𝗿𝗲𝘄𝗶𝗻𝗱 คือฟีเจอร์ที่ถูกประเมินค่าต่ำที่สุด

Thariq ยกให้ "rewind" เป็นนิสัยที่ดีที่สุดสำหรับการจัดการ context ที่ดี
ใน Claude Code คุณสามารถกลับไปยังข้อความก่อนหน้าใดก็ได้และเริ่มใหม่โดยกดปุ่ม Esc สองครั้ง (หรือใช้คำสั่ง /rewind) ข้อความหลังจากจุดนั้นจะถูกลบออกจาก context อย่างสมบูรณ์
พิจารณาสถานการณ์เฉพาะ:

Claude อ่านไฟล์ห้าไฟล์และลองวิธีที่ล้มเหลว
❌ ปฏิกิริยาปกติ: "มันใช้ไม่ได้ ลอง X แทน"
→ บันทึกทั้งหมดของวิธีที่ล้มเหลวยังคงอยู่ใน context
✅ วิธีที่ดีกว่า: ย้อนกลับไปหลังจากอ่านไฟล์แล้ว และสั่งใหม่ด้วยสิ่งที่คุณเรียนรู้
→ "อย่าใช้วิธี A โมดูล foo ไม่เปิดเผยสิ่งนั้น ให้ไปที่ B โดยตรง"
การทำเช่นนี้ โทเคนจากการลองผิดลองถูกที่ล้มเหลวจะหายไป ทำให้สามารถลองใหม่ในสถานะที่สะอาด
ยิ่งไปกว่านั้น การใช้ฟีเจอร์ "summarize from here" ช่วยให้ Claude สรุปการเรียนรู้ของตัวเองและสร้าง "บันทึกจากตัวเองในอดีตถึงตัวเองในอนาคต"
■ ความแตกต่างสำคัญระหว่าง /𝗰𝗼𝗺𝗽𝗮𝗰𝘁 และ /𝗰𝗹𝗲𝗮𝗿

เมื่อเซสชันยาวขึ้น มีสองวิธีในการลดน้ำหนัก ดูเหมือนคล้ายกันแต่แตกต่างอย่างสิ้นเชิง
【/compact】
・โมเดลสรุปการสนทนาและแทนที่ประวัติด้วยสรุปนั้น
・Lossy — สิ่งสำคัญขึ้นอยู่กับการตัดสินของ Claude
・คุณไม่ต้องเขียนอะไร แต่ Claude อาจพลาดบางสิ่ง
・คุณสามารถให้คำแนะนำเพื่อชี้ทาง (เช่น /compact focus on auth refactor, remove test debugging)
【/clear】
・คุณเขียนข้อมูลสำคัญด้วยตัวเองและเริ่มเซสชันใหม่
・เช่น: "เป้าหมายคือ auth middleware ข้อจำกัดคือ X ไฟล์ที่เกี่ยวข้องคือ A และ B วิธี Y ถูกยกเว้น"
・ต้องใช้ความพยายาม แต่ context ที่ได้ประกอบด้วยเฉพาะข้อมูลที่คุณเลือก
การเลือกระหว่างทั้งสองคือการแลกเปลี่ยนระหว่างการควบคุมและความสะดวก
■ ทำไม 𝗰𝗼𝗺𝗽𝗮𝗰𝘁 ถึงล้มเหลว

เมื่อใช้เซสชันยาว คุณภาพของ compact อาจแย่มาก
ตามที่ Thariq กล่าว สาเหตุใหญ่ที่สุดของ compact ที่ไม่ดีคือ "เมื่อโมเดลไม่สามารถคาดเดาทิศทางของงานได้"
ตัวอย่าง:
หลังจากเซสชันการดีบักที่ยาวนาน autocompact ถูกเรียกใช้และสรุปการตรวจสอบ
→ ถ้าคุณพูดว่า "แก้คำเตือนนั้นใน bar.ts ด้วย" ข้อมูลเกี่ยวกับคำเตือนนั้นอาจถูกตัดออกจากสรุปที่เน้นการดีบัก
ที่ยุ่งยากยิ่งกว่าคือภาวะกลืนไม่เข้าคายไม่ออกที่เนื่องจาก context rot โมเดลอยู่ใน "สถานะความฉลาดต่ำที่สุด" เมื่อดำเนินการ compact
กล่าวอีกนัยหนึ่ง สรุปคุณภาพต่ำที่สุดถูกสร้างขึ้นในขณะที่ต้องการสรุปที่แม่นยำที่สุด
ตอนนี้เรามี context 1 ล้านโทเคน กลยุทธ์ที่ดีที่สุดคือเรียกใช้ /compact ด้วยตัวเองในขณะที่ยังมีพื้นที่เหลือ โดยเพิ่มคำอธิบายว่าต้องทำอะไรต่อไป
■ เมื่อไหร่ควรใช้ 𝗦𝘂𝗯𝗮𝗴𝗲𝗻𝘁𝘀

Subagents ก็เป็นรูปแบบหนึ่งของการจัดการ context
เมื่อ Claude Code สร้าง subagent ด้วยเครื่องมือ Agent subagent นั้นจะมี context window สะอาดของตัวเอง
มันทำงานเท่าที่จำเป็น สรุปผลลัพธ์ และส่งคืนให้เซสชันหลัก
เกณฑ์นั้นง่าย:
👀 "ฉันจะต้องใช้ผลลัพธ์ของเครื่องมือนี้ในภายหลังอีกหรือไม่? หรือแค่ข้อสรุปก็เพียงพอ?"
ถ้าแค่ข้อสรุปก็เพียงพอ คุณควรปล่อยให้ subagent จัดการ
Claude Code เรียก subagents โดยอัตโนมัติ แต่การให้คำแนะนำที่ชัดเจนก็มีประสิทธิภาพเช่นกัน:
・"เริ่ม subagent และตรวจสอบผลงานตามไฟล์ spec นี้"
・"ใช้ subagent อ่านและสรุปว่า auth flow ถูก implement ใน codebase อื่นอย่างไร ใช้เป็นข้อมูลอ้างอิงเพื่อ implement ที่นี่"
・"ใช้ subagent เขียนเอกสารสำหรับฟีเจอร์นี้จาก git diff"
การไม่นำผลลัพธ์ระหว่างกลางเข้ามาใน context หลัก จะช่วยให้ context สะอาด
■ สรุป: 5 เทคนิคการจัดการ Context

สิ่งที่คุณควรตัดสินใจก่อนส่งข้อความถัดไปหลังจาก Claude เสร็จหนึ่งเทิร์น:
- งานเปลี่ยนไปหรือไม่? → /clear สำหรับเซสชันใหม่
- วิธีที่ใช้ล้มเหลวหรือไม่? → /rewind เพื่อกลับไปหลังจากโหลดไฟล์
- เซสชันเริ่มยาวหรือไม่? → /compact ในขณะที่ยังมีพื้นที่ (พร้อมทิศทาง)
- เป็นงานที่มีผลลัพธ์ระหว่างกลางมากหรือไม่? → มอบหมายให้ subagent
- สามารถใช้ context สำหรับงานที่เกี่ยวข้องได้หรือไม่? → ดำเนินการต่อตามเดิม
ในอนาคต Claude เองจะช่วยในการตัดสินใจเหล่านี้ แต่สำหรับตอนนี้ ผู้ใช้ที่ตัดสินใจเหล่านี้สามารถปรับปรุงคุณภาพผลลัพธ์ของ Claude Code ได้อย่างมีนัยสำคัญ
การจัดการเซสชันเป็นเรื่องละเอียดอ่อน แต่เป็นทักษะที่เปลี่ยนแปลงประสบการณ์การใช้ Claude Code อย่างสิ้นเชิง 🔥
สำหรับผู้ที่พบว่าบทความนี้มีประโยชน์:

𝗖𝗹𝗮𝘂𝗱𝗲 𝗖𝗼𝗻𝗱𝗲 𝗦𝘁𝘂𝗱𝗶𝗼 @ 𝗝𝗮𝗽𝗮𝗻 (@ClaudeCode_love) เป็นบัญชีที่ดำเนินการโดยผู้ที่ชื่นชอบ Claude Code สามคน
เราโพสต์ทุกวันเกี่ยวกับการใช้งาน CLI และระบบอัตโนมัติในทางปฏิบัติ
ปัจจุบันเรากำลังร่วมพัฒนา AI agent กับบริษัทจดทะเบียน
เนื้อหาปกติของเรา 👇
・กรณีพัฒนาผลิตภัณฑ์จริงโดยใช้ Claude Code และ Claude
・การใช้งาน Claude Code / Vibe Coding / จัดระเบียบเทรนด์การพัฒนา
・ข้อมูลล่าสุดเกี่ยวกับ Claude Code จากต่างประเทศ
ตั้งแต่ปรัชญาการพัฒนาไปจนถึงการออกแบบ การนำไปใช้ และการปรับปรุง เราสรุปข้อมูลจากต่างประเทศและข้อมูลปฐมภูมิเพื่อช่วยให้คุณปล่อยผลิตภัณฑ์ที่ใช้งานได้ ไม่ใช่แค่ "ทำเสร็จ"
ถ้าสนใจ กรุณาติดตามและลองดูนะครับ! มันคุ้มค่าแน่นอน!





