3 คะแนน โดย kck4156 12 일 전 | 6 ความคิดเห็น | แชร์ทาง WhatsApp

ผมเขียนโค้ดบนโน้ตบุ๊กระหว่างเดินทางอยู่บ่อย ๆ โดยเฉพาะช่วงนี้ที่มักจะมอบงานที่ใช้เวลาสักหน่อยให้ AI coding agent อย่าง Codex ทำแทนไว้

ปัญหาเกิดขึ้นตอนต้องลงจากรถบัสหรือรถไฟใต้ดิน

เราใส่พรอมป์ต์ไปแล้ว เอเจนต์ก็ยังประมวลผลไม่เสร็จ แต่ถ้าปิดฝาโน้ตบุ๊ก เครื่องอาจเข้าสู่โหมดสลีปจนงานสะดุดได้ เลยต้องคอยถือเครื่องแบบพับครึ่งเปิดจอค้างไว้ตอนลงจากรถ รออีกนิด หรือไม่ก็ตัดงานแล้วค่อยกลับมาต่อทีหลัง

มันอาจดูเป็นความไม่สะดวกเล็กน้อย แต่พอเกิดซ้ำ ๆ ก็รบกวนใจพอสมควร

สิ่งที่เลยทำขึ้นมา

LidGuard เป็นเครื่องมือจัดการพลังงานที่คอยกันไม่ให้โน้ตบุ๊กหลับระหว่างที่ local AI coding agent กำลังทำงาน และเมื่อทำงานเสร็จก็จะคืนค่านโยบายพลังงานกลับไปเป็นแบบเดิม

โดยตั้งเป้าให้ลำดับการทำงานประมาณนี้

  • มอบหมายงานที่ใช้เวลานานให้เอเจนต์
  • ถ้าต้องเดินทางต่อ ก็ปิดฝาโน้ตบุ๊ก
  • ระหว่างที่เอเจนต์ทำงาน จะบล็อกการสลีปและการสลีปจากการปิดฝาไว้ชั่วคราว
  • พองานเสร็จ จะคืนค่าการตั้งค่าพลังงานเดิม
  • แล้วเข้าสู่โหมดสลีปหรือไฮเบอร์เนตตามการตั้งค่า

ส่วนตัวผมชอบข้อสุดท้ายที่สุด ถ้ามันจบแค่ “ปิดฝาก็ยังรันต่อได้” สุดท้ายผู้ใช้ก็ยังต้องกลับมาคอยจัดการเองอยู่ดี แต่ LidGuard ตั้งใจให้หลังจากเอเจนต์ทำงานเสร็จแล้ว โน้ตบุ๊กก็ได้พักไปพร้อมกันด้วย

ทำไมถึงแยกทำขึ้นมาเอง

ผมลองหาโปรแกรมกันสลีปที่มีอยู่แล้วเหมือนกัน

จากที่หาเจอ ส่วนใหญ่จะใกล้เคียงกับแบบใดแบบหนึ่งต่อไปนี้

  • กันสลีปเมื่อมีโปรเซสหนึ่งกำลังรันอยู่
  • ใช้วิธีเปิดไทเมอร์ทิ้งไว้
  • ให้ผู้ใช้เปิดปิดเอง
  • กันเฉพาะการสลีปตอนที่ฝาโน้ตบุ๊กยังเปิดอยู่

แต่สิ่งที่ผมต้องการต่างออกไปเล็กน้อย

  • เปลี่ยนพฤติกรรมการสลีปตอนปิดฝาแบบชั่วคราวด้วย
  • รู้จังหวะที่ AI agent session จบจริง ๆ
  • พอจบแล้วให้คืนค่านโยบายพลังงานเดิม
  • และถ้าจำเป็นก็ส่งเครื่องเข้าสลีปหรือไฮเบอร์เนตอัตโนมัติ

ดังนั้นในเอเจนต์ที่รองรับ ผมเลยทำให้มันติดตามการเริ่มและจบงานด้วย hook แทน มันจึงใกล้เคียงกับ “เครื่องมือที่ปลุกคอมไว้เฉพาะตอนที่เอเจนต์กำลังทำงาน” มากกว่าจะเป็น “เครื่องมือที่บังคับให้คอมเปิดอยู่ตลอดเวลา”

ฟีเจอร์ที่ใส่ไว้

ตอนแรกผมคิดว่าแค่ให้ Codex บน Windows ใช้งานได้ดีก็พอแล้ว เพราะสภาพแวดล้อมหลักที่ผมใช้คือ Windows และเอเจนต์ที่ใช้ก็มักจะเป็น Codex แทบทั้งหมด

แต่พอทำไปเรื่อย ๆ ก็รู้สึกว่าปัญหานี้น่าจะพบได้ทั่วไปพอสมควร เลยค่อย ๆ เติมความสามารถเพิ่มเข้าไป

  • ควบคุมพลังงานบน Windows, Linux ที่ใช้ systemd/logind และ macOS
  • เชื่อมต่อกับ Codex, Claude Code, GitHub Copilot CLI
  • สลีปหรือไฮเบอร์เนตอัตโนมัติหลังงานเสร็จ
  • ตั้งค่าการจัดการคำขอสิทธิ์ในขณะปิดฝา
  • ยกเลิกการกันสลีปสำหรับเซสชันที่ไม่มีความเคลื่อนไหวตามเวลาที่กำหนด
  • ไฮเบอร์เนตฉุกเฉินตามค่าเซ็นเซอร์อุณหภูมิ

โน้ตบุ๊กของผมเป็น Windows on ARM ดังนั้นงานระดับเอเจนต์โดยทั่วไปจึงไม่ได้ทำให้เครื่องร้อนมากเวลาอยู่ในกระเป๋า ถึงอย่างนั้นผมก็คิดว่าการเคลื่อนที่พร้อมกับเครื่องที่ยังเปิดอยู่ในสภาพปิดฝาควรทำอย่างระมัดระวัง ดังนั้นในสภาพแวดล้อมที่รองรับ ผมจึงใส่ฟังก์ชันที่ถ้าอุณหภูมิเกินระดับที่กำหนด จะพยายามเข้าสู่ไฮเบอร์เนตหรือสลีปทันทีด้วย

สิ่งที่ควรระวัง

LidGuard ไม่ได้แปลว่า “เอาโน้ตบุ๊กใส่กระเป๋าแบบไม่ต้องคิดอะไรก็ได้”

การจัดการพลังงาน เซ็นเซอร์อุณหภูมิ สิทธิ์ เฟิร์มแวร์ และนโยบายของระบบปฏิบัติการ อาจทำงานต่างกันไปในแต่ละสภาพแวดล้อม ฟังก์ชันไฮเบอร์เนตฉุกเฉินเองก็เป็นเพียงตัวช่วยด้านความปลอดภัยเสริมเท่านั้น

ยังมีตัวเลือกสำหรับจัดการคำขอสิทธิ์อัตโนมัติขณะปิดฝาได้ด้วย แต่เพราะงานอาจเดินหน้าต่อไปในช่วงที่คุณไม่ได้มองหน้าจอ จึงควรใช้อย่างระมัดระวัง

ขอบเขตการทดสอบในตอนนี้

สภาพแวดล้อมที่ทดสอบมากที่สุดคือ Windows + Codex

แม้ว่าจะรองรับ Linux, macOS, Claude Code และ GitHub Copilot CLI ไว้แล้ว แต่ผมยังไม่ได้ลองใช้งานจริงกับทุกชุดผสมอย่างเพียงพอ ถ้าลองใช้กับระบบปฏิบัติการหรือเอเจนต์อื่นแล้วเจอความผิดปกติ จะเขียนอีเวนต์ปัญหาเป็นภาษาเกาหลีก็ได้ ฝากไว้เป็น issue แล้วผมจะพยายามแก้ให้มากที่สุด

สุดท้ายแล้ว LidGuard ก็คือเครื่องมือเล็ก ๆ ที่ผมทำขึ้นเพราะอยากใช้ AI เอเจนต์ได้สะดวกขึ้นอีกนิดระหว่างเดินทาง หวังว่ามันจะช่วยคนที่เคยเจอสถานการณ์คล้ายกันอย่างบนรถบัส รถไฟใต้ดิน คาเฟ่ หรือระหว่างย้ายห้องประชุม แล้วคิดว่า “ขอแค่งานนี้เสร็จก่อน อย่าเพิ่งให้โน้ตบุ๊กหลับ” ได้บ้าง

6 ความคิดเห็น

 
autobe 10 일 전

เจ๋งมาก บน Windows สามารถตรวจจับ Codex หรือ Claude Code ที่ติดตั้งใน WSL ได้ไหม?

 
kck4156 8 일 전

ผมได้ลองพิจารณาแล้วว่าแนวทางที่ดีที่สุดในสภาพแวดล้อม WSL ควรเป็นแบบไหน และได้ข้อสรุปว่าแนวทางที่สะอาดที่สุดคือให้เรียก LidGuard ที่ติดตั้งอยู่ฝั่ง Windows จาก agent hook ที่ติดตั้งอยู่บน Linux
ในส่วนนี้ได้ปล่อยแพตช์ 1.0.1 แล้ว และได้อัปเดตวิธีติดตั้งอย่างละเอียดไว้ใน README(.ko).md ดังนั้นสามารถตรวจสอบได้จากที่นั่น

หรือใน agent-install.md ที่ให้เอเจนต์จัดการติดตั้งแทน ก็ได้ใส่พรอมป์ต์เกี่ยวกับการตรวจจับสภาพแวดล้อม WSL ไว้ด้วย ดังนั้นทางนั้นก็

 
kck4156 8 일 전

นำไปใช้ได้เลยครับ! ผมเผลอกดปุ่มส่งระหว่างทางโดยไม่ตั้งใจครับ ฮือ

 
kck4156 10 일 전

อ๊ะ ไม่ครับ/ค่ะ ดูเหมือนว่ายังไม่ได้พิจารณาสถานการณ์นั้นไว้ คงต้องลองคิดดูก่อนว่าจะรองรับอย่างไร!

 
kaydash 5 일 전

บางทีนี่อาจเป็นคำชมอย่างยิ่งว่า "เป็นไอเดียที่สมบูรณ์แบบจนในเชิงตรรกะไม่มีทางจะวิจารณ์ได้ และทำให้รู้สึกทั้งอิจฉาและหมั่นไส้" ก็ได้นะ

 
moderator 8 일 전

โปรดตรวจสอบหัวข้อการแสดงความคิดเห็นในวิธีใช้งานเว็บไซต์

กรุณาพูดคุยกันอย่างสุภาพและนุ่มนวล
กรุณาอย่าโจมตีผู้เขียนโดยตรง
หากมีข้อโต้แย้ง กรุณาเขียนเฉพาะเนื้อหาของข้อโต้แย้งนั้น