Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
61 yazı bulundu
Agent'lar için Tool Tasarımı: İsim, Açıklama, Şema, Hata Mesajı ve Tool Sayısı
Yapay Zeka SERİ 03

Agent'lar için Tool Tasarımı: İsim, Açıklama, Şema, Hata Mesajı ve Tool Sayısı

API'yi birebir saran on iki CRUD tool'u ile iki iş odaklı tool'u aynı isteklerle qwen3:4b üzerinde karşılaştırıyoruz: on üç kat token, bulunamayan kitap ve yanlış kitabı ekleyip "eklendi" diyen agent. Şemanın doğrulama olmadığı, insan okunur çıktı, boş sonucun nedenini söyleyen mesaj, isim çakışması ve yan etkili tool'lar.

8 Kas 2026 13 dk 5
Agent Loop'unu Sıfırdan Yazmak: Plan, Tool Çağrısı, Gözlem ve Durma Koşulu
Yapay Zeka SERİ 02

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.

8 Kas 2026 12 dk 5
AI Agent Nedir? Workflow, Agent ve "Burada Agent Gerekmez" Kararı
Yapay Zeka SERİ 01

AI Agent Nedir? Workflow, Agent ve "Burada Agent Gerekmez" Kararı

Agent, kontrol akışını modelin yönettiği sistemdir; workflow'da yolu kod çizer. Bookstore'dan üç senaryoyu (sipariş durumu, iade, kitap bul ve sepete ekle) aynı kodla qwen3:4b üzerinde koşturup model çağrısı, token ve süreyi ölçüyor, agent'ın bedelini ve "burada agent gerekmez" kararının kriterlerini çıkarıyoruz.

8 Kas 2026 11 dk 5
Semantic Kernel'den Microsoft Agent Framework'e: Tarihçe, Destek Durumu ve Eski Kodu Taşımak
Yapay Zeka SERİ 14

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.

8 Kas 2026 12 dk 7
ASP.NET Core'da Agent Host Etmek: AddAIAgent, OpenAI Uyumlu Endpoint, AG-UI ve A2A
Yapay Zeka SERİ 13

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.

8 Kas 2026 11 dk 5
Agent Framework'te Middleware, Context Provider ve Session Saklama
Yapay Zeka SERİ 12

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.

8 Kas 2026 11 dk 5
Microsoft Agent Framework'e Giriş: IChatClient'tan AIAgent'a
Yapay Zeka SERİ 11

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.

8 Kas 2026 9 dk 7
IChatClient Kullanan Kodu Test Etmek: Fake Client, Deterministik Testler ve Microsoft.Extensions.AI.Evaluation
Yapay Zeka SERİ 10

IChatClient Kullanan Kodu Test Etmek: Fake Client, Deterministik Testler ve Microsoft.Extensions.AI.Evaluation

IChatClient kullanan kodun doğruluğunu fake bir client'la, modelsiz ve milisaniyeler içinde test edersin; modelin cevap kalitesini ise Microsoft.Extensions.AI.Evaluation ile, ayrı çalışan ve cache'lenen evaluation'larla ölçersin. Gerçek koşularda judge timeout'larını, 800 token'a takılan reasoning'i, eski cevap dönen cache'i ve prompt hatasını yakalayan Relevance skorunu görüyoruz.

8 Kas 2026 15 dk 7
Microsoft.Extensions.VectorData: Vector Store Abstraction'ı ile İlk Collection
Yapay Zeka SERİ 09

Microsoft.Extensions.VectorData: Vector Store Abstraction'ı ile İlk Collection

Microsoft.Extensions.VectorData, kaydı attribute'larla tanımlayıp aynı kodla bellek içi store'dan PostgreSQL + pgvector'a geçmeni sağlar; embedding'i store'a verdiğin generator üretir. Gerçek çıktılarla filtreli aramayı, ScoreThreshold'u, distance function'ın skorun anlamını nasıl tersine çevirdiğini ve InMemory'nin yakalamadığı boyut hatasını görüyoruz.

8 Kas 2026 11 dk 4
LLM Çağrılarını Gözlemlemek: UseOpenTelemetry, GenAI Semantic Conventions ve Aspire Dashboard
Yapay Zeka SERİ 08

LLM Çağrılarını Gözlemlemek: UseOpenTelemetry, GenAI Semantic Conventions ve Aspire Dashboard

LLM çağrılarını gözlemlemek için UseOpenTelemetry'yi UseFunctionInvocation'ın içine koyar, AddSource ile aynı source adını dinler ve trace'i Aspire Dashboard'da okursun. Gerçek bir trace'te iki dakikalık gecikmenin modelden değil Ollama kuyruğundan geldiğini buluyor, EnableSensitiveData'nın e-postayı nasıl telemetry'ye taşıdığını görüyoruz.

8 Kas 2026 11 dk 4
LLM Maliyetini Kontrol Etmek: DistributedCachingChatClient, Rate Limiting ve Token Kullanımı
Yapay Zeka SERİ 07

LLM Maliyetini Kontrol Etmek: DistributedCachingChatClient, Rate Limiting ve Token Kullanımı

LLM maliyetini üç katmanda kontrol ediyoruz: Redis'li DistributedCachingChatClient tekrar eden soruyu sıfır token'la cevaplar, kullanıcı başına rate limiting kötüye kullanımı sınırlar, UsageDetails ile tutulan günlük token bütçesi de asıl harcamayı. Cache key'inin içeriğini, kayıtların varsayılan olarak süresiz yazıldığını ve token muhasebesinin neden cache'in içinde durması gerektiğini gerçek çıktılarla gösteriyoruz.

8 Kas 2026 12 dk 4
Tool Calling'i Production'a Taşımak: FunctionInvokingChatClient Ayarları, DI'dan Servis ve Onay Akışı
Yapay Zeka SERİ 06

Tool Calling'i Production'a Taşımak: FunctionInvokingChatClient Ayarları, DI'dan Servis ve Onay Akışı

Production'da tool'un kimin adına çalıştığı modelin argümanından değil oturumdan gelir, geri alınamaz işlemler ApprovalRequiredAIFunction ile kullanıcı onayı bekler. Scoped servis kullanan OrderTools class'ı, FunctionInvokingChatClient ayarları, tool hatası ile kullanıcı hatasının ayrımı ve iki HTTP isteğiyle yürüyen onay akışını gerçek koşularla gösteriyoruz.

8 Kas 2026 12 dk 7
Blog Haritası