Yapay Zeka Ajanları Dizüstü Bilgisayarların Güç Yönetimini Nasıl Değiştirdi

Yapay zeka ajanları, macOS'un ne zaman uykuya geçeceğine karar verirken hep kullandığı tek sinyali kırarak dizüstü güç yönetimini değiştirdi: kullanıcı girişi. Dosyaları okuyan, kodu düzenleyen ve iki üç saat boyunca test çalıştıran bir kodlama ajanı ne bir tuşa basar ne fareyi oynatır; macOS bunların hepsini boşta geçen zaman sanır — ve makineyi işin tam ortasında uykuya sokarak ajanı öldürür, geriye yarım kalmış bir diff bırakır. Bu arıza türü beş yıl önce neredeyse hiç yaşanmıyordu, çünkü o zamanlar saatlerce gözetimsiz çalışan neredeyse hiçbir şey yoktu. Bunun neden olduğunu, ücretsiz çözümlerin gerçekte ne yaptığını ve nerede yetersiz kaldığını anlatıyoruz.
Boşta Uykusu Neden Mantıklıydı — Ta ki Yapay Zeka Ajanları Bu Varsayımı Kırana Kadar
Dizüstü bilgisayarların güç yönetimi insan ritimlerine göre tasarlandı. Birkaç dakika klavyeye dokunulmazsa: ekran kararır. Biraz daha uzun sürerse: uyku. Apple'ın boşta zamanlayıcıları mantıklıydı, çünkü makinenin işi sizi beklemekti ve bekleme pil harcıyordu. Bir uygulamanın uyanık kalmak için tuttuğu güç talebi sürece bağlıdır — uygulama kapandığı ya da çöktüğü anda macOS bu talebi otomatik olarak serbest bırakır. Bu, bilinçli bir tasarım tercihiydi ve modelin otuz yıl boyunca bu şekilde güvenle inşa edilebilmesinin tam nedeni de budur.
Bu model, on yıl boyunca arka planda inen dosyalar, uzun derlemeler ve video kodlamalarla karşı karşıya kaldığında da ayakta durdu; çünkü bu işler ya çabucak bitiyordu ya da çalıştıkları sürece işletim sistemine sinyal vermek için bir güç talebi tutuyordu. Bir video işleme aracı medya güç talebi tutar; xcodebuild birkaç dakikada tamamlanır ve kapanır. Makinenin elinde işleyebileceği bir sinyal her zaman vardı ve bu sinyal her seferinde kendiliğinden temizlendi.
Bu tasarımın hiçbir yeri, saatlerce sıfır kullanıcı girişiyle ve doğal bir bitiş noktası olmadan çalışan bir iş yükünü öngörmüyordu. Güç modeli yazıldığında böyle bir senaryo basitçe yoktu.
Mac'iniz Neden Ajan Çalışırken Uykuya Dalıyor
Yapay zeka kodlama ajanları — Claude Code, Cursor'ın arka plan ajanı, Aider, GitHub Copilot Workspace — düzinelerce adımı art arda bağlayarak çalışır: bir dosyayı oku, bir düzenleme planla, kod yaz, test çalıştır, çıktıyı yorumla, baştan başla. Tek bir yeniden yapılandırma (refactoring) görevi, klavyenin başında kimse yokken iki üç saat sürebilir.


macOS bunların hiçbirini etkinlik olarak görmez. Ne bir klavye olayı, ne fare hareketi, ne de ekranda çizilen yeni bir kare vardır. Boşta zamanlayıcısı sıfıra iner, ekran uykuya dalar ve kısa süre sonra sistem de onu izler — Terminal oturumunu işin tam ortasında sonlandırır.
Bunun başınıza gerçekten gelip gelmediğinden emin değilseniz, olay bittikten sonra Activity Monitor'a güvenmeyin; süreç listeden zaten silinmiş olur. Daha net kanıt Terminal'de: pmset -g log | grep -i sleep komutu, zaman damgalarıyla birlikte gerçek uyku ve uyanma olaylarını listeler; böylece ajanınızın kendi kayıtlarındaki bir boşluğu, macOS'un aynı anda kaydettiği bir sistem uykusuyla karşılaştırabilirsiniz.
Bu bir macOS hatası değil. Gerçekten boşta olan bir makine için boşta-uyku doğru bir davranıştır. Asıl yapısal sorun, işletim sisteminin, kullanıcı adına bilişsel bir iş yapan bir süreç kavramına dahili olarak sahip olmaması — üstelik kullanıcının gerçekten bitmesini istediği bir iş bu.
İlgili kılavuzMac İçin Güvenli Çalışma Katmanı Nedir?Ücretsiz Çözüm: caffeinate, pmset ve Menü Çubuğu Uyanık-Tutma Uygulamaları
Denemeye değer ilk şey hiçbir şeye mal olmuyor ve zaten macOS'la birlikte geliyor. caffeinate -i, LidRun'ın kapak-açık durumda tuttuğu güç talebiyle aynı türden bir talep tutar — sistem boşta-uyku güç talebi — ve en temiz kullanım, komutu doğrudan ajan komutuna vermektir: caffeinate -i your-agent-command. Böylece talep o sürece bağlanır ve siz durdurmayı hatırlayana kadar çalışmak yerine, ajan kapandığı anda kendiliğinden serbest kalır.


Terminal'e dokunmak istemiyorsanız, aynı fikre menü çubuğundan bir tık uzaktasınız. Amphetamine, KeepingYouAwake, Lungo ve adı üstünde Caffeine uygulaması, caffeinate'in tuttuğu türden bir talebi komut satırı yerine bir arayüz düğmesi ve zamanlayıcıyla tutar. Tasarlandıkları senaryo için — fişe takılı, kapağı açık, bir şeyler ters giderse fark edecek birinin yakınlarda olduğu bir Mac — bunların hepsi işini iyi yapar.
Bunların hiçbiri — caffeinate dahil — harici bir ekran bağlı değilse kapağı kapalı bir MacBook'u çalışır tutmaz. Kapağı kapatmak, boşta-uyku taleplerinin durduramadığı, daha alt seviyede ayrı bir clamshell uyku yolunu tetikler; bu, caffeinate ile LidRun'ın kapak-açık durumda kullandığı mekanizmadan tamamen farklıdır. Bir masa düzeniniz varsa ücretsiz çözüm gerçekten ücretsizdir: harici bir ekran takın (Mac zaten görmüyorsa bir klavye ya da fare de ekleyin), kapağı kapatın; macOS onu bir masaüstü bilgisayar gibi görür — ekstra bir araca gerek yoktur. Ekran yoksa elinizdeki tek genel yöntem sudo pmset -a disablesleep 1 komutudur; bu komut yönetici parolası ister ve bir sonraki bölümde anlatılan gerçek bir tuzakla birlikte gelir.
Ücretsiz Çözümün Yetersiz Kaldığı Yer: Pil, Isı ve Takılı Kalan Bir pmset Ayarı
caffeinate ve menü çubuğu uyanık-tutma uygulamalarının bir pil tabanı yoktur. %40 şarjla, ağır bir ajan döngüsü çalışırken uyanık kalma talebi tutan bir MacBook'u öylece bırakırsanız, geri döndüğünüzde bitmiş bir pil, kaybolmuş bir oturum ve yarım kalmış bir diff bulmanız pekala mümkündür — araç tam olarak söz verdiği şeyi yaptı, sadece güç bitmeden durmanın bir yolu yoktu. Bunun ne kadar hızlı gerçekleştiği duruma göre çok değişir: çoğunlukla API yanıtı bekleyen bir ajan CPU'yu neredeyse hiç zorlamaz, oysa yerel bir model çalıştıran bir ajan tüm çekirdekleri saatlerce meşgul tutabilir. Bu öngörülemezlik, tam olarak bu yüzden sabit bir zamanlayıcıdan çok bir pil-yüzdesi tabanının işe yaraması demek — dört saatlik bir 'yapay zeka çalışmasının' size gerçekte kaça mal olacağını önceden bilemezsiniz.


Isı daha sinsi bir risktir ve sadece bir his değil, ölçülebilir bir şeydir. macOS'un kendisi yalnızca kaba bir sinyal sunar — ProcessInfo.thermalState, dört kademe: Nominal, Fair, Serious, Critical — ve bu sinyal gerçeklikten geride kalabilir. Bir Intel MacBook'ta (i7-1068NG7) yapılan iç bir testte, normal kapak-açık bir iş yükü CPU throttle'ı %80'in üzerinde kalarak yaklaşık 95°C'de tutundu; aynı yük altında bir çantanın içine kapatıldığında gerçek throttle oranı yaklaşık %24'e düştü, thermalState ise hâlâ 'Fair' okuyordu — yonga, işletim sistemi seviyesindeki sinyal yetişmeden çok önce kendini korumaya başlamıştı bile. İşte bu fark, yalnızca thermalState'e bakan — ya da hiçbir şeye bakmayan — bir uyanık-tutma aracının, kapağı neredeyse kapalı, havalandırmayı kapatan yumuşak bir yüzey ya da bir çanta gibi dar bir alanda gerçek bir koruması olmamasının nedenidir.
clamshell çözümünün de kendine özgü bir arıza türü vardır. pmset -a disablesleep 1, belirli bir sürece bağlı olmayan, genel ve kalıcı bir ayardır. Onu açan şey her ne ise — bir script, bir Terminal oturumu, bir uygulama — çökerse, ayar 1'de kalır ve bir şey onu açıkça 0'a çevirmedikçe (sudo pmset -a disablesleep 0) ya da siz yeniden başlatmadıkça Mac bir daha kapak-uykusuna geçmez. Bu varsayımsal değil, gerçek ve belgelenmiş bir tuzaktır: ayarın, kendisini isteyen sürecin artık var olmadığından haberi bile yoktur.
Uzun Yapay Zeka Ajanı Çalışmaları İçin Daha Güvenli Bir Workflow
Masanızda oturup fişe takılıyken yapılan kısa, gündüz bir çalışma için caffeinate ya da bir menü çubuğu uygulaması gerçekten yeterlidir — ekstra bir araca gerek yok, bunu söylemek dürüstlük olur.
Gece boyu, pil üzerinde ya da kapak-kapalı oturumlar için, ücretsiz araçların bir arada sunmadığı üç şeye ihtiyacınız var: makine ölmeden önce çalışmayı durduran bir pil tabanı, işletim sisteminin kaba sinyali yerine gerçek termal baskıyı gözeten bir farkındalık ve — kapak kapalıysa — disablesleep'i tutan şey çökerse Mac'i takılı bırakmak yerine kendiliğinden toparlanan bir yol. Bu üçlü, kabaca Mac'te yapay zeka işleri için güvenli bir çalışma zamanı katmanının ne işe yaradığıdır: daha güçlü bir uyanık-tutma değil, çalışmaya devam etmeyi güvensiz hale getirecek koşulları izleyip körlemesine devam etmek yerine nazikçe geri çekilen bir katman.
Yerel güç yönetimiyle hiç uğraşmak istemiyorsanız, meşru bir alternatif var: ajanı uzak bir makinede çalıştırın — bir bulut VM'i, bir GitHub Codespace ya da SSH ile bağlandığınız hep-açık bir Mac mini — ve iş başka yerde çalışırken dizüstünüzün normal şekilde uyumasına izin verin. Bunun gerçek bir bedeli var: yerel kopyanız üzerinde doğrudan çalışmanın rahatlığını kaybediyorsunuz ve aksi halde ihtiyacınız olmayabilecek bir işlem gücüne para ödüyorsunuz. Deponun yerinde durduğu birçok yerel workflow için, dizüstünün kendisini uyanık ve korumalı tutmak hâlâ daha basit bir yol.
LidRun Nerede Devreye Giriyor
LidRun'ın kuralı basit: ajan çalışıyorsa uyanık kal; ajan bitti ya da güvensizse talebi bırak ve Mac'in uyumasına izin ver. Bu, izlemesini söylediğiniz süreçleri her on saniyede bir yoklayan bir süreç izleyicisi (Auto-Watch) ile çalışır; uyanık kalma talebini yalnızca en az bir süreç eşik değerinin (varsayılan %20) üzerinde gerçekten CPU kullanırken tutar — bir model yanıtını ya da disk G/Ç'sini bekleyerek anlık olarak boşta kalan bir sürecin talebi durmadan açıp kapatmasını önlemek için 60 saniyelik bir tolerans süresiyle birlikte. İzlenen hiçbir şey çalışmıyorsa talep kendiliğinden serbest kalır. Sözün 'ajan bitti' yarısı budur ve bu, sabit bir zamanlayıcı ya da kapatmayı hatırlamanız gereken bir şey değildir.


Pil tarafında, sizin ayarladığınız bir otomatik-durdurma eşiği — varsayılan %20, %15 ile %50 arasında ayarlanabilir — talebi bırakarak macOS'un pili tüketmek yerine normal şekilde boşta-uykuya geçmesine izin verir. Bunun altında, ayarlanamayan, yaklaşık %4'lük bir taban bulunur: otomatik-durdurma çok agresif bir şekilde düşük ayarlansa bile, LidRun bir oturumun ölü bir kapanmaya kadar sürmesine izin vermek yerine, Mac'in bitmeye yakınken uyumasını ister. Termal tarafta ise LidRun, işletim sistemi seviyesindeki sinyalin yanı sıra gerçek SMC sıcaklığını ve CPU throttle yüzdesini okur; yaklaşık 98°C'de ya da throttle %50 veya altına indiğinde (serious) ve 100°C'de ya da throttle %30 veya altına indiğinde (critical) geri çekilir — bu, tek başına thermalState'e kıyasla donanımın gerçek durumuna çok daha yakındır.
Closed-Lid modu, yukarıda anlatılan aynı pmset -a disablesleep yöntemini kullanır; bu, her seferinde yönetici parolası istemek yerine bir kez onaylanmış, yetkili bir yardımcı süreç (helper) aracılığıyla uygulanır. 'Sleep when done' modu, izlenen hiçbir şey çalışmadığında 10, 20 ya da 30 dakika sonra otomatik olarak uykuya geçer; bir çökme koruması sinyali (heartbeat) ise önceki çökmüş bir oturumdan 1'de takılı kalmış bir disablesleep değerini tespit eder ve uygulama bir sonraki açılışında bunu otomatik olarak sıfırlar — yukarıda anlatılan o özel arıza türü, sizin bulmanızı beklemek yerine kendiliğinden kapatılır. Her şeyin altında hâlâ bir Safety Governor çalışır: pil ya da ısı güvensiz hale geldiğinde, kapak açık ya da kapalı fark etmeksizin, çalışmayı durdurabilir ya da uykuyu talep edebilir.
Keep Awake, pil otomatik-durdurma ve süreç izleme, süre sınırı olmadan ücretsizdir — LidRun temel özellikleri bir deneme sürümünün arkasına kilitlemez. Daha ağır ve daha riskli bir özellik olan Closed-Lid modu ise, bir Pro açma isteğinden önce denemeniz için sınırlı sayıda ücretsiz çalıştırma sunar. Gece boyu ve kapak-kapalı yapay zeka ajanı çalışmaları workflow'unuzun ara sıra değil düzenli bir parçasıysa, uyurken yapay zeka ajanlarını çalışır tutmak yazısını sonra okumaya değer.
LidRun, işinizi kapak kapalıyken, pil ve sıcaklık koruması yerleşik biçimde çalışır tutar.
LidRun zaten sizde mi? Kurulum rehberini okuyun →
LidRun'u yeni mi tanıdınız? Fiyatlara bakın →
Sık sorulanlar
Her zaman değil. Masanızda ve fişe takılıyken yapılan kısa bir çalışma için caffeinate -i your-agent-command ya da bir menü çubuğu uyanık-tutma uygulaması asıl sorunu — boşta-uyku zamanlayıcısını — çözer ve başka bir şeye gerek kalmaz. Daha uzun çalışmalar, gece boyu oturumlar ya da sadece pille yapılan işler için ise bir pil tabanına ve biraz termal farkındalığa da ihtiyacınız olur, çünkü ne caffeinate'te ne de bir arayüzlü uyanık-tutma uygulamasında bunların ikisi de yerleşik değildir.
macOS boşta geçen süreyi kullanıcı girişine göre ölçer — klavye olayları, fare hareketi ve ekran etkinliği. Bir yapay zeka ajanı bunların hiçbirini üretmez; hiçbir giriş aygıtına dokunmadan arka planda çalışır. Boşta zamanlayıcısı eşik değerine ulaştığında sistem uykuya dalar ve ajanın Terminal oturumunu sonlandırır ya da sürecini tamamen askıya alır.
Fişe takılı ve sabit bir ortamdaki bir makine için caffeinate genelde iyi çalışır. Pille çalışırken ise bir risk haline gelir, çünkü uyanık kalma talebini herhangi bir pil tabanı olmadan tutar — %40 şarj ve saatler süren bir ajan döngüsü, oturum kaybolmuş halde %0'da sona erebilir. Ayrıca harici bir ekran ya da pmset -a disablesleep olmadan kapalı bir kapak için hiçbir işe yaramaz; kapağı kapatmak, aynı talebin durduramadığı farklı bir uyku yolunu tetikler. Düşük-pil eşiğinde otomatik duran ve kapalı kapağı ayrı bir durum olarak ele alan bir araç, çalışmayı sürekli izlemenizi gerektirmeden her iki riski de azaltır.
Uzun bir build birkaç dakika sürer, temiz bir şekilde kapanır ve birçok build aracı derleme sırasında bir güç talebi tutar. Yapay zeka ajanları ise açık uçludur: döngüye girer, dış API'leri çağırır, kod yazıp test eder ve belirli bir bitiş süresi olmadan saatlerce çalışabilir. Uzun süre ile öngörülemez bitiş zamanının birleşimi, güç yönetimini gerçek bir sorun haline getiren şeydir — erken biten bir build size hiçbir şeye mal olmaz; gece yarısı ölen bir ajan ise tüm oturuma mal olur.
Olay bittikten sonra Activity Monitor işinize yaramaz — öldürülmüş bir süreç ortadan kalkmıştır. En net sinyal Terminal'de: zaman damgalarıyla gerçek uyku ve uyanma olaylarını görmek için pmset -g log | grep -i sleep komutunu çalıştırın ve bunu ajanınızın kendi kaydındaki ya da çıktısındaki son zaman damgasıyla karşılaştırın. Kaydedilen bir uyku olayıyla örtüşen bir boşluk, bunu doğrular.
Evet, ama yalnızca caffeinate ile değil. Kapağı kapatmak, sıradan boşta-uyku taleplerinin durduramadığı ayrı bir mekanizma olan clamshell uykusunu tetikler. İki ücretsiz seçenek var: harici bir ekran bağlamak (macOS o zaman kapalı MacBook'u bir masaüstü bilgisayar gibi görür, ekstra araca gerek kalmaz) ya da yönetici parolası isteyen ve bir şey onu açıkça kapatana kadar açık kalan sudo pmset -a disablesleep 1 komutunu çalıştırmak. Bir çökme sonucu takılı kalan ayarı otomatik sıfırlayan, üstüne aynı pil ve termal korumaları da sunan özel bir kapak-kapalı modu sağlayan güvenli bir çalışma zamanı katmanı, bu ikinci seçenekten sürekli göz kulak olma yükünü kaldırır.