Codex กำลังจะมีโหมดที่ไม่หยุดทำงาน — เราไปอ่านโค้ดที่ merge เข้า openai/codex เมื่อวานมาแล้ว และนี่คือพรอมป์ตัวเต็มของ "persistent mode"
เรื่องนี้เริ่มจาก WIRED ที่รายงานเมื่อ 27 สิงหาคม 2026 ว่าเจอโค้ดใน GitHub ของ Codex ซึ่งบอกใบ้ถึงโหมดใหม่ชื่อ “Persistent” — เอเจนต์ที่ทำงานต่อไปเรื่อย ๆ จนกว่าจะถูก “สั่งให้หลับ” แทนที่จะจบเทิร์นแล้วดับไปเหมือนทุกวันนี้ ข่าวถูกเล่าต่อกันเป็นทอด ๆ ทั้ง Gizmodo และ Slashdot แต่แทบทุกสำนักเล่าจากคำบรรยายของ WIRED อีกที
เนื่องจาก openai/codex เป็นรีโปสาธารณะ เราเลยไปเปิดดูเองว่าโค้ดจริงเขียนว่าอะไร — และมันอยู่ใน PR #41050 “Add developer instructions for persistent mode” ที่ merge เข้า main แล้วเมื่อ 27 ส.ค. เวลา 05:00 UTC แตะ 24 ไฟล์ในโค้ดเบส Rust พร้อมไฟล์เทมเพลตพรอมป์ที่อ่านได้ทั้งฉบับ นี่ไม่ใช่การเดาจากชื่อฟีเจอร์ แต่เป็นสเปกพฤติกรรมที่ OpenAI เขียนเองแล้ววางไว้กลางแดด
Persistent คือระดับที่เก้าของ reasoning effort
จุดที่หลายสำนักเล่าคลาดคือ Persistent ไม่ใช่ “โหมด” แยกต่างหาก แต่เป็นค่าหนึ่งใน enum ReasoningEffort ในไฟล์ codex-rs/protocol/src/openai_models.rs — ระดับเดียวกับที่คุณเลือก low/medium/high อยู่ทุกวัน ตอนนี้ทั้งชุดมีหน้าตาแบบนี้:
pub enum ReasoningEffort {
None, Minimal, Low, Medium, High,
XHigh, Max, Ultra, Persistent,
Custom(String),
}
สังเกตว่า Ultra ก็โผล่มาในลิสต์นี้ด้วย และ Persistent นั่งอยู่ปลายสุดของสเกล คำอธิบายในโค้ดบอกว่ามันคือ effort ที่ยอมให้ใช้ compute โทเคน และ เวลา มากกว่าโหมดอื่นที่ถูกตัดจบเมื่อครบนาที/ชั่วโมงแม้งานยังไม่เสร็จ
อีก PR ที่มาก่อนหนึ่งวัน — #40942 “Enable clock tools for persistent reasoning turns” (merge 26 ส.ค. 18:07 UTC) — เปิดสวิตช์ให้เทิร์นที่ใช้ effort นี้ได้เครื่องมือนาฬิกาเป็นค่าเริ่มต้น: current-time reminder และ clock.sleep แบบขัดจังหวะได้ พูดง่าย ๆ คือเอเจนต์ได้สิทธิ์ “รู้ว่าตอนนี้กี่โมง” และ “นอนรอแล้วตื่นมาเช็คใหม่” ซึ่งเป็นสองอย่างที่จำเป็นถ้าจะทำงานยาวข้ามชั่วโมงโดยไม่เผาโทเคนทิ้ง
พรอมป์ตัวจริงใน templates/persistent_mode.md
ไฟล์ที่น่าสนใจที่สุดคือ codex-rs/core/templates/persistent_mode.md ซึ่งถูกฉีดเป็น developer instructions เมื่อผู้ใช้เลือก effort นี้ หัวข้อของมันชื่อ ”## Proactivity” และนี่คือกติกาที่เขียนไว้:
จะทำงานต่อเองเมื่อไหร่ — “หลังคุณทำงานที่ผู้ใช้สั่งเสร็จและส่งคำตอบสุดท้ายแล้ว ถ้าคุณถูก sample อีกครั้งโดยไม่มีคำสั่งใหม่จากผู้ใช้ ให้มองหางานต่อเนื่องที่เป็นประโยชน์ซึ่งสนับสนุนงานที่เพิ่งทำเสร็จโดยตรง” โดยให้เลือก ปิดลูปที่ยังค้าง ยืนยันผลลัพธ์ที่รออยู่ หรือตรวจว่าการแก้ไขมีผลจริง — มากกว่าการคิดงานใหม่ที่ไม่เกี่ยวขึ้นมาเอง
ประโยคที่สำคัญที่สุดในไฟล์ทั้งหมดอยู่ตรงนี้ — เอกสารบอกให้ใช้ประวัติคำสั่งเก่าและ “ความรู้เกี่ยวกับผู้ใช้” เพื่อ จัดลำดับความสำคัญ ของงานต่อเนื่อง “not to infer new authorization” — ไม่ใช่เพื่ออนุมานว่าตัวเองได้รับอนุญาตเพิ่ม
เส้นแบ่งอำนาจ — บรรทัดสุดท้ายของเทมเพลตเขียนตรง ๆ ว่า “Persistence does not broaden that scope” เอเจนต์ทำได้เฉพาะงานต่อเนื่องที่ปลอดภัยและไม่เปลี่ยนสถานะ (safe, non-mutating) ซึ่งอยู่ในขอบเขตที่ผู้ใช้อนุญาตไว้แล้วเท่านั้น ส่วนอะไรที่ต้องใช้อำนาจใหม่ ขยายขอบเขต หรือเปลี่ยนสถานะภายนอกที่ยังไม่ได้อนุมัติ ต้อง อธิบายสิ่งที่จะทำแล้วขออนุมัติก่อนลงมือ
จังหวะการตื่น — ให้ใช้กลไกแจ้งเตือนที่มีอยู่แล้วก่อน ถ้าไม่มีค่อยตั้งเวลาเช็คตามอัตราความคืบหน้าที่คาดไว้ ถ้าผู้ใช้ไม่ได้กำหนดจังหวะเอง ให้ใช้ช่วงรอสั้น ๆ ราว 1–3 นาทีสำหรับงานที่กำลังเดินอยู่ แล้วค่อยถ่างออกเมื่อความคืบหน้าช้าลง และห้ามกระโดดไปหลับยาวขณะที่ยังมีรอบเช็คที่ควรทำก่อน
กันสแปม — มีย่อหน้าเต็ม ๆ ว่าด้วยการไม่ส่งข้อความซ้ำ ทั้งในเทิร์นเดียวกันและข้ามเทิร์น โดยระบุชัดว่า “การถูก sample อีกครั้งหรือได้รับ context จากสภาพแวดล้อมเพียงอย่างเดียว ไม่นับเป็นคำสั่งใหม่จากผู้ใช้ และไม่ใช่เหตุผลให้ส่งข้อความ” คำถามที่ยังไม่ได้คำตอบให้ค้างไว้ แล้วทำงานอื่นที่ไม่ต้องรอคำตอบต่อ หรือรอเงียบ ๆ
และให้เลิกเล่นบทเลขา — “อย่าประกาศว่ากำลังทำ follow-up task อย่าประกาศว่า follow-up เสร็จแล้ว อย่าเล่ากระบวนการจดบันทึกงานภายใน” ให้ขึ้นต้นด้วยผลลัพธ์หรือข้อค้นพบที่มีประโยชน์เลย
รายละเอียดวิศวกรรมที่บอกว่านี่ไม่ใช่ของเล่น
โครงสร้างที่ PR นี้วางไว้บอกว่าทีมคิดเรื่องขอบมาพอสมควร ไม่ใช่แค่แปะพรอมป์:
- คำสั่งชุดนี้ถูกจัดการเป็น world state (
context/world_state/persistent_mode.rs, 124 บรรทัด + เทสต์อีก 90) ดังนั้นเมื่อผู้ใช้เปลี่ยนโมเดลหรือเปลี่ยน effort กลางทาง คำสั่งเก่าจะถูก แทนที่หรือปลดออก ไม่ใช่กองซ้อนกันจนบวมคอนเท็กซ์ - ฟิลด์ใหม่
persistent_instructionsในModelMessagesให้ model catalog ฝั่งเซิร์ฟเวอร์ override หรือปิดคำสั่งนี้ได้รายโมเดล — ค่าว่างเปล่าคือปิด ซึ่งแปลว่า OpenAI สลับพฤติกรรมนี้ได้จากรีโมตโดยไม่ต้องให้ผู้ใช้อัปเดตไบนารี - ข้อความเรื่องการขออนุมัติถูกปรับตามว่ามีเครื่องมือ
send_user_message_asyncหรือไม่ — ถ้าเอเจนต์ทักผู้ใช้แบบ async ไม่ได้ ถ้อยคำก็เปลี่ยน - เซสชัน Guardian ถูกกันออกทั้งหมด — โหมดตรวจทานความปลอดภัยจะไม่ได้คำสั่งชุดนี้และไม่ได้เครื่องมือนาฬิกา
- เมื่อ fork เอเจนต์ลูกหรือย้อน history คำสั่งจะถูกถอดแล้วสร้างใหม่ตาม effort ของลูก ไม่สืบทอดมั่ว
ฝั่ง TUI ก็มีร่องรอยแล้ว — Persistent โผล่ใน tui/src/bottom_pane/effort_ignition.rs และ chatwidget/model_popups.rs แปลว่ามันถูกวางไว้ให้เลือกจากเมนู effort ปกติ ไม่ใช่ flag ลับ
แล้วมันจะได้ใช้จริงไหม
โฆษกของ OpenAI บอก WIRED ว่า ยังไม่มีแผนเปิดใช้ในเร็ววันนี้ และจนถึงตอนนี้ยังไม่มีประกาศอย่างเป็นทางการ — สิ่งที่ยืนยันได้แน่นอนคือโค้ดถูก merge เข้า main แล้ว มีเทสต์ครอบ (ทั้งกรณี default, override, disabled, replaced, retired, fork, Guardian) และ WIRED ตั้งข้อสังเกตว่าฟีเจอร์ที่โผล่ในเครื่องมือบรรทัดคำสั่งของ Codex มักไหลไปโผล่ในผลิตภัณฑ์อื่นตามมา
ควรพูดให้ชัดว่านี่ไม่ใช่ของที่ผู้ใช้กดใช้ได้วันนี้ ใครที่อ่านพาดหัวแล้วคิดว่า Codex กลายเป็นเอเจนต์ 24/7 ไปแล้ว — ยังครับ
มุมมอง AI Curator
สิ่งที่น่าสนใจที่สุดของ PR นี้ไม่ใช่ “เอเจนต์ทำงานได้ยาวขึ้น” — เรื่องนั้นเดาได้อยู่แล้ว สิ่งที่น่าสนใจคือ OpenAI เลือกจะแก้ปัญหาการทำงานต่อเนื่องด้วยพรอมป์ 13 บรรทัด ไม่ใช่ด้วยสถาปัตยกรรม ทั้งเรื่องจะตื่นเมื่อไหร่ จะหยุดตอนไหน จะพูดหรือจะเงียบ ล้วนถูกเขียนเป็นภาษาอังกฤษแล้วยัดใส่คอนเท็กซ์ ให้โมเดลตีความเอาเอง มีแค่เรื่องขอบเขตอำนาจ (approval) เท่านั้นที่มีกลไกบังคับจริงรออยู่ข้างล่าง
นั่นคือจุดที่ควรจับตา เพราะเส้นแบ่ง “safe, non-mutating” ที่เทมเพลตพูดถึงนั้น ตัวโมเดลเป็นคนตัดสินเองว่าอะไรเข้าข่าย เอเจนต์ที่ตื่นทุก 1–3 นาทีเป็นเวลาหลายชั่วโมงคือเอเจนต์ที่ได้โอกาสตัดสินใจแบบนั้นหลายร้อยครั้งโดยไม่มีคนดู และการตัดสินพลาดครั้งเดียวในหลายร้อยครั้งก็เพียงพอจะสร้างความเสียหายได้ ประโยค “Persistence does not broaden that scope” ที่เขียนไว้ในไฟล์ อ่านแล้วเหมือนคำเตือนที่ทีมเขียนไว้เตือนตัวเองมากกว่าเตือนโมเดล
อีกประเด็นที่คนไทยควรคิดคือ เศรษฐศาสตร์ เอเจนต์ที่ตื่นเองทุก 1–3 นาทีตลอดคืนคือใบเรียกเก็บเงินที่ไม่มีเพดานโดยธรรมชาติ ทีมในไทยที่จ่ายค่า API เป็นเงินบาทและคิดงบเป็นรายเดือนจะเจอโมเดลต้นทุนคนละแบบกับที่คุ้นเคย — จากเดิม “จ่ายตามจำนวนคำถามที่ถาม” กลายเป็น “จ่ายตามเวลาที่ปล่อยให้มันตื่น” ก่อนจะเปิดใช้อะไรแบบนี้ในทีม สิ่งที่ต้องมีก่อนไม่ใช่ prompt ที่ดี แต่คือ เพดานงบต่อเซสชันและ log ที่ย้อนดูได้ว่ามันตื่นมาทำอะไรบ้างตอนตีสาม
และสำหรับนักพัฒนาไทยที่อยากตามเรื่องแบบนี้ให้ทัน บทเรียนของข่าวนี้ตรงไปตรงมามาก: openai/codex, anthropics/claude-code และรีโปเครื่องมือ agent อีกหลายตัว เป็นสาธารณะ การอ่าน diff ที่ merge เข้า main เมื่อคืนให้ข้อมูลที่แม่นกว่าและเร็วกว่าการรอสำนักข่าวเล่าต่อกันสามทอด — ในกรณีนี้ ต้นทางที่ทุกคนอ้างถึงคือไฟล์ที่ใครก็ git clone มาอ่านได้ตั้งแต่แรก
แหล่งข่าว
- openai/codex PR #41050 — Add developer instructions for persistent mode
- openai/codex PR #40942 — Enable clock tools for persistent reasoning turns
- codex-rs/core/templates/persistent_mode.md
- Gizmodo — Nevertheless, OpenAI Persists With New Always-On Agent
- The Decoder — Always-on and self-starting AI agents might be OpenAI’s next big play
อ่านเพิ่มในหมวด เครื่องมือนักพัฒนา
Betelgeuse รัน Qwen3.8 Flash Next ขนาด 68GB บน RTX 3060 กับแรม 16GB ส่วน Basalt วัดให้เห็นว่าเอนจินที่เร่งด้วยแฟล็กลัดทำให้โมเดลลืมของ
Betelgeuse ฟอร์ก llama.cpp ที่เปิดเมื่อ 31 ต.ค. ดึง expert จาก NVMe เข้า VRAM ตามต้องการ อ้าง 22 tok/s แบบไม่ทิ้ง expert แต่ README เตือนเองว่ายังทดลองและตัวเลขมาจากคนละรอบ วันเดียวกันผู้พัฒนา Basalt เผยผลวัดว่าแฟล็กเร่งความเร็วทำคุณภาพ Q8 ตกไปใกล้ Q2
กฎห้ามโคลนเกมของ Claude Code เริ่มกระทบงานจริง บริษัทรับทำเกมกระดานร้องงานลูกค้าหยุด แต่รายงานหลายชิ้นปนกับตัวกรองไซเบอร์คนละเรื่อง
ต่อจากที่เราพบกฎนี้ในไบนารี Claude Code ผู้ใช้เริ่มรายงานว่างานเชิงพาณิชย์ถูกปฏิเสธ และ Tom's Hardware กับ Mashable หยิบไปรายงาน แต่เมื่อไล่ issue ที่อ้างถึง พบว่าหลายรายการเกิดก่อนกฎจะมา จึงน่าจะเป็นตัวกรองด้านไซเบอร์ ส่วน Anthropic ยังไม่ชี้แจง
Claude Code ส่ง transcript ของ background agent ให้โมเดลทุก ~30 วินาทีเพื่อเขียนสถานะ 3–5 คำ ผู้วัดรายงานกินราว 16% และยังปิดแบบทางการไม่ได้
รายงานอิสระพบว่าฟีเจอร์ agent_summary ของ Claude Code ส่ง transcript เต็มของ background agent ไปถามสถานะทุก ~30 วินาที คิดเป็น 16.4% ของค่าใช้จ่ายในระบบของผู้วัด Issue เปิดมาตั้งแต่ ส.ค. ยังไม่มีสวิตช์ปิดที่รองรับ เราตรวจพบโค้ดนี้ใน 2.1.314 และพบกฎใหม่เรื่องเกมที่ไม่อยู่ใน changelog