- Bu yazı, mevcut programlama deneyimini konuşmalı bilgisayarlar (LLM, ajanlar) dünyasına uyarlama sürecini ele alan ikinci bölüm.
- İlk bölüm olan "LLM ile Nasıl Programlanır" yazısında, LLM’lerin mevcut araçlara entegre edilerek otomatik tamamlama ya da arama yerine kullanılması anlatılıyordu.
- Bu kez, biraz daha zor ama daha ödüllendirici olan ajan tabanlı programlama konusunda pratik deneyim ve içgörüler paylaşılıyor.
Ajanın tanımı ve pratikteki karşılığı
- LLM (büyük dil modeli) bağlamında "ajan" terimini tanımlamak anlamlı.
- Bu terim uzun süredir yapay zeka sektörünün moda kelimelerinden biri olarak kullanılıyor, ancak gerçekten işe yarar bir yapı haline gelmesi yakın zamanda oldu.
- Bu süreçte üzerine çok sayıda pazarlama söylemi ve gizem havası eklendi.
- Bir mühendisin gözünden bakınca artık bunu açık ve basit şekilde tanımlamak mümkün: ajan 9 satırlık bir kod, yani içinde LLM çağrısı bulunan bir
for döngüsü.
- Bu döngü içinde LLM komutları yürütür, sonuçları doğrudan kontrol edebilir ve insan müdahalesi olmadan tekrarlı biçimde çalışır.
- Basit görünebilir, ancak pratikte bu yapı kurulduğunda yalnızca saf LLM kullanmaya kıyasla programlama yeteneği sıçrama yapar.
Beyaz tahta programlaması ile ajanların farkı
- Bir beyaz tahta karşısında durup marker ile C dilinde UTF-8 dizgelerinin geçerliliğini kontrol eden bir fonksiyon yazdığınızı varsayalım.
- (Yazarın gerçekten yaşadığı bir mülakat durumu ve yaygın bir görüşme görevi.)
- Bu işin başarıyla sonuçlanması, programcı olarak deneyiminize ve dış kaynaklara bakamama kısıtını ne kadar iyi idare edebildiğinize bağlıdır.
- UTF-8 kodlama kurallarını hatırlamanız gerekir ve C sözdizimini başka C ailesi dilleriyle karıştırmamaya dikkat etmelisiniz (isim-tür, tür-isim sırası gibi).
- Oysa günlük hayatta kodu doğrulamak ve hataları bulmak için derleyici geri bildirimi, doküman arama,
printfler gibi birçok yöntem kullanabilirsiniz.
- LLM’ye ajansız biçimde kod yazdırmak, beyaz tahtada dış yardım olmadan kod yazmaya benzer.
- Belirsiz anıları geri çağırmak, verimsiz biçimde sözdizimini tutturmaya çalışmak ve hayali arayüzler uydurma hatasından kaçınmak gerekir.
- LLM’nin tamamen yeni bir program üretebilmesi teknik olarak etkileyici olsa da, GPU’ya bağlı sanal bir beyaz tahta tek başına gerçek programlama verimliliğini çok artırmaz.
- Peki LLM’ye sanal beyaz tahtadan fazlası verilirse?
- Örneğin derleyiciyi çağırıp derleme hatalarını görmesine ve kendisinin düzeltmesine izin verilirse?
grep, cat ile mevcut dosyaları okuyup, birden fazla dosyayı (birim testler dahil) yamalayarak tekrar tekrar test edebilse?
- Ajan tam olarak böyle, geri bildirim temelli çalışan bir LLM’dir.
Ajan = geri bildirim ortamında çalışan LLM
- İnsan gibi geri bildirim ortamında iyi çalışan bir LLM, yalnızca birkaç tanıdık araçla bile pratik programlama yeteneği gösterebilir.
bash(cmd): terminal komutu çalıştırma (find, cat, grep vb.)
patch(hunks): dosya yamalama, kod değişikliği uygulama
todo(tasks): görev listesi yönetimi
web_nav(url), web_eval(script), web_logs(), web_screenshot() vb.: web gezintisi, değerlendirme, log, ekran görüntüsü vb.
keyword_search(keywords): anahtar kelime araması
codereview(): kod inceleme
bash aracını kullanarak kod tabanını verimli biçimde keşfeder, git add/commit gibi sürüm kontrol işlemlerini de otomatikleştirir.
- Bu araçlar olmadan yalnızca kod üreten LLM’lerden farklı olarak, ajanların şu belirgin avantajları vardır:
- API kullanım doğruluğu büyük ölçüde artar (doküman arama ve bağlama doğrudan yansıtma sayesinde)
- Derleyici geri bildirimi ile sözdizimi hataları ve arayüz yanlışları azalır
- Bağımlılık/sürüm yönetimi becerisi güçlenir (belirli sürüm özelliklerini kavrayabilir)
- Test başarısızlıkları üzerinden hata tespiti ve test kodu yazma alışkanlığı güçlenir
- Bağlam penceresi sınırını aşan kod tabanı işleme mümkün olur (yalnızca gerekli bölümleri seçerek okur)
- Çalışma sonuçlarını doğrudan deneyebilir: kodu çalıştırır, tarayıcı ekran görüntüsünden geri bildirim alır, CSS’i otomatik ayarlar, sunucu loglarıyla hatayı izler ve test ekler
- Dezavantajlar da var.
- Tek cümlelik bir istek için on binlerce ara token üretilebilir (araç çağrıları, web araması, test döngüleri vb.) ve iş birkaç dakika veya daha uzun sürebilir
- API çağrısı maliyeti de vardır, ancak donanım gelişimiyle zamanla azalması beklenir
- Sonuçta aradaki emeği CPU/GPU üstlenir, geliştiricinin zamanını boşaltır ve yapmak istediği daha fazla programı tamamlamasını sağlar.
- Pratikte bir projeye ajan ekleyip küçük görevler vererek sonuçları kontrol etmek kolaydır.
Örnek: Github App kimlik doğrulaması geliştirme
- Bu, ajan kullanarak sketch.dev’in Github App kimlik doğrulama akışını uygulamaya alan gerçek bir örnek.
- Yalnızca 3-4 geri bildirim turuyla tüm kimlik doğrulama akışı hızlıca tamamlandı.
- Hata ya da gereksinim bulunduğunda kısa bir cümleyle anlatmak yeterli oldu; ajan hemen kodu ve davranışı iyileştirdi.
- Tekrarlayan ve sıkıcı API entegrasyonu işleri, build sistemi/paket yönetimi/kütüphane kurulumu gibi gerçek iş hayatının "angaryalarını" azaltarak üretkenlik ivmesini korumaya büyük katkı sağladı.
- İlk gereksinimlerden biri, "kullanıcı bazlı token saklamadan yalnızca uygulamanın global kimlik bilgilerini kullanmak" oldu ve ajan bunu yansıtarak uyguladı.
- Ancak bunun sonucunda ciddi bir güvenlik açığı oluştu (herkes tüm depoları görebiliyordu).
- Sorun tek cümleyle geri bildirim olarak verilince, ajan hemen kullanıcı bazlı yetki kontrolü ekleyip düzeltilmiş bir commit oluşturdu.
- Sonrasında performans sorunu ortaya çıktı.
- Aslında bu süreci yazıyla anlatmak için kullanılan kelime sayısı, Sketch’te kimlik doğrulama kodunu almak için girilen toplam kelime sayısından daha fazlaydı.
- Kısacası, ajanlar bugün için geliştiricilerin yerini alabilecek düzeyde değil; ama geleneksel olarak günler süren tekrarlı işleri bir güne indirmeye yardımcı oluyor.
- Otomasyon öyle bir düzeye gelebiliyor ki geliştirici "çocuğun odasını toplarken" bile işi ilerletebiliyor.
Örnek: JSON tabanlı SQL kurallarının uygulanması
- Ajanların sık yaptığı işlerden biri olarak, Tailscale’de öğrenilen sıra dışı bir SQL stilinin uygulanması gerekiyordu.
- Tüm tablolarda gerçek sütun yalnızca bir tane (JSON veri) ve diğer sütunlar JSON’dan türetilen generated column olarak ele alınıyor.
- Örnek tablo yapısı:
CREATE TABLE IF NOT EXISTS Cookie (
Cookie TEXT NOT NULL AS (Data->>'cookie') STORED UNIQUE, -- PK
UserID INTEGER NOT NULL AS (Data->>'user_id') STORED REFERENCES User (UserID),
Created INTEGER NOT NULL AS (unixepoch(Data->>'created')) STORED,
LastUsed INTEGER AS (unixepoch(Data->>'last_used')) CHECK (LastUsed>0),
Data JSONB NOT NULL
);
- Bu yaklaşım bir tür poor man’s ORM işlevi görüyor; şemayı genişletmeyi kolaylaştırıyor ve SQL kısıtları JSON veri kalitesini doğrulamaya yardımcı oluyor.
- Dezavantajı ise satır başına depolanan verinin artması ve tüm
INSERT/UPDATE işlemlerinin JSON birimi üzerinden yapılmak zorunda olması.
- Ancak ajan bu stili her zaman tutarlı biçimde izleyemedi.
- Yeni tablo oluştururken genelde iyi uyuyordu, ama istisnalar olduğunda kafası karışıyor ya da stili keyfi biçimde değiştiriyordu.
- Basit çözüm: SQL şema dosyasının başına 3 cümlelik bir açıklama eklemek.
- "Her tablonun yalnızca gerçek bir
Data JSON sütunu vardır, diğer tüm sütunlar bundan türetilir" gibi anahtar bir cümle eklendi.
- Bu kurala uymayan tablolarda da bunun istisna olduğu ayrı yorumlarla belirtildi.
- Sonrasında ajanın davranışı gözle görülür biçimde iyileşti.
- İlginç olan, bu tür açıklama ve yorumların gerçek insan mühendisler tarafından çoğu zaman görmezden gelinmesi ya da düşük faydalı bulunması;
- buna karşılık LLM tabanlı ajanlar yorumları ve açıklamaları kod yazarken aktif biçimde dikkate alıyor
- yalnızca iyi açıklama yazmak bile kod üretim kalitesini belirgin biçimde artırıyor
“Varlık” ve “borç” kod modeli
- LLM tabanlı kod üretim araçlarına yönelik yaygın eleştirilerden biri, kod üretiminin toplam yazılım maliyetinin yalnızca çok küçük bir parçası olmasıdır.
- Asıl zaman, mevcut kodun bağımlılıklarını, iç içe geçmiş yapısını ve karmaşık arayüzlerini yönetmeye gider.
- Büyük ölçekli, eski ve çok kullanıcılı ürünlerde bakım maliyeti ezici ölçüde yüksektir.
- Böyle bir ortamda LLM’ye "Fortran ile bubble sort yaz" demek oyuncak gibi ya da rahatsız edici bir dikkat dağıtıcı gibi gelebilir.
- Finanstaki "varlık/borç" kavramıyla kıyaslayan tartışmalar da vardır, ancak bu da tam oturmaz.
- Ancak tüm yazılım mühendisliği yalnızca bu tür büyük ve uzun ömürlü projelerden ibaret değildir.
- Programların çoğu az sayıda kullanıcıya hizmet eder ya da kısa ömürlü projelerdir.
- Büyük bakım tecrübelerini tüm sektörün özüymüş gibi genellememek gerekir.
- Ajanların değeri yalnızca kod üretimiyle sınırlı değildir.
- Ajanlar, çeşitli araçları ve LLM’leri birleştirerek kod okuma, dosya düzenleme, kod silme/değiştirme gibi değişimin kendisini otomatikleştirir.
- Yalnızca kod eklemek değil, kod silme/refactor etme de doğal biçimde yapılabilir.
- Sonuçta mühendisin hedefi değişimdir (
change).
- Değişim sürecinde sürücünün yapılan değişikliği anlaması için ek çaba gerekse de, ajanlar orta ölçekli projelere kadar kademeli değişim üretme kapasitesi gösteriyor.
- Bugün henüz yeterli olmasa da, ajanlar doğru yönde hızla gelişiyor.
- Ayrıca karmaşık dillerin ve build sistemlerinin projeye giriş eşiği oluşturduğu yönünde bir görüş de var.
- Kolay kod yazdıran araçların (LMM, type safety, garbage collection, package management, ajanlar vb.) bu eşiği düşürmesi halinde kalitenin düşeceği endişesi dile getiriliyor.
- Eğer amaç değişim hızını yavaşlatmak ya da kontrolü sıkılaştırmaksa, ajan gibi otomasyon araçları uygun olmayabilir.
Neden ajanlar şimdi?
- Transformer gibi karmaşık yapay zeka ilkelerinin aksine, LLM’ye geri bildirim döngüsü eklemek sezgisel olarak çok açık bir yaklaşım.
- Geliştirici araçları üzerine düşünen biri için bu doğal bir evrim yönü gibi görünüyor.
- Nitekim bir yıl önce sketch.dev’in ilk sürümü de LLM’ye yalnızca go aracının bağlandığı bir düzeydeydi; ancak bununla bugün kullanılan ajan arasında pratik kullanım açısından büyük fark var.
- ML alanında da pekiştirmeli öğrenme (geri bildirim temelli öğrenme) 50 yılı aşkın süredir temel ilkelerden biri.
- Ajanların pratikte ortaya çıkışı, LLM’lerin evrimiyle doğrudan bağlantılı.
- 2023’teki LLM’ler araç çağırma konusunda yetersizdi, bu yüzden ajan rolü sınırlıydı.
- 2025 LLM’leri araç çağrıları ve tekrarlı işler için optimize edilmiş durumda, bu da ajanların gerçek anlamda kullanılmasını mümkün kılıyor.
- Frontier (en yeni ticari) modeller, araç kullanma becerisinde açık modellere göre belirgin biçimde önde.
- Önümüzdeki 6 ay içinde açık modellerin de bu farkı kapatması bekleniyor.
- İşe yarar şekilde tekrarlı araç çağrısı yapabilmek, en yeni LLM’lerdeki en büyük değişim.
Sonraki yön: container’lar ve paralel çalışma
- LLM ajanları alanı, mühendislerin çoğunun henüz fiilen benimsemediği erken ve hızlı değişim aşamasında.
- Bugün ajanlar ağırlıklı olarak IDE içinde ya da yerel depolarda çalışacak şekilde kullanılıyor.
- VSCode fork’u ya da komut satırı aracı kurarak başlamak kolay.
- Ancak iki önemli sınır var:
- Birincisi, güvenlik önlemlerinin yetersizliği: gerçek bilgisayarda kayıtlı prod kimlik bilgileri gibi hassas verilerin sızma riski
- Ajanın deploy script’i gibi istenmeyen komutları çalıştırması durumunda kritik güvenlik olayları yaşanabilir
- Her komut çalıştırma öncesi manuel onay istense de, hassas bilgi sızdırma ihtimali sürer
- İkincisi, paralel yürütme ve otomasyon sınırı: her geliştiricinin kendi ortamında aynı anda ancak bir ajan çalıştırabilmesi
- Bir ajanın tek çalışması birkaç dakika sürebildiğinden, birden fazla işi eşzamanlı ilerletmek zor ve verimsizdir
- sketch.dev bu sınırları container ortamı ile aşmaya çalışıyor.
- Her iş için izole geliştirme container’ları oluşturuluyor, kaynak kod kopyalanıyor ve dışarıya yalnızca
git commit gibi çıktılar alınıyor.
- Böylece birden fazla ajan aynı anda çalıştırılabiliyor; başka ajan sistemleri de bu yaklaşımı araştırıyor.
- Gerçek örnek: Github kimlik doğrulama işi sürerken, form arayüzü iyileştirmesi ayrı bir ajan oturumunda yürütüldü.
- Ayrı bir issue tracker kaydı açmadan, ekran görüntüsü ve tek satırlık kısa bir istekle form tasarımı geri bildirimi verildi.
- Sadece 30 saniyelik bir yatırımla bile belli bir kalite eşiğinin üzerinde sonuç alınabildi.
- Son 6 aydaki UX deneylerinin sonucu:
- Ajan tabanlı geliştirmede container’ların (izole yürütme ortamlarının) en pratik çözüm olduğu sonucuna varıldı.
IDE neye dönüşecek?
- Ajan tabanlı geliştirme ortamında IDE’nin (entegre geliştirme ortamı) rolünün ne olacağı hâlâ açık bir soru.
- Ajana yönerge verip işi başlatmak, bunu container ortamında çalıştırmak, değişiklikleri diff olarak incelemek ve branch/PR olarak push etmek gerçek iş akışı haline gelebilir.
- Pratikte ajanın ürettiği commit’lerin çoğunda belirli düzeyde insan eliyle temizlik gerekiyor.
- Başlangıçta neredeyse her commit manuel düzeltme gerektiriyor; fakat prompt yazma becerisi arttıkça gereken düzeltme miktarı azalıyor.
- Yapılan düzeltmeler bazen yorum düzenleme, değişken adı değiştirme gibi basit şeyler; bazen de daha karmaşık refactor işlemleri olabiliyor.
- Bunların container ortamında nasıl verimli yapılacağı kilit nokta.
- sketch.dev ve benzeri yerlerde denenen iş akışları:
- Doğrudan düzenlenebilir diff görünümü sunmak
- Sketch’in diff ekranının sağ tarafında kod doğrudan düzenlenince ilgili commit’e yansıyor ve hemen push edilebiliyor
- Küçük tek satırlık düzeltmeler için çok verimli
- Container’a SSH erişimi sağlamak
- Doğrudan shell’e girilebiliyor veya web terminal ile kod üzerinde çalışılabiliyor
vscode:// URL’siyle açılarak geleneksel IDE’de çalışma mümkün oluyor
- Kod inceleme tarzı yorumları diff üzerinde doğrudan bırakıp ajana geri bildirim olarak iletmek
- Kod inceleme deneyiminden yararlanarak, gerekli açıklama ve talepler minimum girişle aktarılabiliyor
- Genel değerlendirme
- Container ortamı, kod üretimi-düzenleme-doğrulama-inceleme süreçlerini entegre ederek,
basit kod yazımının ötesine geçen gerçek ajan tabanlı geliştirmeyi mümkün kılıyor.
- Geçmişte container içinde geliştirme yapmak istenmeyen bir şeydi;
ancak ajanın ürettiği diff’leri container içinde toparlayıp düzeltme deneyimi çok ilginç ve üretken.
Son söz
- LLM tabanlı teknolojileri öğrenip denemek insana alçakgönüllülük öğreten bir süreç oldu.
- Geçmişte çok çekirdekli işlemciler, SSD’lerin gelişi, ağların genişlemesi gibi programlamanın doğası değiştiğinde duyulan heyecana benzer bir şey var; ama LLM’ler, özellikle de ajanlar, kodlamanın "sürecinin kendisini" baştan yaratıyor.
- Algoritma, dil ve kütüphane seçimlerini etkileyen önceki değişimlerin aksine, ajanlar çalışma biçiminin tüm varsayımlarını temelden yeniden sorgulatıyor.
- Hatta bazen, "programlamayı hiç bilmiyormuş gibi sıfırdan yeniden öğrenmek daha iyi olurdu" diye düşündürecek kadar büyük bir değişim söz konusu.
- Ve bu değişim hâlâ sürüyor.
- Bugün yaşadığımız biçim, 6 ay öncesinden bile tamamen farklı ve henüz oturmuş değil.
- Takım işbirliği, review gibi geliştirme kültürü standartları da yakında büyük ölçüde değişebilir.
- Örneğin, biçimsel olarak yapılan kod incelemeleri artık gerçek sorunları çözmekte yetersiz kalıyor
- Kod inceleme sürecinin kendisini yeniden icat etme zamanı gelmiş olabilir
- IDE de yıllardır savunduğu bütünlük anlayışının aksine, baştan aşağı yeniden düşünülmek zorunda kalabilir
- Sektör bu değişimin farkında, ancak ajan merkezli yaklaşım henüz başlangıç aşamasında
- Önümüzde daha büyük değişimler var ve
merak ile alçakgönüllülük, bu dönüşümden iyi geçmenin belki de tek yolu
- Hatta belki de şu anda teknoloji forumlarında vakit geçirmek yerine,
bu tür tartışma ve özetleri bile ajanlara bırakmak daha iyi olabilir
1 yorum
Hacker News görüşü
Ben çoğunlukla sadece kendi araçlarım için kod yazdığım için, benim yerime başka birinin ya da bir şeyin kodu yazıp sonra benim onu okuyup, anlayıp, düzeltmemin çok büyük bir artısını pek görmüyorum; tabii API dokümantasyonunda istediğim kısmı LLM'e buldurmak oldukça faydalı ve zaman kazandırıyor, bu yüzden LLM'lerin gelecekte daha iyi olup olmayacağından bağımsız olarak ben zaten başkasının kodunu okumayı pek sevmiyorum
Yazarın code review'un zayıf olduğu ve neredeyse hiç düzgün işlemediği kısmına tamamen katılıyorum, agent'ların kod yazdığı bir dönemde gerçek darboğaz yazmak değil kod okumak olacak, insanlar review'yu baştan savma yapar ya da sadece kendi zevklerini göstermenin aracı olarak kullanırsa agent'lar ciddi güvenlik ya da performans sorunlarını kolayca içeri sokabilir, açıkçası asıl sorunlar kodu sadece okuyarak görünmüyor; doğrudan debug etmek ya da varsayımları elle doğrulamak gerekiyor
Nihayet LLM'ler hakkında gerçekçi bir analiz yapan bir yazı gördüm, "agent" teriminin aslında özyinelemeli biçimde LLM çağıran bir
fordöngüsüne isim verilmesinden ibaret olması biraz sinir bozucu ama sektörde isimlendirme zaten ortalamanın altında, o yüzden kabulleniyorum"Container'ların programlamada faydalı ve gerekli olduğu konusunda hemfikiriz" kısmıyla bağlantılı olarak, Docker'ı yapan Solomon Hykes'ın neden yakın zamanda Container Use adlı projeyi açık kaynak yaptığı anlatılıyor: agent'ların paralel ve güvenli şekilde çalıştırılabilmesi için, Sketch gibi bazı platformlar yalıtılmış yerel geliştirme ortamını gömülü sunuyor ama diğer coding agent'larda bu yok; ek bilgi olarak şu YouTube videosu da öneriliyor
Agentic loop, makinenin içindeki bir beyin, hatta fiilen bir kural motoru yerine geçen şey gibi görünüyor, kendine özgü bazı eksileri hâlâ var ama birçok uzmanın özü doğru yakaladığını düşünüyorum: "agent araçları birbirine bağlıyor, kullanıcının isteğiyle prompt veriyor, sonra çalıştırıp tekrar tekrar döndürüyor ve prompt da duruma göre dinamik olarak değişiyor", insan benzeri etkileşim ya da problem çözme biçimini illa taklit etmeden de orkestrasyon/çok aşamalılık, belirsiz görevlerin yerine getirilmesi ya da otomasyon için oldukça faydalı, eskiden belirsizliği doğrudan kodla ifade etmek gerekiyordu, belki artık buna gerek kalmayacak, production ortamında dry run olmadan çalıştırma konusunda kaygılar var ama araçların ve servislerin de evrileceğini düşünüyorum, 100'den fazla benzer servis tutarlı bir arayüzle dış dünyaya (ör. SMS, e-posta, hava durumu, sosyal ağlar vb.) bağlanırsa bugünkünden çok daha güçlü bir asistan, hatta daha fazlası ortaya çıkabilir
Kod okumak her zaman yazmak kadar önemliydi ama artık daha da önemli hâle geliyor, bu benim kâbusum, kod yazmak bazen eğlenceli olabiliyor ama kod okumak her zaman emek
Agent kullananlar arasında gerçekten "programlamayı" yani problem çözme biçimi üzerine düşünmeyi ve bunu kodla ifade etmenin keyfini seven kaç kişi var merak ediyorum, bugün birçok agent iş akışına bakınca bu sürecin kendisi ortadan kalkmış gibi; doğal dille gereksinimleri anlatıyorsun ve sonra sadece LLM'in bug üretmemesini umuyorsun
Kod yazarken AI'ı keyifle kullandığım birkaç alan var (gerçekten benim yazdıklarım!):
"Varlık" ve "borç" kısmı ilginçti ama katılmıyorum, birçok program az sayıda kullanıcı için başlayıp sonra beklenmedik şekilde büyük projelere dönüştü, geçmişte tek seferlik diye üstünkörü yazılmış bilimsel kodun bir anda çok daha uzun ömürlü ve geniş kapsamlı hale geldiğini fazlasıyla gördüm, bu yüzden kendi kodumu çok daha uzun yaşayacak ve daha geniş ölçekte kullanılacakmış gibi, hem kendime hem başkalarına karşı sorumluluk duyarak yazıyorum, bir çalışma arkadaşının kişisel yan projesinin yönetici tarafından ekip projesine dönüştürüldüğünü gördüysen bu sorunu anlarsın
Bence LLM'leri kod yazma/tasarlama yerine code review için kullanmak asıl killer özellik olabilir, şu anda code review zaten birçok açıdan bozuk ve ileride güvenlik, tanımsız davranış, özelliklerin yanlış kullanımı, derleyici uyarılarının ikinci kez kontrolü gibi konularda LLM'lerin faydası daha da artabilir, ben kişisel olarak LLM'leri daha çok arama motoru gibi hata teşhisi ve debug için kullanıyorum, doğruluk oranı yaklaşık %50 ve bu bana gayet yeterli geliyor