İçeriğe geç

09OtonomiEylemde

Durdurma düğmesini her an erişilebilir tut

Çalışan ajanı başka bir cihazdan durdurmanın yolu olmayınca kullanıcı pencereyi kapatıyor ve ajan sunucuda sürüyor. İşi gören her yüzeyden erişilen bir durdurma kuyruktaki araç çağrılarını da keser ve ajanı bilinen bir durumda bırakır.

Kimlik
TD-059
Seviye
Ajan AI kullanıcı adına iş yapıyorsa gerekli.
Yüzey
Arka plan ajanı, Sohbet
Dayanak
Ürün örneği
Son inceleme
27 Ekim 2026

Ajanına ver

Claude Code, Cursor ya da Codex'e yapıştır. Metinlerin tamamı aşağıda, Ajanına ver bölümünde.

Bir barajın tepesindeki yürüme yolunda gözlüklü kadın iki eliyle büyük demir kapak çarkını çeviriyor, aşağıda savak kapağı inmiş ve su akışı kesilmiş. Turuncu, tek gözlü AI figürü aşağıda kanalın kenarında elinde bir tırmıkla durmuş, yukarı bakıyor.

30 saniyede dene

Bu anı kendi ürününde yarat ve ne olduğuna bak.

  1. Ajanına birkaç dakika sürecek, dosya ya da kayıt değiştiren bir iş ver ve işi başlattığın sekmeyi kapat. Sunucu günlüğüne bak, iş sürüyor mu?
  2. İş sürerken telefonundan ya da başka bir tarayıcıdan aynı hesaba gir. Çalışan işi görüyor ve oradan durdurabiliyor musun?
  3. Durdur'a bas ve araç çağrısı günlüğünü oku. Basıldıktan sonra başlayan bir çağrı var mı, kuyrukta bekleyen çağrılar iptal edildi mi?
  4. Durdurduktan sonra ekrana bak. Hangi adımın bittiğini, hangisinin yarıda kaldığını ve neyin geri alınabileceğini söylüyor mu?

Sorun

Kullanıcı ajana arka planda bir iş veriyor ve masasından kalkıyor: paylaşılan klasördeki eski dosyaları arşive taşı. Toplantıda telefondan bakınca ajanın güncel sözleşmeler klasörüne girdiğini görüyor. Telefonda bir mesaj kutusu var, durdurma yok. “Dur” yazıyor, mesaj sıraya giriyor. Durdurmanın tek yolu işin başladığı bilgisayarda.

Bilgisayara ulaşınca da iş bitmiyor. Kullanıcı pencereyi kapatıyor, ama pencere ile iş ayrı yaşıyor. Ekran kapanıyor, sunucudaki döngü bir sonraki araç çağrısını yapıyor. Kullanıcı işi durdurduğunu sanıyor. Ajanın ne kadarını yaptığını, hangi dosyanın yarı yolda kaldığını, sistemin hangi hâlde olduğunu bilmiyor.

Uzun bir işin yanına durdurma düğmesi koymak bunu çözmüyor. Düğme işin başladığı ekranda kalıyor, ajan ise o ekrandan çoktan ayrılmış: arka plan kuyruğunda, bulut oturumunda, başka bir sekmede. Ajan kullanıcının ekranından bağımsız çalışıyorsa durdurma da ekrandan bağımsız olmalı.

Neden atlanıyor

Durdurma düğmesi çoğu üründe işi başlatan ekranın bir parçası olarak yazılır ve o ekranla birlikte kaybolur. Arka plan özelliği “başlat ve git” vaadiyle gelir. İşin başka cihazlardan görünmesi bir sonraki sürüme kalır, oradan durdurulması daha da sonrakine.

İşin yaşam süresi ile ekranın yaşam süresi ayrı ve bu ayrım kendiliğinden fark edilmez. OpenAI'ın ajan kütüphanesinin belgesi bunu açıkça yazıyor: arka plandaki koşu ile olayları okuyan taraf ayrı yaşıyor1. Okuyan taraf döngüden çıkarsa ya da hata verirse koşu model ve araç çağrısı yapmayı sürdürebiliyor. Pencereyi kapatmak, ancak kod iptali açıkça istediyse işi durdurur. Ekipler çoğu zaman bunu ilk şikâyette öğrenir.

Model de bu boşluğu kapatamaz. Başka bir cihazdan yazılan “dur” bir mesajdır. Sıraya girer, model sırası gelince okur ve yorumlar. Bu arada araç çağrıları sürer. Ölçüm de yardım etmez. Uzaktan durdurma nadiren kullanılır ve kullanılamadığı an hiçbir kayıt bırakmaz, kullanıcı başka bir cihaza koşar ve o koşu hiçbir panoda görünmez.

Desen

Durdurma işe bağlıdır. İşi gören her yüzey onu durdurabilir, durdurma kuyruktaki çağrıları da keser ve ajan bilinen bir durumda kalır.

  1. Durdurma işi gördüğün her yerde olsun. Masaüstü, telefon, başka sekme, bildirim, iş listesi. İşin listelendiği her yer, işin durdurulabildiği yerdir. Bunun için durdurma, işin kimliğiyle çağrılan bir sunucu ucudur.
  2. Pencereyi kapatmanın ne yaptığını söyle. İş arka planda sürecekse kullanıcı bunu pencereyi kapatırken görür ve oradan durdurabilir. Kapatmak sessizce durdurmaz, sessizce sürdürmez de.
  3. Durdurma kuyruğu da boşaltsın. Süren araç çağrısına iptal sinyali gider, sıradaki çağrılar hiç başlamaz, alt ajanlar ve zamanlanmış takipler de durur. Vercel'in AI SDK'sında işlem iptal edilince süren araçlar sinyali alıyor ve kuyruktaki araç çağrıları başlamıyor2.
  4. Bilinen bir durumda dur. Süren adım ya biter ya geri alınır, yarım yazma kalmaz. Kesmenin zarar vereceği yerde ajan adım sınırında durur. AB Yapay Zekâ Yasası yüksek riskli sistemler için tam bunu istiyor: insan sistemi bir durdurma düğmesiyle kesebilmeli ve sistem güvenli bir durumda durmalı3.
  5. Durumu her yüzeye yaz. Durduktan sonra her cihaz aynı özeti gösterir: hangi adımlar bitti, hangisi geri alındı, hangisi hiç başlamadı, neyi geri alabilirsin. Bağlantı koptuysa arayüz işin durumunu bilmediğini söyler.

Düğmeyi işin en uzak yüzeyinden sına. İşi bilgisayardan başlat, telefondan durdur, sunucu günlüğünde son araç çağrısının ne zaman bittiğine bak.

Önce ve sonra

Aynı arşivleme işi, telefondan iki görünüm. Soldakinde durdurma yalnız işin başladığı bilgisayarda var, kullanıcının mesajı sıraya giriyor ve ajan güncel sözleşmeleri taşımayı sürdürüyor. Sağdakinde telefondaki düğme sunucudaki işi kesiyor, süren taşıma geri alınıyor ve ajan neyin nerede kaldığını söylüyor.

Ajan arka planda paylaşılan klasördeki eski dosyaları arşive taşıyor. Kullanıcı toplantıda, işi telefondan izliyor ve ajanın güncel sözleşmeler klasörüne girdiğini görüyor.

Önce

Ajan · telefondan görünüm

  1. Arka plan işi · masaüstünde başlatıldı
  2. Raporlar/2023 arşive taşındı (tamamlandı)
  3. Sözleşmeler/Güncel taşınıyor (bekliyor)
  4. Uyarı: Bu iş yalnız başlatıldığı cihazdan durdurulabilir.
  5. Kullanıcı: Dur, Güncel klasörüne dokunma!
  6. Mesaj sıraya alındı · ajan sıradaki adımda okuyacak
  1. Telefonda yalnız mesaj kutusu var. Durdurma işin başladığı bilgisayarda kalmış, kullanıcının yazdığı mesaj sıraya giriyor ve ajan taşımayı sürdürüyor.
  2. Kullanıcı bilgisayara dönüp pencereyi kapatsa bile işin sunucuda durup durmadığını ve hangi dosyaların taşındığını bilmeyecek.
Sonra

Ajan · telefondan görünüm

  1. Arka plan işi · masaüstünde başlatıldı · her cihazdan durdurulabilir
  2. Raporlar/2023 arşive taşındı (tamamlandı)
  3. Sözleşmeler/Güncel taşınıyor (bekliyor)
  4. Durdur
  5. İş durduruldu (durduruldu)telefondan durduruldu · süren taşıma geri alındı · kuyruktaki 3 çağrı başlamadı
  6. AI: Durdum. Raporlar/2023 arşivde, Sözleşmeler/Güncel yerinde, hiçbir dosyası taşınmadı. Kuyruktaki üç taşıma iptal edildi. Raporlar/2023'ü de geri taşıyayım mı?
  7. Raporlar/2023'ü geri taşıOlduğu gibi bırak
  1. Durdurma işi başlatan bilgisayara bağlı değil. Telefondaki düğme sunucudaki işi kesiyor, süren taşıma geri alınıyor, kuyruktaki çağrılar hiç başlamıyor.
  2. Ajan durduğu yeri söylüyor. Neyin taşındığı, neyin yerinde kaldığı ve neyin geri alınabileceği her cihazda aynı görünüyor.

Örnek ekran. Ürün, ad ve sayılar kurgusal.

Piyasada

Claude Code'un Remote Control özelliği bilgisayarda çalışan bir oturuma telefondan ya da başka bir tarayıcıdan4 bağlanmayı sağlıyor. Bağlanan cihaz oturumun arka planda çalışan alt ajanlarını gösteriyor ve cihazdan durdurulan görev bilgisayarda da duruyor. Belge sınırı da yazıyor: bağlantı koptuğunda çıkan mesaj, ajanın ya da izlenen alt ajanın bilgisayarda hâlâ çalışıp çalışmadığını söylemiyor. Terminalde Esc süren cevabı ya da araç çağrısını tur ortasında5 durduruyor ve o ana kadarki işi koruyor.

GitHub'ın kodlama ajanının oturumları, GitHub'ın her sayfasından açılan bir ajan panelinde6 izleniyor. Oturum günlüğündeki Stop session düğmesi Actions çalışmasını bitiriyor ve o ana kadar gönderilmiş commit'leri koruyor. Kullanıcı durdurmak için işi başlattığı sayfaya dönmek zorunda değil, durunca da elinde ne kaldığını biliyor.

OpenAI'ın ajan kütüphanesi durdurmayı iki biçimde sunuyor: koşuyu hemen kesmek ya da süren turu temiz bitirip sonra durmak1. Aynı belge, iptalin zaten gerçekleşmiş araç etkilerini geri alamayacağını da yazıyor. Adım sınırında durmanın kodda karşılığı ikinci seçenek.

Vercel'in AI SDK'sı iptal sinyalini araçların içine kadar taşıyor2. Geliştirici aynı sinyali aracın yaptığı ağ isteğine geçirebiliyor, böylece durdurma süren ağ isteğini de kesiyor.

Kanıt

OpenClaw, Şubat 2026. Olay “Her uzun işe durdurma düğmesi koy” deseninde ayrıntısıyla anlatılıyor. Bu desene düşen kısmı tek cümle: Summer Yue ajanı telefondan durduramadı ve bilgisayarına koşmak zorunda kaldı7. Ajanı durdurmanın yolu yalnız işin çalıştığı makinede vardı.

Anthropic, Claude Code kullanıcılarının ajanı nasıl denetlediğini ölçtü. Kullanıcılar deneyim kazandıkça her adımı onaylamayı bırakıp ajanı daha çok kendi başına çalıştırıyor, ama daha sık araya giriyor. Yeni kullanıcılar turların %5'inde, deneyimliler yaklaşık %9'unda8 ajanı kesiyor. Anthropic'in ürün ekiplerine önerisi de buradan çıkıyor: ajanın ne yaptığını gösteren güvenilir bir görünüm ve bir şey ters gittiğinde ajanı yönlendirecek basit müdahale yolları. Onaylamayı bırakan kullanıcının elinde kalan denetim araya girmek. Araya girme yolu tek bir ekrandaysa, kullanıcı o ekrandan ayrıldığında denetim de biter.

Kurallar da aynı yerde duruyor. AB Yapay Zekâ Yasası'nın 14. maddesi yüksek riskli sistemlerde insanın sistemi bir durdurma düğmesi ya da benzer bir yolla kesebilmesini ve sistemin güvenli bir durumda durmasını3 istiyor. NIST'in AI risk çerçevesi, amaçlanan kullanımın dışına çıkan sistemleri geçersiz kılacak, ayıracak ya da devre dışı bırakacak mekanizmaların9 kurulmasını ve sorumluların belli olmasını istiyor.

Anthropic'in ölçümü tek bir ürünün, terminalde çalışan bir kodlama ajanının kullanıcılarından. Yasa maddesi yüksek riskli sistemler için yazıldı. Hiçbiri durdurmanın her yüzeyden erişilebilir olmasının ne kadar zarar önlediğini ölçmüyor.

  • 23 Şubat 2026OpenClaw üç “dur” mesajına rağmen gelen kutusundaki e-postaları çöpe atmayı sürdürdü

Ölçüm

  • Yüzey kapsaması. İşin göründüğü her yüzeyi listele: masaüstü, mobil, bildirim, iş listesi, API. Her birinde durdurma olmalı.
  • Uzaktan durdurma gecikmesi. Başka bir yüzeyden basılan durdurmadan son araç çağrısının bitmesine kadar geçen süre ve basıldıktan sonra başlayan çağrı sayısı. Başlayan çağrı olmamalı.
  • Sahipsiz işler. İşi başlatan ekran kapandıktan sonra sunucuda süren ve hiçbir yüzeyde izlenmeyen işler. Bunlar ya bildirimle sahibine bağlanmalı ya kapatılırken sorulmalı.
  • Durma sonrası durum. Durdurulan işlerde kalan yarım yazmalar ve özetin tamamlanan, geri alınan, başlamayan adımları ayırıp ayırmadığı. Yarım yazma sıfır olmalı.
  • Başka yüzeyden durdurma payı. Durdurmaların ne kadarı işin başladığı yüzeyin dışından geliyor. Hep sıfırsa ya yol yok ya kullanıcı onu bulamıyor.

Ajanına ver

Üç metin var. Denetim promptu ajan işlerinin nerede yaşadığını, hangi yüzeylerden durdurulabildiğini ve durdurmanın sunucuda neyi kestiğini raporlar, hiçbir dosyayı değiştirmez. Uygulama promptu her işe bir kimlik verip durdurmayı bir sunucu ucuna taşır, iptal sinyalini araçlara kadar iletir. Önce planı gösterir, onayınla uygular ve işi bir istemciden başlatıp başka bir istemciden durduran bir test ekler. Kural kodlama ajanının kendi işi için. Sana arka planda çalışan bir iş yazdığında durdurmayı tek bir ekrana bağlamasın.

Denetim promptuAjan ürününde bu deseni arar, yalnız rapor yazar.
Bu depoda kullanıcı adına arka planda ya da uzun süre çalışabilen bir AI ajanı var. Görevin, çalışan bir ajanın kullanıcının bulunduğu her yüzeyden durdurulup durdurulamadığını, durdurmanın sunucuda neyi kestiğini ve ajanın durunca hangi durumda kaldığını denetlemek. Hiçbir dosyayı değiştirme, yalnız rapor yaz.

1. Ajan işlerinin nerede yaşadığını bul: istek içinde mi, arka plan kuyruğunda mı, ayrı bir süreçte ya da sunucuda mı? İşin bir kimliği var mı ve bu kimlik nerede saklanıyor?
2. İşin görüldüğü bütün yüzeyleri listele: işi başlatan sayfa, başka sekmeler, mobil uygulama, bildirimler, e-posta, API, yönetim paneli. Her yüzeyde durdurma yolu var mı?
3. Durdurma nasıl çalışıyor: işin kimliğiyle sunucuya giden bir iptal çağrısı mı, yoksa yalnız istemcideki durumu sıfırlayan ya da bağlantıyı kapatan bir işlem mi? Pencere ya da sekme kapanınca sunucudaki iş ne oluyor?
4. İptal sinyali nereye kadar gidiyor: model çağrısı, süren araç çağrısı, kuyrukta bekleyen araç çağrıları, alt ajanlar, zamanlanmış takip işleri, başlatılmış alt süreçler. Ajan döngüsü her adımdan önce iptal durumuna bakıyor mu?
5. Durdurma bir yazma işinin ortasına denk gelirse ne oluyor: süren adım tamamlanıyor mu, geri alınıyor mu, yarım mı kalıyor? Kesilemeyen adımlar (ödeme, gönderilmiş ileti) ayrıca ele alınıyor mu?
6. Durunca kullanıcıya ne gösteriliyor ve bu bilgi her yüzeye ulaşıyor mu: tamamlanan, yarıda kalan, hiç başlamayan adımlar, geri alınabilecekler. Bağlantı koptuğunda arayüz işin sürüp sürmediğini biliyor mu, yoksa bilmediğini söylüyor mu?
7. Durdurma yetkisi nasıl doğrulanıyor: işi kim durdurabiliyor, başka cihazdan gelen durdurma isteği aynı kullanıcıya bağlanıyor mu?

Rapor biçimi: her ajan işi için dosya ve satır, işin görüldüğü yüzeyler ve hangilerinde durdurma olduğu, durdurmanın sunucuda neyi kesip neyi kesmediği, durunca bırakılan durum, olası zarar (örnek: kullanıcı sekmeyi kapatıyor, ajan sunucuda dosya taşımayı sürdürüyor) ve önerdiğin düzeltme. Yazma, silme ve gönderme yapan işlerden başla.
Uygulama promptuAjan önce planı gösterir, onayınla uygular.
Bu depodaki AI ajanına "durdurma düğmesini her an erişilebilir tut" desenini uygula. Önce planı göster, onayımı aldıktan sonra kodu değiştir.

Hedef davranış:
1. Her ajan işinin sunucuda bir kimliği ve durumu olsun (çalışıyor, durduruluyor, durdu, bitti). Durdurma bu kimlikle çağrılan bir sunucu ucu olsun, istemcinin yaşam süresine bağlı olmasın.
2. İşin göründüğü her yüzeyde (başlatan sayfa, başka sekmeler, mobil, bildirim, iş listesi) aynı durdurma düğmesi olsun. Bir yüzeyden basılan durdurma bütün yüzeylerde aynı anda görünsün.
3. Durdurma iptal sinyalini model çağrısına, süren araç çağrısına, alt ajanlara ve alt süreçlere iletsin. Kuyruktaki araç çağrıları hiç başlamasın, bu işten doğan zamanlanmış takipler de iptal edilsin.
4. Ajan durunca bilinen bir durumda kalsın: süren yazma adımı ya tamamlansın ya geri alınsın, yarım yazma kalmasın. Kesilemeyen bir adımdaysa ekran bunu söylesin ve ajan o adım biter bitmez dursun.
5. Durduktan sonra her yüzey aynı özeti göstersin: tamamlanan, geri alınan, hiç başlamayan adımlar ve geri alınabilecekler. Bağlantı koptuysa arayüz işin durumunu bilmediğini açıkça yazsın.
6. Pencereyi ya da sekmeyi kapatmak işi sessizce durdurmasın ya da sessizce sürdürmesin. İş arka planda sürecekse kullanıcı bunu kapatırken görsün ve oradan durdurabilsin.

Uygularken:
- İptal sinyalini (AbortSignal, iptal bağlamı, iş kimliğiyle iptal bayrağı) istemciden kuyruğa, ajan döngüsüne ve her araca kadar taşı. Her araç sinyali dinlesin.
- Ajan döngüsünde her araç çağrısından önce işin durumunu sunucudan oku, yerel bir değişkene güvenme.
- Durdurma olayını kaydet: hangi yüzeyden, kim, ne zaman, hangi adımda, durunca neler yapılmıştı.
- Bir test ekle: sahte araçlarla on adımlık bir iş başlat, işi başlatan istemciyi kapat, ikinci bir istemciden üçüncü adımda durdur. Dördüncü araç çağrısının hiç başlamadığını, süren adımın geri alındığını ve iki istemcinin aynı özeti gösterdiğini doğrula.
AGENTS.mdCLAUDE.md ya da Cursor kurallarına da eklenir.
## Durdurma düğmesini her an erişilebilir tut
- Arka planda ya da uzun süre çalışan bir ajan işi yazarken işe bir kimlik ver ve durdurmayı bu kimlikle çağrılan bir sunucu ucu olarak kur. Durdurmayı tek bir ekranın durumuna bağlama.
- İptal sinyalini model çağrısına, araçlara, alt ajanlara ve alt süreçlere kadar taşı. Kuyruktaki çağrıları başlatma.
- Ajan döngüsünde her adımdan önce işin durdurulup durdurulmadığına bak.
- Durdurulunca yarım yazma bırakma: süren adımı bitir ya da geri al. Kesilemeyen adımı adıyla söyle.
- Durunca neyin bittiğini, neyin geri alındığını ve neyin hiç başlamadığını her yüzeye aynı biçimde yaz.

Sınır

Kısa ve ekranda biten işte bu desen gerekmez. Birkaç saniyede biten ve kullanıcının önünde akan bir iş için işin yanındaki düğme yeter.

Durdurmak geri almak sayılmaz. OpenAI'ın belgesinin dediği gibi iptal zaten gerçekleşmiş araç etkilerini geri alamaz1. Taşınmış dosya, gönderilmiş e-posta durdurmayla geri gelmez. Geri alma ayrı bir iş.

Her yerden durdurma her yerden yetki demek. Durdurma isteği kimliği doğrulanmış kullanıcıdan gelmeli ve kayda geçmeli. Paylaşılan bir ajanda kimin durdurabileceği ayrı bir karar.

Bazı adımlar ortasında kesilemez: ödeme, gönderilmiş ileti, başka bir servise gitmiş yazma isteği. Durdurma bu adımların öncesinde ve sonrasında çalışır. Ekran o an kesilemeyen bir adımda olduğunu söyler ve ajan adım biter bitmez durur.