Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Human-in-the-loop: Tool Onayı, Checkpoint ve Uzun Süren Agent'lar
Yazma yapan tool'ları ApprovalRequiredAIFunction ile onaya bağlıyor, onay saatler sürdüğünde agent session'ını JSON'a yazıp başka bir process'te devam ediyoruz. Gerekçeli ret, onay cevabındaki argümanı değiştirme denemesi (approval-response binding) ve RequestPort ile workflow'u checkpoint'ten sürdürmek gerçek koşularla.
Agent Workflow Pattern'leri: Prompt Chaining, Routing, Parallelization, Orchestrator-Workers ve Evaluator-Optimizer
Beş workflow pattern'ini Bookstore üzerinde koşturuyoruz: prompt chaining ve orchestrator-workers düz C# ile, routing, fan-out/fan-in ve writer-critic döngüsü MAF WorkflowBuilder ile. Küçük modelin "must read" ifadesini onayladığı, orchestrator'ın bütçeyi aştığı gerçek koşular, kod kapıları ve workflow'u AsAIAgent ile agent gibi dışarı açmak.
Context Engineering: Agent'ın Context'ini Yönetmek, Compaction ve Memory
Context bir bütçedir ve dolduğunda hata vermeden kesilebilir: 4.096 token'la yüklenmiş qwen3:4b, uzayan bir oturumda baştaki bütçe cümlesini kaybedip rakam uyduruyor. MAF CompactionProvider ile eski tool çıktılarını sıkıştırmak, AIContextProvider ile oturumlar arası tercih memory'si ve iş devredilen sub-agent'tan yalnızca özet almak, gerçek token sayılarıyla.
Agent Loop'unu Sıfırdan Yazmak: Plan, Tool Çağrısı, Gözlem ve Durma Koşulu
Bir agent loop'u framework'süz C# ile yazıyoruz: tool sonucunu ve hatasını modele geri vermek, adım/token/zaman bütçesi, tekrar eden çağrıyı engellemek ve her adımı trace'lemek. Gerçek koşuda token'ın turdan tura nasıl biriktiğini görüp aynı işi FunctionInvokingChatClient ve MAF ChatClientAgent ile yapıyor, neyin soyutlandığını karşılaştırıyoruz.
Semantic Kernel'den Microsoft Agent Framework'e: Tarihçe, Destek Durumu ve Eski Kodu Taşımak
Semantic Kernel kritik hata ve güvenlik düzeltmesi almaya devam ediyor, ama yeni özellikler Microsoft Agent Framework'e gidiyor; resmi taahhüt MAF GA'den (3 Nisan 2026) sonra en az bir yıl. Tarihçeyi NuGet ve GitHub tarihleriyle kuruyor, eski bir SK agent'ını yerel modelle çalıştırıp MAF'a taşıyor ve eşleme tablosunu çıkarıyoruz.
ASP.NET Core'da Agent Host Etmek: AddAIAgent, OpenAI Uyumlu Endpoint, AG-UI ve A2A
Bir agent'ı AddAIAgent ile DI'a kaydedip MapOpenAIChatCompletions, MapAGUIServer ve MapA2AJsonRpc ile üç protocol'den açarsın; agent bir kez yazılır, adapter'lar yalnız biçimi çevirir. Gerçek çağrılarla çoklu choice dönen OpenAI cevabını, reasoning'i tarayıcıya taşıyan AG-UI akışını, A2A agent card'ını ve claim tabanlı session izolasyonuyla rate limiting'i görüyoruz.
Agent Framework'te Middleware, Context Provider ve Session Saklama
Agent Framework'te kart numarası gibi girdileri agent run middleware'i, başkasının siparişine erişimi function invocation middleware'i, kullanıcı tercihini de session'a yazan bir context provider yönetir; session JSON olarak saklanıp geri yüklenir. Gerçek koşuda memory'nin çalıştığını, modelin yine de yazar uydurduğunu ve reasoning'in session'ı nasıl şişirdiğini görüyoruz.
Microsoft Agent Framework'e Giriş: IChatClient'tan AIAgent'a
AsAIAgent, bir IChatClient'ı ChatClientAgent'a çevirir; agent talimatı, function invocation'ı ve AgentSession ile sohbet geçmişini üstlenir ama modeli akıllandırmaz. Aynı Bookstore asistanını önce düz IChatClient, sonra agent olarak yazıp RunAsync, RunStreamingAsync ve AgentResponse'u gerçek çıktılarla karşılaştırıyoruz.
.NET'te Yapay Zeka Yığını: Microsoft.Extensions.AI, VectorData, Evaluation ve Agent Framework Nerede Durur?
Uygulama Microsoft.Extensions.AI ve bir provider paketi alır, library yalnız Abstractions'a bağlanır; VectorData, DataIngestion, Evaluation ve Agent Framework bu IChatClient katmanının üstünde ya da yanında durur. Paket haritasını çıkarıyor, aichatweb template'ini yerel Ollama ile çalıştırıp katman sınırlarında çıkan üç gerçek hatayı düzeltiyoruz.