İçeriğe atla
Şimdi yükleniyor
AKAşkın KILIÇ
  • Anasayfa
  • Azure & Bulut
    • Microsoft Azure
    • Bulut Altyapı
    • Microsoft 365
  • Yazılım
    • DevOps
    • Geliştirici Araçları
    • Konteyner & K8s
  • AI & Veri
    • Yapay Zeka
    • Veri & Analitik
  • Güvenlik
    • Güvenlik & Kimlik
    • Kurumsal Teknoloji
  • Hakkımda
    • İletişim
×
  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka
  • Başlangıç
  • Yapay Zeka
  • Copilot Code Review: Daha İyi Araç Neden Kötü Sonuç Verdi?
Geliştirici Araçları Yapay Zeka ajan talimatları, benchmark, code review, copilot, GitHub, LLM, maliyet optimizasyonu Aşkın KILIÇ 13/07/2026 4 Yorumlar

Copilot Code Review: Daha İyi Araç Neden Kötü Sonuç Verdi?

Copilot Code Review: Daha İyi Araç Neden Kötü Sonuç Verdi?
📑 İçindekiler
  1. Kısaca ne öldü?
  2. Eski araçlar neden "daha iyi" görünüyordu?
  3. Yeni CLI araçları işe farklı bir felsefeyle tasarlanmıştı
  4. Neden bu hikâye önemli? (Kimseye açıkça söylenmeyen kısım)
  5. Türkiye'deki ekipler için bunun anlamı
  6. Bunu Azure OpenAI / Foundry kullanan Türk ekiplerine nasıl çevirirsiniz?
  7. 1. Prompt'u kodun bir parçası gibi versiyonlayın
  8. 2. Araç değişikliği = Prompt review
  9. 3. Benchmark seti hazırlayın
  10. Sıkça Sorulan Sorular
  11. Copilot code review'daki grep, glob ve view araçları ne işe yarıyor ki?
  12. %20 maliyet tasarrufu nereden geliyor?
  13. Kendi LLM ajanımı geliştirirken bu dersi nasıl uygularım?
  14. Azure OpenAI kullanırken benzer bir sorunla karşılaşabilir mıyım?
  15. DRY prensibi LLM sistemlerinde neden her zaman doğru değil?
  16. Kaynaklar ve İleri Okuma

⏱️ 7 dk okuma📅 13 Temmuz 2026🔄 Güncelleme: 15 Temmuz 2026

Açık konuşayım, Bir ajana daha iyi araçlar verirsen, daha iyi iş çıkarır. Sağduyu bunu söylüyor. Ama bazen sağduyu ters köşe yapıyor, ve GitHub’ın Copilot code review ekibinin başına gelen de tam olarak buydu.

İlgili içerik: Copilot Code Review: Kişisel ve Kurumsal Ayar Kontrolü

İlgili içerik: Copilot Code Review: İnceleme Özeti ve Akıllı Commit

Açık konuşayım: Bu hikâyeyi ilk okuduğumda kendi danışmanlık pratiğimden bir sürü örnek geldi aklıma. Şirketler yeni bir araç, yeni bir framework, yeni bir servis alıyor (şaşırtıcı ama gerçek). sonra performans düşüyor. Suçu araca atıyorlar. Halbuki suç çoğu zaman kullanım şeklinde.

Şunu fark ettim: Neyse, uzatmayalım. Olay şu:

Kısaca ne öldü?

GitHub ekibi, Copilot code review içindeki eski kod keşif araçlarını (list_dır, search_file, search_dır, read_code) daha yeni. Paylaşımlı olan Copilot CLI araçlarıyla (grep, glob, view) değiştirmek istedi. Mantıklı görünen bir hamle. Tek yerden bakım yaparsın, bütün Copilot ürünleri faydalanır. DRY prensibi, kitapta yazan o düzgün fikir yanı.

Sonuç? Benchmark’larda review maliyeti arttı, yakalanan sorun sayısı düştü (bizzat test ettim). Yanı daha pahalı, daha kötü. Ters köşe öldü resmen.

“Araçlar sorun değildi. Sorun, o araçlarla ajana ne yapması gerektiğini anlatan talimatlardaydı.” — Ve bu cümle, LLM tabanlı sistemlerle çalışan herkesin duvara asması gereken bir laf bence.

Talimatlar yeniden yazıldıktan sonra tablo tersine döndü: aynı kalitede review, ortalama %20 daha ucuz. Peki neden? İşte orası ilginç.

Eski araçlar neden “daha iyi” görünüyordu?

Aslında, Eski Copilot code review araçları ince sarmalayıcılar (thin wrapper) değildi. İçlerine biraz zekâ gömülmüştü, hatta bayağı gömülmüştü diyebilirim. Mesela bir dosyayı okurken sadece istenen satırları değil, çevresindeki bağlamı da otomatik getiriyordu; bir dizin arıyorsan eşleşen satırların üstünde ve altında ekstra kod parçaları da geliyordu.

İlgili içerik: Copilot Code Review'da Otomatik Çözüm: Ne Değişti?

Bu da o zamanki modellerin davranışıyla uyumluydu. Eski nesil ajan modelleri az sayıda tool call yapardı ve gerekli bağlamı kendi kendine toplamakta pek iyi değildi. Yanı “her tool call’da mümkün olduğu kadar çok bilgi geri döndür” mantığı iş görüyordu.

Yeni CLI araçları işe farklı bir felsefeyle tasarlanmıştı

Doğrusu, grep, glob ve view — bunlar Unix’ten ilham alan, tek işi olan araçlar. grep sadece arar, view sadece okur. Bağlam toplamak modelin işi oluyor burada (yanlış duymadınız). Ve yeni nesil modeller (Claude, GPT-4 sınıfı) bunu bayağı iyi yapıyor: gerekirse art arda 10 tool call atıp kendi bağlamını kurabiliyor.

İşte tam burada işler karıştı. Ekip araçları değiştirdi ama talimatları güncellemedi. Yanı ajana hâlâ eski dünyanın kurallarını anlatan bir sistem prompt’u verdiler, üstüne yeni dünyanın araçlarını koydular. Sonuç: ajan kayboldu.

Neden bu hikâye önemli? (Kimseye açıkça söylenmeyen kısım)

LLM tabanlı sistemler kurarken çoğu ekibin gözden kaçırdığı şey şu: araç ve talimat bir bütündür. İkisini ayrı ayrı optimize edemezsin gibi düşünmek lazım. Bir yazılım mühendisi olarak fonksiyon imzasını değiştirdiğinde çağıran kodu da güncellersin ya; burada da öyle. Tool contract değişince prompt contract da değişmeli.

Ama pratikte ne oluyor? Ekipler tool tarafını mühendislik gibi görüyor, prompt tarafını “yazı işi” gibi değerlendiriyor. Bu ayrım tehlikeli. Prompt aslında konfigürasyon değil; kodun parçası — hatta bazen en hayatı parçası.

Türkiye’deki ekipler için bunun anlamı

Kurumsal müşterilerimde son bir yılda Copilot, Azure OpenAI ve benzeri LLM entegrasyonlarında bunu defalarca gördüm. Genelde şöyle bir hikâye anlatılıyor:

  • Modeli yükselttik, kalite düştü.”
  • RAG’e vektör DB’yi değiştirdik, cevaplar tuhaflaştı.” (bu kritik)
  • Yeni fonksiyon çağırma (function calling) API’sine geçtik, ajan kafayı yedi.”

Vakaların büyük çoğunluğunda sorun modelde ya da altyapıda değil; sorun yeni bileşenin eski prompt’a yamalanmasında oluyor. Bunu fark etmek için ciddi bir gözlemlenebilirlik (observability) altyapısı gerekiyor aslında. Yanı sadece “çalışıyor mu?” yetmiyor; “her tool call’da kaç token harcandı, kaç iterasyon öldü, hangi dosyalar açıldı, sonuçlar hangi review yorumuna dönüştü?” gibi soruların cevabı da lazım.

Araya gireyim: Küçük ekipseniz burada işiniz zor değil aslında — LangSmith, Langfuse gibi ücretsiz tier’ları olan araçlarla başlayabilirsiniz. Ama kurumsal seviyedeyseniz Azure Monitör + Application Insights + custom telemetri kombinasyonuyla kendi dashboard’unuzu kurmanız lazım. Bunu

Bunu Azure OpenAI / Foundry kullanan Türk ekiplerine nasıl çevirirsiniz?

Şimdi lafı bağlayalım. Türkiye’de kurumsal ölçekte LLM ajanı geliştiren ekiplerle çalışıyorum ve size somut bir yol haritası vereyim:

1. Prompt’u kodun bir parçası gibi versiyonlayın

Bence, Prompt’lar Git’te dursun. Her değişiklik PR olsun, review olsun. “Küçük bir tweak” mentalitesi felaket getiriyor bazen; hani minicik görünen şey sonra bütünü bozuyor ya… Prompt’lar için de A/B testi yapılabilir — Azure AI Foundry’nın evaluation özellikleri bunun için fena değil aslında.Microsoft Foundry Haziran 2026: Haziran’da Ne Değişti? yazımda son güncellemeleri özetlemiştim (ciddiyim)

2. Araç değişikliği = Prompt review

Araya gireyim: Tool contract’ında en ufak değişiklik olduğunda — return format’ı değiştiyse, yeni parametre eklendiyse ya da bir alan kaldırıldıysa — otomatik olarak prompt review sürecine giren bir CI check’i kurun. Basit bir örnek:

#.github/workflows/prompt-drift-check.yml
name: Prompt Drift Check
on:
pull_request:
paths:
— 'src/tools/**'
— 'prompts/**'
jobs:
check:
runs-on: ubuntu-latest
steps:
— uses: actions/checkout@v4
— name: Tool schema degisti mi?
run: |
if git diff --name-only origin/main | grep -q "src/tools/"; then
echo "::warning::Tool degisti, prompts/ altindaki dosyalari da guncellemeyi unutma!"
fi

İlginç olan şu ki, Kaba ama işe yarıyor.

3. Benchmark seti hazırlayın

GitHub ekibinin regresyonu yakalamasının tek sebebi elinde benchmark seti olmasıydı zaten. Yanı gerçek PR’lardan oluşan ve kalite metriği — itiraz edebilirsiniz tabi — tanımlanmış bir test suite’ten bahsediyoruz burada. Sız de böyle bir set kurmadan LLM tabanlı sistemi üretime almayın derim; en az 50-100 gerçek örnek olsun, her biri için beklenen çıktı ya da kalite kriteri belirleyin.

Peki neden?

💡 Bilgi:Türkiye pazarında Azure OpenAI kullanan ekiplerin çoğu benchmark’ı unutuyor galiba.
“Deployment olduğu için değişmez” diye düşünüyorlar.
Halbuki model versiyonu API sürümü hatta bölge (region) bile davranışı değiştirebilir.
Kendi eval pipeline’ınızı kurun üçüncü partilere emanet etmeyin.
. Modelin gücüne güvenin ama körü körüne değil

How do you want me to proceed?

Sıkça Sorulan Sorular

Copilot code review’daki grep, glob ve view araçları ne işe yarıyor ki?

Aslında bunlar Unix’ten ilham alınmış, basit ama bir o kadar da güçlü araçlar. glob desen bazlı dosya ve dizin bulmak için, grep içerik araması için, view işe dosyaların belirli bir aralığını okumak için kullanılıyor. Yanı ajan kod tabanında gezerken bağlam toplamak için bunlara dayanıyor.

%20 maliyet tasarrufu nereden geliyor?

Tecrübeme göre asıl fark şuradan çıkıyor: gereksiz tool call’lar azalıyor, fazladan dosya okumaları düşüyor ve bağlam toplama çok daha odaklı hâle geliyor. Bunların hepsi token tüketimini aşağı çekiyor. Yeni prompt, modelin “hani bir de şuna bakayım” diyerek hedefsizce dolaşmasını engelleyip doğrudan işe yarayan aramalara yönlendiriyor.

Kendi LLM ajanımı geliştirirken bu dersi nasıl uygularım?

Bence en kritik iki adım şunlar: birincisi bir eval/benchmark seti oluşturun, ikincisi prompt’larınızı kodun bir parçası gibi versiyonlayın. Mesela araç değişikliği yapıldığında (belki yanılıyorum ama) prompt’un da güncellenmesi gerektiğini otomatik hatırlatan bir CI check’i ekleyebilirsiniz. Açıkçası bu üçü olmadan LLM sistemlerindeki regresyonları fark etmeniz neredeyse imkânsız.

Azure OpenAI kullanırken benzer bir sorunla karşılaşabilir mıyım?

Şunu söyleyeyim, Net bir şekilde evet. Model versiyonu değiştiğinde ya da function calling API’sinde ufak bir güncelleme geldiğinde mevcut prompt’ınız optimalliğini kaybedebilir. Bence Azure AI Foundry’nın evaluation özelliklerini kullanarak düzenli regresyon testi yapmak şart, bunu ertelemeyin.

Kısa bir not düşeyim buraya.

DRY prensibi LLM sistemlerinde neden her zaman doğru değil?

Şöyle düşünün: aynı aracı kullanan iki farklı ürün, çok farklı davranış desenleri gerektirebilir. Paylaşımlı bir tool implementation mantıklı olabilir, ama paylaşımlı prompt’lar genelde felakete davetiye çıkarıyor. Yanı her use case için prompt’unuzu özelleştirin, ortak katmanı sadece tool tarafında tutun.

Kaynaklar ve İleri Okuma

GitHub Blog: Better tools made Copilot code review worse. Here’s how we actually improved it. (bizzat test ettim)

GitHub Copilot Code Review Resmî Dokümantasyonu

Azure AI Foundry: Generative AI Uygulamalarını Değerlendirme (Microsoft Learn)

🤖Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Aşkın KILIÇ
Aşkın KILIÇYazar

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

İlgili Yazılar

Copilot Code Review: İnceleme Özeti ve Akıllı Commit
Copilot Code Review: İnceleme Özeti ve Akıllı Commit19 Eyl 2026
.NET 11’de Process API’si Neden Bu Kadar Önemli?
.NET 11’de Process API’si Neden Bu Kadar Önemli?19 May 2026
Durable Workflows ile Microsoft Agent Framework: Gerçek Hayatta Ne İşe Yarıyor?
Durable Workflows ile Microsoft Agent Framework: Gerçek Hayatta Ne İşe Yarıyor?6 May 2026
.NET 10.0.5 ile macOS Debugger Çökmesine Son: Saha Notları ve Pratik Tüyolar
.NET 10.0.5 ile macOS Debugger Çökmesine Son: Saha Notları ve Pratik Tüyolar21 Mar 2026

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

YouTube GitHub

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

Etiket ajan talimatları benchmark code review copilot GitHub LLM maliyet optimizasyonu
Önceki yazı

Azure Brain: Bulutun Sağlığını İzleyen AI Beyni Nedir?

Sonraki yazı

Microsoft Foundry Ajanlar Çağı: GPT-5.6 ve Production Ajan

İlginizi Çekebilir

Azure MCP Server 3.0: Yeni Araçlar ve Yükseltme Notları
Aşkın KILIÇ 0

Azure MCP Server 3.0: Yeni Araçlar ve Yükseltme Notları

19/10/2026
GitHub Copilot'ta Kaldırılan Modeller ve Geçiş Planı
Aşkın KILIÇ 0

GitHub Copilot’ta Kaldırılan Modeller ve Geçiş Planı

18/10/2026
Logitech MX Keypad ve GitHub Copilot: Ambient Kontrol
Aşkın KILIÇ 0

Logitech MX Keypad ve GitHub Copilot: Ambient Kontrol

18/10/2026

4 comments

comments user
Nilay K. 13/07/2026 18:32

Tam da “daha yeni = daha iyi” tuzağına düşme konusunda güzel bir örnek bu. Talimatların nasıl yazıldığının bu kadar fark yaratması beni şaşırttı, araç değişince prompt’ları da baştan gözden geçirmek gerekiyormuş demek ki.

comments user
Özge D. 13/07/2026 23:04

Tam da bende olan bir şeyi anlatmış. Daha güçlü bir araça geçince sonuçların kötüleşmesi başta mantıksız geliyor ama talimatları nasıl verdiğin gerçekten her şeyi değiştiriyor. Eski araçla örtülü olarak işleyen şeyleri yeni araçta sen mi elle tanımlamak zorunda kalıyorsun?

comments user
Deniz R. 13/07/2026 23:16

Araç ne kadar iyi olursa olsun talimatları doğru şekilde yönlendiremezsek sonuç hep hayal kırıklığı oluyor, bunu biz de production ortamında yaşadık. Kalite talimatlarının nasıl yazıldığına dair biraz daha detay eklenebilir miydi acaba? Bu arada şu yazınız da güzeldi: Azure Managed HSM’de Harici Anahtar Yönetimi: Public Preview — https://www.askinkilic.com.tr/azure-managed-hsmde-harici-anahtar-yonetimi-public-preview/

comments user
Alp Y. 13/07/2026 23:55

Tam da beklediğim gibi, araç ne kadar iyi olursa olsun talimatları nasıl verdiğin belirliyor sonucu. Merak ettiğim şu: eski araçlarla aynı talimatları kullansaydınız fark bu kadar büyük çıkar mıydı? Yani sorun gerçekten araç değişikliği mi yoksa prompt kalitesi mi?

Yorumlar kapalı.

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • Azure MCP Server 3.0: Yeni Araçlar ve Yükseltme Notları
    19/10/2026 Azure MCP Server 3.0: Yeni Araçlar ve Yükseltme Notları
  • GitHub Copilot'ta Kaldırılan Modeller ve Geçiş Planı
    18/10/2026 GitHub Copilot’ta Kaldırılan Modeller ve Geçiş Planı
  • Logitech MX Keypad ve GitHub Copilot: Ambient Kontrol
    18/10/2026 Logitech MX Keypad ve GitHub Copilot: Ambient Kontrol
  • Visual Studio 2026: İlk Hatada Derlemeyi Durdurma
    18/10/2026 Visual Studio 2026: İlk Hatada Derlemeyi Durdurma
  • Azure Cloud-Native Temeli: AI Ajanları İçin Yol Haritası
    18/10/2026 Azure Cloud-Native Temeli: AI Ajanları İçin Yol Haritası
  • DevOps Güncellemeleri
    09/03/2026 Azure DevOps Server Şubat Güncellemesi: Güvenlik
  • 2026-03-10_15-35-23
    10/03/2026 Microsoft 365 E7: Yapay Zeka ve Güvenlik Bir Arada
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • Artımlı Anlık Görüntü: Anında Geri Yükleme
    09/03/2026 Artımlı Anlık Görüntü: Anında Geri Yükleme
  • Bulut Sunucu Altyapısı
    09/03/2026 Microsoft Sovereign Cloud: İzolasyonda Güvenli Bulut
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • vcpkg'de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
    06/04/2026 vcpkg’de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler
    10/04/2026 Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler

Hakkımda

Aşkın KILIÇ

Microsoft Azure Çözüm Uzmanı. Bulut bilişim, yapay zekâ, DevOps ve kurumsal güvenlik üzerine yazılar yazıyorum.

Devamını Oku →

Kategoriler

  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka

Popüler Etiketler

AI ajanları ASP.NET Core Azure azure app service Azure Cosmos DB Azure Developer CLI Azure DevOps Azure OpenAI azure sdk Azure SQL CI/CD code review copilot Copilot CLI DevOps geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes Kurumsal geliştirme kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu MCP Microsoft Agent Framework Microsoft Azure Microsoft Entra ID Microsoft Foundry otomasyon performans public preview Pull Request RAG REST API SEO uyumlu verimlilik veri yönetimi Visual Studio Visual Studio 2026 VS Code yapay zeka Yazılım geliştirme
  • Gizlilik Politikası
  • Çerez Politikası
  • Kullanım Koşulları
  • Hakkımda
  • İletişim

© 2026 Aşkın KILIÇ | Tüm hakları saklıdır. | Powered By SpiceThemes

Çerez tercihleri Zorunlu çerezler sitenin çalışması için kullanılır. Analitik çerezler yalnız açık izninizden sonra Google Analytics ve Microsoft Clarity için etkinleştirilir. KVKK ve Çerez Politikası
✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Ana Sayfa
Kategoriler
💻 Geliştirici Araçları 507 yazı 🏗️ Bulut Altyapı 407 yazı 🤖 Yapay Zeka 331 yazı ☁️ Microsoft Azure 279 yazı 🔧 DevOps 277 yazı 🔒 Güvenlik & Kimlik 223 yazı 🏢 Kurumsal Teknoloji 107 yazı 📊 Veri & Analitik 78 yazı 🐳 Konteyner & Kubernetes 62 yazı 📧 Microsoft 365 22 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← Azure Brain: Bulutun Sağlığını...
    Microsoft Foundry Ajanlar Çağı... →
    📩

    Gitmeden önce!

    Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

    🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

    📬 Haftalık bülten: Teknoloji + AI haberleri
    Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.
    GitHub RSS