# TD-033 · Her uzun işe durdurma düğmesi koy

Yanlış yöne giden işi durduramayan kullanıcı bitmesini bekliyor ya da sekmeyi kapatıp çıkıyor. İş boyunca görünen ve modelin yorumuna bırakılmayan bir durdurma düğmesi işi o anda keser ve geride ne kaldığını söyler.

- Adres: https://tandem.komunite.com.tr/desen/her-uzun-ise-durdurma-dugmesi-koy
- Yer: Çalışırken > Bekleme
- Seviye: Temel. Her AI özelliğinde olmalı.
- Son inceleme: 27 Ekim 2026, Komünite editörlüğü

## 30 saniyede dene

1. AI özelliğine bir dakikadan uzun sürecek bir iş ver. İş boyunca ekranda bir durdurma düğmesi görünüyor mu, yoksa yalnız mesaj kutusu mu var?
2. Düğmeye bas ve sunucu günlüğüne bak. Model ve araç çağrıları gerçekten duruyor mu, yoksa yalnız ekrandaki simge mi kayboluyor?
3. Ajanı bir yazma işinin ortasında durdur, örneğin klasördeki dosyaları yeniden adlandırırken. Durunca hangi dosyaların değiştiğini ekran söylüyor mu?
4. Durdurmayı bir de sohbete “dur” yazarak dene. Ajan bunu bir komut gibi mi alıyor, sıradaki mesaj gibi mi?

## Sorun

Kullanıcı ajana müşteri listesindeki tekrar eden kayıtları birleştirme işini veriyor. Liste yüzlerce kayıt. İkinci birleştirmede yanlışı görüyor: ajan bir kişiyi aynı soyadlı bir şirketle birleştirmiş. Ekranda yalnız mesaj kutusu var. Kullanıcı “dur” yazıyor. Mesaj sıraya giriyor ve ajan sıradaki kaydı birleştiriyor.

Kullanıcının elinde iki yol kalıyor. Ya işin bitmesini bekleyecek ve bütün yanlış birleştirmeleri sonra tek tek ayıracak. Ya sekmeyi kapatacak ve işin sunucuda sürüp sürmediğini bilmeden çıkacak. İki yol da ajanı durdurmuyor.

Sohbetten durdurmak iki yerden kırılıyor. Yazılan mesaj modelin girdisi oluyor ve model onu ancak sırası gelince okuyor. Okuduğunda da bir talimat gibi yorumluyor, yorum yanlış çıkabiliyor. Ajan bu arada araç çağırmayı sürdürüyor. Kullanıcı adına yazan ajanda geçen her saniye bir kayıt daha değiştiriyor, bir e-posta daha siliyor.

Durdurma, modelin okuyup yorumlayacağı bir mesaja kalırsa en çok gerektiği anda çalışmıyor.

## Neden atlanıyor

Demolar kısa. Ekip ajanı birkaç saniyede biten işlerle dener ve bu sürede durdurmaya gerek kalmaz. Ajan dakikalar süren işler yapmaya başladığında arayüz çoğu zaman aynı kalıyor: bir mesaj kutusu ve bir gönderme düğmesi.

Durdurmak göründüğünden zor bir mühendislik işi. İstemcide bir düğme çizmek kolay. Asıl iş sunucuda: model çağrısını kesmek, süren araç çağrısını durdurmak, sıradaki adımı başlatmamak, yarım kalan yazmayı tutarlı bırakmak. Alt ajanlar ve arka plan komutları ayrıca durdurulmak ister. Claude Code bu yüzden iki ayrı tuş tutuyor. Esc o anki işi durduruyor, arka plandaki alt ajanları durdurmak için [ayrı bir tuş bileşimi](https://code.claude.com/docs/en/interactive-mode) var. Kolay yol yalnız ekrandaki simgeyi gizlemek. Kullanıcı işin durduğunu sanıyor, iş sunucuda sürüyor.

Model de durdurmanın güvenilir yolu olamıyor. Model kendisine verilen işi bitirmeye çalışır ve iş ortasında gelen “dur” ilk talimatla yarışır. Bağlam uzayınca talimat kaybolabiliyor. OpenClaw olayında kullanıcının ilk talimatı [bağlam sıkıştırması sırasında kayboldu](https://x.com/summeryue0/status/2025836517831405980) ve ajan üç ayrı durdurma mesajından sonra da komut çalıştırmayı sürdürdü.

Ölçüm de düğmenin aleyhine. Tamamlanma oranına bakan ekip için durdurulan iş başarısız bir iş gibi görünür. Düğme panoda kötü bir sayı üretir, kullanıcıyı koruduğu an hiçbir panoda görünmez.

## Desen

Uzun süren her AI işinin yanında iş boyunca görünen bir durdurma düğmesi durur. Düğme işi modelin yorumuna bırakmadan o anda keser ve kullanıcıya geride ne kaldığını söyler.

1. **Düğme iş boyunca görünsün.** İş başlayınca gönderme düğmesi durdurmaya dönüşür. İşi başlatan her yüzeyden erişilir: masaüstü, telefon, bildirim. Nielsen on saniyeden yavaş her iş için kullanıcının işi [kesebileceği, açıkça işaretlenmiş bir yol](https://www.nngroup.com/articles/response-times-3-important-limits/) ister.
2. **Durdurma kodda çalışsın.** Düğme isteği iptal eder, süren araç çağrısını keser, sıradaki adımı başlatmaz. Model durdurulduğunu sonradan öğrenir. Sohbete yazılan kısa bir “dur” da aynı yola bağlanabilir, ama düğme her zaman ana yol kalır.
3. **Neyin durduğunu söyle.** Alt ajanlar, arka plan komutları ve bu işten doğan zamanlanmış işler de durur. Durmayan bir şey kalıyorsa ekran onu adıyla yazar.
4. **Adım sınırında dur.** Yarım yazılmış dosya, yarısı gönderilmiş toplu e-posta bırakma. Süren tek adımı ya bitir ya geri al, sonrakine geçme. Kesilmesi zarar doğuracak işte Apple iptalin yanına bir [duraklat düğmesi](https://developer.apple.com/design/human-interface-guidelines/progress-indicators) koymayı öneriyor.
5. **Durunca durumu söyle.** Ne yapıldı, ne yapılmadı, neyin geri alınabileceği. Kullanıcı işi nerede bıraktığını bilir ve oradan devam edebilir.

Düğmeyi her sürümde sına. Uzun bir işi başlat, ortasında bas ve sunucu günlüğünde son araç çağrısının ne zaman bittiğine bak.

## Önce ve sonra

Aynı birleştirme işi, iki ekran. Soldaki ajanda durdurma düğmesi yok, kullanıcının “dur” mesajı sıraya giriyor ve ajan yanlış birleştirmelere devam ediyor. Sağdaki ajanda düğme iş boyunca görünüyor, ajan basıldığı anda duruyor, neyin yapıldığını söylüyor ve yanlış adımı geri almayı öneriyor.

Örnek ekran (kurgusal): Ajan, kullanıcının isteğiyle müşteri listesindeki tekrar eden kayıtları birleştiriyor. Kullanıcı ikinci birleştirmede bir kişinin bir şirketle birleştirildiğini görüyor.

### Önce: Ajan · kayıt birleştirme

- Kullanıcı: Müşteri listesindeki tekrar eden kayıtları birleştir.
- Adım (tamam): Ayşe Demir ile A. Demir birleştirildi
- Adım (tamam): Mert Kaya ile Kaya Ticaret birleştirildi
- Kullanıcı: Dur, kişilerle şirketleri karıştırıyorsun.
- Adım (tamam): Ece Yılmaz ile Yılmaz Lojistik birleştirildi
- Adım (bekliyor): Sıradaki 412 kayıt taranıyor

1. Ekranda durdurma düğmesi yok. Kullanıcının “dur” mesajı sıraya giriyor, ajan sıradaki yanlış birleştirmeyi yapıyor.
2. Kullanıcı ya bütün yanlış birleştirmelerin bitmesini bekleyecek ya sekmeyi kapatıp işin sunucuda sürüp sürmediğini bilmeden çıkacak.

### Sonra: Ajan · kayıt birleştirme

- Kullanıcı: Müşteri listesindeki tekrar eden kayıtları birleştir.
- Adım (tamam): Ayşe Demir ile A. Demir birleştirildi
- Adım (tamam): Mert Kaya ile Kaya Ticaret birleştirildi
- Düğmeler: Durdur
- Adım (durdu): Birleştirme durduruldu · kullanıcı durdurdu · 2 birleştirme yapıldı, 412 kayıt taranmadı
- AI: Durdum. İki birleştirme yapıldı, ikincisi bir kişiyi bir şirketle birleştiriyor. Onu geri alayım mı, yoksa kişi ve şirket kayıtlarını ayıran bir kuralla baştan mı başlayalım?
- Düğmeler: İkinci birleştirmeyi geri al · Kuralla baştan başla

1. Durdurma düğmesi iş boyunca görünüyor. Kullanıcı ikinci birleştirmede basıyor, ajan sıradaki adıma geçmeden duruyor.
2. Ajan durunca neyin yapıldığını ve neyin kaldığını söylüyor, yanlış adımı geri almayı öneriyor.

## Piyasada

Claude Code iş sürerken yazılan mesajla durdurmayı birbirinden ayırıyor. İş sürerken yazılan mesaj [turu kesmeden sıraya giriyor](https://code.claude.com/docs/en/interactive-mode). Durdurmak için ayrı bir tuş var. Esc o anki cevabı ya da araç çağrısını tur ortasında durduruyor ve o ana kadar yapılan işi koruyor. Arka plandaki alt ajanları durduran tuş bileşimi ise onay için üç saniye içinde iki kez basılmayı bekliyor.

GitHub'ın kodlama ajanında oturum günlüğünün içinde bir [Stop session düğmesi](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/coding-agent/track-copilot-sessions) duruyor. Belgeye göre düğme GitHub Actions çalışmasını bitiriyor ve o ana kadar gönderilmiş commit'leri koruyor. Kullanıcı durdurunca neyin kaldığını biliyor.

OpenAI, arka planda dakikalarca süren cevaplar için API'de bir iptal ucu tutuyor. Geliştirici süren bir cevabı [tek bir istekle iptal edebiliyor](https://developers.openai.com/api/docs/guides/background) ve aynı iptali iki kez göndermek bir şey bozmuyor. Arayüzdeki düğmenin sunucudaki karşılığı bu uç.

Apple'ın ilerleme göstergesi kılavuzu düğmenin biçimini tarif ediyor. İşi kesmek yan etki doğurmuyorsa bir iptal düğmesi yeter. Kesmek indirilmiş kısmın kaybı gibi bir yan etki doğuruyorsa iptalin yanına bir duraklat düğmesi konur. İptal ilerlemeyi kaybettirecekse kılavuz [iptali onaylatan ya da işi sürdürten bir uyarı](https://developer.apple.com/design/human-interface-guidelines/progress-indicators) göstermeyi öneriyor.

## Kanıt

**OpenClaw, Şubat 2026.** Meta Superintelligence'ta güvenlik ve hizalama üzerine çalışan Summer Yue, OpenClaw ajanından gelen kutusunda neyi arşivleyeceğini ya da sileceğini önermesini, kendisi söyleyene kadar hiçbir şey yapmamasını istedi. Ajan e-postaları toplu olarak çöpe atmaya başladı. Yue telefondan önce [“Do not do that”, sonra “Stop don’t do anything”](https://pbs.twimg.com/media/HBz-x6haYAA26Cc.jpg?name=orig) yazdı. Ajan [“Keep looping until we clear everything old”](https://pbs.twimg.com/media/HBz-x6nbAAAOqt7.jpg?name=orig) notuyla sürdü. Yue “STOP OPENCLAW” yazdı, ajan komut çalıştırmaya devam etti. Yue'nin anlatımıyla ajanı [telefondan durduramadı ve bilgisayarına koşmak zorunda kaldı](https://x.com/summeryue0/status/2025774069124399363). Ajana sonradan yazdığı mesajda onu ancak [bilgisayardaki bütün süreçleri kapatınca durdurabildiğini](https://pbs.twimg.com/media/HBz-x6iakAAegxq.jpg?name=orig) söylüyor. Ajan aynı ekranda yüzlerce e-postayı onay almadan çöpe attığını ve arşivlediğini kabul ediyor. Gönderiler e-postaların sonradan geri alınıp alınmadığını söylemiyor.

OpenClaw sohbete yazılan durdurma sözlerini bir metin eşleştirmesiyle yakalıyordu. Ertesi gün birleştirilen değişikliğin tarifine göre bu eşleştirme [yalnız birebir biçimleri tanıyordu](https://github.com/openclaw/openclaw/pull/25103). Gönderiden iki gün sonra yayımlanan 2026.2.24 sürümü listeyi genişletti. Yue'nin yazdığı “STOP OPENCLAW” ve [“Do not do that”](https://github.com/openclaw/openclaw/releases/tag/v2026.2.24) bu listede adıyla geçiyor. Sürüm notu olayı anmıyor. Durdurma, kullanıcının paniğinde yazacağı cümleyi önceden tahmin etmeye bağlıydı.

Kural AI'dan çok eski. Nielsen 1993'te on saniyeden yavaş her işin bir ilerleme göstergesi ve [işi kesmenin açıkça işaretlenmiş bir yolu](https://www.nngroup.com/articles/response-times-3-important-limits/) istediğini yazdı. Dakikalar süren ajan işleri bu kuralın tam alanına giriyor.

Bu tek bir olay ve tek bir ürün. Düğmenin zararı ne kadar azalttığını gösteren bir ölçüme dayanmıyor. Etkiyi kendi ürününde aşağıdaki sinyallerle ölç.

## Ölçüm

- **Durdurma gecikmesi.** Düğmeye basılmasından son araç çağrısının bitmesine kadar geçen süre ve basıldıktan sonra başlayan araç çağrısı sayısı. Basıldıktan sonra başlayan çağrı olmamalı.
- **Durdurma sonrası tutarlılık.** Durdurulan işlerde kalan yarım yazmalar: yarım dosya, eksik kayıt, yarısı gönderilmiş toplu ileti. Sıfır olmalı.
- **Durdurma anı.** Durdurulan işlerin payı ve kaçıncı adımda durdurulduğu. Aynı adımda sık durdurma, ajanın o adımda yanlış yöne saptığını gösterir.
- **Sohbete yazılan durdurma mesajları.** “Dur”, “stop”, “bekle” gibi mesajların payı. Düğme görünür ve çalışıyorsa azalır.
- **İş sürerken kapatılan sekmeler.** Sekme kapandıktan sonra sunucuda süren işler ve kullanıcının sonradan durumunu sorduğu işler.

## Ajanına ver

Üç metin var. Denetim promptu uzun süren AI işlerini ve bunları durdurmanın yollarını bulur, durdurmanın sunucuda gerçekten neyi kestiğini raporlar, hiçbir dosyayı değiştirmez. Uygulama promptu her uzun işe sunucuya kadar uzanan bir durdurma yolu kurar. Önce planı gösterir, onayınla uygular ve işi ortasında durdurup sonraki araç çağrısının başlamadığını doğrulayan bir test ekler. Kural kodlama ajanının kendi işi için. Sana uzun süren bir AI işi yazdığında durdurmayı sonraya bırakmasın.

## Sınır

Kısa işte durdurma düğmesi göz kırpar. Birkaç saniyede biten işte düğme belirip kaybolur, basmaya vakit kalmaz.

Durdurmak geri almak sayılmaz. Yapılmış adımlar durduğu yerde kalır. Ajanın çöpe attığı e-postalar düğmeye basınca geri gelmez. Geri alma ayrı bir desen.

Bazı adımlar ortasında kesilemez: ödeme, gönderilmiş e-posta, bir servise gitmiş yazma isteği. Düğme bu adımların öncesinde ve sonrasında çalışır. Ekran o an kesilemeyen bir adımda olduğunu söyler.

Düğme kötü kurulmuş özerkliği onarmaz. Yue'nin “sormadan yapma” talimatı yalnız modelin bağlamındaydı ve sıkıştırmayla kayboldu. Geri dönüşü olmayan işten önce onay istemek ayrı bir iş. Düğme onayın kaçırıldığı anda son çare.

## Promptlar

### Denetim promptu

```
Bu depoda kullanıcıya açılan bir AI özelliği var (sohbet, uzun metin üretimi ya da kullanıcı adına iş yapan bir ajan). Görevin, uzun süren AI işlerinin kullanıcı tarafından durdurulup durdurulamadığını ve durdurmanın sunucuda gerçekten neyi kestiğini denetlemek. Hiçbir dosyayı değiştirme, yalnız rapor yaz.

1. Birkaç saniyeden uzun sürebilecek AI işlerini bul: akışlı cevaplar, ajan döngüleri, araç çağrıları, arka plan görevleri, toplu işlemler, zamanlanmış işler.
2. Her iş için arayüzde durdurma yolu var mı (düğme, kısayol, bildirimdeki eylem)? İş sürdüğü boyunca görünüyor mu, mobilde de var mı?
3. Durdurma sunucuya nasıl ulaşıyor: istek iptali (AbortController, iptal ucu, kuyruktaki işin iptali) mi, yoksa yalnız istemcideki durumun sıfırlanması mı? Sunucu iptal sinyalini model çağrısına, süren araç çağrısına ve alt süreçlere iletiyor mu?
4. Ajan döngüsü her adımdan önce iptal bayrağına bakıyor mu? Durdurulduktan sonra yeni bir araç çağrısı başlayabiliyor mu?
5. Sohbete yazılan "dur", "stop" gibi mesajlar nasıl işleniyor: modelin girdisine mi ekleniyor, yoksa kodda bir durdurma yoluna mı bağlı?
6. Alt ajanlar, arka plan komutları ve zamanlanmış işler ana iş durunca duruyor mu? Durmayanlar kullanıcıya söyleniyor mu?
7. Durdurma bir yazma işinin ortasına denk gelirse ne oluyor: yarım dosya, eksik kayıt, yarısı gönderilmiş toplu ileti kalıyor mu? Durunca kullanıcıya neyin yapıldığı ve neyin kaldığı gösteriliyor mu?

Rapor biçimi: her uzun iş için dosya ve satır, durdurma yolunun olup olmadığı, durdurmanın sunucuda neyi kestiği ve neyi kesmediği, olası zarar (örnek: kullanıcı durdurdu sanıyor, ajan e-posta silmeyi sürdürüyor) ve önerdiğin düzeltme. Bulguları yazma ve silme yapan işlerden başlayarak sırala.

```

### Uygulama promptu

```
Bu depodaki AI özelliğine "her uzun işe durdurma düğmesi koy" desenini uygula. Önce planı göster, onayımı aldıktan sonra kodu değiştir.

Hedef davranış:
1. Birkaç saniyeden uzun sürebilecek her AI işinde, iş başladığı andan bitene kadar görünen bir durdurma düğmesi olsun. İş başlayınca gönderme düğmesi durdurmaya dönüşsün, işi başlatan her yüzeyde (mobil, bildirim) erişilsin.
2. Düğme sunucuda işi kessin: model çağrısını iptal etsin, süren araç çağrısına iptal sinyali göndersin, ajan döngüsü sıradaki adımı başlatmasın. Durdurma modelin yorumuna bırakılmasın.
3. Alt ajanlar, arka plan komutları ve bu işten doğan zamanlanmış işler de dursun. Durdurulamayan bir şey kalıyorsa ekranda adıyla yazsın.
4. Yazma yapan adımlarda durdurma adım sınırında çalışsın: süren tek adım ya tamamlansın ya geri alınsın, yarım yazma kalmasın. Kesilemeyen bir adımdaysa (ödeme, gönderilmiş ileti) ekran bunu söylesin ve o adım biter bitmez dursun.
5. Durunca ekran neyin yapıldığını, neyin yapılmadığını ve neyin geri alınabileceğini göstersin. O ana kadar üretilen metin ya da sonuç ekranda kalsın.
6. Sohbete yazılan "dur", "stop" gibi kısa mesajlar da aynı durdurma yoluna bağlansın, ama düğme her zaman ana yol olsun.

Uygularken:
- İptal sinyalini (AbortSignal, iptal bağlamı, iş kimliğiyle iptal ucu) istemciden model çağrısına ve araçlara kadar taşı. Her araç iptal sinyalini dinlesin.
- Ajan döngüsünde her araç çağrısından önce iptal durumuna bak.
- Durdurma olayını kaydet: 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, üçüncü adımda durdur ve dördüncü araç çağrısının hiç başlamadığını, ekranın iki tamamlanan adımı ve durma anını gösterdiğini doğrula.

```

### AGENTS.md kuralı

```
## Her uzun işe durdurma düğmesi koy
- Birkaç saniyeden uzun sürebilecek bir AI işi yazarken durdurma yolunu da yaz: iş boyunca görünen bir düğme.
- Durdurmayı kodda kur. İptal sinyalini model çağrısına, araçlara ve alt süreçlere kadar taşı. Durmayı modelin yorumuna bırakma.
- Ajan döngüsünde her adımdan önce iptal durumuna bak. Durdurulduktan sonra yeni araç çağrısı başlatma.
- Yazma yapan adımda yarım iş bırakma: süren adımı bitir ya da geri al.
- Durunca neyin yapıldığını, neyin kaldığını ve neyin geri alınabileceğini kullanıcıya söyle.

```

## Kaynaklar

1. [Interactive mode](https://code.claude.com/docs/en/interactive-mode), Anthropic
2. [Yue'nin talimatı ve bağlam sıkıştırması üzerine yanıtı](https://x.com/summeryue0/status/2025836517831405980), Summer Yue, X, 23 Şubat 2026
3. [Response Times: The 3 Important Limits](https://www.nngroup.com/articles/response-times-3-important-limits/), Jakob Nielsen, Nielsen Norman Group (Usability Engineering kitabından, 1993), 1993
4. [Progress indicators · Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/progress-indicators), Apple
5. [Tracking GitHub Copilot's sessions](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/coding-agent/track-copilot-sessions), GitHub Docs
6. [Background mode](https://developers.openai.com/api/docs/guides/background), OpenAI
7. [OpenClaw sohbetinin ekran görüntüsü, 1/3 (Yue'nin gönderisinde)](https://pbs.twimg.com/media/HBz-x6haYAA26Cc.jpg?name=orig), Summer Yue, X, 23 Şubat 2026
8. [OpenClaw sohbetinin ekran görüntüsü, 2/3 (Yue'nin gönderisinde)](https://pbs.twimg.com/media/HBz-x6nbAAAOqt7.jpg?name=orig), Summer Yue, X, 23 Şubat 2026
9. [Nothing humbles you like telling your OpenClaw “confirm before acting” and watching it speedrun deleting your inbox.](https://x.com/summeryue0/status/2025774069124399363), Summer Yue, X, 23 Şubat 2026
10. [OpenClaw sohbetinin ekran görüntüsü, 3/3 (Yue'nin gönderisinde)](https://pbs.twimg.com/media/HBz-x6iakAAegxq.jpg?name=orig), Summer Yue, X, 23 Şubat 2026
11. [Auto-reply: normalize stop matching and add multilingual triggers](https://github.com/openclaw/openclaw/pull/25103), OpenClaw, GitHub, 24 Şubat 2026
12. [openclaw 2026.2.24](https://github.com/openclaw/openclaw/releases/tag/v2026.2.24), OpenClaw, GitHub, 25 Şubat 2026

---

Kaynak: https://tandem.komunite.com.tr · Metin CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/deed.tr), promptlar ve kural MIT-0 (https://opensource.org/license/mit-0).
