Cách Chạy AI Agent Qua Đêm An Toàn Trên Mac

Đội ngũ LidRun
5 phút đọcJun 2026
Cách Chạy AI Agent Qua Đêm An Toàn Trên Mac

Bạn khởi chạy một phiên Claude Code lúc nửa đêm, kỳ vọng sáng ra sẽ có nhánh code hoàn chỉnh — rồi thức dậy thấy agent đã dừng và màn hình tắt từ ba tiếng trước. macOS ngủ theo lịch của nó, còn tiến trình AI agent không được tính là hoạt động của người dùng. Để một phiên chạy qua đêm không bị gián đoạn, cần giải quyết ba thứ cùng lúc: ngăn máy vào sleep, bảo vệ pin, và biết khi nào công việc thực sự kết thúc.

Tại Sao Mac Ngắt AI Agent Của Bạn Vào Ban Đêm

macOS tự động vào sleep khi không phát hiện đầu vào từ người dùng — bàn phím, chuột, trackpad. AI agent chạy trong cửa sổ terminal không tạo ra sự kiện đầu vào nào, nên bộ hẹn giờ tắt màn hình kích hoạt trước, rồi toàn bộ hệ thống mới ngủ. Khi máy suspend, agent bị cắt khỏi CPU và mất kết nối mạng — phiên chạy dừng hẳn giữa chừng, không có cách nào tiếp tục sạch.

Đóng nắp máy là tín hiệu kích hoạt sleep ngay lập tức. Theo mặc định, MacBook vào sleep ngay khi đóng nắp, bất kể nền đang chạy gì. Nếu bạn đóng máy rồi đi ngủ, agent hầu như chắc chắn đã dừng trong vài giây. Các công cụ đơn giản như caffeinate -i có thể chặn idle sleep, nhưng không xử lý trường hợp đóng nắp — và chúng chạy mãi cho đến khi bạn tắt thủ công, kể cả sau khi công việc đã xong.

Pin là nguồn gốc của vấn đề thứ ba. macOS có cơ chế tắt máy khẩn cấp khi pin cạn, và đôi khi còn ép sleep trước ngưỡng đó nếu thấy cần thiết. Agent chạy inference nặng hoặc chạy model cục bộ có thể rút hết 50% pin trong ba đến bốn tiếng. Không đặt ngưỡng dừng, OS tự quyết định khi nào kết thúc — và thường không phải lúc thuận tiện.

Mẫu An Toàn Cho Lần Chạy Qua Đêm

Cách đúng là keep-awake gắn với tiến trình: chỉ giữ power assertion khi tiến trình agent đang chạy, rồi tự giải phóng khi tiến trình kết thúc. Tính năng Process Watch của LidRun làm đúng điều này — nó theo dõi danh sách tiến trình, tìm các công cụ như claude, node, cursor hoặc python, và kích hoạt keep-awake khi phát hiện. Phần thời gian còn lại, Mac ngủ bình thường — đúng như bạn muốn.

Với những lần chạy nắp đóng, cách đặt máy rất quan trọng. Đặt Mac trên bề mặt phẳng, cứng, thoáng khí phía dưới — bàn làm việc, laptop stand, hoặc mặt bàn chắc. Không đặt trên giường, không để trong túi, không để trong hộp kín. Khi nắp đóng, luồng gió tản nhiệt qua bàn phím bị thu hẹp — máy cần được đặt nơi thoáng hơn để nhiệt thoát ra. Ưu tiên cắm sạc: xả pin dưới tải nặng sinh ra nhiệt nhiều hơn khi cắm điện AC. Hướng dẫn thiết lập chi tiết cho từng công cụ có trong bài giữ Claude Code chạy khi MacBook đóng và bài giữ Cursor agent chạy trên Mac.

Chạy qua đêm không phải kiểu set-and-forget hoàn toàn. Một task được thiết kế rõ ràng với điều kiện thoát cụ thể an toàn hơn nhiều so với một prompt mở có thể lặp vòng. Trước khi ngủ, kiểm tra lại xem agent có điểm dừng rõ ràng chưa — danh sách task, timeout, hay file cụ thể cần ghi. Agent có thể lặp khi gặp lỗi hoặc bị prompt lại, cứ chạy mãi mà không tạo ra tiến độ thực sự.

Hướng dẫn liên quanBộ điều phối an toàn: vì sao LidRun không giữ một chiếc Mac nóng hay idle thức

Đặt Giới Hạn Pin Và Nhiệt Độ

Mức pin tối thiểu 20% là điểm khởi đầu hợp lý. Nó cao hơn hẳn ngưỡng khẩn cấp của macOS, cho agent đủ thời gian hoàn thành tác vụ thông thường, và còn lại đủ pin để dùng Mac vào sáng hôm sau. Với tác vụ nhẹ hơn, chủ yếu gọi API — nơi agent chờ phản hồi mạng là chính — 15% có thể dùng được. Với inference cục bộ hoặc build nặng, giữ mức 20% trở lên. Mấu chốt là phải đặt ngưỡng này: nếu không, OS tự quyết định khi nào dừng — và thường không chọn đúng lúc.

Giới hạn nhiệt độ đáng cấu hình dù bạn tin tưởng vào bảo vệ của máy. macOS sẽ throttle CPU trước khi có sự cố nghiêm trọng, nhưng throttle có nghĩa là agent chậm đi còn nửa tốc độ thêm nhiều tiếng đồng hồ — và điều đó sinh ra nhiều nhiệt tích lũy hơn một lần dừng có chủ ý rồi khởi động lại. LidRun theo dõi trạng thái nhiệt qua API ProcessInfo của Apple và có thể tự dừng phiên keep-awake khi đạt ngưỡng bạn đặt, giữ session trong giới hạn an toàn khi chạy không có người trông. Bài mac-keep-awake-safety-governor giải thích cách ba giới hạn — pin, nhiệt độ và thời gian — phối hợp với nhau.

Trên Apple Silicon, phần mềm ở user space chỉ theo dõi được trạng thái nhiệt độ chứ không thể điều chỉnh tốc độ quạt trực tiếp — đó là việc của kernel. Hãy coi đó là thanh chắn bảo vệ, không phải công cụ điều chỉnh. Kết hợp mức pin tối thiểu với giới hạn nhiệt độ, bạn có hai điều kiện dừng tự động độc lập: ngưỡng nào đến trước thì dừng trước, thay vì để phần cứng hoặc OS tự can thiệp.

Nhận Thông Báo Khi Công Việc Hoàn Thành

Push notification đóng vòng phản hồi. Không có chúng, bạn hoặc phải thức dậy kiểm tra thủ công, hoặc chỉ biết đoán mò. LidRun hỗ trợ ntfy.sh — một relay thông báo miễn phí và mã nguồn mở — để gửi thông báo đến điện thoại ngay khi phiên keep-awake kết thúc. Phiên đó kết thúc khi tiến trình agent thoát, nên thông báo báo hiệu trực tiếp rằng công việc đã xong hoặc đã dừng. Không cần tích hợp webhook phía server.

Thông báo báo hiệu kết thúc phiên, không phải thành công của công việc. Dù agent hoàn thành task, gặp lỗi, hay dừng vì mức pin hoặc nhiệt độ kích hoạt — thông báo đều trông giống nhau. Khi nhận được, mở output terminal và nhật ký hoạt động của LidRun. Nhật ký ghi lại điều kiện nào đã dừng: thoát tiến trình, mức pin, giới hạn nhiệt độ, hay dừng thủ công. Chỉ mất khoảng ba mươi giây để biết nên quay lại ngủ tiếp hay thức dậy kiểm tra.

Đừng hiểu thông báo này là 'mọi thứ đều ổn' — chỉ là 'đã xong, cần xem lại'. Kiểm tra nhanh file output của agent hoặc commit history — ngay cả từ điện thoại qua app GitHub hay GitLab — sẽ cho biết thực tế ra sao. Hầu hết session kết thúc bằng thoát tiến trình sạch đều để lại output dùng được. Còn session dừng do mức pin hoặc nhiệt độ thường để lại công việc dang dở nhưng từ trạng thái đã biết — bạn có thể tiếp tục từ đó. Sự khác biệt này quan trọng, và bạn thấy được trong nhật ký trước khi còn ra khỏi giường.

Tính năng của LidRun for closed-lid Mac.

Thử nó thay vì vật lộn với ngủ khi gập máy

LidRun giữ công việc của bạn chạy tiếp khi đóng nắp, với cơ chế bảo vệ pin và nhiệt tích hợp sẵn.

Tải cho macOS

Câu hỏi thường gặp

Tại sao AI agent của tôi dừng lại khi Mac ngủ?

macOS coi tiến trình AI agent là công việc nền và áp bộ hẹn giờ sleep thông thường bất kể mức CPU. Không có đầu vào người dùng nào được phát hiện, nên tắt màn hình kích hoạt trước, rồi hệ thống mới ngủ. Lúc đó agent bị cắt CPU và mất kết nối mạng, phiên chạy kết thúc. Công cụ ngăn sleep — gắn với tiến trình agent — chỉ giữ máy thức trong suốt thời gian công việc đang chạy.

Làm cách nào để giữ Claude Code chạy qua đêm một cách an toàn?

Dùng công cụ keep-awake gắn với tiến trình Claude thay vì chế độ luôn bật toàn cục — để tính năng ngăn sleep tự tắt khi agent hoàn thành. Đặt mức pin khoảng 20% và giới hạn nhiệt độ để phiên dừng sạch nếu điều kiện xấu đi. Đặt máy trên bề mặt phẳng, cứng, thoáng khí bên dưới, ưu tiên cắm sạc thay vì dùng pin, và bật push notification để biết khi phiên kết thúc mà không phải kiểm tra thủ công.

Tôi nên đặt mức pin tối thiểu nào cho các lần chạy qua đêm?

20% phù hợp với hầu hết tác vụ. Mức này cao hơn ngưỡng tắt khẩn cấp của macOS và cho agent một điểm dừng sạch trước khi OS can thiệp mạnh. Với tác vụ nhẹ hơn gọi API, bạn có thể xuống 15%; với inference cục bộ hoặc build nặng, giữ mức 20% trở lên. Mấu chốt là phải có ngưỡng — nếu không, macOS tự quyết định khi nào dừng và thường không phải lúc thuận tiện.

Mac sẽ quá nóng nếu chạy AI agent nắp đóng qua đêm không?

Chạy nắp đóng trên bề mặt phẳng, cứng, thoáng khí phía dưới giúp giảm đáng kể nguy cơ quá nhiệt. Rủi ro lớn nhất là thiếu luồng gió — không bao giờ chạy qua đêm trong túi, trên giường hay trong không gian kín. Cơ chế quản lý nhiệt của Apple Silicon sẽ throttle CPU trước khi có sự cố nghiêm trọng, nhưng thêm giới hạn nhiệt tự động dừng là lớp bảo vệ thứ hai — giữ session trong giới hạn an toàn và dừng sạch nếu nhiệt độ tăng cao khi chạy không có người trông.