Pano
5 Temmuz 2026

Şirketimi proaktif ajanlara yatırıyorum

Explore with AI

Ajanlar onlardan istediğin neredeyse her şeyi yapabilir ve sorun da bu: hâlâ istemek zorundasın.

İnsanların ajanlara “dijital iş arkadaşı” dediğini duyuyorum. Bu çerçeve yanlış. Sen ona mükemmel sınırlanmış bir görev verene kadar sessizce oturan, onu tamamlayan, sonra yeniden beklemeye dönen bir iş arkadaşı, iş arkadaşı değildir. Şimdiye kadar kullandığın her ajan tam olarak böyle çalışıyor. Modeller akıllandı, harness’ler iyileşti, çalıştırmalar uzadı ama arayüz hiç değişmedi: işi sen getiriyorsun, emeği ajan getiriyor.

Ve çoğu insan bunu fark etmedi, çünkü istem kutusu kafamızda sessizce yapay zekanın kendisi haline geldi.

Ask anything about your stack...
Yapay zekanın varsayılan arayüzü.

Her arayüz hâlâ bir istem kutusu

Bütün bu dönem giriş kutusuyla başladı. ChatGPT bir modelin üstüne bir tane koydu ve tarihin en hızlı büyüyen ürünü oldu, biz de hepimiz onu kopyaladık. O zamandan beri her yapay zeka ürünü aynı etkileşimin bir çeşidi: insan yazar, makine yanıtlar, makine bekler.

Claude Code bir sonraki evrimdi. Ajan terminaline taşındı, dosyalarını, kabuğunu ve git geçmişini aldı ve iş hakkında konuşmak yerine gerçek iş yapmaya başladı. Ajanların ne yapabildiğini değiştirdi ama nasıl başladıklarını değil: sen yazarsın, o çalışır, durur ve sen yeniden yazana kadar bekler.

~/app
$ claude
✳ 12 files · main · last session 2h ago
> fix the failing checkout tests
? for shortcuts
Aynı giriş kutusu, bir terminalde.

Sonra ajanlar buluta taşındı. Codex, Devin, web’de Claude Code. Dakikalar yerine saatlerce çalışıyor, işi paralelleştirmek için alt ajanlar açıyor ve dizüstünü kapattığında ölmüyorlar. Öğle yemeğinden önce birine bir görev veriyorsun ve bir pull request’e dönüyorsun.

graph TD
    A[You write the task] --> B[Cloud agent]
    B --> C[Sub-agent]
    B --> D[Sub-agent]
    B --> E[Sub-agent]
    C --> F[Pull request]
    D --> F
    E --> F
    style F fill:#d1fae5,stroke:#6ee7b7,color:#065f46

İstem klavyeye bağlı bir şey olmaktan bile çıktı. Arka plan ajanları bir uyarı ya da bir webhook ile başlatılabiliyor ve çoğu ajan platformu artık otomasyon sunuyor: bu olay tetiklendiğinde ya da bu cron çaldığında, şu talimatlarla bir ajan çalıştır.

Triage Sentry alerts Enabled
When
a Sentry alert fires
Do
investigate, open an incident if it's real
Then
post the findings to #incidents
Bir otomasyon: ajan, senin yazdığın talimatları izleyerek bir olay üzerine harekete geçer.

Peki otomasyon nedir? Önceden yazdığın bir istemdir. Hata modunu tahmin ettin, olayı seçtin ve ne yapılacağını yazdın. Tetikleyici ajanı çalıştırır ama içindeki muhakeme senin, kurulum anında donmuş. Bir otomasyon tam olarak öngördüğünü yakalar, başka hiçbir şeyi değil.

Zamanlayıcı sensin

Araçları soy; iş bölümü üç yılda hiç kımıldamadı. İşi ajan yapıyor. İşin ne olduğuna karar vermek senin işin olarak kalıyor.

Panoları sen okuyorsun, kullanıcıları sen dinliyorsun, neyin önemli olduğunu sen çözüyorsun ve öğrendiğin her şeyi ya klavyede canlı ya da önceden bir tetikleyicide bir isteme sıkıştırıyorsun. Ajan mükemmel yürütüyor ama sistemdeki her muhakeme parçası senden çıkıyor.

graph TD
    A[Dashboards] --> D[You]
    B[Alerts] --> D
    C[User complaints] --> D
    D --> E[The prompt you type today]
    D --> F[The automation you configured last month]
    E --> G[Agent]
    F --> G
    style D fill:#fee2e2,stroke:#fca5a5,color:#991b1b

Bir sonraki evrim: işi bulan ajanlar

Bir sonraki evrimin, yapılacak işi kendisi bulan ajanlar olduğuna oynuyorum. İstem yok, yapılandırılacak tetikleyici yok, önceden yazılmış talimat yok. Yığınını bağlarsın ve ajan işi kendi başına bulur: senin izlediğin sinyalleri izler, yolunda gitmeyeni fark eder, önemli olup olmadığına karar verir ve üzerinde özerk olarak çalışmaya başlar.

Bunu söylemek kolay, kurmak acımasızca zor, çünkü proaktiflik üst üste yığılmış üç problem ve herhangi birini atlamak sana giriş kutusunun arkasındaki ajandan daha kötü bir şey verir.

Bağlam. Açıkça, ajanın içinde çalıştığı dünyanın canlı bir modeline ihtiyacı var, istem anında bağlam penceresine yapıştırdığın bir anlık görüntüye değil. Bağlamı kötü reaktif bir ajan sana kötü bir yanıt verir. Bağlamı kötü proaktif bir ajan, staging sandığı için prod veritabanını düşürür.

Muhakeme. Beni en çok zorlayan şey bu oldu. Herhangi bir anda bir üretim sisteminde binlerce şey biraz yolundan çıkmıştır. Hepsini işaretleyen bir ajan bir gürültü makinesidir, gürültü makineleri susturulur ve susturulan ajanlar ölü ajanlardır. Proaktifliğin bütün değeri “bir şey değişti” ile “bir şey önemli” arasındaki boşlukta yaşar:

[
  {
    "signal": "memory up 3% on checkout-edge",
    "verdict": "no anomaly",
    "reasoning": "within the seasonal range for this hour on this worker"
  },
  {
    "signal": "new error pattern, 2 minutes after deploy 9f3c2a1",
    "verdict": "incident",
    "reasoning": "error class never seen on this worker, tightly correlated with a deploy"
  }
]

Eylem. Harekete geçmeden fark etmek yalnızca daha akıllı bir uyarıdır ve uyarılar öldürmeye çalıştığım şey. Ajan işi bitirmek zorunda, özerkliği güvenli kılan sınırların içinde: geri alınabilir eylemler, her şey için kanıt ve geri alınamaz herhangi bir şey olmadan önce sert bir kapı.

Bu üçünün hiçbiri ajanın iyinin neye benzediğine karar vermesini içermiyor. Neyin yolunda gitmediğine, önemli olup olmadığına ve ne yapılacağına karar veriyor ve listenin tamamı bu, çünkü üretimde iyiyi kimsenin tanımlaması gerekmez: hatalar sıfırda, gecikme taban çizgisinde, kuyruklar boşaltılmış, sertifikalar geçerli. İstenen durum alanla birlikte gelir.

Bu, gerçek değişimin “sen istem yazarsın”dan “ajan kendine istem yazar”a değil, buyurgan operasyonlardan bildirimsel operasyonlara olduğu anlamına geliyor. Bir otomasyon buyurgandır: hata modlarını önceden sayarsın ve her birine bir yanıt betiklersin. Proaktif bir ajan bir uzlaştırma döngüsüdür: sahip olduğun sistemi sahip olman gereken sistemle karşılaştırır ve aradaki boşluğu kapatmak için çalışır. Kubernetes bunu on yıl önce altyapı için yaptı; üç replika yazarsın ve bir controller üç replikayı ayakta tutmak için ne gerekiyorsa yapar. Yazılımın kendisinin işletilmesi için bunu kimse yapmadı. Ve burada yazılacak YAML bile yok, çünkü istenen durum zaten biliniyor. Kutudan çıktığı gibi çalışır.

Operasyonlarla başladım

Proaktif bir ajandan ürün yol haritanı seçmesini iste; fikirli bir stajyer alırsın, çünkü ürün yönü bir zevk meselesidir. Üretim değildir. Üç problemin de bugün çözülebilir olduğu tek alan bu.

İş kendini duyurur: hata oranları tırmanır, bir dağıtım ters gider, bir sertifikanın süresi dolar, bir kuyruk birikir. İş zaten telemetride oturuyor, birinin fark etmesini bekliyor. Ve zevke dayalı alanların aksine kesin doğru var: hata oranı ya sıçradı ya sıçramadı, geri alma taban çizgisini ya geri getirdi ya getirmedi; böylece ajanın muhakemesi sistemin kendisi tarafından sürekli olarak puanlanır, hislere yer yok.

En önemlisi, bu işe zaten insan koyuyoruz. Buna on-call diyoruz: bir telefonun yanında uyuyan, bir makinenin başka bir makinenin mutsuz olduğunu söylemesini bekleyen bir insan. Yıllarımı gözlemlenebilirlikte geçirdim, bir gözlemlenebilirlik şirketi kurdum ve Cloudflare onu satın aldı, ve yanıtın tek sorgu uzaklıkta olması için telemetriyi yapılandırmak üzerine koca bir manifesto yazdım. Tezi bu şirketin var olma nedeni: 2026’da kimse on-call olmamalı.

Çünkü gözlemlenebilirliğin son on yılıyla ilgili rahatsız edici gerçek şu: sistemleri insanların sabahın 3’ünde sorgulaması için kolaylaştırdık, sonra uyandırılanlar hâlâ insanlarken zafer ilan ettik. Panolar güzelleşti ve çağrı cihazı komodinde kaldı. Eylemsiz gözlemlenebilirlik yalnızca pahalı depolamadır.

Neye benziyor

Polylane bunu yapıyor. İşte somut bir salı günü:

graph TD
    A["02:14 — checkout p99 jumps from 180ms to 2.1s"] --> B["02:15 — agent flags it: new error pattern, right after the 01:52 deploy"]
    B --> C["02:16 — incident opens, 3 hypotheses investigated in parallel"]
    C --> D["02:31 — verdict: connection pool exhausted by a new N+1 query"]
    D --> R["02:33 — the 01:52 deploy is rolled back, p99 back to 180ms. The incident is over."]
    R --> E["02:38 — PR opened with the fix and the evidence attached"]
    E --> F["08:30 — you wake up, read the investigation, merge"]
    style A fill:#fee2e2,stroke:#fca5a5,color:#991b1b
    style R fill:#d1fae5,stroke:#6ee7b7,color:#065f46
    style E fill:#d1fae5,stroke:#6ee7b7,color:#065f46

Bu hata modu için kimse bir kontrol yapılandırmadı. Yazılacak kural, ayarlanacak eşik yok: ajanlar bağlı her kaynağı sürekli bir aralıkla değerlendiriyor ve mevcut panoların ve kaydedilmiş sorguların onların kontrol listesi oluyor. En katı olduğum yer muhakeme. Varsayılan karar no anomaly, çünkü sınırdaki bir sorunu kaçırmak birini gürültü için uyandırmaktan çok daha iyidir. “Bir dağıtım hata getirebilir” her dağıtım için doğrudur ve asla birini çağırmak için gerekçe değildir.

Bir şey gerçek olduğunda inceleme birkaç rakip hipotezi paralel çalıştırıyor ve her ajanın işi hipotezini doğrulamak değil çürütmek, böylece korelasyon asla neden kılığına giremiyor. Doğrulanan kök neden bir kod değişikliği olduğunda düzeltme, inceleme ekli bir pull request olarak geliyor:

Restore Hyperdrive pool size in checkout-edge
PR open coreplane/checkout-edge
Investigation report attached Checks passing
Düzeltme bir PR olarak gelir. Sen incelersin, o birleşir.

Opened by Polylane · gated on review and CI

Proaktif, denetimsiz demek değil

Özerklik fark etmede, triyajda, sabahın 3’ündeki arkeolojide ve hafifletmede. Bilinen sağlam bir duruma dönen her şeyi ajan kendi başına yapıyor: kötü dağıtımı geri al, bayrağı yeniden kapat. Bu eylemler yapıları gereği geri alınabilir ve çağrı cihazını gerçekten susturanlar onlar. Kapılı kalan şey yeni bir durum yaratan her şey: bir kod değişikliği senin incelemenden ve CI’ından geçerek yayınlanır, asla onları dolanarak değil.

Çizgi insan ile ajan arasında değil. Geri alınabilir ile geri alınamaz arasında. Ve gizliden gizliye hâlâ on-call olmamanın nedeni bu: geri alma olayı 02:33’te bitirdi, sen pull request’i birleştirmeden altı saat önce. Kanamayı durduran hiçbir zaman PR değildi. PR onun yeniden olmasını durduran şey ve o kahveye kadar bekleyebilir.

Ve kapı senin devredebileceğin bir şey. Kod inceleme ajanları zaten deponun her pull request’ini okuyor. Bundan çok uzak olmayan bir dünyada inceleme ajanın düzeltmeyi 02:41’de okur, incelemeye karşı kontrol eder, onaylar ve CI’ın sen uyanmadan üretime dağıtır. Döngüde onay düğmesini kimin tuttuğu dışında hiçbir şey değişmez. Bunun bittiği yer orası: kendini düzelten yazılım, sen birleştir’e tıklamak yerine politikayı yazarken.

graph TD
    A[Signals] --> B[Detection]
    B --> C[Investigation]
    C --> R[Rollback, on its own]
    C --> D[Pull request]
    D --> E[You or your agent review, it merges]
    R --> F[Memory]
    E --> F
    F --> B
    style R fill:#d1fae5,stroke:#6ee7b7,color:#065f46
    style D fill:#d1fae5,stroke:#6ee7b7,color:#065f46
    style F fill:#dbeafe,stroke:#93c5fd,color:#1e40af

O döngüde eksik olana dikkat et:

Ask anything about your stack...
Kimse bir şey yazmadı. Kimse bir şey yapılandırmadı.

İstem kutusu bu sistemlere güvenmeyi öğrenmek için harika bir yoldu ve üretimi yürütmek için berbat bir yol. Ajan her servisteki her dağıtımı, her günlük satırını ve her metriği aynı anda gördü. Onu bir istemin arkasında tutmak, ekibinin en iyi bilgilendirilmiş üyesinin yalnızca kendisiyle konuşulduğunda konuşması demek.

2026’da kimse on-call olmamalı.

2026'da kimse on-call olmamalı. Polylane altyapını izler, inceler ve bozulanı düzeltir.

Bekleme listesine katıl