ให้ Claude ทำงานใหญ่เกินไป มันจะเลิกกลางคัน โดยคิดว่าทำเสร็จแล้ว งานยังไม่เสร็จหรอก มันแค่จำไม่ได้ว่าตัวเองเริ่มต้นอะไรไว้
เอเจนต์ไม่ได้ทำงานยาวๆ แบบที่คุณคิด มันทำงานเป็นกะ
ลองนึกภาพโปรเจกต์ซอฟต์แวร์ที่มีวิศวกรทำงานเป็นกะ โดยแต่ละคนที่มาใหม่ไม่รู้ว่าเกิดอะไรขึ้นในกะที่แล้ว นั่นไม่ใช่การเปรียบเปรยว่าเอเจนต์รู้สึกยังไง มันคือสิ่งที่มันเป็นในเชิงกลไก context window มันจำกัด งานจริงส่วนใหญ่ไม่พอดีกับ window เดียว เอเจนต์เลยทำงานเป็นเซสชันแยกกัน - และทุกเซสชันใหม่เริ่มต้นโดยไม่มีความทรงจำจากเซสชันก่อนหน้า
Anthropic ทดลองแบบนี้เป๊ะๆ และตีพิมพ์สิ่งที่พัง นั่นคือส่วนที่ควรอ่าน เพราะมันไม่ใช่บล็อกเกอร์ที่บอกว่าเครื่องมือนี้ห่วย มันคือทีมที่สร้าง Claude กำลังบันทึกว่า Claude ล้มเหลวตรงไหน
ทำไม Window เดียวถึงทำงานไม่เสร็จ
ให้โมเดลโค้ดระดับแนวหน้าทำงานระดับสูง - "สร้าง clone ของ claude.ai" - ใส่ไว้ใน loop ข้ามหลาย context window แล้วมันจะสร้างแอปที่ใช้งานไม่ได้ ไม่ใช่บางครั้งนะ เชื่อถือได้เลย และนี่คือ Opus ที่รันบน agent framework ของ Anthropic เอง พร้อม context compaction ที่เปิดอยู่ โครงสร้างทุกอย่างถูกสร้างมาเพื่อให้มันทำงานต่อไป
มันล้มเหลวในสองรูปแบบที่เฉพาะเจาะจง และทั้งคู่เป็นปัญหาของการส่งต่องานระหว่างกะ
แบบแรก: เอเจนต์พยายามทำทุกอย่างพร้อมกัน มันพยายามทำทั้งแอปใน window เดียว หมด context กลางทางตอนทำฟีเจอร์หนึ่ง และเซสชันจบลงด้วยสิ่งที่สร้างครึ่งๆ กลางๆ และไม่มีเอกสารกำกับ กะถัดไปเข้ามา เห็นเละเทะที่ไม่ใช่ฝีมือตัวเอง และต้องเดาว่าเกิดอะไรขึ้น มันก็เลยใช้ทั้งกะของตัวเองแค่ทำให้แอปพื้นฐานกลับมาทำงานได้ แทนที่จะก้าวไปข้างหน้า

แบบที่สองมาทีหลัง เมื่อมีฟีเจอร์บางอย่างอยู่แล้ว เอเจนต์ใหม่เข้ามา มองเห็นว่ามีความคืบหน้าจริงๆ และตัดสินใจว่าทุกอย่างเสร็จแล้ว แต่จริงๆ แล้วไม่ใช่ - ครึ่งหนึ่งของฟีเจอร์ไม่เคยถูกสร้างขึ้น และไม่มีใครบันทึกไว้ว่าฟีเจอร์ไหนบ้าง กะนั้นบอกว่างานเสร็จโดยไม่เช็คลิสต์
ความล้มเหลวทั้งสองมีสาเหตุเดียวกัน กะที่ออกไปไม่ทิ้งอะไรไว้เลย กะที่เข้ามาเลยต้องทำงานแบบไม่เห็นทาง วิธีแก้ไม่ใช่โมเดลที่ฉลาดกว่า มันคือสิ่งที่กะเขียนไว้ก่อนจะออกจากงาน
สิ่งที่กะที่ออกไปเขียนไว้
คำตอบที่ Anthropol ลงเอยด้วยมีสองส่วน: เอเจนต์หนึ่งตัวที่ตั้งค่าไซต์ก่อนเริ่มงานใดๆ และจากนั้นก็พนักงานกะที่มาเซสชันแล้วเซสชันเล่าเพื่อสร้างความคืบหน้า
เอเจนต์ตั้งค่าจะรันครั้งเดียว ตอนเริ่มต้นมาก งานทั้งหมดของมันคือการทำให้สภาพแวดล้อมอยู่ในสถานะที่ทุกกะในอนาคตรู้ว่าคำว่า "เสร็จ" หน้าตาเป็นยังไง ชิ้นสำคัญที่มันเขียนคือ feature list - ไฟล์ที่มีโครงสร้างระบุทุกอย่างที่แอปที่เสร็จสมบูรณ์ต้องทำได้

สำหรับ clone ของ claude.ai นั่นหมายถึงกว่า 200 ฟีเจอร์ อย่างเช่น "ผู้ใช้สามารถเปิดแชทใหม่ พิมพ์คำถาม กด Enter และเห็นคำตอบ" ทุกอันถูกทำเครื่องหมายว่าล้มเหลวตั้งแต่เริ่มต้น แต่ละรายการมีหน้าตาประมาณนี้:
1{2 "description": "ปุ่มแชทใหม่สร้างบทสนทนาใหม่",3 "steps": ["คลิกปุ่มแชทใหม่", "ตรวจสอบว่ามีบทสนทนาใหม่", "ตรวจสอบสถานะเริ่มต้น"],4 "passes": false5}
ที่ "passes": false ในทุกรายการนั่นคือประเด็นทั้งหมด มันคือช่องที่ยังไม่ได้ติ๊ก และมีอยู่ 200 ช่อง
ลิสต์ที่ล้มเหลวนั่นคือสิ่งที่หยุดเอเจนต์ไม่ให้ประกาศชัยชนะก่อนเวลา กะหนึ่งไม่สามารถมองไปรอบๆ แล้วตัดสินว่างานเสร็จแล้ว เพราะมีไฟล์นั่งอยู่ตรงนั้นพร้อมช่องที่ยังไม่ได้ติ๊ก 200 ช่อง งานถูกกำหนดไว้ก่อนที่บรรทัดแรกของงานจะถูกเขียน
รายละเอียดเล็กๆ น้อยๆ ที่บอกคุณว่าต้องระวังแค่ไหน: พวกเขาใช้ JSON สำหรับไฟล์นั้น ไม่ใช่ markdown เหตุผลคือโมเดลมีแนวโน้มที่จะเขียนทับหรือลบไฟล์ JSON เงียบๆ น้อยกว่าไฟล์ markdown และคำแนะนำเกี่ยวกับมันก็ตรงไปตรงมาโดยเจตนา - การลบหรือแก้ไข tests เป็นสิ่งที่ยอมรับไม่ได้ เพราะการลบ test คือวิธีที่ฟีเจอร์หายไปอย่างเงียบๆ กะได้รับอนุญาตให้ติ๊กช่อง มันไม่ได้รับอนุญาตให้ลบช่อง
บันทึกบนโต๊ะ
การตั้งค่างานเป็นเพียงครึ่งเดียว อีกครึ่งหนึ่งคือการทำให้แน่ใจว่าแต่ละกะทิ้งสถานที่ให้สะอาดพอสำหรับกะถัดไปที่จะเข้ามา
สองสิ่งทำอย่างนั้น เอเจนต์ commit งานของมันไปยัง git พร้อมข้อความจริงที่อธิบายว่ามีอะไรเปลี่ยนแปลง และมันเขียนไฟล์ progress ธรรมดา - บันทึกต่อเนื่องของสิ่งที่ทำไปแล้ว log นั้นพร้อมกับประวัติ git คือสิ่งที่ทำให้เอเจนต์ใหม่ที่เริ่มต้นจากศูนย์เข้าใจสถานะของสิ่งต่างๆ ได้ภายในไม่กี่นาที แทนที่จะต้องใช้เวลาหนึ่งชั่วโมงในการย้อนวิศวกรรม

git ยังทำอย่างอื่นอีกด้วยที่นี่ เมื่อกะทำการเปลี่ยนแปลงที่ไม่ดี กะถัดไปสามารถย้อนกลับไปยังเวอร์ชันที่ใช้งานได้ล่าสุดแทนที่จะพยายามแก้ความเสียหาย ไฟล์ progress บอกว่าเราอยู่ตรงไหน ประวัติ commit คือปุ่มเลิกทำ
และ "สะอาด" มีความหมายเฉพาะ มันหมายถึงโค้ดประเภทที่คุณยินดี merge ไปยัง main branch - ไม่มีบั๊กใหญ่ เป็นระเบียบ มีเอกสาร ไม่ใช่ "ในทางเทคนิคแล้วฉันทำคืบหน้า" มาตรฐานคือ: คนถัดไปสามารถเริ่มฟีเจอร์ใหม่ได้โดยไม่ต้องทำความสะอาดความเละเทะของคุณก่อน
กะถัดไปเข้ามาทำงานยังไง
วางสองสิ่งนั้นลงไป แล้วทุกกะก็เริ่มต้นแบบเดียวกัน ก่อนจะแตะอะไรใหม่ เอเจนต์จะรันกิจวัตรเปิดงานที่ตายตัวเพื่อปรับทิศทาง - สิ่งเดียวกันกับที่วิศวกรที่ดีทำเมื่อก้าวเข้าไปในโปรเจกต์ที่พวกเขาไม่ได้เห็นมานาน
1รัน pwd เพื่อดูว่าคุณอยู่ในไดเรกทอรีไหน - ที่นั่นคือที่เดียวที่คุณแก้ไขได้2อ่านไฟล์ progress และ git log เพื่อดูว่าเกิดอะไรขึ้นเมื่อเร็วๆ นี้3อ่าน feature list และเลือกสิ่งที่สำคัญที่สุดที่ยังไม่เสร็จ4เริ่มแอปและรันการตรวจสอบพื้นฐานว่าฟีเจอร์หลักยังทำงานอยู่5หลังจากนั้นค่อยเริ่มสร้าง
ขั้นตอนที่สี่นั้นสำคัญกว่าที่เห็น ก่อนจะเขียนฟีเจอร์ใหม่แม้แต่ชิ้นเดียว เอเจนต์จะบูตแอปและยืนยันว่าพื้นฐานยังทำงานได้ - เปิดแชท ส่งข้อความ ได้รับคำตอบ ถ้ากะที่แล้วทิ้งอะไรที่พังไว้ สิ่งนี้จะจับได้ทันที ก่อนที่กะใหม่จะก่องานใหม่บนรากฐานที่พังและทำให้แย่ลงไปอีก

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

ดังนั้น จงทิ้งมันไว้ ก่อนที่เซสชันยาวจะจบ ให้โมเดลเขียนว่าทำอะไรไปแล้ว อะไรที่ยังค้างอยู่ และเซสชันถัดไปควรเริ่มต้นอะไรก่อน เก็บบันทึกนั้นไว้ในที่ที่มันจะอ่านเมื่อเข้ามา มันคือความแตกต่างระหว่างโปรเจกต์ที่ก้าวหน้าทุกเซสชัน กับโปรเจกต์ที่สร้างสิ่งเดิมซ้ำแล้วซ้ำเล่า
โมเดลเดียวกันคืนนี้และพรุ่งนี้ สิ่งเดียวที่เปลี่ยนคือว่าเซสชันของพรุ่งนี้จะเข้ามาแบบไม่เห็นอะไรเลย หรือเข้ามาพร้อมอ่านบันทึกของคืนก่อน
มันไม่เคยเกี่ยวกับว่ากะฉลาดแค่ไหน มันเกี่ยวกับสิ่งที่มันทิ้งไว้ให้กะที่มาถัดไป
รายละเอียดเพิ่มเติมแบบนี้ - https://t.me/+xYv1MgmIuds5YTli





