Microsoft 365 Copilot Agent Evaluations: Ajan Kalitesi Ölçümü
Bir Copilot ajanı demoda kusursuz cevap verir, canlıya çıkınca aynı soruya saçmalar. Tanıdık bir tablo. Peki bir ajanın yanıt kalitesini nasıl ölçer ve nasıl artırırsınız? Microsoft bu boşluğu kapatmak için Microsoft 365 Copilot Agent Evaluations aracını public preview’a açtı. Yazıda hem ölçüm tarafını (skorlar, test setleri, CI/CD entegrasyonu) hem de asıl merak edileni, skorları yukarı çekmenin somut yöntemlerini ele alıyoruz.
İçindekiler
Copilot yanıt kalitesi neden ölçülmeli?
Ajan geliştirmenin en sinsi tuzağı, kalitenin bir his olarak kalması. “Bugün iyi cevap verdi, dün kötüydü” gözlemi elle tutulur bir şey değil; sistem promptunu değiştirdiğinizde işlerin gerçekten iyileşip iyileşmediğini söyleyemezsiniz. Ölçüm bu belirsizliği sayıya çevirir. Elinizde bir skor olduğunda “baseline’a göre yüzde 15 daha iyiyiz” diyebilir, bir değişikliğin faydalı mı zararlı mı olduğunu kanıtlayabilirsiniz.
Proof-of-concept aşamasında bile ölçmeye başlamak, ileride çekilecek acıyı bugünden hafifletir. Production’a giderken “kalite ne durumda?” sorusunun cevabı elde hazır olur. Küçük gibi görünen ama bütün geliştirme döngüsünü disipline eden bir alışkanlıktır bu.
Microsoft 365 Copilot Agent Evaluations nedir?
Agent Evaluations, tenant’ınıza deploy ettiğiniz bir Copilot ajanını bir test setine karşı çalıştırıp yanıtlarını otomatik puanlayan bir araç. Şu an public preview aşamasında. Değerlendirmeyi birkaç farklı evaluator üzerinden yapıyor:
- Coherence: Cevabın tutarlı, anlaşılır ve kendi içinde çelişkisiz olup olmadığını ölçer.
- Groundedness: Cevabın verilen kaynaklara dayanıp dayanmadığını, yani ajanın uydurup uydurmadığını denetler.
- ExactMatch: Cevabın beklenen çıktıyla birebir eşleşmesini arar; deterministik senaryolar için.
- PartialMatch: Beklenen anahtar ifadelerin cevapta geçip geçmediğine bakar; daha esnek senaryolar için.
Aracı komut satırından çalıştırıyorsunuz. Tipik bir çağrı şöyle görünür:
# Örnek bir CLI çağrısı (preview komutları değişebilir)
m365agents eval run \
--agent-id "your-agent-id" \
--test-set./tests/sales-queries.json \
--evaluators coherence,groundedness,partialmatch \
--output./reports/scorecard.html
Yanıt kalitesini ölçme: adım adım
Aracı denemek istiyorsanız şu sırayı izleyin. Acele etmeyin; ilk üç adım araçtan bağımsızdır ve asıl değeri onlar üretir.
- Önce test seti hazırlayın. Aracı kurmadan önce yapın bunu. Kullanıcılarınızdan gerçek prompt örnekleri toplayın; başlangıçta 20 tane bile yeter.
- Beklenen çıktıları yazın. Her prompt için “ajan ne demeli?” sorusunun cevabını netleştirin. Sıkıcı ama atlanmaması gereken kısım burasıdır.
- Baseline alın. Mevcut ajanı çalıştırıp skoru kaydedin. Sıfırıncı gün referansınız bu olur.
- İyileştirmeleri ölçün. Her sistem promptu değişikliğinde veya knowledge ekleyip çıkardığınızda tekrar çalıştırın; skor yukarı çıktı mı diye bakın.
- CI/CD’ye dahil edin. En son adım budur, ilk günden zorlamayın.
Bu yaklaşım, Microsoft Agent Framework ile.NET’te Ajan Kurmanın İncelikleri yazısındaki mantıkla aynı çizgide: ölçmeden iyileştirmeye çalışmak, körlemesine ilerlemek demek.
Copilot yanıt kalitesini artırma yöntemleri
Ölçüm tek başına skoru yükseltmez; size nereye müdahale edeceğinizi söyler. Evaluation sonuçlarını okuduktan sonra devreye giren, yanıt kalitesini gerçekten artıran yöntemler şunlar:
- Sistem promptunu netleştirin. Ajanın rolünü, kapsamını, sınırlarını ve cevap formatını açıkça yazın. Belirsiz talimatlar, tutarsız cevapların en yaygın kaynağıdır ve genellikle Coherence skorunda kendini gösterir.
- Grounding kaynaklarını doğru seçin. Groundedness skoru düşükse sorun çoğu zaman ajanda değil, ona bağladığınız bilgi kaynaklarındadır. Alakasız veya güncel olmayan kaynakları çıkarın, doğru dokümanlara yönlendirin.
- Retrieval kapsamını daraltın. Çok geniş bir bilgi tabanı gürültü üretir; ajan hangi belgeye bakacağını şaşırır. Kapsamı senaryoya göre daralttığınızda cevaplar hem daha isabetli hem daha tutarlı olur.
- Örnekle yönlendirin (few-shot). Beklenen cevabın iki üç örneğini prompta eklemek, ajanın ton ve format konusunda ne istediğinizi anlamasını hızlandırır.
- Skoru rehber alarak iterasyon yapın. Coherence düşükse prompt ve yapıya, Groundedness düşükse kaynaklara odaklanın. Her değişiklikten sonra test setini yeniden çalıştırıp skorun yönünü izleyin.
- Regression’ı önleyin. Bir senaryoyu düzeltirken başka birini bozmak kolaydır. Test setini her değişiklikte baştan çalıştırmak, eski skorların gerilemediğinden emin olmanızı sağlar.
Kısacası artırma döngüsü şu: ölç, en zayıf skoru bul, kaynağına göre (prompt mı, grounding mı) müdahale et, tekrar ölç. Bu döngüyü birkaç tur çevirdiğinizde skorlar istikrarlı biçimde yükselir.
CI/CD ve otomasyona taşıma
Araç CLI tabanlı olduğu için Azure DevOps veya GitHub Actions içinde tek bir adım olarak çalışır. Test setini repoda tutun, her pull request’te CLI’yı tetikleyin, üretilen scorecard’ı artifact olarak saklayın. Skor belirli bir eşiğin altına düşerse exit code kontrolüyle PR’ı bloke edebilir, kaliteyi merge kapısına bağlayabilirsiniz.
İlginç bir ayrıntı: araç, “vibe-code” ile geliştirdiğiniz coding agent’ların içinden de çağrılabiliyor. Yani Claude Code, GitHub Copilot Workspace ya da benzer bir agent’la kod yazarken o agent sizin için evaluation tetikleyebiliyor. Bir ajanı geliştiren coding agent’ın gidip ajanın kalitesini ölçen değerlendirme aracını çağırdığı bir döngü açıyor bu. Durable Workflows ile Microsoft Agent Framework: Gerçek Hayatta Ne İşe Yarıyor? yazısında bu tür agent-to-agent senaryolarını daha ayrıntılı ele almıştık.
Aracın eksik yönleri
Preview olduğu için bazı sınırları peşinen kabul etmek gerekiyor:
- Şu an yalnızca declarative agent destekleniyor; custom engine agent’lar için değerlendirme henüz yok.
- Türkçe değerlendirme kalitesi net değil. Coherence ve Groundedness modelleri İngilizceye daha iyi ayarlı göründüğü için Türkçe test setlerinde skorlar biraz daha gürültülü çıkabilir.
- Azure OpenAI maliyet takibi yok. Evaluation çalıştırdığınızda faturanızın ne kadar arttığını araç içinden göremiyorsunuz.
- A/B testing native değil. İki farklı ajan versiyonunu karşılaştırmak için şimdilik manuel uğraşmak gerekiyor.
- Çıktı yalnızca HTML scorecard. CSV veya JSON export olmadığı için skor trendlerini Power BI gibi araçlara akıtmak ek parsing gerektiriyor.
Kurulumda sık karşılaşılan bir sorun da şu: ajan, evaluation’ın seçtiği declarative agent picker’da görünmüyor. En yaygın nedeni, ajanın Agents Toolkit ile deploy edilip publish edilmemiş olması; publish edildikten sonra picker’da beliriyor ve değerlendirme çalışıyor. Hata mesajları henüz yeterince açıklayıcı değil, bu tür ayrıntıların GA sürecinde düzeleceğini umuyoruz.
Sıkça Sorulan Sorular
Microsoft 365 Copilot Agent Evaluations aracı ücretli mi?
Aracın kendisi public preview sürecinde ücretsiz. Ancak LLM-judge evaluator’ları (Coherence, Groundedness) için kullanılan Azure OpenAI çağrıları sizin Azure aboneliğinizden kesiliyor. GPT-4o-mini ile bin promptluk bir evaluation yaklaşık 2-3 dolar tutuyor.
Hangi tür ajanları değerlendirebilirim?
Şu an public preview’da yalnızca tenant’ınıza deploy ettiğiniz declarative agent’ları test edebiliyorsunuz. Custom engine agent ya da Copilot Studio’daki gelişmiş senaryolar için destek henüz gelmedi; roadmap’te eklenmesi bekleniyor.
Copilot yanıt kalitesini nasıl artırırım?
Önce evaluation ile en zayıf skoru bulun. Coherence düşükse sistem promptunu netleştirin ve cevap formatını sabitleyin; Groundedness düşükse ajanı doğru bilgi kaynaklarına bağlayın ve retrieval kapsamını daraltın. Her değişiklikten sonra test setini yeniden çalıştırıp skorun yükseldiğini doğrulayın.
CI/CD pipeline’a nasıl entegre ederim?
CLI tabanlı olduğu için Azure DevOps veya GitHub Actions içinde bir step olarak çalıştırabilirsiniz. Test setini repoda tutun, her PR’da CLI’yı tetikleyin, scorecard’ı artifact olarak saklayın. Skor belirli bir eşiğin altına düşerse exit code kontrolüyle PR’ı engelleyebilirsiniz.
Türkçe promptlar için skorlar güvenilir mi?
Henüz tam güvenilir değil. LLM-judge modelleri çok dilli olsa da İngilizceye daha iyi ayarlı. Türkçe test setlerinizde skorların biraz daha gürültülü çıkmasını bekleyebilirsiniz; önce birkaç pilot çalıştırıp kendi baseline’ınızı oluşturmanız şart.
ExactMatch ve PartialMatch ne zaman kullanılır?
Deterministik çıktı beklediğiniz durumlarda ExactMatch mantıklıdır; örneğin form dolduran bir ajanın “tutar: 1500 TL” gibi spesifik bir formatı koruması gerekiyorsa. Daha esnek senaryolarda ise PartialMatch ile anahtar ifadelerin cevapta geçip geçmediğini kontrol edebilirsiniz.
Kaynaklar ve İleri Okuma
- Announcing the public preview of the Microsoft 365 Copilot Agent Evaluations tool — Microsoft DevBlogs
- Microsoft 365 Copilot Extensibility — Resmî Dokümantasyon
- Microsoft 365 Agents Toolkit Documentation







2 comments