---
title: "Yapay Zekâ Ajanınız Sizi Bekliyor: Onay Kapılarını Telefon Aramasına Dönüştürün"
description: "Otonom ajanlar bir insana ihtiyaç duyduklarında sessizce durup bekler. Ajan yığınındaki hiçbir şey telefonunuzu çaldırmaz. Ajan onay kapılarını ve başarısız çalışmaları Echobell ile gerçek bir aramaya nasıl bağlayacağınızı anlatıyoruz."
date: 2026-08-07
author: Nooc
authorAvatarLink: /images/avatars/nooc.webp
authorLink: https://nooc.me
tags:
  - yapay zekâ ajanı uyarıları
  - insan döngüde
  - ajan onay kapıları
  - webhook bildirimleri
  - telefon aramalı uyarılar
---

# Yapay Zekâ Ajanınız Sizi Bekliyor: Onay Kapılarını Telefon Aramasına Dönüştürün

2026'da yayımlanan her otonom ajan çerçevesinde aynı boşluk var. Ajan sizsiz saatlerce çalışır, tek başına yapmasına izin verilmeyen bir eyleme gelir, durur — ve sonra hiçbir şey olmaz. Çalışma başarısız olmaz. Yeniden denemez. Bellekte serileştirilmiş bir durum nesnesini tutarak, beklendiğinden haberi olmayan bir insanı bekler. Bu kılavuz, ajanın "bir insana ihtiyacım var" anını [Echobell](https://apps.apple.com/app/apple-store/id6743597198?pt=128151925&ct=blog-ai-agent-human-in-the-loop-alerts-tr&mt=8) ile çalan bir telefon aramasına dönüştürerek bu boşluğu nasıl kapatacağınızı gösteriyor.

Boşluk yapısaldır; tek bir üründeki hata değildir. OpenAI'ın ajan dokümantasyonu onay akışını tam olarak şöyle tarif ediyor: bir araç onay gerektirdiğinde "siz onaylayana veya reddedene kadar çalışma duraklar", sonuç `interruptions` ile birlikte devam ettirilebilir bir `state` döndürür ve inceleme zaman alabilecekse bu durumu serileştirip saklamanız ve sonra devam ettirmeniz söylenir ([OpenAI](https://developers.openai.com/api/docs/guides/agents/guardrails-approvals), [Agents SDK kılavuzu](https://openai.github.io/openai-agents-js/guides/human-in-the-loop/)). Bu akışın hiçbir yerinde bir insana ulaşan bir şey yoktur. Onaylayacak kişiyi haberdar etmek tamamen size bırakılmıştır.

Bu arada çalışmalar da uzuyor. AWS, uç sınırdaki ajanlarını "müdahale gerektirmeden saatlerce veya günlerce çalışabilen" araçlar olarak tanımlıyor ([About Amazon](https://www.aboutamazon.com/news/aws/amazon-ai-frontier-agents-autonomous-kiro)). 4 Ağustos 2026'da tanıtılan Kiro Crew bunu açıkça söylüyor: "Bir geçişi başlatın; siz toplantıdayken ya da uykudayken kontrol noktaları ve yeniden denemeler arasında ilerlemeyi sürdürür" — aynı zamanda "araç isteklerinin onay gerektirebileceğini" belirterek ([Kiro](https://kiro.dev/blog/introducing-kiro-crew/)). İki yarısı da aynı anda doğru. Ajan siz uyurken çalışır, ajan siz uyurken durur.

## Ajan olayları gerçekte ne kadar yaygın?

**Çoğu kurumun en az bir kez yaşayacağı ve çoğunun ajanları gözetimsiz çalıştırmayacağı kadar yaygın.** Cloud Security Alliance tarafından Ocak 2026'da yürütülen ve Token Security'nin sipariş ettiği, 418 BT ve güvenlik profesyoneliyle yapılan ankette kurumların **%65'i** son bir yılda yapay zekâ ajanıyla ilgili en az bir olay bildirdi — **%61'i** veri sızıntısı, **%43'ü** operasyonel aksama ve **%35'i** finansal kayıp içeriyordu ([CSA basın bülteni](https://cloudsecurityalliance.org/press-releases/2026/04/21/new-cloud-security-alliance-survey-reveals-82-of-enterprises-have-unknown-ai-agents-in-their-environments), [rapor](https://cloudsecurityalliance.org/artifacts/autonomous-but-not-controlled-ai-agent-incidents-now-common-in-enterprises)).

Aynı anketin yönetişim rakamları ise uyarı açısından asıl önemli olanlar. Yalnızca **%13'ü** tamamen otonom ajanlar çalıştırıyor. **%53'ü**, ajanların düşük riskli görevlerde otonom hareket etmesine izin verip daha yüksek riskli eylemlerde insan incelemesi istiyor; **%24'ü** ise görevlerin çoğunda insanı döngüde tutuyor. **%82'si** son bir yılda ortamında gölge yapay zekâ ajanları keşfetmiş.

Bunu korkutucu bir istatistik olarak değil, operasyonel bir gerçek olarak okuyun: **kurumların kabaca dörtte üçü ajanlarına bilinçli olarak bir duraklama koymuş.** Bu duraklamaların her biri, bir makinenin bir insan yüzünden beklediği bir andır. İnsan bunu ertesi sabah 09.00'da öğreniyorsa, ajanın gece boyunca çalışabilmesinin hiçbir değeri kalmaz.

## Bir ajan insana ihtiyaç duyduğunda gerçekte ne olur?

**Sessizce bekler ve her çerçeve bildirimi size bırakır.** Mekanizma değişir; sonuç değişmez.

| Yığın | Mekanizma | İnsana ulaşan |
| --- | --- | --- |
| OpenAI Agents SDK | Bir araçtaki `needsApproval` çalışmayı duraklatır ve `interruptions` + devam ettirilebilir `state` döndürür | Hiçbir şey — kesintiyle ne yapılacağına uygulamanız karar verir |
| MCP sunucuları | `elicitation/create`, araç çağrısının ortasında kullanıcıdan girdi ister; `accept`, `decline` veya `cancel` döner | MCP istemcisinin çizdiği arayüz ne ise — başsız bir çalışmada ona kimse bakmıyordur |
| Claude Code | `Notification` kancası, `agent_needs_input` ve `agent_completed` gibi eşleştirici değerleriyle tetiklenir | Kancayı neye bağladıysanız o |
| Kiro Crew | Araç istekleri onay gerektirebilir; etkinlik inceleme için kaydedilir | Açarsanız Activity görünümü |

Model Context Protocol bunu spesifikasyon düzeyinde açıkça belirtiyor. Elicitation tam da bir sunucunun çalışma sırasında bir insana bir şey sorabilmesi için var ve güncel revizyon (`2026-07-28`), sunucuların "elicitation isteklerinin her zaman başarılı olacağını **VARSAYMAMASI GEREKTİĞİ**" ve reddi, iptali ve istemci hatasını ele almaları gerektiği uyarısını yapıyor ([MCP spesifikasyonu](https://modelcontextprotocol.io/specification/2026-07-28/client/elicitation)). Protokol soruyu standartlaştırır. İnsanın dikkatini çekmeyi standartlaştırmaz ve standartlaştıramaz.

Bütün fırsat da burada. Ajan yığınının her katmanında iyi tasarlanmış bir duraklama var. Hiçbirinde telefon numarası yok.

## Hangi ajan olayları telefon aramasını hak eder?

**İki tanesi; gerisinde acımasız olmalısınız.** Telefon araması kıt bir kaynaktır; onu yalnızca uyuyan bir insanın gerçekten tıkanma noktası olduğu yerlerde harcayın.

1. **Onaysız ilerleyemeyecek bir çalışmada tıkanan onay.** Ajan boşta, sayaç işliyor ve beklemek bunu çözmüyor. Kanonik durum budur.
2. **Uzun ve gözetimsiz bir çalışmanın kesin başarısızlığı.** İkinci saatte ölen altı saatlik bir geçiş, geri alamayacağınız altı saattir; bunu ikinci saatte öğrenmeyi tercih edersiniz.

Geri kalan her şey daha sessiz bir kanala aittir. "Görev başarıyla tamamlandı" normal bir push bildirimidir. "Ajan bütçesinin %80'ini kullandı" en fazla zaman duyarlıdır. "Ajan başladı" zaten bir bildirim değildir. Echobell'in üç [bildirim türü](/tr/docs/notification) — Normal, Zaman Duyarlı ve Arama — tam olarak bu triyaj için vardır ve ajan olaylarını bunlara eşlemek buradaki en önemli tasarım kararıdır. Bildirim hacmiyle zaten boğuşuyorsanız, çalan bir kanal eklemeden önce [uyarı yorgunluğunu gidermeyi](/tr/blog/fix-alert-fatigue-developer-guide) okuyun.

## Bir ajan onay kapısı telefon aramasına nasıl bağlanır

Echobell bir webhook'u veya e-postayı telefon aramasına dönüştürür — bir aile üyesinin araması gibi iOS Odak Modu'nu ve Rahatsız Etmeyin'i aşan, gerçekten çalan ve titreşen bir arama (bkz. [iOS Odak Modu'nu aşmak](/tr/blog/how-to-bypass-ios-focus-mode-for-critical-alerts)). Duraklayan ajanla, onu yeniden başlatabilecek insan arasında durur.

### Adım 1 — Tıkanan ajanlar için bir Arama kanalı oluşturun

Uygulamada bir kanal oluşturun ve bildirim türünü **Arama** olarak ayarlayın. Ona "Ajan tıkandı — onay gerekiyor" gibi kuşkuya yer bırakmayan bir ad verin ve başka hiçbir şey için kullanmayın. Webhook URL'sini kanal ayrıntılarından kopyalayın; şuna benzer: `https://hook.echobell.one/t/<channel-token>`. Bunu bir sır gibi saklayın — eline geçen herkes telefonunuzu çaldırabilir ([webhook kılavuzu](/tr/docs/webhook)).

Başlık ve gövde şablonlarını kilit ekranından harekete geçebileceğiniz bir şeye ayarlayın:

```
Title: Agent blocked: {{agent}}
Body: Waiting on {{action}} in {{project}} — since {{time}} UTC
```

`{{time}}` ve diğer [sistem zaman değişkenleri](/tr/docs/template), siz göndermeden her zaman UTC olarak kullanılabilir.

### Adım 2 — Webhook'u onay dalınızdan tetikleyin

Kesinti döndüren her SDK'da duraklama, kodunuzda sıradan bir daldır. Çalışmayı park etmeden önce kanal URL'sine POST edin:

```javascript
let result = await run(agent, input, { stream: false });

if (result.interruptions?.length) {
  await fetch(process.env.ECHOBELL_BLOCKED_URL, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      agent: agent.name,
      action: result.interruptions[0].rawItem.name,
      project: process.env.PROJECT_NAME,
      externalLink: `https://ops.example.com/runs/${runId}`,
    }),
  });
  await saveState(runId, result.state); // serileştir ve onaydan sonra devam ettir
}
```

`externalLink` özel değişkeni bildirim kaydında tıklanabilir bir bağlantıya dönüşür; böylece aramayı yanıtlayan kişi çalışmayı aramak zorunda kalmadan doğrudan onun üzerine düşer.

### Adım 3 — Ajan bir kütüphane değil de CLI ise kancaları kullanın

Claude Code, eşleştiricisi `agent_needs_input` ve `agent_completed` dahil bildirim türüne göre filtreleyen bir `Notification` kancası sunar; kanca işleyicileri kabuk komutları ya da doğrudan HTTP istekleri olabilir ([kanca referansı](https://code.claude.com/docs/en/hooks)). Bir `command` işleyicisi yükün biçimi üzerinde denetim verir; bu önemlidir, çünkü Echobell hangi JSON anahtarlarını gönderirseniz onları işler:

```json
{
  "hooks": {
    "Notification": [
      {
        "matcher": "agent_needs_input",
        "hooks": [
          {
            "type": "command",
            "command": "jq -c '{agent: \"claude-code\", action: .message, project: .cwd}' | curl -sS -X POST -H 'Content-Type: application/json' -d @- \"$ECHOBELL_BLOCKED_URL\""
          }
        ]
      }
    ]
  }
}
```

`command` işleyicilerinde kanca girdisi stdin üzerinden JSON olarak gelir ve `session_id`, `cwd`, `hook_event_name` ile `permission_mode` gibi alanları taşır. `http` işleyici türü aynı JSON'u hiç betik yazmadan doğrudan bir URL'ye gönderir ki bu cezbedicidir — ama yanıtın da bir kanca çıktısı belgesi olmasını bekler; Echobell'in yanıtı böyle bir belge değildir. `http`'nin kendi kurulumunuzda istediğiniz gibi davrandığını doğrulamadıysanız `command` kullanın.

### Adım 4 — Yalnızca e-posta gönderen ajanları da yakalayın

Pek çok ajan platformu, zamanlanmış çalışma servisi ve şirket içi araç yalnızca e-postayla rapor verir. Her Echobell kanalının kendi adresi olabildiği için tek bir yönlendirme kuralı bu mesajları aramaya dönüştürür ([e-posta tetikleyicileri](/tr/docs/email-trigger), [e-postadan aramaya kurulumu](/tr/docs/email-to-call)). E-posta tetikleyicileri `from`, `to`, `subject`, `text` ve `html` değişkenlerini şablona sunar; böylece hiçbir şeyi kendiniz ayrıştırmadan konu satırı üzerine koşul kurabilirsiniz.

### Adım 5 — Yalnızca gerçek tıkanmalar çalsın diye koşullar ekleyin

**Her ajan olayında çalan bir kanal, telefon araması olmaktan çıkıp arka plan gürültüsüne dönüşür.** Echobell [koşulları](/tr/docs/conditions) değişken değerlerini şablonlarla aynı ifade sözdizimiyle filtreler; örneğin şunu şart koşabilirsiniz:

```
blocking == true && risk == "high"
```

Bu çıtanın altındaki her şeyi ayrı bir Zaman Duyarlı kanala gönderin. İşe yarar bir hedef: Arama kanalı en fazla haftada birkaç kez çalmalıdır. Daha sık çalıyorsa ajanınızın otonomi sınırı yanlış yere çizilmiştir ve bunu hiçbir bildirim ayarı düzeltmez.

### Adım 6 — Rahatsız Etmeyin açıkken test edin

Kanalı, uyarıyı gerçekten alacak telefonda Rahatsız Etmeyin etkinken `curl` ile tetikleyin:

```bash
curl -X POST https://hook.echobell.one/t/<channel-token> \
  -H "Content-Type: application/json" \
  -d '{"agent":"test","action":"deploy to prod","project":"demo","blocking":true,"risk":"high"}'
```

Odak Modu'nun engellediği bir aramanın yeniden denenmesi için uygulamada **Başarısız Aramayı Yeniden Dene**'yi etkinleştirin. Test edilmemiş bir eskalasyon yolu bir varsayımdır.

## Bu, uyarı yorgunluğunu daha gürültülü bir zille yeniden yaratmaz mı?

**5. adımı atlarsanız yaratır.** Bu risk gerçektir ve adını koymaya değer. Ajanlar sunuculardan çok daha fazla olay üretir — her araç çağrısı, her kontrol noktası, her yeniden deneme — ve hepsini görünür bir yere yönlendirme cazibesi güçlüdür.

İşe yarayan disiplin şu: telefon araması, uyuyan bir insanın ajanla ilerleme arasındaki tek engel olduğu olaylara ayrılır. Bu, "ajanın yaptığı önemli şeyler"den çok daha küçük bir kümedir. Kişinin aramayı yanıtladıktan sonraki doksan saniyede ne yapacağını tek cümleyle anlatamıyorsanız, o olay aramayı hak etmiyordur.

Çıtayı yüksek tutmanın bir de güvenlik gerekçesi var. Aynı CSA anketi, kurumların başlıca yönetişim sinyalleri olarak eylem riskini (**%63**) ve insan yetkilendirmesini (**%53**) sıraladığını buldu. Bu sinyaller ancak insan yetkilendirmesi gerçekten hızlı gerçekleşiyorsa bir anlam taşır. Rutin olarak sekiz saat geç yanıtlanan bir onay kapısı, herkese kapıyı genişletmeyi öğretir — **%13'lük** tam otonomluğun yanlış nedenlerle sessizce varsayılan hâle gelmesi de böyle olur.

## Echobell'in yapmadıkları

Burada net olmak önemli, çünkü ajan altyapısı abartılı iddiaları cezbediyor.

**Echobell şunları yapar:** bir webhook'u veya e-postayı çalan bir aramaya, zaman duyarlı bir uyarıya ya da normal bir push bildirimine dönüştürür; koşullarla filtreler; şablonlarla bağlam sunar; aynı tetikleyiciyi, her abonenin kendi aciliyetini seçtiği paylaşılan bir ekip kanalına iletir.

**Echobell şunları yapmaz:**

- **Hiçbir şeyi onaylamaz.** Bir onay arayüzü değildir ve ajanınızın durumuyla bağlantısı yoktur. Telefonunuzu çaldırır; onaylamak veya reddetmek için yine bir dizüstü bilgisayarı, panoyu ya da terminali açarsınız. "Onaylamak için 1'e basın" diye bir şey yoktur.
- **Çalışmayı devam ettirmez.** Ajanın durumunu serileştirmek ve geri yüklemek çerçevenizin işidir. Echobell ona hiç dokunmaz.
- **Eskalasyon politikaları, uyarı alındı bildirimi veya nöbet rotasyonu sunmaz.** "Beş dakika içinde kimse yanıtlamazsa sıradaki kişiyi ara" diye bir şey yoktur. Bir kanalın abonelerini arar. Planlı rotasyonlara ve alındı takibine ihtiyacınız varsa bir olay platformuna ihtiyacınız var — bu araç sınıfı için [Opsgenie alternatifleri karşılaştırmasına](/tr/blog/opsgenie-end-of-life-alternatives) bakın.
- **Ajanlarınızı güvenli hâle getirmez.** Buradaki hiçbir şey gölge ajanları, aşırı geniş araç izinlerini veya CSA raporunun tarif ettiği devreden çıkarma boşluğunu ele almaz. İnsan dikkatinin hızlanması, yavaş müdahaleye karşı bir azaltıcıdır; kötü mimariye karşı değil.
- **İletimi garanti etmez.** Bir arama; push altyapısına, ağa ve şarjı olan bir telefona bağlıdır. Onu bekleme süresini kısaltan katman olarak görün; mutlak biçimde güvenebileceğiniz bir kontrol olarak değil.

Dürüst çerçeve şu: telefonunuzu hangi uygulamanın çaldırdığı, ajanınızın otonomi sınırını değiştirmez. Bir aramanın değiştirdiği şey, ajanın durmasıyla bir insanın bunu fark etmesi arasındaki saat sayısıdır — ve gece boyunca süren bir çalışmada bu saatler, işi gece çalıştırmanın bütün değeridir.

## SSS

### Ajan eylemini telefon aramasının kendisinden onaylayabilir miyim?

Hayır. Echobell, bildirim içeriğini ve tıklanabilir bir bağlantıyı taşıyan bir arama iletir; ajanınıza geri dönen etkileşimli bir yanıt yolu yoktur. Gerçekçi örüntü şudur: arama sizi uyandırır, `externalLink` sizi çalışma panonuza ya da onay uç noktanıza götürür ve kararı orada verirsiniz. Yanıtla-onayla akışına ihtiyacınız varsa o uç noktayı kendiniz kurmalısınız — Echobell yalnızca uyandırma yarısını üstlenir.

### Webhook'u hangi çerçeve olayları tetiklemeli?

Çalışmanın devam edemediği olaylar. OpenAI Agents SDK'da bu, boş olmayan bir `interruptions` dizisidir. MCP'de, istemcinizin insansız yanıtlayamadığı bir `elicitation/create` isteğidir. Claude Code'da, `agent_needs_input` eşleştiricili `Notification` kancasıdır. Tamamlanma olayları Arama kanalına değil, Normal veya Zaman Duyarlı bir kanala aittir.

### Bu, CI'daki başsız ajanlarla çalışır mı?

Evet ve asıl önem kazandığı yer de burasıdır, çünkü terminale bakan kimse yoktur. `curl` çalıştırabilen her CI adımı bir kanalı tetikleyebilir. Her işte değil, uzun bir işin hata dalında istek gönderin; aksi hâlde hattınız sahip olduğunuz en gürültülü şeye dönüşür.

### Özellikle MCP elicitation için durum ne?

Elicitation, bir istem çizecek ve başında kullanıcı bulunan bir istemci için tasarlandı. Gözetimsiz bir çalışmada onu gösterecek kimse yoktur ve spesifikasyon, sunuculara yanıt varsaymak yerine reddi ve iptali ele almalarını açıkça söyler. Makul bir örüntü şudur: MCP istemci sarmalayıcısı, otonom olarak yanıtlayamadığı bir elicitation isteği aldığında bir Echobell webhook'u tetikler, sonra kendi politikanıza göre bekletir veya iptal eder.

### Ajan çıktısını bildirime koymak güvenli mi?

Mümkün olduğunca az gönderin. Ajanın gerçek çıktısı yerine bir tanımlayıcıyı ve bir bağlantıyı tercih edin — `externalLink` ile, bunu tutmak için tasarlanmış bir sistemdeki çalışma kaydına işaret edin. Echobell bildirim içeriğini ve geçmişini yalnızca cihazınızda saklar; sunucuda yalnızca hesaplar, kanallar ve abonelikler bulunur ([gizlilik modeli](/tr/docs/features)). Bu, veri asgariliği için iyidir ama gerekenden fazlasını göndermek için bir gerekçe değildir.

### Tüm ekibim aynı ajan uyarısını alabilir mi?

Evet. Kanalı paylaşın; her abone tetikleyiciyi alır ve kendi bildirim türünü seçer. Yaygın bir kurulum: ajanın sahibi olan mühendis Arama olarak, ekibin geri kalanı Zaman Duyarlı olarak abone olur.

### Bu yalnızca iOS için mi?

Hayır. Echobell iOS'ta ve Google Play üzerinden Android'de çalışır (bkz. [Android sürümü](/tr/blog/echobell-android-release)). Arama tarzı uyarıların davranışı platformlar arasında farklılık gösterir; bu yüzden nöbetteki kişilerin gerçekten taşıdığı cihazlarda test edin.

### Bunun WebhookMCP kurulumundan farkı ne?

[WebhookMCP](/tr/blog/get-notified-with-webhook-mcp), modele bir görev bittiğinde çağırmayı seçebileceği bir araç verir — kullanışlıdır ama ajanın sizi haberdar etmeye karar vermesine bağlıdır. Buradaki yaklaşım kendi kodunuzdan veya bir çerçeve kancasından tetiklenir; bu yüzden ajan takıldığında, kafası karıştığında ya da çöktüğünde de çalışır. İkisini birden kullanın: biri "bitti", diğeri "tıkandı" için.

---

## İlgili içerikler

- [WebhookMCP ile yapay zekâ görevleri bittiğinde haberdar olun](/tr/blog/get-notified-with-webhook-mcp)
- [Kritik uyarılar için iOS Odak Modu nasıl aşılır](/tr/blog/how-to-bypass-ios-focus-mode-for-critical-alerts)
- [Uyarı yorgunluğunu gidermek: geliştirici kılavuzu](/tr/blog/fix-alert-fatigue-developer-guide)
- [Cron işi hata uyarıları](/tr/blog/cron-job-failure-alerts)
- [Webhook entegrasyon kılavuzu](/tr/docs/webhook)
- [Koşullar kılavuzu](/tr/docs/conditions)
