Mono
รายชื่อรอ

Context window ของ Claude Code ใกล้เต็ม? เลือก compact, clear หรือเริ่มใหม่

เมื่อ Claude Code หรือเอเจนต์เขียนโค้ดตัวอื่นใกล้ใช้บริบทหมด ให้เลือกระหว่างการย่อบริบท การล้างบริบท และการเริ่มเซสชันใหม่ แล้วเก็บการตัดสินใจไว้ในบันทึกส่งต่องาน

เมื่อ context window ใกล้เต็ม Claude Code จะจัดการเอง โดยล้างผลลัพธ์จากเครื่องมือที่เก่ากว่าก่อน แล้วสรุปบทสนทนาถ้ายังจำเป็น คำสั่งที่ให้ไว้ช่วงแรกอาจหายไป จึงควรเลือกเองก่อน ถ้ายังทำงานเดิมอยู่ ให้รัน /compact พร้อมหมายเหตุว่าต้องเก็บอะไรไว้ ถ้าจะไปทำงานที่ไม่เกี่ยวข้อง ให้รัน /clear ถ้าเอเจนต์ลืมการตัดสินใจอยู่เรื่อย ๆ ให้เขียนบันทึกส่งต่องานสั้น ๆ แล้วเริ่มเซสชันใหม่จากบันทึกนั้น

เอเจนต์เขียนโค้ดตัวอื่นอาจใช้คำสั่งต่างกัน แต่ทางเลือกยังเหมือนเดิม Mono แสดงได้ว่าบริบทเต็มแค่ไหนเมื่อเอเจนต์รายงานข้อมูลนี้ แต่การย่อและการล้างบริบทเป็นหน้าที่ของเอเจนต์

1. รู้ว่าอะไรทำให้ context window เต็ม

บริบทเก็บทุกอย่างที่เอเจนต์ใช้ทำงาน ได้แก่ ข้อความของคุณและคำตอบของเอเจนต์ ไฟล์ที่เอเจนต์อ่าน ผลลัพธ์จากคำสั่งและการทดสอบ รายการเครื่องมือจากเซิร์ฟเวอร์ MCP ที่เชื่อมต่อไว้ และไฟล์คำสั่งที่โหลดตอนเริ่มต้น log การทดสอบยาว ๆ เพียงชุดเดียวอาจกินที่มากกว่าทุกอย่างที่คุณพิมพ์รวมกัน

สัญญาณว่าบริบทใกล้เต็ม:

  • เอเจนต์ฝ่าฝืนกฎที่คุณให้ไว้ก่อนหน้า
  • เอเจนต์ถามคำถามที่คุณตอบไปแล้ว
  • มีคำเตือนว่าบริบทเหลือน้อย

ใน Claude Code คำสั่ง /context แสดงว่าอะไรใช้พื้นที่อยู่บ้าง ภาพรวมการทำงานของ Claude Code อธิบายว่าเกิดอะไรขึ้นเมื่อใกล้ถึงขีดจำกัด

ตัวอย่างสมมติ: หลังใช้เวลาสองชั่วโมงย้ายไฟล์ 30 ไฟล์ในโปรเจกต์ “tidy-recipes” จากฟังก์ชันช่วยจัดการวันที่ตัวเก่า oldDate() ไปใช้ formatDate() ตัวใหม่ เอเจนต์ถามอีกครั้งว่าจะใช้ไลบรารีไหน และ /context แสดงว่าบริบทเกือบเต็มแล้ว

2. เลือกระหว่างการย่อ การล้าง และการเริ่มเซสชันใหม่

การย่อบริบท (compact) แทนที่บทสนทนาด้วยบทสรุปในเซสชันเดิม การล้างบริบท (clear) หรือการเริ่มเซสชันใหม่จะทิ้งบทสนทนา แต่ไฟล์คำสั่งจะโหลดอีกครั้ง แต่ละทางเลือกทำให้เสียบางอย่างไป:

สถานการณ์ สิ่งที่ควรทำ สิ่งที่เสียไป
งานเดิมที่กำลังไปได้ดี ย่อบริบทพร้อมหมายเหตุบอกจุดเน้น รายละเอียดที่บทสรุปข้ามไป
งานถัดไปไม่เกี่ยวข้องกัน ล้างบริบท หรือเริ่มเซสชันใหม่ บทสนทนาทั้งหมด
เอเจนต์ลืมการตัดสินใจ เขียนบันทึกส่งต่องาน แล้วเริ่มเซสชันใหม่ สิ่งที่บันทึกส่งต่องานไม่ได้ใส่ไว้

หมายเหตุจุดเน้นบอกบทสรุปว่าต้องเก็บอะไรไว้: /compact Focus on date decisions and failing tests คู่มือจัดการค่าใช้จ่ายของ Claude Code แสดงตัวอย่างนี้ และแนะนำให้ใช้ /rename ก่อน /clear เพื่อให้เปิดเซสชันนั้นอีกครั้งได้ด้วย /resume

ในตัวอย่างนี้ เอเจนต์ลืมการตัดสินใจไปแล้วหนึ่งเรื่อง จึงควรเขียนบันทึกส่งต่องาน

3. เขียนบันทึกส่งต่องานก่อนรีเซ็ต

บันทึกส่งต่องานคือโน้ตสั้น ๆ สำหรับเซสชันใหม่ จะเขียนเองหรือแก้ฉบับร่างของเอเจนต์ก็ได้:

text
Goal: Replace oldDate() with formatDate() in recipes/ (30 files).
Done: 18 files, on branch tidy-dates.
Decisions: formatDate() uses Intl.DateTimeFormat, so no new library.
  Keep oldDate() for importing v1 files, which use the old format.
Open problem: The recipes/print.ts test has failed since the change.
Next step: Fix print.ts, then move the remaining 12 files.

ใส่เหตุผลให้ทุกการตัดสินใจ ไม่อย่างนั้นเซสชันถัดไปอาจกลับไปเปลี่ยนการตัดสินใจนั้น บันทึกโน้ตไว้ในโปรเจกต์หรือในโน้ตของคุณ และส่งออกบทสนทนาไว้เผื่อต้องใช้รายละเอียด

จากนั้นรัน /clear หรือเริ่มเซสชันใหม่ในโปรเจกต์เดิม แล้ววางเฉพาะบันทึกส่งต่องาน ไม่ใช่บทสนทนาทั้งหมด

4. ย้ายกฎถาวรออกจากแชท

บางเรื่องที่คุณคอยแก้ให้เอเจนต์สำคัญเกินกว่างานเดียว ถ้าคุณต้องพูดซ้ำ ๆ ว่า “ใช้ฟังก์ชันช่วยจัดการวันที่ของโปรเจกต์” หรือ “รันการทดสอบด้วยสคริปต์ของโปรเจกต์” ให้ใส่กฎนั้นไว้ในไฟล์คำสั่งของโปรเจกต์ เช่น AGENTS.md หรือ CLAUDE.md ของ Claude Code เซสชันใหม่จะอ่านไฟล์นั้น การรีเซ็ตจึงไม่ทำให้กฎหายไป

เขียนไฟล์ให้สั้น เพราะไฟล์นี้โหลดเข้าทุกเซสชัน คู่มือค่าใช้จ่ายแนะนำให้ CLAUDE.md ยาวไม่เกิน 200 บรรทัด ส่วนความคืบหน้า เช่น “18 จาก 30 ไฟล์” ให้อยู่ในบันทึกส่งต่องาน คู่มือ AGENTS.md อธิบายว่าควรใส่อะไรบ้าง

กฎเรื่องไฟล์ v1 ในตัวอย่างก็ควรอยู่ในไฟล์นี้ด้วย เพราะกฎนี้ใช้ไปตราบเท่าที่ยังมีไฟล์ v1 อยู่

5. ลดสิ่งที่แต่ละรอบเพิ่มเข้ามา

บริบทที่เล็กลงใช้ได้นานขึ้น ก่อนส่งคำขอแต่ละครั้ง:

  • ระบุชื่อไฟล์และฟังก์ชัน ไม่ใช่แค่ “แก้เรื่องวันที่”
  • วางเฉพาะบรรทัดข้อผิดพลาดที่เกี่ยวข้อง ไม่ใช่ log ทั้งหมด
  • รันเฉพาะการทดสอบที่ต้องใช้ และแสดงเฉพาะข้อที่ไม่ผ่าน
  • ตัดการเชื่อมต่อเซิร์ฟเวอร์ MCP ที่โปรเจกต์ไม่ได้ใช้
  • ส่งงานค้นหากว้าง ๆ ให้ subagent ในกรณีที่เอเจนต์รองรับ
  • ใช้หนึ่งเซสชันต่อหนึ่งงาน

คู่มือค่าใช้จ่ายครอบคลุมข้อเหล่านี้เกือบทั้งหมด รวมถึง hook ที่กรองผลลัพธ์การทดสอบ

6. ตรวจเอเจนต์หลังรีเซ็ต

ก่อนที่เซสชันใหม่จะแก้ไขอะไร ให้ขอให้เอเจนต์สรุปเป้าหมาย การตัดสินใจ และขั้นตอนถัดไปอีกครั้ง แล้วเทียบคำตอบกับบันทึกส่งต่องาน ในตัวอย่างนี้ เอเจนต์ควรพูดถึงกฎเรื่อง v1 ได้เองโดยไม่ต้องเตือน ถ้าตกหล่นอะไร ให้แก้ตอนนี้เลย จากนั้นตรวจ diff แรกของเอเจนต์ ซึ่งก็คือการแก้ print.ts ก่อนให้ทำงานต่อ คู่มือตรวจโค้ดมีรายการตรวจให้ใช้

ใน Mono เมื่อเอเจนต์รายงานการใช้งาน วงแหวนเล็ก ๆ เหนือช่องพิมพ์ข้อความจะแสดงบริบทที่ใช้ไป วงแหวนเปลี่ยนจากสีเขียวเป็นสีส้มเมื่อใช้ไปครึ่งหนึ่ง และเป็นสีแดงที่ 80 เปอร์เซ็นต์ เมื่อกดวงแหวนจะเห็น “บริบท: ที่ใช้ / ทั้งหมด” การพิมพ์ “/” จะแสดงรายการ slash command ที่เอเจนต์มีให้ ตาม Agent Client Protocol เอเจนต์จะประกาศคำสั่งเหล่านี้หรือไม่ก็ได้ หากต้องการเริ่มใหม่ ให้บันทึกบทสนทนาเก่าด้วย “ส่งออกการสนทนา” แล้วเลือก “เซสชันใหม่” บนการ์ดโปรเจกต์ (ทำจากโทรศัพท์ได้ด้วยเมื่อคอมพิวเตอร์เชื่อมต่ออยู่) Mono ยังไม่เปิดให้ใช้ แต่คุณเข้าร่วมรายชื่อรอได้

เขียนโดย

Reunified สร้างแอปที่รวบรวมสิ่งที่กระจัดกระจายกลับมาไว้ด้วยกัน

อ่านเรื่องอื่นต่อ

บทความทั้งหมด

อ่าน 6 นาที

ตั้งการแจ้งเตือนเมื่อเอเจนต์เขียนโค้ดทำงานเสร็จหรือรอการอนุมัติ

รับการแจ้งเตือนเมื่อเอเจนต์เขียนโค้ดทำงานเสร็จ ล้มเหลว หรือรอให้คุณอนุมัติ บนคอมพิวเตอร์หรือโทรศัพท์ แล้วทดสอบให้เรียบร้อยก่อนลุกจากโต๊ะ

อ่าน 6 นาที

ใช้ AI เพิ่มกิจกรรมลงปฏิทินจากข้อความหรืออีเมล

ใช้ผู้ช่วย AI เปลี่ยนอีเมล คำเชิญ หรือข้อความแชทเป็นกิจกรรมในปฏิทิน ตรวจวันที่และเขตเวลา แล้วอนุมัติทีละกิจกรรมก่อนบันทึก

เร็ว ๆ นี้

ลงชื่อในรายชื่อรอ

ทิ้งอีเมลไว้ แล้วเราจะแจ้งคุณเมื่อ Mono พร้อมให้ดาวน์โหลด

คุณจะใช้ Mono บนแพลตฟอร์มไหน