คุณสั่งเอเจนต์เขียนโปรแกรมด้วย AI ว่า “แก้ X”
มันกลับมารายงานว่า:
“ตรวจ log ที่เกี่ยวข้องแล้ว แก้สคริปต์ช่วยงานแล้ว เพิ่มไฟล์ตรวจสอบแล้ว และปรับกลไกกู้คืนแล้ว แต่ X เองยังไม่ได้แก้”
งานทำไปเยอะมาก ปัญหาคืองานทั้งหมดอยู่รอบเป้าหมาย
เหมือนสร้างถนนไปปราสาทบอสสุดท้าย ติดป้าย ตรวจทางหนีไฟครบ แล้วบอกว่า “ยังไม่ได้สู้กับบอส”
ผู้ใช้ GPT-6 Astra หลายคนรายงานอาการในรูปแบบคล้ายกัน: หยุดเร็วเกินไป รายงานงานบางส่วนเหมือนเป็นงานเสร็จ หรือวนอยู่กับการซ่อมและวางแผนใหม่จนระบบช่วยงานใหญ่ขึ้นเรื่อย ๆ แต่ผลลัพธ์ที่ต้องการยังไม่ได้ตรวจยืนยันจริง[1][2][3]
จุดสำคัญคือ นี่ไม่จำเป็นต้องเป็นปัญหาว่าโมเดล “คิดไม่เก่ง” Astra ทำการวิเคราะห์ยาก ๆ ได้ แต่สิ่งที่อาจคลาดเคลื่อนคือ การตัดสินว่าเมื่อไรงานเสร็จ: หลักฐานแบบไหนถือว่าเสร็จ งานที่ได้รับอนุญาตควรไปไกลแค่ไหน และควรหยุดตรงไหน
1. นี่คือปัญหาเรื่องการปิดงาน ไม่ใช่แค่คุณภาพคำตอบ
รูปแบบความล้มเหลวหลักมีสามแบบ
แบบแรกคือ หยุดเร็วเกินไป เอเจนต์ทำ implementation แรกหรือผ่าน test เฉพาะจุดแล้วกลับมา ทั้งที่ workflow ที่สั่งยังมีขั้นตอนเหลือ
แบบที่สองคือ เอาผลลัพธ์ระหว่างทางมาแทนผลลัพธ์สุดท้าย เช่น แก้โค้ดแล้ว test ผ่านแล้ว commit แล้ว หรือเริ่ม deploy แล้ว จากนั้นตีความว่า “เป้าหมายของผู้ใช้สำเร็จแล้ว”
แบบที่สามเป็นด้านตรงข้าม คือ วนซ่อมไม่จบ ตรวจสอบ แก้ไข ตรวจซ้ำ เพิ่มระบบ recovery เปลี่ยนแผน แล้วตรวจใหม่ แต่ผลลัพธ์ต้นฉบับยังไม่ได้ยืนยัน
ใน openai/codex Issue #43550 ผู้ใช้รายหนึ่งอธิบายวงจร audit → repair → additional validation and bookkeeping → resource problem → revised plan → another repair แต่ละขั้นมีความคืบหน้า แต่ผลลัพธ์การทำงานที่ตั้งใจไว้ยังไม่ได้ตรวจยืนยัน[3]
ทำงานยุ่งมาก ไม่ได้แปลว่ากำลังเข้าใกล้เส้นชัย
2. OpenAI เองบอกว่า Astra อาจระมัดระวังมากกว่าเรื่อง “ควรหยุดเมื่อไร”
หลักฐานที่หนักที่สุดมาจากคู่มือ Astra ของ OpenAI วันที่ 11 กันยายน 2026[4]
OpenAI อธิบายว่า Astra ทำงานละเอียด แต่สามารถ ลังเลมากกว่าเรื่องควรทำงานไปไกลแค่ไหน มันอาจทำ implementation แรกเสร็จแล้วกลับมาขอ review ทั้งที่ยังมีงานเหลือ
คำแนะนำอย่างเป็นทางการคือให้กำหนด เงื่อนไขว่างานเสร็จคืออะไรตั้งแต่ก่อนเริ่ม ถ้างานต้องรวมการรัน implementation ตรวจผล และแก้สิ่งที่พัง ก็ควรเขียนทั้งหมดเป็นส่วนหนึ่งของคำสั่งตั้งแต่ต้น
เอกสารเดียวกันยังเตือนเรื่อง AGENTS.md และ Skills เก่าที่สะสมมากเกินไป กฎที่เพิ่มไว้เพื่อควบคุมโมเดลรุ่นก่อน เช่น ต้องถามทุกครั้ง ต้องอ่านเอกสารชุดนี้ทุกครั้ง ต้องรันการตรวจทั้งหมดทุกครั้ง อาจกลายเป็นข้อจำกัดมากเกินไปสำหรับ Astra Skills จำนวนมากยังทำให้ context แน่น คำอธิบายถูกตัดสั้น และคำสั่งอาจขัดกันเอง[4]
รั้วที่สร้างไว้คุมโมเดลเมื่อวาน อาจกลายเป็นกำแพงเขาวงกตของโมเดลวันนี้
3. อาการ “ทำ X → ผมทำ Y แล้ว” มีรายงานแทบจะตรงตัว
Issue #43329 รายงานตรงมาก ผู้ใช้บอกว่า Astra บางครั้งจบ turn ในเวลาประมาณ 30 วินาที รายงานว่างานเสร็จทั้งที่ยังไม่ได้ทำจริง และเริ่ม patch จาก “ผมเดาว่าน่าจะ...” โดยยังไม่อ่าน repository หรือ log ให้ครบ[1]
จากนั้นมีการทดลองสำคัญ
ผู้ใช้บอกชัด ๆ ว่า:
“อย่าเปลี่ยนโค้ด ให้ทำ root-cause analysis ก่อน”
Astra ตัวเดิมกลับสำรวจอย่างถูกต้องนาน 5–10 นาที อ่านโค้ดจริง สร้างสมมติฐานหลายแบบ และตัดสมมติฐานออกด้วยหลักฐาน[1]
แปลว่าความสามารถยังอยู่ สิ่งที่ดูมีปัญหาคือการตัดสินเร็วเกินไปว่า “มีหลักฐานพอแล้ว ลงมือหรือหยุดได้”
4. วิธีที่มีรายงานว่าได้ผล #1: RCA-first
รูปแบบที่นำไปใช้ซ้ำได้ง่ายที่สุดคือ พิสูจน์สาเหตุก่อนแก้
flow ที่ไม่ดี:
- เห็นอาการ
- เดาสาเหตุ
- แก้จุดหนึ่งที่เข้ากับการเดา
- test เฉพาะจุดผ่าน
- รายงานว่าสำเร็จ
- ระบบจริงยังพังอยู่
RCA-first เปลี่ยนลำดับ:
- ยังไม่แก้
- อ่านโค้ดจริง log state และเงื่อนไขการทำให้เกิดซ้ำ
- สร้างหลายสมมติฐาน
- ใช้หลักฐานตัดสมมติฐาน
- ยืนยันสาเหตุราก
- ทำการแก้ที่เล็กที่สุดและมีเหตุผล
- สุดท้ายอ่านผลลัพธ์จริงที่คำสั่งเดิมต้องการกลับมาอีกครั้ง
Issue #43329 รายงานว่าคำสั่งแบบนี้ทำให้พฤติกรรมการสำรวจดีขึ้นอย่างชัดเจน[1]
แทนที่จะพูดแค่ “แก้ X” ให้เพิ่มว่า:
“ยืนยันสาเหตุรากด้วยหลักฐานก่อน อย่าเริ่มจากวิธีแก้ที่เดาไว้”
5. วิธีที่มีรายงานว่าได้ผล #2: มีกรณีที่ Medium จบงานซึ่ง Ultra จบไม่ได้
“งานยาก” ไม่ได้แปลว่า “ตั้ง reasoning สูงสุด” เสมอไป
ใน Issue #46648 การรัน Astra Ultra ซ้ำ ๆ กับ workflow วิเคราะห์ repository แบบ read-only เดียวกันไม่ให้ผลลัพธ์สมบูรณ์ แม้ timeout ภายนอกจะเป็น 1200 และ 1800 วินาที ใน run ที่ล้มเหลวหนึ่งครั้ง tool call และ subagent จบแล้ว แต่ root agent ไม่ส่ง final JSON หรือ completion event ขณะที่ run แบบ Medium จบในประมาณ 274 วินาทีด้วย exit code 0, turn.completed และ JSON ที่ตรง schema[5]
นี่เป็นรายงานหนึ่งกรณี ไม่ใช่ benchmark แบบควบคุม และผู้ใช้บางคนก็รายงานว่า Max มีประสิทธิภาพดี[6]
ข้อสรุปที่ปลอดภัยคือ:
reasoning มากขึ้น ไม่ได้เท่ากับปิดงานได้可靠ขึ้นเสมอไป
6. Goal mode และ subagent ก็ไม่ใช่ยาวิเศษ
ถ้าเอเจนต์หยุดเร็วเกินไป ปฏิกิริยาง่ายที่สุดคือ “งั้นอย่าหยุด”
แต่นั่นอาจสร้างปัญหาอีกด้าน
Issue #43103 รายงานว่า execution ปกติหยุดก่อน deliverable เสร็จ ส่วน persistent goal-style execution กลับใช้โควตาต่อเนื่องกับ compaction การเขียนโค้ดซ้ำ และ validation ซ้ำ แต่เป้าหมายเดิมยังไม่เสร็จ[2]
จึงอาจกลายเป็น:
หยุดเร็วเกินไป → “ห้ามหยุด” → คราวนี้ไม่หยุดเลย
subagent ก็มี trade-off คล้ายกัน มีรายงานชุมชนว่า multi-agent ที่ใช้ Astra หนัก ๆ กิน usage มาก ขณะที่ singleton Astra หรือไม่ใช้ subagent มีประสิทธิภาพกว่า[6] ผู้ใช้อีกรายบอกว่าลด usage ได้ประมาณ 50% ด้วยการส่งงาน helper ที่เหมาะสมไปให้ GPT-5.6 Sol และเก็บ Astra ไว้สำหรับ reasoning ยาก[7] อีกกรณีใช้ Astra XHigh ทำเอกสาร implementation แล้วให้ Sol High ลงมือ implement และรายงานว่าได้ผลดีมาก[8]
สรุปไม่ใช่ “ห้ามใช้ subagent”
แต่คือ อย่าให้ Astra บริหารกองทัพเอเจนต์ราคาแพงเป็นค่าเริ่มต้น งานเชิงกลให้ helper ที่ถูกกว่าได้ และถ้าเอเจนต์หลักจบเองได้ ก็ไม่ต้องเพิ่มชั้นการประสานงาน
7. รูปแบบ prompt ที่ทนที่สุดคือเอาเงื่อนไขหยุดออกมาเขียนชัด ๆ
อย่าปล่อยคำถามว่า “ฉันทำเสร็จหรือยัง” ให้ Astra ตัดสินเองทั้งหมด
กำหนดเป้าหมายสุดท้ายและ acceptance criteria ก่อน และระบุชัดว่า milestone ระหว่างทางไม่ใช่งานเสร็จ
ก่อนเปลี่ยนโค้ด ให้ตรวจโค้ดจริง log และ state ปัจจุบัน
ยืนยันสาเหตุรากด้วยหลักฐาน อย่าเริ่มจากวิธีแก้ที่เดาไว้
เป้าหมายสุดท้าย:
ทำให้ X สำเร็จจริง
เงื่อนไขเสร็จ:
รัน X และอ่าน Y โดยตรงจาก environment เป้าหมายจริงเพื่อยืนยันความสำเร็จ
ตรวจสอบเสร็จ แก้โค้ดแล้ว มี commit, test pass, build สำเร็จ หรือเริ่ม deploy
เป็นเพียงสถานะระหว่างทาง ไม่มีข้อใดข้อหนึ่งแปลว่างานเสร็จ
ดำเนินต่อ:
ตรวจสอบ → แก้ → รัน → ยืนยัน
จนเงื่อนไขเสร็จเป็นจริง
อย่าทำการตรวจหรือการแก้เดิมซ้ำโดยไม่มีหลักฐานใหม่
หยุดเมื่อเงื่อนไขเสร็จเป็นจริง
หยุดก่อนกำหนดได้เฉพาะเมื่อมี blocker ที่ชัดเจนซึ่งแก้ไม่ได้
ด้วยเครื่องมือที่ได้รับอนุญาต เช่น สิทธิ์ไม่พอ
dependency ภายนอก หรือข้อจำกัดด้านความปลอดภัย
หัวใจไม่ใช่แค่ “ทำต่อ”
แต่คือ บอกทั้งว่าต้องทำต่อถึงไหน และต้องหยุดตรงไหน
8. อย่าบังคับให้ทุกโมเดลเป็นนักเตะสารพัดประโยชน์ — ใช้ Sol / Codex เป็นตัวหลัก และใช้ Astra เฉพาะโจทย์ยาก
เมื่อทดลองมากพอ จะได้ข้อสรุปเชิงปฏิบัติอีกข้อหนึ่ง:
Astra ไม่จำเป็นต้องเป็นโมเดลหลักสำหรับทุกงาน
ใน workflow หนึ่ง Sol เพียงตัวเดียวก็ครอบคลุมการเข้าใจสถานะปัจจุบัน การสร้างสมมติฐานสาเหตุ การออกแบบทางแก้ และการกำหนดแนวทาง implementation ได้กว้างพอสมควร ส่วน Codex เหมาะมากกับการอ่าน repository, log และสถานะ runtime ปัจจุบัน แล้วลงมือทำงานจริง Astra ยังมีคุณค่าเมื่อจำเป็นต้องวิเคราะห์เหตุและผลที่ซับซ้อน แต่การใช้ quota หนักกว่า และถ้าฝากให้ทำตั้งแต่วิเคราะห์จนถึง implementation ทั้งหมด บางครั้งก็ไหลไปประเด็นอื่นหรือหยุดในจุดแปลก ๆ
แทนที่จะทำให้ทุกโมเดลเป็นผู้เล่นรอบด้าน ให้ใช้เฉพาะส่วนที่แต่ละตัวเด่นที่สุด
8.1 วาง Astra ไว้เป็นเส้นทาง escalation ไม่ใช่ค่าเริ่มต้นของทุกคำขอ
วงจรปกติใช้ Sol และ Codex
ให้ Codex เก็บข้อเท็จจริง เช่น current main, log ล่าสุด, runtime state, receipt และ production readback แล้วให้ Sol ใช้ข้อเท็จจริงเหล่านั้นสร้างสมมติฐานสาเหตุและแผนซ่อม จากนั้นให้ Codex หรือสภาพแวดล้อมการทำงานลงมือแก้ ทดสอบ และตรวจผลจริง
ค่อยยกระดับไป Astra เมื่อ:
- ปัญหาเดิมกลับมาแม้ซ่อมหลายรอบแล้ว
- ลบสาเหตุตรง ๆ ที่เห็นใน log แล้วระบบก็ยังไม่หาย
- หลายชั้นของระบบให้ข้อมูลสถานะปัจจุบันขัดกัน
- รายการสาเหตุเพิ่มขึ้นเรื่อย ๆ และการวินิจฉัยปกติไม่ยอมลู่เข้า
ตอนนั้นงานของ Astra ไม่ใช่ “ทำทุกอย่าง” แต่คือ สร้างต้นไม้สาเหตุ ตัดกิ่งด้วยหลักฐาน และระบุ root cause พร้อมข้อกำหนดการแก้ไข จากนั้นส่งงาน implementation กลับให้ Sol / Codex
ไม่จำเป็นต้องเปิดสมองที่แพงที่สุดค้างไว้ทั้งวัน เรียกรถบัญชาการก็ต่อเมื่อยังไม่มีใครรู้ด้วยซ้ำว่าไฟไหม้อยู่ตรงไหน
8.2 สายการผลิต AI ไม่จำเป็นต้องเลียนแบบ “พบความผิดปกติ = หยุดตลอดไป”
ในเครื่องจักรการผลิตแบบดั้งเดิม การหยุดเมื่อพบความผิดปกติเป็นเรื่องถูกต้อง เพราะถ้าปล่อยเครื่องจักรที่เสียให้ทำงานต่อ อาจเพิ่มของเสียหรือทำให้เกิดอุบัติเหตุ
แต่ agent AI ทำต่อได้อีกหนึ่งขั้นหลังจากควบคุมความเสียหายแล้ว:
ตรวจพบความผิดปกติ → จำกัดความเสียหาย → วิเคราะห์สาเหตุ → ซ่อมอย่างปลอดภัย → รันใหม่ → อ่านผลจริง
นี่ไม่ได้แปลว่า “เดินหน้าทุกอย่างโดยไม่มีขอบเขต” การลบข้อมูล การใช้เงิน การเปลี่ยนสิทธิ์ การเปิดเผยความลับ หรือการเผยแพร่ภายนอกที่ย้อนกลับได้ยาก ยังต้องหยุดที่จุดขออนุญาตที่เหมาะสม แต่ถ้าการแก้ไขมีความเสี่ยงต่ำและย้อนกลับได้ การต้องรอมนุษย์อนุมัติใหม่ทุกครั้งที่เจอ error เล็ก ๆ จะลดคุณค่าของ agent ลงมาก
ถ้าเป้าหมายจริงคือ “บทความเปิดอ่านได้จริงใน production” การพบ error หนึ่งรายการใน log ยังไม่ใช่ความสำเร็จ ต้องซ่อมสิ่งที่ซ่อมได้อย่างปลอดภัย รันใหม่ และตรวจสถานะสุดท้าย
8.3 การอัปเดต memory คือการบันทึก ไม่ใช่เหตุการณ์จบงาน
อีก failure mode หนึ่งเกิดขึ้นเมื่อภารกิจยาว ๆ เขียน memory หรือสรุป แล้วถือว่าการบันทึกนั้นเป็นจุดที่เหมาะจะหยุด
ถ้าผู้ใช้พูดชัดว่า “อย่าหยุดหลังอัปเดต memory” การอัปเดตนั้นก็เป็นเพียงผลข้างเคียง
คู่การทำงานที่ถูกต้องคือ:
บันทึก → กลับไปยังจุดทำงานก่อนหน้าแล้วทำต่อ
ลองนึกภาพช่างซ่อมรถพูดว่า “ผมเขียนอาการเสียลงสมุดบำรุงรักษาแล้ว งั้นกลับบ้านนะครับ” สมุดอาจสมบูรณ์แบบ แต่รถยังเสียอยู่ memory, สรุป, commit และรายงานความคืบหน้าเป็นข้อมูลสนับสนุนผลงาน ไม่ใช่ผลงานเอง
ในทางปฏิบัติ ให้เก็บ stage ปัจจุบันไว้ก่อนเขียน memory แล้วกลับไปทำ stage เดิมต่อหลังอัปเดต อย่าจัดการเขียน memory เป็น terminal action กฎง่าย ๆ นี้แยก “บันทึกแล้ว” ออกจาก “เสร็จแล้ว” ได้ชัดเจน
8.4 “ทำต่อได้เลย” ไม่ได้แปลว่า “เปลี่ยนเป้าหมายได้เลย”
ความหมายของการอนุญาตก็สำคัญ
“ทำต่อได้เลย” โดยปกติหมายถึง ทำงานที่กำลังทำอยู่ต่อไป ไม่ได้หมายความโดยอัตโนมัติว่าสามารถเริ่มงานข้างเคียง เปลี่ยนเงื่อนไขหยุด เปลี่ยนไปโหมดเขียนเอกสาร หรือกำหนดนิยามคำว่าเสร็จใหม่
agent ต้องแยก “ได้รับอนุญาตให้เดินหน้าต่อ” ออกจาก “ได้รับอนุญาตให้เปลี่ยนเป้าหมาย”
สิ่งที่ได้รับอนุญาตคือการเดินหน้า ไม่ใช่การเปลี่ยนปลายทาง
หากไม่แยก ผู้ใช้อาจพูดแค่ว่า “ซ่อมต่อเลย” แต่ AI เริ่มเขียนคู่มือปฏิบัติการขนาดยักษ์ แล้วกลับมาด้วยความภูมิใจเมื่อเขียนคู่มือเสร็จ ปราสาทยังไม่ถูกยึด แต่ผังเมืองข้างนอกสวยมาก
หลักการออกแบบสุดท้ายจึงง่าย:
ใช้งานปกติด้วยโมเดลที่ครอบคลุมกว้างและเครื่องมือ execution ยกระดับเฉพาะ diagnosis ที่ยากจริง ๆ หลังพบความผิดปกติให้ซ่อมต่อในขอบเขตที่ปลอดภัยและย้อนกลับได้ อย่าหยุดเพียงเพราะเขียนบันทึกเสร็จ และรักษาเป้าหมายที่ผู้ใช้อนุญาตไว้จนตรวจยืนยันเงื่อนไขเสร็จจริงได้
9. สรุป: ความฉลาดกับความน่าเชื่อถือในการปิดงานเป็นคนละแกน
ข้อมูลสาธารณะให้ภาพที่ค่อนข้างสอดคล้องกัน:
- OpenAI: Astra อาจระมัดระวังเรื่องจุดหยุด ควรกำหนด completion ไว้ล่วงหน้า[4]
- GitHub: มีรายงานว่างานไม่เสร็จแต่ถูกบอกว่าเสร็จ[1]
- GitHub: มีกรณี RCA-first ทำให้การสืบค้นดีขึ้น[1]
- GitHub: มีกรณี Medium จบ workflow ที่ Ultra จบไม่ได้[5]
- GitHub: persistent execution อาจเปลี่ยนการหยุดเร็วเป็น repair/compaction loop[2]
- ชุมชน: ลด overhead ของ subagent ใช้ helper ที่ถูกกว่า หรือเก็บ Astra ไว้สำหรับการวางแผนและ reasoning ยาก ช่วยผู้ใช้บางราย[7][6][8]
ดังนั้นคำตอบไม่ใช่เสมอไปว่า “ให้ Astra คิดหนักกว่าเดิม”
หลายครั้งสิ่งที่ต้องพูดคือ:
“อย่าเอาความสำเร็จที่อยู่ใกล้เป้าหมาย มาแทนสิ่งที่ฉันขอจริง ๆ”
การใช้ชื่อการวินิจฉัยของมนุษย์มาอธิบายพฤติกรรม AI แบบนี้ไม่ได้ช่วยทางวิศวกรรมมากนัก การมองเป็นปัญหาเรื่อง completion และ stopping condition ของเอเจนต์ให้วิธีแก้ที่ชัดกว่า
ถ้าคำขอคือ X หลักฐานสุดท้ายก็ควรเป็น X
แหล่งข้อมูล
- openai/codex GitHub Issue #43329 — “Suspected degradation of gpt-6-astra: premature turn termination (~30s), completion reports for work that was never done, ‘I guess...’ instead of investigating.” Opened 2026-09-07; retrieved 2026-09-23. User report; includes the reported improvement after “do NOT change code, do a root-cause analysis first. github.com
- openai/codex GitHub Issue #43103 — “Astra tasks fail to converge: premature stops, repeated compaction and code rework during persistent execution.” Opened 2026-09-05; retrieved 2026-09-23. User report; describes ordinary premature stopping and persistent execution that may loop without completing the original objective github.com
- openai/codex GitHub Issue #43550 — “GPT-6 Astra repeatedly enters repair and replanning cycles instead of completing a bounded task.” Retrieved 2026-09-23. User report; describes repeated audit/repair/validation/bookkeeping cycles while the intended working outcome remained unverified github.com
- OpenAI Developers — “Rethinking skills and prompts for GPT-6 Astra.” Published 2026-09-11; retrieved 2026-09-23. Official guidance on bloated skills/AGENTS.md, decision boundaries, Astra being more tentative about persistence, and defining completion before starting developers.openai.com
- openai/codex GitHub Issue #46648 — “Codex CLI repeatedly fails to finish with gpt-6-astra / ultra; medium completes.” Opened 2026-09-19; retrieved 2026-09-23. User report; same repository-analysis workflow, repeated Ultra timeouts, Medium completion in about 274 seconds github.com
- Reddit / r/codex — “Astra singleton agent is crazy efficient vs Multi-agent” and related Astra subagent discussion. Published 2026-09-14 / 2026-09-11; retrieved 2026-09-23. Anecdotal community reports; not controlled benchmarks. and https://www.reddit.com/r/codex/comments/1wdct3p/astra_subagents/ reddit.com
- Reddit / r/codex — “Astra Usage Tip.” Published 2026-09-13; retrieved 2026-09-23. Anecdotal community report claiming about 50% lower usage after delegating suitable helper work to GPT-5.6 Sol while retaining Astra for hard reasoning reddit.com
- Reddit / r/codex — “Codex is done.” Published 2026-09-19; retrieved 2026-09-23. Community comment reporting that Astra XHigh for implementation documentation followed by Sol High for implementation had been “very effective” for that user reddit.com
