lang
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
หน้าแรก
AI
OPRR
ด่วน
ความลึก
กิจกรรม
เพิ่มเติม
การเงิน
พิเศษ
ระบบนิเวศบล็อกเชน
รายการ
พอดแคสต์
ข้อมูล
BTC
$96,000
5.73%
ETH
$3,521.91
3.97%
HTX
$0.{5}2273
5.23%
SOL
$198.17
3.05%
BNB
$710
3.05%

วิธีการจัดการความถูกต้องของข้อความของ Claude Code: หลีกเลี่ยงการทำให้เซสชันยาวขึ้น และโมเดลมีขนาดใหญ่ขึ้น

อ่านบทความนี้ใน 35 นาที
จากการบีบอัด (Compression) ไปจนถึงการย้อนกลับ (Backtracking) และการใช้งานเอเจนต์ย่อย (Subagents) เรียนรู้เทคนิคเหล่านี้เพื่อให้โค้ดของ Claude สามารถให้ผลลัพธ์ที่มีประสิทธิภาพในการสนทนาที่ยาวนานได้ตลอดเวลาโดยต่อเนื่อง ।
หัวข้อเรื่องต้นฉบับ: การใช้งานโค้ด 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

24Hบทความฮอต
ดาวน์โหลด BlockBeats
home-down-code
เลือกคลัง
เพิ่มคลัง
ยกเลิก
เสร็จสิ้น
เพิ่มคลัง
เห็นได้เฉพาะตัวเอง
สาธารณะ
บันทึก
แก้ไข/รายงาน
ส่ง