สำรวจ Context Window
การจำลองเชิงโต้ตอบว่า context window ของ Claude Code เต็มขึ้นอย่างไรระหว่างเซสชัน ดูว่าอะไรโหลดโดยอัตโนมัติ แต่ละการอ่านไฟล์มีค่าใช้จ่ายเท่าไหร่ และ rules และ hooks ทำงานเมื่อใด
ภาพรวม Context Window
Context window ของ Claude Code คือหน่วยความจำการทำงานสำหรับเซสชัน ประกอบด้วยประวัติการสนทนา เนื้อหาไฟล์ ผลลัพธ์คำสั่ง CLAUDE.md, auto memory, skills ที่โหลด และ system instructions
สิ่งที่โหลดเมื่อเริ่มต้น
เมื่อเซสชัน Claude Code เริ่มต้น รายการต่อไปนี้จะโหลดเข้าสู่ context window โดยอัตโนมัติ:
| รายการ | Token โดยประมาณ | รายละเอียด |
|---|---|---|
| System prompt | ~4,200 | คำแนะนำหลักสำหรับพฤติกรรม การใช้เครื่องมือ และการจัดรูปแบบการตอบกลับ โหลดก่อนเสมอ คุณไม่เคยเห็น |
| Auto memory (MEMORY.md) | ~680 | บันทึกของ Claude สำหรับตัวเองจากเซสชันก่อนหน้า 200 บรรทัดแรกหรือ 25KB โหลดเข้าสู่ context การสนทนา |
| Environment info | ~280 | working directory, platform, shell, เวอร์ชัน OS และว่าเป็น git repo หรือไม่ |
| MCP tools (deferred) | ~120 | ชื่อ tool MCP แสดงให้ Claude ทราบว่ามีอะไรบ้าง โดยค่าเริ่มต้น schema แบบเต็มยังคง deferred และ Claude โหลดเฉพาะ schema ตามความต้องการ |
| Skill descriptions | ~450 | คำอธิบายบรรทัดเดียวของ skills ที่มี เนื้อหา skill แบบเต็มโหลดเฉพาะเมื่อ Claude ใช้จริง |
| ~/.claude/CLAUDE.md | ~320 | การตั้งค่าส่วนตัวของคุณ ใช้กับทุกโปรเจกต์ |
| Project CLAUDE.md | ~1,800 | conventions โปรเจกต์ build commands หมายเหตุ architecture ไฟล์ที่สำคัญที่สุดที่คุณสร้างได้ |
การเติม Context ระหว่างเซสชัน
หลังจาก startup ขนาด context จะเติบโตตามการกระทำของ Claude:
การอ่านไฟล์
Read src/api/auth.ts → ~2,400 tokens
Read src/lib/tokens.ts → ~1,100 tokens
Read middleware.ts → ~1,800 tokens
Claude อ่านไฟล์เพื่อทำความเข้าใจโค้ด คุณเห็น "Read auth.ts" ใน terminal แต่เนื้อหา 2,400 tokens ของไฟล์มีเฉพาะ Claude เท่านั้นที่เห็น
เคล็ดลับ: การอ่านไฟล์ครองการใช้ context ให้เฉพาะเจาะจงใน prompts ("fix the bug in auth.ts") เพื่อให้ Claude อ่านไฟล์น้อยลง สำหรับงานวิจัยมาก ให้ใช้ subagent
Rules ที่โหลดตาม Path
Rule: api-conventions.md → ~380 tokens
rule ใน .claude/rules/ ที่มี pattern paths: ตรงกับ src/api/** จะโหลดโดยอัตโนมัติเมื่อ Claude อ่านไฟล์ในไดเรกทอรีนั้น
ผลลัพธ์การค้นหา
grep "refreshToken" → ~600 tokens
ผลการค้นหาทั่วทั้ง codebase
การตอบกลับของ Claude
Claude's analysis → ~800 tokens
Edit auth.ts → ~400 tokens
การวิเคราะห์และการแก้ไขที่ปรากฏใน terminal ของคุณ
Hook Output
Hook: prettier → ~120 tokens
PostToolUse hook ที่รัน prettier หลังทุกการแก้ไขไฟล์รายงานผ่าน hookSpecificOutput.additionalContext field นั้นเข้าสู่ context ของ Claude
เมื่อ Context เต็ม
Claude Code จัดการ context โดยอัตโนมัติเมื่อใกล้ถึงขีดจำกัด มันล้างผลลัพธ์ tool เก่าก่อน จากนั้น compact (สรุป) การสนทนาถ้าจำเป็น
สิ่งที่รอดจาก compaction:
- CLAUDE.md และ auto memory (โหลดใหม่จากดิสก์)
- คำขอของคุณและ code snippets หลัก
- คำแนะนำจาก CLAUDE.md (ไม่ใช่คำแนะนำในการสนทนาเท่านั้น)
อาจสูญหายหลัง compaction:
- คำแนะนำโดยละเอียดจากต้นการสนทนา
- ผลลัพธ์ tool ที่เก่ากว่า
การจัดการ Context อย่างมีประสิทธิภาพ
ตรวจสอบการใช้งาน
รัน /context เพื่อดูสิ่งที่กิน space ในขณะนี้
ล้างระหว่างงาน
/clear
เริ่มใหม่เมื่อเปลี่ยนไปทำงานที่ไม่เกี่ยวข้อง context ที่ค้างอยู่เสีย tokens ในทุกข้อความถัดไป ใช้ /rename ก่อนล้างเพื่อให้ค้นหาเซสชันในภายหลังได้
Compact ด้วย Focus
/compact Focus on code samples and API usage
บอก Claude ว่าจะเก็บอะไรไว้ระหว่างการสรุป
คุณยังปรับแต่งพฤติกรรม compaction ใน CLAUDE.md ได้:
# Compact instructions
When you are using compact, please focus on test output and code changes
ต้นทุน Context ตามฟีเจอร์
| ฟีเจอร์ | เมื่อโหลด | สิ่งที่โหลด | ต้นทุน Context |
|---|---|---|---|
| CLAUDE.md | เริ่มต้นเซสชัน | เนื้อหาทั้งหมด | ทุก request |
| Skills | เริ่มต้นเซสชัน + เมื่อใช้ | คำอธิบายตอนเริ่ม เนื้อหาแบบเต็มเมื่อใช้ | ต่ำ |
| MCP servers | เริ่มต้นเซสชัน | ชื่อ tool; schemas แบบเต็มตามต้องการ | ต่ำจนกว่าจะใช้ tool |
| Code intelligence | หลังแก้ไขไฟล์และตามต้องการ | diagnostics หลังแก้ไข; ข้อมูล symbol เมื่อค้นหา | ต่ำ |
| Subagents | ตามต้องการ | Context ใหม่แยก | แยกจากเซสชันหลัก |
| Hooks | เมื่อ trigger | ไม่มี (รันภายนอก) | ศูนย์ เว้นแต่ hook ส่งคืน output |
เคล็ดลับการประหยัด Token
- เฉพาะเจาะจงใน prompts: "fix the bug in auth.ts" แทนที่จะเป็น "improve this codebase"
- ใช้ subagents สำหรับงานวิจัย: การสำรวจเกิดขึ้นใน context แยก
- ปิดใช้งาน MCP servers ที่ไม่ได้ใช้: รัน
/mcpเพื่อดูเซิร์ฟเวอร์ที่กำหนดค่าและปิดใช้งานที่ไม่ใช้งาน - ใช้ code intelligence plugins: ลดการอ่านไฟล์โดยไม่จำเป็น
- ใช้ plan mode: วางแผนก่อนแล้วค่อยดำเนินการ หลีกเลี่ยงการทำงานซ้ำซ้อนเมื่อทิศทางผิด
- ย้ายคำแนะนำจาก CLAUDE.md ไปยัง skills: skills โหลดตามต้องการเท่านั้น