หัวข้อเรื่องต้นฉบับ: การใช้งานโค้ด Claude: การจัดการเซสชันและ 1M Context
ผู้เขียนต้นฉบับ: ทาริก, สมาชิกทีม Claude Code
การแปลต้นฉบับ: พอยม, นักวิจัย AI
หมายเหตุจาก BlockBeats: ในยุคที่เครื่องมือเขียนโค้ด AI กำลังพัฒนาอย่างต่อเนื่องในปัจจุบัน มีผู้ใช้มากมายที่คิดว่าการมีข้อความท้ายที่มากขึ้นจะทำให้ประสบการณ์ดีขึ้นโดยอัตโนมัติ แต่บทวิจารณ์ตรงนี้จากนักวิจัย Claude Code ในบทสรุปแถบหน้าสายหลัก ให้คำตอบอย่างเยาว์: สิ่งที่กำหนดคุณภาพผลลัพธ์จริง ๆ คือจะไม่ใช่ขนาดหน้าต่างเอง แต่เป็นเรื่องของวิธีการจัดการข้อความท้ายที่ว่องไว
จากการอัพเดทจาก /usage ไปจนถึงการแยกวิเมดของ "ดำเนินต่อ, ย้อนกลับ, บีบอัด, ล้าง, เอเจนต์ย่อย" บทความเปิดเผยความสามารถที่มักถูกละเมิดอยู่--ความสามารถในการจัดตารางรายการที่อยู่บนการทำงานของช่ว้ชีวผู้ใช้ มันไม่เท่ากับปัญหาเท่านั้น แต่เป็นปัญหารู้สึก--เมื่อควรถือประวัติไว้ ตอนไหนควรที่จะลืมโดยเฉพาะตอนไหนแบ่งงาน, ตอนไหนจะเริ่มทำใหม่--การเลือกเหล่านี้มีผลกับ AI ว่าตัวมันกำลังอยู่ในบทบาท "ร่วมมือ" หรือ "รบกวน" ด้านล่างเป็นเนื้อหาต้นฉบับ:
วันนี้เราได้เปิดตัวการอัพเดทใหม่สำหรับคำสั่ง /usage เพื่อช่วยให้คุณเข้าใจสถานการณ์การใช้งานของคุณใน Claude Code ได้ชัดเจนมากขึ้น มีเรื่องหลังเมื่อเราตัดสินใจที่มีอยู่หลายครั้งที่ผ่านมากับผู้ใช้
ในบทสนทนานี้เราได้ยินเห็นอะไรซ้ำๆ มากที่เกี่ยวกับสมรรถนะการจัดการเซสชันของทุกคน โดยเฉพาะเลยเกี่ยวกับการที่เร็วหรือช้า Claude Code ได้ปรับ Context Window ขึ้นไปถึงที่ 1 ล้าน ครั้งระยะทาง
คุณพึงการะใช่ไหมที่จะมีเฉพาะหน้าต่าง 1 ถึง 2 เซสชันที่เปิดอยู่ในเทอร์มินัล? หรือคุณทำการเริ่มเซสชันใหม่ทุกครั้งที่พิมพ์คำใบ้? คุณทำเกี่ยวกับการบีบอัด (Compact) ย้อนกลับ (Rewind) หรือไซส์เอเจนต์ย่อย (Subagents) ที่เวลาใด? และสิ่งใดที่ทำให้คุณต้องการบีบอัดอินดี้ที่ห่วยแตก
มีความรู้มากมายอยู่ในนั้นข้างใน ๆ สเปกตย์เหล่านี้ ดูเหมือนกำลังไปข้างหน้าหน้าใช้งาน Claude Code ของคุณ และทั้งหมดนี้ในสมองใจตัวเองรวมถึงหน้าต่างที่หายๆ (Context Window)

ที่เรียกว่า "บริเวณหน้าต่างบริบท (Context Window)" เปรียบเสมือนว่าโมเดลกำลังสร้างคำตอบครั้งถัดไป หน้าตามที่สามารถ "มองเห็น" พร้อมกันทั้งหมดขอบของข้อมูล ซึ่งรวมถึงคำพูดของระบบของคุณ (System Prompt) บันทึกการสนทนาจนถึงขณะนั้น การเรียกใช้เครื่องมือทุกครั้ง (Tool Call) และผลลัพธ์ที่ได้เป็นเอกสารต่าง ๆ ที่มีอยู่ แต่นี้ Claude Code ขณะนี้มีบริเวณหน้าต่างที่ใหญ่ถึง 100 หมื่นโทเคน (Token) (หมายเหตุ: Token เป็นหน่วยพื้นฐานที่ใช้โมเดลใหญ่ในการประมวลผลข้อความ โดยทั่วไปคำภาษาอังกฤษ 1 คำเท่ากับ 1 Token และอักษรภาษาจีนอาจมีขนาด 1-2 Token)
แต่เสียใจด้วย การใช้บริเวณต้องเสียค่าใช้จ่ายบ้าง ที่เรามักเรียกว่าการเสื่อมคุณค่าของบริเวณ (Context Rot) (หมายเหตุ: หมายถึง เมื่อประวัติของการสนทนายืดขยายออกไปมากขึ้นโมเดลต้องประมวลผลข้อมูลมากเกินไปทำให้ความสนใจแพร่หลายไม่สามารถร้อยรันย่างเคร่องหมายเดิมหรือถูกรบการรบเรียกตามสภาพ) ขณะที่บริเวณยืดขนาบมากขึ้น ประสิทธิภาพของโมเดลมักเปลี่ยนแปลงลงเสียเข้า นี้เพราะความสนใจของมันถูกกระจายออกไปตลอดโทเคนมากขึ้น ส่วนเนื้อหาจากขณะกาลก่อนที่จะกลายเป็นอ้อมจะจากดเริ่มรบรบโมเดลไปคร่องกา
บริเวณหน้าตังมีขีทับขียามีขีจำกาัเกรอีาตน่ิ จึงถูกปัทบไปขณะบริเวณเริ่มเต็บเรว่างทยังงกมาชย้ใหให้ญใอยงงยีังอวงงรบตสถงกา็ช็วตนย
เราเรียกกระบวนการนี้ว่าการบีอยการ (Compaction) (หมายเหตุ: เพื่อเปอกเพืตการเก็บหนี้พืยวมค้ากงบอกถีบริเวณประรันยทวนเอกสารเกัดหน้าที่งตนี้) แนนะทางธงรวกจะสาจรเ้อางกระบรงวอสายงจรตันีงหยิตถาจเง็นนังยำ้งใรบชึง

จงจินทคทำผตวคลาวดำ¸ควกาจชวร แมยกือแล้ว ทุควตดยยำเกืองขยวววชยื่งวู่ตรการจี้
งภอยดาหแกาษาวาทงงาวงดแก็ีางทว้
· ดำเนินการต่อ (Continue)—ส่งข้อความถัดไปในหนึ่งเซสชั่นเดียวกันโดยตรง
· ย้อนกลับ (/rewind หรือกดปุ่ม Esc สองครั้งติดกัน)—ย้อนเวลากลับไปที่ข้อความก่อนหน้าเพื่อลองอีกครั้ง
· ล้าง (Clear)—เริ่มเซสชั่นใหม่โดยปกติแล้วคุณจะใส่สรุปสั้น ๆ จากการสนทนาก่อนหน้า
· บีบอัด (Compact)—สรุปการสนทนาปัจจุบันและดำเนินการต่อจากสรุปนั้น
· เอเจนต์ย่อย (Subagents)—มอบหมายงานระดับถัดไปให้เอเจนต์ AI อีกตัวที่มีบริบทอย่างเป็นระเบียบและรับผลลัพธ์งานจริงกลับมาเท่านั้น
การดำเนินการต่อโดยตรงถือเป็นการตอบสนองอย่างเรียบร้อยที่สุด แต่การตั้งค่าหน้าที่ของ 4 ตัวเลือกอื่น ๆ เป็นเพื่อช่วยคุณจัดการบริบทให้ดียิ่งขึ้น

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

หากต้องการให้กระบวนการบริหารบริบทดี โอกาสที่แท้จริงมีสุขอยู่ใช้ "ย้อนกลับ" อย่างเครอะ
ใน Claude Code การดับเบิลคลิก Esc (หรือประมาณวิธี /rewind) จะทำให้คุณย้อนกลับไปยังข้อความใดข้อความหนึ่งในอดีต และจากนั้นสั่งให้ Claude นำคำใบ้นั้นออกมาอีกครั้ง ส่วนข้อความที่เกิดขึ้นหลังจากนั้นจะถูกลบทิ้งออกจากบริบทอย่างสมบูรณ์
ในกรณีที่ต้องการแก้ไขข้อผิดพลาดของ AI การ "ย้อนกลับ" มักเป็นวิธีที่มีประสิทธิภาพมากกว่า ยกตัวอย่างเช่น: Claude อ่านไฟล์ห้ารายการ ลองวิธีหนึ่งและล้มเหลว สิ่งที่คุณอาจจะตอบอยู่ในกล่องข้อความคือ "วิธีนี้ไม่ได้ผล ให้ลองวิธี X ดู" แต่วิธีที่ฉลาดกว่าคือ ย้อนกลับไปในเวลาที่เพิ่งอ่านไฟล์ห้ารายการเสร็จ จากนั้นพาด้วยบทเรียนที่เพิ่งได้เรียนไปกับ Claude แล้วพูดกับมันว่า "อย่าใช้วิธี A แล้วเพราะโมดูล foo ไม่รองรับ—ไปลองวิธี B ทันที"
คุณยังสามารถใช้ฟังก์ชัน "สรุปจากจุดนี้" ให้ Claude สรุปบทเรียนที่เรียนรู้เป็นข้อความ "ข้อมูลถ่ายทอยจากคุณ" นี้ให้หลังจากเพิ่งเจอปัญหา ดูเหมือนว่าเป็นการสร้างบันทึกโดย "Claude เวอร์ชันในอนาคต" ที่นำข้อความไปวางให้ตัวเองในอดีตที่ยังไม่เคยกระทำอะไร

เมื่อการสนทนายืดหดต่อไปเรื่อยๆ คุณมีวิธีการสองแบบที่จะช่วยให้มันเบาขึ้น: ใช้ /compact (บีบอัด) หรือ /clear (ล้างออกแล้วเริ่มใหม่) การกระทำทั้งสองนี้อาจดูคล้ายคลึงกัน แต่การเปรียบเทียบจริงๆ แตกต่างกันอย่างมาก
การบีบอัด (Compact) คือกระบวนการที่ผู้ใช้ให้โมเดลสรุปสิ่งที่เกิดขึ้นในการสนทนาจนถึงตอนนั้น และใช้สรุปนั้นมาแทนประวัติที่ยาวนาน กระบวนการนี้ถือเป็น "การสูญเสีย" หมายความว่าคุณมอบอำนาจสร้างคำสั่ง "สิ่งที่สำคัญอะไร" ไปให้ Claude
ข้อดีคือคุณไม่ต้องเขียนอะไรเลย และ Claude อาจจะถือเรื่องประสบการณ์ที่สำคัญหรือบันทึกไฟล์ได้ดีกว่าที่คุณคิด คุณยังสามารถควบคุมทิศทางการบีบอัดได้โดยสั่งให้มัน ("/compact ให้องค์กรรมการตรวจสอบตัวตนพัฒนาใหม่นำร่างทดสอบออกไป")

การใช้ /clear จะต้องเขียนจุดสำคัญของคุณเอง (เช่น: "เรากำลังทำการสร้างใหม่สำหรับ middleware การตรวจสอบสิทธิ ข้อกำหนดปัจจุบันคือ X ไฟล์ที่สำคัญคือ A และ B และเราได้ยกเว้นวิธีที่ Y") และจากนั้นเริ่มต้นใหม่ในสภาวะที่ดีมาก ถึงแม้ว่ามันจะเหนื่อยหน่อย แต่ทุกส่วนที่เกิดขึ้นจากนั้น 100% คือสิ่งที่คุณคิดว่าเป็นจุดสำคัญที่แท้จริง

หากคุณใช้เซสชันที่ยาวมากๆ อยู่บ่อยๆ คุณเคยพบเห็นว่า "บีบอัด" ที่เกิดขึ้นมีผลแย่มากๆ เราพบว่า "เทอะอะ" ดังกล่าวโดยปกติเกิดขึ้นในช่วงเวลาที่เซสชันของคุณถึงจุดที่โมเดลภาษาใหญ่ (LLM) ไม่สามารถคาดเดาทิศทางการทำงานของคุณในขั้นต้น
ตัวอย่างเช่น เมื่อเสร็จสิ้นการตรวจแก้โค้ดยาวนาน ระบบเริ่มต้น "บีบอัด" อัตโนมัติ สรุปกระบวนการตรวจผลลัพธ์ก่อนหน้า ผลลัพธ์ก็คือคุณพร้อมไปด้วยวางมือที่ว่า "ตอนนี้ ลองแก้ไขการเตือนอีกตัวที่เราเห็นใน bar.ts ได้ด้วย"
อย่างไรก็ตาม เนื่องจากการเน้นเฉพาะไปที่ข้อบกพร่องก่อนนั้นทั้งสิ้น การเต้นโต้งนั้นมีโอกาสที่จะถูกจัดไม่ว่าเป็นข้อมูลที่ไม่สำคัญ เมื่อสรุปได้รับการทำลายในขณะนั้น
นี่เป็นปัญหาที่ยุ่งยากมาก เนื่องจากจำกัดของการบรรทัดที่สูญหาย LLM ที่ดำเนินการ "บีบอัด" ที่หนึ่ง มักเป็นเวลาที่ "สติ" ของมันต่ำที่สุด แต่ดีที่คุณมีความจุเชิงบรรยาย 100 หมื่น ตอนนี้คุณมีพื้นที่เพียงพอมากขึ้น สามารถพา "สิ่งที่ฉันจะทำต่อ" มาอยู่ในบริเวณบังได้ ก่อนที่จะดำเนินการ /compact

องค์กรย่อยก็เป็นวิธีที่ยอดเยี่ยมในการจัดการบริบท เมื่อคุณสามารถคาดเดาล่วงหน้าว่างานบางงาน จะเกิดผลเหตุที่ต้อง "ลบไปทิ้ง" (ไม่ได้ใช้ซ้ำ) อันออกจากผลลัพธ์กลางคืนเป็นอย่างมาก
เมื่อโคลด ผ่านตัวเลือกเหรียญทราบองค์กรย่อย ตัวลูกน้อยคนนั้นจะได้รับหน้าต่างบริบทที่ใหม่สนใจเพียงอย่างระดับ งานอะไรก็ทำได้ พองานเสร็จเรียบร้อย มันจะสรุปผลลัพธ์เพียงผลลัพธ์สุดที่มี และยื่นให้กับโกวาะ "พ่อซด" คลอด
เราตรวจสอบว่าการใช้ "เหรียญทราบองค์กรย่อย" หรือไม่ "ดจลแทและ" คือ: ในอนาคตฉันยังคงต้องการดูผลลัพธ์ของงานเหล่านี้หลังจากสิ้นสุดหรือฉันแค่ต้องการสรุปสาระสำคัญเท่านั้น
แม้ว่า Claude Code จะเรียกใช้ไซต์เดย์ด้านหลังโดยอัตโนมัติ แต่บางครั้งคุณก็สามารถควบคุมได้โดยตรงอย่างชัดเจน ยกตัวอย่างเช่น คุณสามารถสั่งให้มันทำดังนี้:
· "ส่งไซต์เดย์ด้านหลังไปตรวจสอบงานที่เราเพิ่งทำตามเอกสารข้อกำหนดด้านล่างว่าถูกต้องหรือไม่"
· "ส่งไซต์เดย์ด้านหลังไปอ่านอีกซอร์สโค้ดหนึ่ง เสร็จงานออกว่ามันทำระบบการตรวจสอบสิทธิกาเป็นอย่างไร แล้วลอกไปทำตามดังนั้นที่นี่เหมือนกัน"
· "ส่งไซต์เดย์ด้านหลังไปตามบันทึกการเปลี่ยนแปลง Git ของฉันเพื่อเขียนคู่มือสำหรับคุณสมบัติใหม่"
โดยรวมเมื่อ Claude ทำการตอบกลับเสร็จ และคุณกำลังเตรียมจะส่งข้อความใหม่ คุณกำลังยืนอยู่บนทางแยกทางการตัดสินใจ
เราคาดหวังในอนาคตว่า Claude จะเก่งพอที่จะช่วยคุณจัดการทุกสิ่งโดยตัวเอง แต่ในขณะนี้การที่คุณรู้เทคนิคเหล่านี้เป็นสิ่งจําเป็นเพื่อนำ Claude มาสู่ผลลัพธ์คุณภาพสูง

ยินดีต้อนรับสู่ชุมชนทางการของ BlockBeats:
กลุ่ม Telegram สมัครสมาชิก: https://t.me/theblockbeats
กลุ่ม Telegram พูดคุย: https://t.me/BlockBeats_App
บัญชี Twitter ทางการ: https://twitter.com/BlockBeatsAsia