Skip to main content

ทำความเข้าใจ Context และการจัดการ Session ของ Claude Code

หากคุณใช้ Claude Code มาสักพัก คุณอาจสังเกตเห็นแล้ว: ยิ่งเซสชันทำงานนานเท่าไร การตอบสนองยิ่งช้าลงเท่านั้น ไม่ใช่เพราะ AI ทำงานแย่ลง — ปัญหาจริงๆ คือ context บวม มาดูกันว่าเกิดอะไรขึ้นเบื้องหลัง และคุณจะแก้ไขอย่างไร

1. "Context" หมายความว่าอะไรจริงๆ

ในศัพท์ AI context คือชุดข้อมูลที่โมเดลต้องใช้ในการตอบคำถามของคุณ LLM ทุกวันนี้เป็น stateless shared services — มันไม่ได้เก็บความจำเกี่ยวกับคุณหรือโปรเจกต์ของคุณไว้ข้าม request

สิ่งที่เกิดขึ้นจริงคือ: ทุกครั้งที่คุณส่งข้อความ Claude Code ต้องรวมคำขอปัจจุบันเข้ากับประวัติการสนทนาทั้งหมดแล้วส่งทั้งหมดไปให้โมเดล ยิ่งประวัติยาว ยิ่ง payload หนัก

ให้นึกถึงเหมือนแฟ้มเอกสารสรุปงาน ทุกข้อความที่คุณส่งก็เหมือนกับยื่นแฟ้มเอกสารให้ผู้เชี่ยวชาญ ในช่วงแรกของเซสชัน แฟ้มบางและอ่านง่าย แต่ถ้าคุณกระโดดไปมาระหว่างหัวข้อที่ไม่เกี่ยวข้อง — refactor backend ปรับ frontend ดีบัก CSS บั๊ก — แฟ้มนั้นจะกลายเป็นเอกสารมหึมาที่ยุ่งเหยิง ผู้เชี่ยวชาญจะช้าลงและเริ่มทำผิด ไม่ใช่เพราะเขาไม่เก่ง แต่เพราะคุณยื่นเอกสารขยะให้เขา

2. ทำไมแค่ Compression ไม่เพียงพอ

Claude Code มาพร้อมกับ automatic context compression: เมื่อประวัติเติบโตเกินเกณฑ์ ระบบจะสรุปจุดสำคัญและลบข้อมูลซ้ำของไฟล์ เป็นประโยชน์ แต่มีข้อจำกัดจริงๆ:

  • มีค่าใช้จ่ายสูง กระบวนการ compress เองมักใช้ token budget สำหรับ input ไปแล้ว 20% หรือมากกว่า ใน codebase ขนาดใหญ่ นั่นเป็นส่วนสำคัญของเวลาและค่าใช้จ่ายที่ถูกใช้ไปกับการสรุปแทนที่จะเป็นงานจริง
  • เดาผิดเมื่อเปลี่ยนทิศทาง Compression คาดการณ์ว่าสิ่งใดเกี่ยวข้องจากสิ่งที่เกิดขึ้นก่อนหน้า — มันไม่ใช่การสลับ context จริง หากคุณกระโดดไปทำงานที่ต่างกันโดยสิ้นเชิงระหว่างเซสชัน (เช่น จากการเขียน API routes ใหม่ไปแก้ปุ่มจัดวาง) สรุปที่ถูกบีบอัดยังลากสมมติฐานเก่ามาด้วย และโมเดลจะสับสน

3. วิธีแก้: หนึ่งงาน หนึ่งเซสชัน

หลักการนั้นง่ายมาก: ให้ AI ทำงานทีละอย่าง Deep Code ทำให้เรื่องนี้ง่ายด้วยสองคำสั่ง:

ป้อนคำส่ัง /clear เพื่อเริ่มงานใหม่
  • /clear — เริ่มต้นใหม่ คำสั่งนี้จะลบบทสนทนาปัจจุบันและเปิดเซสชันใหม่สะอาด ไม่มีประวัติค้าง ไม่มีข้อมูลไฟล์เก่า — AI จะโฟกัสเฉพาะสิ่งที่อยู่ตรงหน้า
ป้อนคำส่ัง /resume เพื่อดูรายการเซสชันที่ผ่านมา
  • /resume — กลับไปทำงานต่อ ต้องการกลับไปดูเซสชัน refactor เมื่อวาน? /resume จะแสดงรายการเซสชันทั้งหมดของโปรเจกต์ แต่ละรายการมีข้อความสรุปบรรทัดเดียว เลื่อนด้วยลูกศร กด Enter เพื่อเลือก หรือกด ESC เพื่อย้อนกลับ

สรุป

นี่คือสิ่งที่เราครอบคลุม:

  • Context คือประวัติการสนทนาของคุณ — และมันถูกส่งไปให้โมเดลทุกครั้งที่ส่งข้อความ ยิ่งเซสชันนาน ยิ่ง payload หนัก และการตอบสนองยิ่งช้า
  • Automatic compression ช่วยได้ แต่ไม่ใช่ยาวิเศษ มันใช้ token ไปกับการสรุป และทำงานได้ไม่ดีเมื่อคุณสลับงานระหว่างเซสชัน
  • วิธีแก้ง่ายมาก: หนึ่งงาน หนึ่งเซสชัน ใช้ /clear เพื่อล้างกระดานแล้วเริ่มใหม่ ใช้ /resume เพื่อกลับไปทำงานต่อในเซสชันก่อนหน้าเมื่อต้องการ

อย่างไรก็ตาม /resume ก็มีข้อจำกัด — คุณจะเห็นแค่ข้อความสรุปบรรทัดเดียวต่อเซสชัน ไม่สามารถดูเนื้อหาบทสนทนาก่อนกู้คืนได้ และการสลับระหว่างเซสชันยังไม่สะดวก หากคุณพบข้อจำกัดเหล่านี้ ลองดู แผงประวัติงาน (Task History Panel) ซึ่งเป็นอินเทอร์เฟซแบบกราฟิกที่ให้คุณเรียกดูประวัติการสนทนาทั้งหมด คัดลอกข้อความ และสลับงานด้วยคลิกเดียว