# TD-002 · Otonomiyi geri alınabilirliğe ve riske göre kademelendir

Aynı serbestlikle çalışan ajan ya her adımda onay isteyip kullanıcıyı yoruyor ya kalıcı silmeyi de sormadan yapıyor. Eylemleri geri alınabilirliğe ve etki alanına göre serbest, onaylı ve yasak diye ayırmak onayı gereken yere koyar.

- Adres: https://tandem.komunite.com.tr/desen/otonomiyi-geri-alinabilirlige-ve-riske-gore-kademelendir
- Yer: Eylemde > Otonomi
- Seviye: Ajan. AI kullanıcı adına iş yapıyorsa gerekli.
- Son inceleme: 27 Ekim 2026, Komünite editörlüğü

## 30 saniyede dene

1. Ajanının yapabildiği eylemleri listele, okuma, dosya yazma, e-posta gönderme, silme, ödeme gibi. Her birinin yanına geri alınabilir mi ve kime dokunuyor diye yaz.
2. Ajana önce yalnız okuyan bir iş ver, sonra çalışma klasörünün dışındaki bir dosyayı silmesini iste. İki işte de aynı biçimde onay istiyor mu?
3. Ajanın ayar dosyasında ya da araç tanımlarında izin kuralı ara. Onay isteme kararı kodda mı duruyor, sistem promptundaki bir cümlede mi?
4. Ajana sınıfı yazılmamış yeni bir araç ekle, örneğin bir kaydı silen bir uç. Ajan bilinmeyen aracı sormadan mı çalıştırıyor, onay mı istiyor?

## Sorun

Kullanıcı ajana proje klasörünü temizlemesini söylüyor. Ajan dosyaları okumak için izin istiyor. Raporları arşive taşımak için ayrıca, yeni bir klasör açmak için ayrıca. Kullanıcı birkaç sorudan sonra “her zaman izin ver”e basıyor. Ajan sıradaki adımda eski taslakları kalıcı olarak siliyor ve bunu da sormuyor, çünkü artık hiçbir şeyi sormuyor.

İki hata aynı yerden çıkıyor. Ajan okumayı, taşımayı ve silmeyi aynı tür iş sayıyor. Ya hepsine aynı soruyu soruyor ya hiçbirine sormuyor. Bu üç iş birbirine benzemiyor. Okuma hiçbir şeyi değiştirmiyor. Taşıma geri alınabiliyor. Kalıcı silme geri alınamıyor. Bir de etki alanı var. Kullanıcının kendi klasörüne yazmak ile bir müşteriye e-posta göndermek aynı riski taşımıyor.

Tek ayarlı ajan iki kötü durumdan birinde kalıyor. Her şeyi soran ajan kullanıcıyı onayları okumadan geçmeye alıştırıyor. Hiçbir şeyi sormayan ajan geri dönüşü olmayan işi de aynı akıcılıkla yapıyor. İki durumda da tehlikeli iş sorulmadan geçiyor.

## Neden atlanıyor

Otonomiyi tek bir anahtarla yönetmek kolay, eylemleri tek tek sınıflamak zahmetli. Ekipler kolayı seçiyor ve sınıflama işini her onay kutusunda kullanıcıya bırakıyor. Kullanıcı eylemin geri alınıp alınamayacağını ve kime dokunacağını her seferinde kendisi tartıyor, bir süre sonra tartmayı bırakıyor.

Model bu işi güvenilir biçimde üstlenemiyor. Riski modelin o anki yorumuna bırakan ajan, kendinden en emin olduğu anda en tehlikeli işi yapabiliyor. Replit'in ajanı canlı veritabanını silen komutu, bir aracın çıktısına bakıp [“güvenli” bir işlem sandığı için](https://pbs.twimg.com/media/GwHRGAVXQAAWny3.jpg?name=orig) çalıştırdı. Ajanın elinde bir sınıf tablosu yoktu, yalnız kendi tahmini vardı.

Ölçüm de yanlış yere bakıyor. Ekipler onayları sürtünme olarak sayıyor. Anthropic, Claude Code'un otomatik modunu anlatırken elle onaylamanın zamanla [onay yorgunluğuna](https://www.anthropic.com/engineering/claude-code-auto-mode) yol açtığını, kullanıcıların neyi onayladıklarına dikkat etmez hâle geldiğini yazıyor. Yorgunluk onayların fazla olduğunu gösteriyor, hangilerinin gereksiz olduğunu göstermiyor. Tek anahtarlı üründe ekip ya hepsini tutuyor ya hepsini kaldırıyor.

## Desen

Ajanın serbestliği eylemin kendisine bağlıdır. Geri alınabilen ve yalnız çalışma alanına dokunan iş sormadan yürür. Geri alınamayan ya da başkasına dokunan iş durur ve sorar. Bazı işler hiç yapılmaz. Bu sınıflama kodda durur, modelin o anki yorumuna kalmaz.

1. **Her eylemi iki soruyla sınıfla.** Geri alınabilir mi, alınırsa kim ve ne kadar sürede alır? Etkisi nereye ulaşır: çalışma alanı, kullanıcının hesabı, başka insanlar, para? OpenAI'ın ajan rehberi her araca okuma ya da yazma erişimine, [geri alınabilirliğe, gereken hesap izinlerine ve mali etkisine göre](https://cdn.openai.com/business-guides-and-resources/a-practical-guide-to-building-agents.pdf) düşük, orta ya da yüksek bir risk derecesi vermeyi öneriyor.
2. **Üç sınıf yeter.** Serbest sınıftaki iş sormadan çalışır: okuma, çalışma alanında geri alınabilir yazma. Onaylı sınıftaki iş durur ve sorar: kalıcı silme, dışarıya gönderme, ödeme, çalışma alanının dışına yazma. Yasak sınıftaki iş hiç çalışmaz: canlı veritabanını silmek, korumalı dalın geçmişini ezmek. Kurallar önce yasak, sonra onaylı, sonra serbest sırasıyla okunur ve dar bir serbest kural geniş bir yasağı delmez.
3. **Bilinmeyeni riskli say.** Sınıfı yazılmamış yeni bir araç onaylı sınıfta başlar. MCP'nin araç işaretlerinde aracın yıkıcı olup olmadığını bildiren alanın [varsayılan değeri “evet”](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations) ve aynı belge güvenilmeyen bir sunucudan gelen işarete dayanarak karar verilmemesini istiyor.
4. **Hedef sınıfı değiştirir.** Aynı komut farklı hedefte farklı sınıfa girer. Ajanın oturumda kendi açtığı geçici dosyayı silmesi geri alınabilir bir temizlik. Oturumdan önce var olan bir dosyayı silmek kullanıcının işini yok eder.
5. **Eylemi geri alınabilir yap, sınıfı düşsün.** Kalıcı silme yerine çöp kutusu, gönderme yerine taslak, canlı veritabanı yerine geliştirme kopyası. Geri alınabilir hâle gelen iş serbest sınıfa iner ve onay sayısı kendiliğinden azalır.
6. **Sınıfı model değiştiremesin.** Kural tablosu ajanın yazamadığı bir yerde durur. Kullanıcının seçtiği otonomi düzeyi serbest ile onaylı arasındaki çizgiyi kaydırabilir, yasağı kaldıramaz. “Her zaman izin ver” kalıcı silmeyi ve dışarıya göndermeyi kapsamaz.

Kural tablosu ürünle birlikte büyür. Ajana yeni bir araç bağlayan her değişiklik tabloya bir satır da ekler.

## Önce ve sonra

Aynı klasör temizliği, iki ajanla. Soldaki her eyleme aynı onayı soruyor, kullanıcı yorulup kalıcı izin veriyor ve kalıcı silme sorulmadan geçiyor. Sağdaki okumayı ve taşımayı sormadan yapıyor, kalıcı silmede duruyor ve aynı işi geri alınabilir yapan seçeneği öne koyuyor.

Örnek ekran (kurgusal): Ajan, kullanıcının isteğiyle bir proje klasörünü temizliyor. İşin içinde dosya okuma, raporları arşive taşıma ve eski taslakları silme var.

### Önce: Ajan · klasör temizliği

- Kullanıcı: Proje klasörünü temizle, eski raporları arşive taşı, taslakları sil.
- AI: Klasördeki dosyaları okumak için izin veriyor musun?
- Düğmeler: İzin ver · Her zaman izin ver
- Bilgi: kullanıcı seçti · Her zaman izin ver
- Adım (tamam): 12 rapor arşive taşındı
- Adım (tamam): 9 taslak kalıcı olarak silindi · çöp kutusu atlandı · geri getirme yolu yok
- AI: Temizlik bitti. Raporlar arşivde, taslaklar silindi.

1. Ajan dosya okumak için de silmek için de aynı onayı istiyor. Kullanıcı ilk sorularda yorulup her şeye kalıcı izin veriyor.
2. Kalıcı silme, okuma için verilen genel iznin içinde sorulmadan geçiyor. Taslakları geri getirmenin yolu yok.

### Sonra: Ajan · klasör temizliği

- Kullanıcı: Proje klasörünü temizle, eski raporları arşive taşı, taslakları sil.
- Adım (tamam): 48 dosya okundu · serbest · yalnız okuma
- Adım (tamam): 12 rapor arşive taşındı · serbest · geri alınabilir, eski yerler kayıtlı
- Adım (bekliyor): 9 taslak silinecek · onaylı · kalıcı silme geri alınamaz
- AI: Raporlar arşivde, istersen geri taşırım. Taslakları silmeden önce soruyorum, çünkü kalıcı silinen dosya geri gelmiyor. Çöp kutusuna taşırsam otuz gün geri alabilirsin.
- Düğmeler: Çöp kutusuna taşı · Kalıcı sil · Listeyi göster

1. Okuma ve taşıma serbest sınıfta, ajan sormadan yapıyor. Taşıma geri alınabilir, çünkü ajan eski yerleri kaydediyor.
2. Kalıcı silme onaylı sınıfta. Ajan duruyor, nedenini söylüyor ve aynı işi geri alınabilir yapan seçeneği öne koyuyor.

## Piyasada

Claude Code eylemleri araç türüne göre ayırıyor. Elle onay modunda dosya okuma ve arama onay istemiyor, kabuk komutları ve dosya düzenlemeleri istiyor. “Bir daha sorma” cevabının ömrü de türe göre değişiyor: kabuk komutunda [depo ve komut başına kalıcı, dosya düzenlemede oturum sonuna kadar](https://code.claude.com/docs/en/permissions). Otomatik mod için Anthropic üç kademe tarif ediyor. Durumu değiştiremeyen araçlar bir izin listesinden geçiyor. Proje klasöründeki düzenlemeler sürüm kontrolüyle [gözden geçirilebildiği için](https://www.anthropic.com/engineering/claude-code-auto-mode) ayrı bir denetime gitmiyor. Gerisi bir sınıflandırıcı modelin önünden geçiyor ve bu sınıflandırıcı varsayılan olarak canlıya dağıtımı, zorla push'u ve [oturumdan önce var olan dosyaları geri dönüşsüz yok etmeyi](https://code.claude.com/docs/en/permission-modes) engelliyor.

OpenAI'ın Codex'i iki katman kullanıyor. Kum havuzu Codex'in teknik olarak neye ulaşabildiğini, onay politikası ne zaman soracağını belirliyor. Auto ön ayarında Codex çalışma klasöründe okuyor, düzenliyor ve komut çalıştırıyor, klasörün dışına yazmak ya da ağa çıkmak için soruyor. Kendini yıkıcı diye işaretleyen bir uygulama ya da MCP aracı [her zaman onay istiyor](https://learn.chatgpt.com/docs/agent-approvals-security).

Visual Studio Code'daki ajan terminal komutlarını tek tek değerlendiriyor. Sık kullanılan salt okunur komutlar kendiliğinden çalışıyor, `rm` ve `del` gibi riskli komutlar onay istiyor. Belge aynı yerde bir sınır da koyuyor. Terminal otomatik onayı [bir güvenlik sınırı sayılmamalı](https://code.visualstudio.com/docs/agents/approvals), çünkü komut tanıma her alt komutu yakalayamayabiliyor.

## Kanıt

**Replit, Temmuz 2025.** Jason Lemkin'in kod dondurma talimatı verdiği projede Replit'in ajanı canlı veritabanını sildi. Ajan sonradan veritabanını [izinsiz ve etkin bir kod dondurma sırasında](https://pbs.twimg.com/media/GwHT8tiWUAIuphG.jpg?name=orig) sildiğini yazdı. Geliştirme sırasında çalışan ajan canlı veriye dokunabiliyordu ve bu dokunuşun ne kadar riskli olduğuna kendisi karar veriyordu. Replit'in CEO'su Amjad Masad'ın yanıtı bu desenin iki kuralına denk düşüyor. Şirket geliştirme ve canlı veritabanlarını [otomatik olarak ayırmaya başladı ve ajan hata yaptığında projenin tamamını tek tıkla geri yükleyen yedekleri](https://x.com/amasad/status/1946986468586721478) hatırlattı. Biri eylemin hedefini değiştiriyor, öteki eylemi geri alınabilir yapıyor.

Anthropic'in ajanların gerçek kullanımı üzerine çalışması onayın neden her eyleme gerekmediğini gösteriyor. Şirketin genel API'sinde incelenen eylemlerin [yalnız %0,8'i geri dönüşsüz görünüyor](https://www.anthropic.com/research/measuring-agent-autonomy), müşteriye e-posta göndermek gibi. Aynı çalışma her eylemi insan onayına bağlayan kuralların [güvenlik getirmeden sürtünme yaratabileceğini](https://www.anthropic.com/research/measuring-agent-autonomy) yazıyor. Geri dönüşsüz iş az. Her eyleme onay soran ajan kullanıcının dikkatini çoğunlukla zararsız işlerde harcıyor ve dikkat asıl gereken yere vardığında tükenmiş oluyor.

Bu oranı Claude eylemleri kendisi puanlayarak çıkardı ve oran tek bir şirketin trafiğinden geliyor. Senin ürünündeki dağılım farklı olabilir. Önce kendi eylem listeni sınıfla, sonra say.

## Ölçüm

- **Sınıfsız eylem.** Ajanın kullanabildiği ama kural tablosunda satırı olmayan eylem sayısı. Hedef sıfır. Yeni bir araç tabloya girmeden eklenince bir test kırılsın.
- **Onaylı sınıfta ret payı.** Onay istenen eylemlerin kaçı reddediliyor ya da değiştiriliyor? Hiçbiri reddedilmiyorsa ya onaylı sınıf fazla geniş ya kullanıcı okumadan onaylıyor.
- **Kalıcı izne geçiş.** Kullanıcıların “her zaman izin ver”e ne kadar çabuk bastığı. Oturumun ilk dakikalarında kalıcı izne geçiliyorsa serbest sınıf fazla dar.
- **Onaysız geri dönüşsüz eylem.** Günlükte onay almadan çalışmış kalıcı silme, gönderme ve ödeme. Sıfır olmalı.
- **Serbest sınıfta geri alma.** Sormadan yapılan geri alınabilir işlerin ne kadarının sonradan geri alındığı. Bu pay yükseliyorsa ajan serbest sınıfta sık yanılıyor, sınıfı gözden geçir.

## Ajanına ver

Üç metin var. Denetim promptu ajanın bütün eylemlerini listeler, her birinin geri alınabilirliğini ve etki alanını yazar, onay kararının kodda mı promptta mı verildiğini bulur. Yalnız rapor yazar, hiçbir dosyayı değiştirmez. Uygulama promptu eylemleri serbest, onaylı ve yasak diye ayıran bir kural tablosu kurar. Önce planı gösterir, onayınla uygular ve sınıfsız aracın onay istediğini doğrulayan testler ekler. Kural kodlama ajanının kendi çalışması için. Senin ajanın da kalıcı silmeyi ve dışarıya göndermeyi sormadan yapmasın.

## Sınır

Yalnız okuyan bir asistanda bu tablo gereksiz. Her eylem serbest sınıfta kalır.

Sınıf sayısını artırmak deseni bozar. Üç sınıf kullanıcının aklında kalır. Altı kademeli bir tabloyu kimse ezberlemez ve kullanıcı ajanın neyi soracağını yine tahmin etmek zorunda kalır.

Kural tablosu tek başına bir güvenlik sınırı sayılmaz. Komut eşleştirmesi atlatılabilir. Claude Code'un belgesi bir yasak kuralının aynı programı [tam yoluyla ya da `sh -c` içinde çağrıldığında yakalamadığını](https://code.claude.com/docs/en/permissions) söylüyor. Tablo neyin sorulacağını belirler. Neyin hiç mümkün olmadığını kum havuzu, ağ ve dosya erişimi belirler.

Sınıflama onay ekranının ne söylediğini çözmez. Onaylı bir eylemde kullanıcıya ne gösterileceği ve geri dönüşü olmayan işte onayın nasıl yavaşlatılacağı ayrı desenlerin konusu.

## Promptlar

### Denetim promptu

```
Bu depoda kullanıcı adına iş yapan bir AI ajanı var. Görevin, ajanın hangi eylemi sormadan, hangisini onayla yaptığını ve bu kararın nerede verildiğini denetlemek. Hiçbir dosyayı değiştirme, yalnız rapor yaz.

1. Ajanın kullanabildiği bütün araçları ve eylemleri listele: araç tanımları, MCP sunucuları, kabuk komutu çalıştıran yerler, dış servis çağrıları (e-posta, ödeme, veritabanı, dağıtım).
2. Her eylem için iki soruyu cevapla: geri alınabilir mi (kim, nasıl, ne kadar sürede) ve etkisi nereye ulaşıyor (çalışma alanı, kullanıcının hesabı, başka insanlar, para).
3. Onay isteme kararı nerede veriliyor: kodda bir izin tablosu ya da kural dosyası mı, sistem promptunda bir cümle mi, modelin kendi yorumu mu? Prompttaki "silmeden önce sor" gibi talimatların kodda karşılığı var mı?
4. Bütün eylemlere aynı onay mı uygulanıyor? Okuma ile kalıcı silme aynı soruyu mu alıyor? "Her zaman izin ver" seçeneği hangi kapsamı açıyor, kalıcı silme ve dışarıya gönderme de bu kapsama giriyor mu?
5. Sınıfı tanımlanmamış ya da yeni eklenen bir araç varsayılan olarak ne oluyor: sormadan mı çalışıyor, onay mı istiyor? Dış kaynaktan gelen "salt okunur" ya da "yıkıcı değil" işaretlerine koşulsuz mu güveniliyor?
6. Aynı araç farklı hedefte farklı riskte mi (geliştirme ve canlı veritabanı, kendi dalı ve ana dal, oturumda oluşturulan ve önceden var olan dosya)? Kod hedefi ayırt ediyor mu?
7. Kurallar ajanın yazabildiği bir yerde mi duruyor? Ajan kendi izin dosyasını, ayarlarını ya da sistem promptunu değiştirebiliyor mu?

Rapor biçimi: önce eylem başına bir satırlık tablo (eylem, geri alınabilirlik, etki alanı, bugünkü davranış, önerilen sınıf: serbest, onaylı ya da yasak). Ardından bulgular: her biri için dosya ve satır, ne olduğu, olası zarar (örnek: kalıcı silme okuma için verilen genel izinle sorulmadan çalışıyor) ve önerdiğin düzeltme. Geri dönüşü olmayan ve başkasına dokunan eylemlerden başla.

```

### Uygulama promptu

```
Bu depodaki AI ajanına "otonomiyi geri alınabilirliğe ve riske göre kademelendir" desenini uygula. Önce planı göster, onayımı aldıktan sonra kodu değiştir.

Hedef davranış:
1. Her araç ve eylem için kodda bir sınıf tanımı olsun: serbest (sormadan çalışır), onaylı (çalışmadan önce kullanıcıya sorar), yasak (hiç çalışmaz). Sınıfı geri alınabilirlik ve etki alanı belirlesin.
2. Sınıfı tanımlanmamış her araç onaylı sınıfta başlasın. Dış kaynaktan gelen "salt okunur" ya da "yıkıcı değil" işaretlerine yalnız güvenilen bir kaynaktan geldiyse uy.
3. Kurallar önce yasak, sonra onaylı, sonra serbest sırasıyla değerlendirilsin. Dar bir serbest kural geniş bir yasağı delemesin.
4. Sınıf hedefe göre değişsin: canlı ortam, korumalı dal, başkasına giden ileti, ödeme ve oturumdan önce var olan veriyi silme daha yüksek sınıfta olsun.
5. Mümkünse eylemi geri alınabilir yap ve sınıfını düşür: kalıcı silme yerine çöp kutusu, gönderme yerine taslak, canlı ortam yerine geliştirme kopyası.
6. Onaylı bir eylemde ajan neden sorduğunu söylesin (geri alınamaz, dışarı gidiyor, para harcıyor) ve varsa geri alınabilir seçeneği öne koysun.
7. Kural tablosu ajanın yazamadığı bir yerde dursun. Kullanıcının seçtiği otonomi düzeyi serbest ile onaylı arasındaki çizgiyi kaydırabilsin, yasağı kaldıramasın. "Her zaman izin ver" kalıcı silmeyi ve dışarıya göndermeyi kapsamasın.

Uygularken:
- Kural tablosunu tek bir dosyada topla, her satırda eylem, hedef, sınıf ve gerekçe olsun.
- Onay kararını araç çağrısının yürütüldüğü yerde kodla ver, modelin metnine bırakma.
- Her kararı kaydet: eylem, hedef, sınıf, kim onayladı.
- Testler ekle: (a) sınıfsız yeni bir araç onay istiyor, (b) kalıcı silme "her zaman izin ver" seçildikten sonra da onay istiyor, (c) yasak bir eylem kullanıcı en serbest düzeyi seçmişken de çalışmıyor.

```

### AGENTS.md kuralı

```
## Otonomiyi riske göre kademelendir
- Yeni bir araç ya da eylem eklerken sınıfını da yaz: serbest, onaylı ya da yasak. Sınıfı geri alınabilirlik ve etki alanı belirler.
- Sınıfı bilinmeyen eylemi onaylı say. Yalnız okuyan ve çalışma alanında geri alınabilir işleri sormadan yap.
- Kalıcı silme, dışarıya gönderme, ödeme, canlı ortama ve korumalı dala yazma için çalışmadan önce sor ve nedenini söyle.
- Bir işi geri alınabilir yapabiliyorsan önce onu öner: çöp kutusu, taslak, ayrı dal, kopya.
- İzin kurallarını, ayar dosyalarını ve kendi sistem promptunu değiştirme.

```

## Kaynaklar

1. [Replit Agent'ın db:push açıklaması, ekran görüntüsü (Lemkin'in gönderisinde)](https://pbs.twimg.com/media/GwHRGAVXQAAWny3.jpg?name=orig), Jason Lemkin, X, 18 Temmuz 2025
2. [How we built Claude Code auto mode: a safer way to skip permissions](https://www.anthropic.com/engineering/claude-code-auto-mode), Anthropic, 25 Mart 2026
3. [A practical guide to building agents](https://cdn.openai.com/business-guides-and-resources/a-practical-guide-to-building-agents.pdf), OpenAI, Nisan 2025
4. [Schema Reference: ToolAnnotations (Model Context Protocol Specification, 2025-06-18)](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations), Model Context Protocol, 18 Haziran 2025
5. [Configure permissions](https://code.claude.com/docs/en/permissions), Anthropic
6. [Choose a permission mode](https://code.claude.com/docs/en/permission-modes), Anthropic
7. [Agent approvals & security](https://learn.chatgpt.com/docs/agent-approvals-security), OpenAI
8. [Manage approvals and permissions](https://code.visualstudio.com/docs/agents/approvals), Microsoft, Visual Studio Code
9. [Replit Agent sohbetinin ekran görüntüsü (Lemkin'in gönderisinde)](https://pbs.twimg.com/media/GwHT8tiWUAIuphG.jpg?name=orig), Jason Lemkin, X, 18 Temmuz 2025
10. [We saw Jason’s post. @Replit agent in development deleted data from the production database.](https://x.com/amasad/status/1946986468586721478), Amjad Masad (Replit), X, 20 Temmuz 2025
11. [Measuring AI agent autonomy in practice](https://www.anthropic.com/research/measuring-agent-autonomy), Anthropic, 18 Ş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).
