Tóm tắt nhanh
Để giữ cho các AI coding agent tiếp tục chạy khi laptop chuyển sang chế độ ngủ, bạn có ba giải pháp sắp xếp theo mức độ đầu tư công sức: giữ cho laptop luôn thức bằng lệnh caffeinate hoặc tùy chỉnh cài đặt nguồn điện, chuyển agent sang một Computer luôn hoạt động (always-on) như Mac mini hoặc máy chủ Linux, và thiết lập hàng đợi (queue) phía trước để tác vụ kiên nhẫn chờ Computer này xử lý thay vì bị gián đoạn mỗi khi bạn gập máy.
Vì sao agent ngừng hoạt động khi bạn gập máy
Bạn giao cho Claude Code hoặc Codex một tác vụ tái cấu trúc mã nguồn (refactor) kéo dài, gập laptop lại và đi về nhà. Sáng hôm sau mở máy ra, màn hình terminal vẫn dừng đúng ở bước lúc bạn rời đi. Tác vụ chưa hoàn thành, mà cũng chẳng có thông báo nào gửi đến bạn.
Điều gì đã thực sự xảy ra? Khi macOS chuyển sang trạng thái ngủ (sleep), hệ điều hành sẽ tạm dừng mọi tiến trình, bao gồm cả agent của bạn. Kết nối đang mở giữa agent với API của mô hình sẽ bị ngắt, kéo theo mọi kết nối đến các công cụ hoặc bảng điều khiển cũng đứt theo. Khi laptop thức dậy, agent có thể thử kết nối lại, báo lỗi hoặc cứ thế treo chờ phản hồi mà không bao giờ nhận được. Dù rơi vào trường hợp nào, toàn bộ thời gian trong đêm của bạn cũng đã trôi qua vô ích.
Bài viết này sẽ hướng dẫn bạn ba cách để giữ cho các AI coding agent hoạt động liên tục, chi phí tương ứng của từng giải pháp và những gì vẫn bắt buộc phải chạy trên laptop của bạn. Nếu bạn đã điều phối công việc của agent thông qua một bảng quản lý chung như Sharkly, giải pháp 2 và giải pháp 3 chỉ mất khoảng mười phút để thiết lập.

Giải pháp 1: Giữ cho laptop luôn thức
Cách nhanh nhất là ngăn không cho laptop chuyển sang chế độ ngủ. Giải pháp này gây tốn pin và làm máy nóng lên, đồng thời sẽ không duy trì được nếu bạn gập màn hình—trừ khi đáp ứng đúng các điều kiện của Apple. Bạn chỉ nên dùng cách này cho các tác vụ chạy trong vài giờ, chứ không nên coi đây là phương án lâu dài qua đêm.
Làm thế nào để Mac không ngủ khi agent đang chạy?
macOS tích hợp sẵn một câu lệnh cho việc này tên là caffeinate. Lệnh này tạo ra một "power assertion"—yêu cầu hệ thống không được chuyển sang chế độ ngủ chừng nào lệnh còn chạy. Theo tài liệu tham khảo về caffeinate, các cờ (flag) phổ biến bạn sẽ dùng gồm:
-ingăn máy ngủ khi không sử dụng (idle sleep).-sngăn hệ thống ngủ, nhưng chỉ áp dụng khi cắm sạc (nguồn AC).-dgiữ cho màn hình luôn sáng (hiếm khi cần đến).-w <pid>hủy yêu cầu giữ máy thức khi tiến trình được chỉ định kết thúc.-t <seconds>tự động hủy yêu cầu giữ máy thức sau khoảng thời gian đặt trước tính bằng giây.
Cách tối ưu nhất là bao bọc trực tiếp tiến trình của agent, nhờ đó yêu cầu giữ máy thức sẽ tự kết thúc ngay khi agent hoàn tất công việc:
# Hold the assertion for exactly as long as the agent runs
caffeinate -is claude -p "Refactor the billing module and run the tests"
# Or attach to an agent that's already running
pgrep -f codex # prints the PID, for example 48213
caffeinate -i -w 48213
Nếu thích thao tác bằng giao diện hơn gõ lệnh, bạn có thể mở Cài đặt hệ thống (System Settings), chọn Pin (Battery). Trong mục Tùy chọn khác (Additional Options), bật tùy chọn “Ngăn tự động ngủ khi dùng bộ tiếp hợp nguồn lúc màn hình tắt” (hướng dẫn cài đặt pin của Apple). Thiết lập này chỉ có tác dụng khi laptop đang được cắm sạc.
Lệnh caffeinate có hoạt động khi gập màn hình không?
Bản thân lệnh này thì không. Việc gập màn hình MacBook sẽ luôn đưa máy vào chế độ ngủ, trừ khi bạn đang bật chế độ màn hình đóng (closed-display mode). Theo mô tả của Apple, chế độ này yêu cầu máy vừa gập màn hình vừa phải cắm sạc, kết nối với màn hình ngoài cùng bàn phím và chuột ngoài (hướng dẫn về closed-display mode của Apple). Nếu bạn rời đi mà không kết nối với màn hình ngoài, chắc chắn agent sẽ bị dừng.
Nếu sử dụng ứng dụng Sharkly Desktop, bạn có thể bỏ qua dòng lệnh. Trong phần cài đặt Computer có sẵn công tắc Prevent sleep với các mốc thời gian: 5 phút, 30 phút, 1, 2, 5 hoặc 8 giờ, hoặc Always. Theo tài liệu về Computers, tính năng này giữ cho hệ thống luôn hoạt động trong khi màn hình vẫn có thể tắt, và nó sẽ tự tắt khi hết thời gian thiết lập. Lưu ý rằng tùy chọn này chỉ áp dụng cho máy hiện tại, không dùng được cho máy từ xa hoặc máy dùng chung.

Giải pháp 2: Chạy agent trên một Computer luôn bật
Giải pháp bền vững nhất là ngừng giao các tác vụ chạy lâu cho laptop. Hãy đưa agent lên một cỗ máy không bao giờ bị gập lại: một chiếc Mac mini để bàn dự phòng, một máy chủ Linux đặt ở góc nhà, hoặc một máy ảo trên đám mây (cloud VM). Khi đó, laptop chỉ còn đóng vai trò là nơi bạn soạn tác vụ và kiểm tra kết quả.
Đội ngũ DeepSeek Harness cũng mô tả mô hình phân tách tương tự trong bài viết về thiết kế super-agent của họ. Họ gọi đó là mô hình BYOM: vòng lặp điều phối của agent cùng trạng thái phiên làm việc (session state) nằm trên đám mây, trong khi mỗi môi trường lưu trữ mã nguồn sẽ chạy một daemon nhỏ ngay tại chỗ. Bài viết mô tả một kiến trúc kỹ thuật chứ không phải sản phẩm có sẵn để bật lên dùng ngay, nhưng cốt lõi ý tưởng hoàn toàn nhất quán: Mã nguồn và công cụ nằm trên phần cứng do bạn kiểm soát; còn luồng điều phối công việc thì tiếp tục vận hành bất kể laptop của bạn đang mở hay gập.
Trên cỗ máy luôn bật này, thiết lập tối thiểu bạn cần là CLI của agent, thông tin xác thực Git (Git credentials) và một cơ chế để duy trì phiên làm việc. Trên Linux, điều này thường đồng nghĩa với việc dùng tmux hoặc cấu hình một systemd service để agent không bị ngắt khi bạn thoát phiên SSH. Cách này hiệu quả khi chỉ có một agent, nhưng sẽ rất vất vả khi chạy cùng lúc năm agent, bởi bạn sẽ phải liên tục SSH vào máy chỉ để kiểm tra xem con nào đã hoàn thành.
Làm thế nào để thêm một Computer từ xa vào Sharkly?
Trong Sharkly, Computer là bất kỳ máy chủ nào được kết nối để chạy các agent. Một dịch vụ nhỏ chạy ngầm trên máy sẽ tự động phát hiện các công cụ agent đã cài đặt (Claude Code, Codex và các công cụ khác), ghi nhận từng công cụ dưới dạng một Runtime, gửi tín hiệu kiểm tra tình trạng (heartbeat) và tiếp nhận công việc. Dịch vụ này chủ động mở kết nối ra ngoài (outbound), vì vậy mô hình thông thường không đòi hỏi bạn phải mở bất kỳ cổng kết nối chiều vào (inbound port) nào.
Để kết nối máy chủ:
- Trong Sharkly, mở Settings, chọn Computers, sau đó chọn kết nối một Computer mới.
- Tạo mã token cài đặt dùng một lần (one-time install token). Mã này có thời hạn ngắn và chỉ dùng được một lần, vì vậy đừng đưa vào script hay đóng gói vào image.
- Trên máy chủ, cài đặt Sharkly CLI và tiến hành đăng ký:
sharkly computer register --install-token <install-token>
# Check it from any terminal
sharkly computer list
sharkly computer ping <computer-id> <runtime-id>
- Chờ Computer hiển thị trạng thái online, sau đó xác nhận có ít nhất một Runtime đang sẵn sàng.
Tài liệu về Computers có hướng dẫn chi tiết về các gói cài đặt cho Linux (AppImage, deb, tar.gz) cùng các bước kiểm tra Runtime. Để tìm hiểu sâu hơn nhằm cân nhắc giữa việc dùng máy chủ hay laptop, bạn có thể tham khảo bài viết chạy coding agent từ xa và hướng dẫn sử dụng Computers trong Sharkly.
Giải pháp 3: Đưa công việc vào hàng đợi thay vì để thất bại
Một Computer luôn bật thỉnh thoảng vẫn phải khởi động lại để cập nhật phần mềm hoặc bị rớt mạng Wi-Fi. Giải pháp cuối cùng này đảm bảo những sự cố gián đoạn đó chỉ làm chậm công việc của bạn vài phút thay vì phá hỏng cả đêm. Mục tiêu là để công việc tự động xếp hàng chờ Computer sẵn sàng trở lại, chứ không bị thất bại chỉ vì cỗ máy không kịp phản hồi ngay đúng khoảnh khắc tác vụ được gửi đến.
Đây chính là lúc cơ chế hàng đợi (queue) phát huy tối đa giá trị. Trong Sharkly, khi bạn giao tác vụ cho một Agent, lượt chạy (run) sẽ được chuyển đến Computer và Runtime tương ứng của Agent đó. Theo tài liệu hướng dẫn:
- Nếu Computer đang offline, các lượt chạy mới thông thường sẽ đợi cho đến khi máy kết nối lại.
- Nếu Computer mất kết nối trước khi tác vụ được điều phối (dispatch), lượt chạy vẫn có thể nằm chờ trong hàng đợi.
- Mỗi Computer có giới hạn số tác vụ chạy đồng thời (concurrency limit); những công việc vượt quá giới hạn này sẽ ở trạng thái Queued (Đang chờ).
- Khi sử dụng thư mục tạm hoặc các worktree độc lập trong Git, mức đồng thời mặc định của một Agent bằng 50% giới hạn của Computer.

Quy trình làm việc qua đêm sẽ diễn ra như sau: Trước khi ra về, bạn tạo năm tác vụ và giao cho một Agent chạy trên Mac mini. Computer sẽ xử lý số tác vụ tối đa theo giới hạn đồng thời, số còn lại sẽ nằm trong hàng đợi (Queued), và bạn chỉ việc xem lại toàn bộ kết quả vào sáng hôm sau. Mỗi lượt chạy gắn với kho lưu trữ (repository) có thể nhận một worktree riêng biệt, giúp các tác vụ chạy song song không chỉnh sửa đè lên cùng một bản checkout mã nguồn. Để tìm hiểu số lượng tác vụ nên chạy cùng lúc, hãy đọc bài cách chạy cùng lúc 10 AI coding agent.
Có hai điểm giới hạn cần lưu ý: Tài liệu không cam kết rằng một lượt chạy đang diễn ra sẽ tự động tiếp tục nếu Computer bị ngắt kết nối, và một lượt chạy đã bị hủy sẽ không thể tiếp tục ngay tại điểm dừng. Khi có tác vụ bị đình trệ, hãy mở tác vụ đó ra, kiểm tra trạng thái lượt chạy (run state), rồi thử chạy lại (retry) hoặc để lại bình luận tiếp theo. Đối với các tác vụ tự động hóa theo lịch trình (Automations), tài liệu có liệt kê trạng thái Skipped (Bỏ qua) nhưng không nói rõ hệ thống xử lý ra sao khi Computer offline; vì vậy bạn nên kiểm tra lịch chạy bằng nút Run now trước khi yên tâm để máy chạy qua đêm.
Những việc vẫn bắt buộc cần đến laptop của bạn
Chuyển agent ra khỏi laptop không có nghĩa là bạn có thể chuyển toàn bộ mọi thứ. Hãy giữ những tác vụ sau trên Computer cục bộ:
- Chỉ định thư mục cụ thể (Specified directories). Việc chạy trong một thư mục cục bộ cố định và tái sử dụng những gì đã có sẵn chỉ hỗ trợ trên các Computer cục bộ.
- Chống ngủ (Prevent sleep). Tùy chọn này chỉ xuất hiện cho chính máy tính đó trên ứng dụng desktop.
- Thông tin xác thực và tệp tin chỉ có trên máy cục bộ. Nếu tác vụ cần kết nối qua VPN, cần khóa riêng tư (private key) hoặc các tệp tin chỉ lưu trữ trên laptop của bạn, máy chủ sẽ không thể truy cập được. Bạn nên sao chép những dữ liệu an toàn sang máy chủ, hoặc giữ tác vụ đó chạy cục bộ trên máy và áp dụng giải pháp 1.
Tất cả những việc còn lại—từ tái cấu trúc mã nguồn, chạy kiểm thử cho đến nâng cấp các gói phụ thuộc (dependency bumps) và cập nhật tài liệu—đều có thể chạy mượt mà trên một cỗ máy không bao giờ bị gập nắp. Chi phí sử dụng mô hình vẫn được tính vào gói Claude Code, Codex hoặc tài khoản API đã cấu hình trên chính Computer đó, vì Sharkly không bán token. Nếu bạn đang muốn tối ưu chi phí, các bài viết chạy AI agent miễn phí và so sánh Codex trên cloud với tự dùng Computer riêng sẽ phân tích chi tiết các lựa chọn này.
Lời kết
Laptop gập lại sẽ ngủ, và agent cũng sẽ dừng theo. Với các tác vụ ngắn trong buổi chiều, bạn có thể bọc agent bằng lệnh caffeinate hoặc bật tùy chọn Prevent sleep. Với các công việc chạy xuyên đêm, hãy chuyển agent sang một Computer luôn bật. Và đối với bất kỳ tác vụ quan trọng nào, hãy đặt một hàng đợi phía trước, để khi máy khởi động lại hoặc mất kết nối mạng, tác vụ chỉ phải chờ trong chốc lát thay vì thất bại hoàn toàn.
Bước tiếp theo của bạn: hãy kết nối một chiếc máy tính dự phòng dưới dạng một Computer, giao cho nó hai tác vụ ngay tối nay rồi gập laptop lại. Sharkly hoàn toàn miễn phí để bắt đầu trải nghiệm, và tài liệu về Computers sẽ hướng dẫn bạn từng bước từ lúc lấy mã token cài đặt cho đến khi hoàn tất lượt chạy đầu tiên.
Câu hỏi thường gặp
Tại sao AI agent ngừng chạy khi laptop của tôi chuyển sang chế độ ngủ?
Chế độ ngủ sẽ tạm dừng mọi tiến trình và ngắt kết nối mạng. Agent không thể kết nối tới API của mô hình khi bị đình chỉ, dẫn đến việc lượt chạy bị tạm dừng, báo lỗi hoặc bị treo khi laptop thức dậy.
Làm thế nào để giữ cho Claude Code chạy qua đêm trên máy Mac?
Cắm sạc và chạy lệnh cùng với caffeinate -is để giữ cho máy Mac luôn thức cho đến khi agent kết thúc tác vụ. Nếu muốn gập màn hình, bạn cần đưa máy về chế độ closed-display mode. Tuy nhiên, đối với các công việc cần chạy thường xuyên qua đêm, sử dụng một Computer luôn bật sẽ là giải pháp đáng tin cậy hơn nhiều.
Lệnh caffeinate có ngăn máy ngủ khi tôi gập màn hình không?
Không. Việc gập màn hình sẽ luôn khiến MacBook chuyển sang chế độ ngủ, trừ khi máy đang ở chế độ closed-display mode với đầy đủ nguồn sạc, màn hình ngoài cùng bàn phím và chuột ngoài.
Điều gì xảy ra với tác vụ Sharkly nếu Computer bị offline?
Các lượt chạy mới thông thường sẽ đợi Computer kết nối lại, còn lượt chạy chưa được điều phối vẫn có thể nằm chờ trong hàng đợi. Bạn nên kiểm tra lại trạng thái lượt chạy của tác vụ sau một sự cố mất kết nối kéo dài, vì tài liệu không cam kết rằng một lượt chạy đang dang dở sẽ được tự động khôi phục.
Tôi có thể chạy các coding agent trên máy chủ Linux không?
Hoàn toàn được. Hãy cài đặt CLI của agent và Sharkly CLI trên máy chủ, sau đó đăng ký bằng mã token cài đặt. Máy chủ sẽ xuất hiện dưới dạng một Computer đi kèm các Runtime được tự động phát hiện.



