![]()
Kursun bu noktasına kadar, dizüstü bilgisayarınızda, az login ve bir avuç ortam değişkeniyle çalışan ajanlar oluşturdunuz. Bu, öğrenmek için tam doğru yoldur. Ancak binlerce müşterinin 3 sabah saatinde bağlı olduğu bir ajanı çalıştırmak için doğru yol değildir.
Bu ders, “makinemde çalışıyor” ile “üretimde güvenilir ve uygun maliyetli şekilde çalışıyor” arasındaki farkla ilgilidir. Bu farkı Microsoft Foundry ve Microsoft Foundry Agent Service kullanarak kapatıyoruz ve araçlar, geri getirme, hafıza, değerlendirme ve izleme özelliklerine sahip gerçek bir müşteri destek ajanı oluşturarak yapıyoruz.
Bu ders şunları kapsayacak:
Bu dersi tamamladıktan sonra şunları bileceksiniz:
Bu ders, önceki dersleri tamamladığınızı ve şunlara hakim olduğunuzu varsayar:
Ayrıca ihtiyacınız olacak:
az login).requirements.txt içindeki paketler.Prototip ajan ile üretim ajanı aynı temel döngüyü paylaşır — mantık yürütme, araç çağırma, yanıt verme. Değişen, bu döngünün etrafında bulunan her şeydir. Model, bir üretim ajanının belki %20’sidir; diğer %80 operasyonel iskeletdir.
| Husus | Prototip | Üretim |
|---|---|---|
| Barındırma | Dizüstünüzde çalışır | Barındırılan hizmet olarak çalışır, sürümlenir ve yayılır |
| Kimlik | Sizin az login belirteciniz |
Kapsamlı RBAC ile yönetilen kimlik |
| Durum | Bellekte, yeniden başlatmada kaybolur | Dışsallaştırılmış (dizi deposu, bellek servisi) |
| Hata | İzlemeyi görürsünüz | Tekrarlar, geri dönüşler, ölü mektup, uyarılar |
| Maliyet | “Birkaç sent” | İstek bazında takip, yönlendirme, önbellekleme, bütçeleme |
| Kalite | Çıktıyı gözle kontrol edersiniz | Her sürüm öncesi otomatik değerlendirilir |
| Güven | Her işlemi siz onaylarsınız | Politikalar + riskli işlemler için insan denetimi |
Bu tabloyu aklınızda tutun. Aşağıdaki her bölüm bu satırlardan birine karşılık gelir.
Sıklıkla birlikte kullandığınız üç kalıp vardır.
Ajan nesnesi sizin uygulama işleminizin içindedir. Kodunuz model sağlayıcısını doğrudan çağırır; mantık döngüsü hizmetinizde çalışır. Önceki tüm dersler bunu yaptı.
Ajan Microsoft Foundry’de bir kaynak olarak kaydedilir. Foundry mantık döngüsünü barındırır, dizileri depolar, içerik güvenliği ve RBAC uygular ve ajanı Foundry portalında görünür kılar. Uygulamanız ise dizileri oluşturan ve yanıtları okuyan ince bir istemci olur.
Birden çok ajan (ve araç) açık kontrol akışıyla grafik halinde birleştirilir — ardışık adımlar, dallanma, insan onay düğümleri ve durdurulup devam edilebilen kalıcı kontrol noktaları. Bu, Microsoft Agent Framework İş Akışları özelliğinin dağıtım ölçeğinde uygulanmasıdır.
flowchart TB
subgraph P1[İstemci Barındırılan]
A1[Uygulama Süreciniz] --> M1[Model Sağlayıcı]
end
subgraph P2[Barındırılan Ajan]
A2[İnce İstemci] --> F2[Foundry Ajan Servisi]
F2 --> M2[Model + Araçlar + Konu Deposu]
end
subgraph P3[Ajan İş Akışı]
A3[Orkestratör] --> S1[Ön İnceleme Ajanı]
S1 --> S2[Çözücü Ajan]
S2 --> H[İnsan Onay Düğümü]
H --> S3[Eylem Ajanı]
end
Ajan dağıtımı tek seferlik bir push değildir. Bir döngüdür ve yazılım sürüm döngüsüne çok benzer çünkü tam olarak odur.
flowchart LR
Create[Oluştur / Yazar] --> Version[Sürüm]
Version --> Evaluate[Çevrimdışı değerlendir]
Evaluate -->|kapıdan geçer| Deploy[Barındırılan şekilde dağıt]
Evaluate -->|kapıda başarısız olur| Create
Deploy --> Observe[Çevrimiçi izle]
Observe --> Improve[Hataları topla]
Improve --> Create
Deploy --> Retire[Eski sürümü emekliye ayır]
Ana fikir, Ders 10‘dan aktarılmıştır: çevrimdışı değerlendirme bir kapıdır, sonrasında düşünülmez. Yeni ajan sürümü, değerlendirme eşiklerini geçmediği sürece yayımlanmaz. Çevrimiçi gözlemlenebilirlik gerçek dünyadaki hataları çevrimdışı test setine geri besler. Bu döngünün tamamıdır.
Bir ajanı ölçeklendirmek, durumsuz web API’si ölçeklendirmekten farklıdır çünkü her istek birden çok pahalı model ve araç çağrısı tetikleyebilir. Yükü taşıyan dört teknik vardır.
Durumsuz istek işleme. İşlem belleğinizde kullanıcı başına durum tutmayın. Konuşma dizilerini Foundry dizi deposunda veya bellek servisinde kalıcı hale getirin ki herhangi bir örnek her isteği işleyebilsin. Bu yatay ölçeklendirmeyi sağlar — yeni örnekler ekleyin, yapışkan oturum yok.
Model yönlendirme. Her istek sizin en güçlü (ve en pahalı) modelinizi gerektirmez. Basit istekleri — niyet sınıflandırma, kısa gerçek cevaplar — küçük, hızlı bir modele yönlendirin ve büyük modeli gerçek akıl yürütme için ayırın. Foundry’nin Model Yönlendiricisi bunu sizin için yapabilir veya hafif bir sınıflandırıcı kendiniz oluşturabilirsiniz. Laboratuvarda bu kendin-yap versiyonunu yapacaksınız.
Yanıt önbellekleme. Birçok destek sorgusu neredeyse tekrar (“şifremi nasıl sıfırlarım?”). Yaygın soruların cevaplarını önbelleğe alın ve modeli hiç çağırmadan sunun. Orta seviyede bir önbellek vurma oranı bile maliyet ve gecikmeyi anlamlı ölçüde azaltır.
Eşzamanlılık ve geri basınç. Model sağlayıcıların oran limitleri vardır. Eşzamanlılığınızı sınırlandırın, üssel geri çekilme ile tekrarlar kullanın ve nazikçe başarısız olun (kuyruğa alınmış “Üstündeyiz” yanıtı 500’den iyidir).
flowchart LR
Q[Kullanıcı sorgusu] --> C{Önbellek isabeti?}
C -->|evet| R[Önbelleğe alınmış cevabı döndür]
C -->|hayır| Router{Karmaşıklık?}
Router -->|basit| SLM[Küçük model]
Router -->|karmaşık| LLM[Büyük model]
SLM --> Out[Yanıt]
LLM --> Out
Out --> Store[Önbellek + izleme]
Göremediğinizi işletemezsiniz. Ders 10’da ele alındığı gibi, Microsoft Agent Framework yerleşik olarak OpenTelemetry izleri yayımlar — her model çağrısı, araç çağrısı ve orkestrasyon adımı bir span olur. Üretimde bu spanlar Microsoft Foundry (veya OTel uyumlu herhangi bir arka uç) ‘a aktarılır ki:
from agent_framework.observability import get_tracer
tracer = get_tracer()
with tracer.start_as_current_span("support_request") as span:
span.set_attribute("customer.tier", "enterprise")
span.set_attribute("routed.model", "gpt-5-nano")
# ajan yürütülmesi bu kapsam içinde otomatik olarak izlenir
customer.tier ve routed.model gibi öznitelikler, izler duvarını yanıtlanabilir sorulara dönüştürür (“kurumsal müşteriler küçük modele çok sık mı yönlendiriliyor?”).
Üretim ajanlarındaki maliyetler tokenlar tarafından domine edilir. Üç kol var, etki sırasına göre:
Değerlendirme kapıları ve maliyet kontrolü, iki açıdan görülen aynı disiplindir: değerlendirme size kalite tabanını söyler, yönlendirme ve önbellekleme sizi o tabanın maliyetine mümkün olduğunca yaklaştırır.
Yönetişim. Hosted Agents, Foundry’nin RBAC, içerik güvenliği ve denetim kayıtlarını miras alır. Her ajana ihtiyaç duyduğu en az ayrıcalıkla yönetilen kimlik verin — bilgi tabanına salt okunur erişim, bilet API’sine kapsamlı erişim, başka hiçbir şey yok.
İnsan-tam döngüde. Bazı işlemler tamamen otomatikleştirilemeyecek kadar sonuçludur — iade yapmak, hesap silmek, hukuk ekibine yükseltmek. Microsoft Agent Framework onay-gerekli araçları destekler: ajan işlemi önerir, yürütme duraklar, bir insan onaylar ya da reddeder, iş akışı devam eder. Bunu Ders 6‘da gördünüz; burada dağıtıyoruz.
Üretimde MCP. MCP, ajanın dış araçları standart arayüzle tüketmesini sağlar. Üretimde her MCP sunucusunu güvenilmeyen bir sınır olarak değerlendirin: sunucu sürümünü sabitleyin, kısıtlı kimlik ile çalıştırın, çıktısını doğrulayın ve ona asla gizli bilgi ifşa etmeyin. MCP sunucusu bir bağımlılıktır ve bağımlılıklar yamalanır, denetlenir ve oran sınırlandırılır.
flowchart TB
subgraph Dev[Geliştirme Mimarisi]
D1[Defter] --> D2[Ajan Çerçevesi]
D2 --> D3[Model Sağlayıcı]
D2 --> D4[Yerel araçlar]
end
subgraph Deploy[Dağıtım Mimarisi]
E1[CI hattı] --> E2[Değerlendirme kapısı]
E2 -->|geç| E3[Foundry Ajan Hizmeti]
E3 --> E4[Sürümlenmiş barındırılan ajan]
end
subgraph Run[Çalışma zamanı Mimarisi]
F1[İstemci uygulaması] --> F2[Barındırılan ajan]
F2 --> F3[Model Yönlendirici]
F2 --> F4[Azure AI Arama RAG]
F2 --> F5[Bellek servisi]
F2 --> F6[MCP araçları]
F2 --> F7[OTel -> Foundry izleme]
F2 --> F8[İnsan onayı]
end
Bu üç diyagram — geliştirme, dağıtım, çalışma zamanı — ajanın yaşamının üç aşamasındaki aynı hali. Takip eden laboratuvar sizi bunu kurmaya götürecek.
code_samples/16-python-agent-framework.ipynb dosyasını açın ve baştan sona ilerleyin. Her üretim endişesi kablolanmış bir Contoso müşteri destek ajanı oluşturacaksınız:
Dizüstü, her üretim endişesini kendi içinde çalışan bir bölüm olarak organize eder. Kalbi, yönlendirme artı önbellekleme istek işlemcisidir:
async def handle_support_request(query: str, customer_id: str) -> str:
# 1. Mümkün olduğunda önbellekten sun.
cached = response_cache.get(normalize(query))
if cached:
return cached
# 2. Maliyeti kontrol etmek için karmaşıklığa göre yönlendir.
model = "gpt-5-nano" if is_simple(query) else "gpt-5-mini"
# 3. Gözlemlenebilirlik için ajanı bir iz süresi içinde çalıştır.
with tracer.start_as_current_span("support_request") as span:
span.set_attribute("routed.model", model)
span.set_attribute("customer.id", customer_id)
response = await support_agent.run(query, model=model)
# 4. Önbelleğe al ve döndür.
response_cache.set(normalize(query), response.text)
return response.text
Bir sürümü koruyan değerlendirme kapısı şöyle görünür:
async def evaluation_gate(agent, test_cases, threshold: float = 0.8) -> bool:
passed = 0
for case in test_cases:
result = await agent.run(case["input"])
if score_response(result.text, case["expected"]) >= 0.8:
passed += 1
pass_rate = passed / len(test_cases)
print(f"Evaluation pass rate: {pass_rate:.0%} (gate: {threshold:.0%})")
return pass_rate >= threshold # sadece kapı geçerse dağıtım yap
Her satırı okuyun — dizüstü parçacıkları bilinçli olarak küçük tutar, böylece hiçbir şey bir framework çağrısının arkasında gizlenmez.
Yukarıdaki değerlendirme kapısı çevrimdışıdır ve ajan nesnenize karşı çalışır. Ajan Hosted Agent olarak dağıtıldıktan sonra, bir kontrol daha gerekir, çok daha ucuz: dağıtılmış uç nokta gerçekten cevap veriyor mu?
“Başarılı” dağıtım yalnızca kontrol düzleminin tanımı kabul ettiğini gösterir — ajanın yanıt verdiğini kanıtlamaz. Eksik bir bağımlılık, yanlış model yönlendirmesi veya süresi dolmuş bağlantı, hiçbir şey döndürmeyen yeşil bir dağıtım sonucu verir. Bir duman testi bunu saniyeler içinde, her dağıtımda, tam değerlendirme maliyeti olmadan yakalar.
Bu depo, AI Smoke Test GitHub Action tabanlı hazır bir duman testi hattı sağlar:
tests/lesson-16-smoke-tests.json, Contoso destek ajanı için istemler ve doğrulamaları içerir (temelli politika yanıtları, sipariş sorgulama, konu dışına çıkmama ve çok tur dizin sürekliliği). Diğer ders ajanlarının katalogları da yanındadır — bkz. tests/README.md..github/workflows/smoke-test.yml, Azure OIDC ile oturum açar ve her istemi ajanın Responses uç noktasına POST eder, herhangi bir doğrulama kaçarsa işi başarısız kılar.- name: Smoke-test hosted agent
uses: JFolberth/ai-smoketest@v1
with:
project_endpoint: $
agent_name: ContosoSupportAgent
tests_file: tests/lesson-16-smoke-tests.json
Ajanınız dağıtıldıktan sonra Actions sekmesinden, Foundry proje uç noktanızı ve ajan adını sağlayarak çalıştırın. Federasyon kimliğinin, Foundry proje kapsamı içinde Azure AI Kullanıcısı rolüne ihtiyacı vardır. Katmanları bir piramit gibi düşünün: duman testleri (erişilebilir ve yanıt veriyor mu?) her dağıtımda çalışır, çevrimdışı değerlendirme (gönderilmeye yeterince iyi mi?) terfi öncesinde yapılır ve çevrimiçi değerlendirme (yaban hayatında nasıl gidiyor?) sürekli olarak çalışır.
Göreve geçmeden önce anlayışınızı test edin.
1. Bir üretim ajanının yaklaşık ne kadar kısmı “model”dir ve geriye kalan nerede?
2. Ne zaman bir Barındırılan Ajanı, istemci barındırmalı ajan yerine seçersiniz?
3. Ölçeklenebilir bir ajanın neden kendi işlem belleğinde durumsuz (stateless) olması gerekir?
4. Model yönlendirme hangi sorunu çözer ve değerlendirme ile nasıl ilişkilidir?
5. Bir “değerlendirme kapısı” nedir ve yaşam döngüsünde nerede yer alır?
6. Neden MCP sunucusu üretimde güvenilmeyen bir sınır olarak ele alınmalıdır?
7. Genellikle üretim ajanı maliyetini en çok etkileyen tek değişiklik nedir ve neden?
8. customer.tier ve routed.model gibi span (iz) özelliklerinin gözlemlenebilirlikteki rolü nedir?
Laboratuvardan müşteri destek ajanını alın ve belirli bir senaryo için güçlendirin: bir SaaS şirketi için abonelik faturalama destek ajanı.
Gönderiminiz aşağıdakileri içermelidir:
get_subscription_status, get_invoice ve issue_credit (50$ üzeri krediler insan onayı gerektirir).Kısa bir paragraf (markdown hücresinde) yazın; hangi model yönlendirme kuralını seçtiğinizi ve gerçek trafik ile nasıl doğrulayacağınızı açıklayın. Tek doğru cevap yok — değerlendirme, üretim kaygılarının mantıklı şekilde birleştirilip birleştirilmediği üzerine olacaktır.
Bu derste, bir ajanı Microsoft Foundry ile prototipten üretime taşıdınız:
Sonraki derste tam tersi yolculuk olacak: ajanları bulut yerine tek bir geliştirici makinesine indirecek ve tamamen yerel çalıştıracaksınız.
Bilgisayar Kullanım Ajanları Oluşturma (CUA)
Feragatname: Bu belge, AI çeviri hizmeti Co-op Translator kullanılarak çevrilmiştir. Doğruluk için çaba sarf etsek de, otomatik çevirilerin hata veya yanlışlık içerebileceğini lütfen unutmayınız. Orijinal belge, kendi dilinde yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımı sonucu ortaya çıkabilecek yanlış anlamalardan veya yanlış yorumlamalardan sorumlu değiliz.