İç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
  • Microsoft Agent Framework için Cosmos DB Tabanlı Bellek
Geliştirici Araçları Microsoft Azure Yapay Zeka Azure Cosmos DB, Context Provider, FoundryChatClient, Kalıcı Ajan Belleği, Microsoft Agent Framework Aşkın KILIÇ 25/07/2026 2 Yorumlar

Microsoft Agent Framework için Cosmos DB Tabanlı Bellek

Microsoft Agent Framework için Cosmos DB Tabanlı Bellek
📑 İçindekiler
  1. Context Provider Neden Önemli?
  2. Mimari Nasıl Kurgulanmış?
  3. İnteraktif Örnek Üzerinden Adım Adım
  4. 1. Kurulum ve Yapılandırma
  5. 2. Ajana Bellek Vermek
  6. 3. Belleği Kullanıcıya Bağlamak
  7. 4. Belleğin Çalıştığını Görmek
  8. Ajanın Neyi Hatırlayacağını Özelleştirmek
  9. Sadece Demoya Değil Üretime Uygun Detaylar
  10. Başlamak İçin
  11. İlgili İçerikler
  12. Kaynaklar ve İleri Okuma

⏱️ 6 dk okuma📅 25 Temmuz 2026

Microsoft Agent Framework’ün son sürümüyle birlikte, Azure Cosmos DB destekli kalıcı ajan belleğini tek bir nesne aracılığıyla ajanlarınıza bağlayabiliyorsunuz. Python için önizlemede yayınlanan agent-framework-azure-cosmos-memory paketiyle gelen CosmosMemoryContextProvider, konuşma turlarını depolayan, gerçekleri ve kullanıcı profillerini çıkaran ve bunları farklı thread ile oturumlar arasında hatırlatan bir yapıya kapı açıyor. Yani ajan döngüsünün etrafına özel bir orkestrasyon kodu yazmak zorunda kalmadan uzun vadeli bellek elde ediyorsunuz.

İlgili içerik: Microsoft Agent Framework'te Agent ve Workflow Kanalları

İlgili içerik: Microsoft Veritabanları: Güvenilirlikten AI Hazırlığına

Context Provider Neden Önemli?

Pek çok ajan çerçevesi belleği sabit bir arayüz olarak sunar: depola ve getir. Microsoft Agent Framework ise daha genel bir yaklaşım benimsiyor ve sağlayıcıdan bağımsız bir context provider soyutlaması sunuyor. Bu soyutlama iki yaşam döngüsü kancasına dayanıyor:

  • before_run: Ajan çalışmadan önce bağlam enjekte eder.
  • after_run: Çalışma sonrası üretilen sonuçları yakalar.

Bu yapının en dikkat çekici yani, yalnızca belleğe özgü olmaması. Ajanın düşünmeden önce bilmesi gereken herhangi bir bilgiyi enjekte etmek ve sonrasında üretilen çıktılarla bir şeyler yapmak için temiz bir dikiş noktası sağlıyor. Cosmos DB destekli bellek de tam olarak bu genişletme noktasının üzerine, ajan döngüsünü sarmalayan bir katman yerine bir “drop-in” sağlayıcı olarak inşa edilmiş.

CosmosMemoryContextProvider pratikte iki iş yapıyor: gelen mesajla ilgili bağlamı Cosmos’ta arayıp modele veriyor; çalıştırma sonrasında yeni turları saklayıp arka planda gerçek çıkarımı, özet güncellemesi ve kullanıcı profili derlemesi yapılmasını sağlıyor.

Mimari Nasıl Kurgulanmış?

Sağlayıcı, aslında Agent Memory Toolkit üzerine oturmuş ince bir Agent Framework adaptörü. Agent Framework ajan döngüsünü ve context provider yaşam döngüsünü yönetiyor; toolkit ise Cosmos DB depolama modelinden ve ham turları gerçek, özet ve profile dönüştüren LLM boru hattından sorumlu. Bellek, kalıcı bir user_id (ve mevcut konuşma için thread_id) ile kapsamlandırılıyor; bu sayede hatırlama, yepyeni thread’lerde ve oturumlarda bile kullanıcıyı takip ediyor.

Turlar, gerçekler ve özetler Azure Cosmos DB for NoSQL’e JSON belgeleri olarak yazılıyor. Getirme işleminde ise Cosmos’ta yerleşik olan vektör, tam metin ve hibrit arama kullanılıyor. Yani ayrı bir vektör deposu kurmaya veya senkron tutmaya gerek kalmıyor.

İnteraktif Örnek Üzerinden Adım Adım

Paketle birlikte gelen etkileşimli sohbet örneği tüm akışı uçtan uca gösteriyor.

1. Kurulum ve Yapılandırma

pip install agent-framework-azure-cosmos-memory agent-framework-foundry

Kimlik doğrulama DefaultAzureCredential üzerinden yapılıyor; yerelde az login, Azure’da yönetilen kimlik kullanılıyor ve API anahtarına ihtiyaç duyulmuyor. Örneği çalıştırmadan önce Cosmos DB hesabınızı, Foundry projenizi ve kullanacağınız sohbet ile embedding dağıtım adlarını ortam değişkenleriyle belirtiyorsunuz:

$env:COSMOS_ENDPOINT = "https://<your-account>.documents.azure.com:443/"
$env:FOUNDRY_ENDPOINT = "https://<your-project>.services.ai.azure.com"
$env:CHAT_MODEL = "gpt-5.4-mini"
$env:EMBEDDING_MODEL = "text-embedding-3-large"

2. Ajana Bellek Vermek

Bellek destekli bir ajan oluşturmak, sağlayıcıyı kurup ajana geçmekten ibaret. Tek bir Foundry uç noktası hem bellek boru hattını (embedding ve çıkarım) hem de sohbet ajanını besliyor:

import os
from agent_framework import Agent
from agent_framework.foundry import FoundryChatClient
from azure.identity.aio import DefaultAzureCredential
from agent_framework_azure_cosmos_memory import CosmosMemoryContextProvider
def create_agent_with_memory():
foundry_endpoint = os.environ["FOUNDRY_ENDPOINT"]
credential = DefaultAzureCredential()
provider = CosmosMemoryContextProvider(
cosmos_endpoint=os.environ["COSMOS_ENDPOINT"],
cosmos_database=os.getenv("COSMOS_DATABASE", "ai_memory"),
foundry_endpoint=foundry_endpoint,
embedding_model=os.getenv("EMBEDDING_MODEL", "text-embedding-3-large"),
chat_model=os.getenv("CHAT_MODEL", "gpt-5.4-mini"),
credential=credential,
memory_types=["fact", "procedural", "episodic"],
)
agent = Agent(
client=FoundryChatClient(
project_endpoint=foundry_endpoint,
model=os.getenv("CHAT_MODEL", "gpt-5.4-mini"),
credential=credential,
),
name="Memory Assistant",
instructions="You are a helpful assistant with long-term memory.",
context_providers=[provider],
)
return agent, provider

Bellek açısından tek kritik satır context_providers=[provider]. Bundan sonra her ajan çalışması etrafında before_run ve after_run otomatik olarak tetikleniyor.

3. Belleği Kullanıcıya Bağlamak

Oturumlar arası kalıcı bellek için sabit bir kullanıcı kimliği gerekiyor. Bu kimliği sağlayıcı kapsamlı oturum durumunda belirlediğinizde, aynı kullanıcı için açılan yeni bir thread bile önceki bilgileri hatırlamayı sürdürüyor:

def new_session(agent, provider, user_id):
session = agent.create_session()
session.state.setdefault(provider.source_id, {})["user_id"] = user_id
return session

4. Belleğin Çalıştığını Görmek

Sağlayıcının async context’ine girerek arka plandaki çıkarımın çıkışta düzgünce boşaltılmasını sağlıyorsunuz; ardından ajana kalıcı bir bilgi veriyor, sonra yeni bir thread açıp geri çağırma istiyorsunuz:

agent, provider = create_agent_with_memory()
async with provider:
session = new_session(agent, provider, user_id="alice")
await agent.run("I love hiking and I'm allergic to peanuts.", session=session)
session = new_session(agent, provider, user_id="alice")
reply = await agent.run("What should we pack for a trail lunch?", session=session)
print(reply.text)

İkinci thread’in geçmiş mesajı olmamasına rağmen ajan, Alice’in yürüyüş sevdiğini ve fıstık alerjisi olduğunu hatırlıyor ve fıstıksız bir yürüyüş öğle yemeği planlıyor. Bu hatırlama tamamen sağlayıcının işi: before_run içinde çıkarılmış gerçekleri arıyor ve profili bağlam olarak enjekte ediyor; ilk turun after_run aşamasında ise turu saklayıp toolkit’in kalıcı gerçekleri çıkarmasına izin veriyor.

Etkileşimli örnek bu akışı basit bir REPL ile birkaç komut etrafında sarıyor: /new aynı kullanıcı için yeni bir thread açar (bellek taşınır), /user farklı bir kullanıcıya geçmenizi sağlar (bellekler yalıtılır), /quit çıkar.

Ajanın Neyi Hatırlayacağını Özelleştirmek

Varsayılan çıkarım kılavuzu genel amaçlıdır: hemen her asistana uygulanabilecek gerçekleri, prosedürel tercihleri ve epizodik deneyimleri çekip alır. Ancak “neyin hatırlanmaya değer olduğu” çoğunlukla alana özgüdür. Bir kod asistanı mimari kararları ve dil tercihlerini; bir seyahat asistanı koltuk ve diyet tercihlerini; bir destek botu hesap seviyesini ve geçmiş vakaları hatırlamalıdır. Varsayılanlarla bırakılan özelleşmiş bir ajan ya işine yarayacak şeyleri unutur ya da belleği gereksiz bilgilerle doldurur.

Sağlayıcı, bu iş için prompts_dir parametresini sunuyor. Bu parametreye bir Prompty şablonları dizini gösterdiğinizde bellek boru hattı, çıkarım ve özetleme yönlendirmelerini toolkit’in gömülü varsayılanları yerine oradan okuyor. En kritik dosya extract_memories.prompty. Bu şablon, modelin her turdan neyi çekeceğine ve nasıl sınıflandıracağına karar verdiği kılavuzu tanımlıyor. Şablonun girişleri ile JSON çıktı şemasını olduğu gibi bırakıp aradaki yönergeleri kendi alanınıza göre yeniden yazıyorsunuz.

interactive_chat_custom_extraction.py örneği, çalışma zamanında bir yönlendirme dizini oluşturup (gömülü şablonları kopyalayıp kod odaklı bir extract_memories.prompty ile değiştirerek) bunu sağlayıcıya geçiriyor:

provider = CosmosMemoryContextProvider(
cosmos_endpoint=os.environ["COSMOS_ENDPOINT"],
foundry_endpoint=os.environ["FOUNDRY_ENDPOINT"],
embedding_model=os.getenv("EMBEDDING_MODEL", "text-embedding-3-large"),
chat_model=os.getenv("CHAT_MODEL", "gpt-5.4-mini"),
credential=credential,
prompts_dir=prompts_dir,
)

Depolama, kapsamlandırma, getirme ve enjeksiyon tarafında hiçbir şey değişmiyor. Yalnızca boru hattının neyi kayda değer bulacağını değiştirmiş oluyorsunuz. Bu sayede bir kod asistanı, “ekip kullanıcı servisi için MySQL yerine PostgreSQL’i seçti” bilgisini veya “kod açıklanmadan önce daima gösterilecek” talimatını kalıcı olarak hatırlamaya başlarken küçük sohbetleri görmezden geliyor.

Sadece Demoya Değil Üretime Uygun Detaylar

Prototip aşamasını aşan ekipler için kaynakta öne çıkarılan birkaç nokta var:

  • Şeffaf çıkarım: Tür yazımı bloklamıyor; gerçek ve özet çıkarımı arka planda çalışıyor ve sağlayıcının context’i çıktığında otomatik olarak boşaltılıyor. Böylece istek yolu hızlı kalırken hiçbir şey kaybolmuyor.
  • Varsayılan olarak güvenli: Ajanın hatırladığı kullanıcı profili, saklanan konuşma içeriğinden üretiliyor. Bu yüzden sağlayıcı profili sıradan bir user-role mesajı olarak enjekte ediyor (asla sistem veya ajan yönergesi olarak değil) ve modele bunun talimat değil, güvenilmez referans bilgisi olduğunu açıkça belirten bir önek ekliyor. Bu yaklaşım, zehirlenmiş bir belleğin kalıcı bir direktife dönüşme riskini azaltıyor.
  • Modelleri siz seçersiniz: Sohbet ve embedding dağıtımları açıkça belirtiliyor; dağıtmadığınız bir modele sessizce yönlenmenize yol açacak varsayılan yok.

Başlamak İçin

Microsoft Agent Framework üzerinde ajanlar geliştiriyor ve onların hatırlamasını istiyorsanız entegrasyon artık tek nesnelik bir iş:

  1. pip install agent-framework-azure-cosmos-memory agent-framework-foundry ile paketleri kurun.
  2. Ajanınızın context_providers listesine bir CosmosMemoryContextProvider ekleyin.
  3. Sağlayıcının oturum durumunda sabit bir user_id tanımlayın.

agent-framework-azure-cosmos-memory paketi şu anda önizleme aşamasında ve yalnızca Python destekliyor; genel kullanılabilirliğe kadar API’lerde değişiklik olabilir.

İlgili İçerikler

  • Microsoft Agent Framework Harness Kararlı Sürümde Yayınlandı
  • Microsoft Agent Framework: Katmanlı SDK Tasarımının İç Yüzü
  • Microsoft Agent Framework’te Asıl Değişim: Harness, Hosted Agents ve CodeAct

Kaynaklar ve İleri Okuma

  • devblogs.microsoft.com
  • devblogs.microsoft.com
  • aka.ms
  • devblogs.microsoft.com
  • Orijinal duyuru: Native Agent Memory for Microsoft Agent Framework, Powered by Azure Cosmos DB
  • Agent Memory Toolkit ve Agentic Retrieval Toolkit duyurusu
  • Agent Memory Toolkit dokümantasyonu
  • Microsoft Agent Framework – Python genel bakış
  • Microsoft Agent Framework kaynak deposu
  • azure-cosmos-memory paketi örnekleri
  • interactive_chat.py örneği
  • interactive_chat_custom_extraction.py örneği
  • Prompty şablon formatı
  • Agent Memory Artık Ciddiye Alınmalı: Üretimde Güven, Şeffaflık, Kontrol
  • Microsoft Agent Framework 1.0: Ajanlar Artık Ciddileşti
  • Azure Cosmos DB ile Kurumsal Yapay Zekâ: Ölçek Meselesi
🤖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

.NET 11 Preview 7 Yayınlandı: Öne Çıkan Yenilikler
.NET 11 Preview 7 Yayınlandı: Öne Çıkan Yenilikler12 Ağu 2026
GitHub Hukuk Ekibi Copilot CLI ile İş Akışlarını Nasıl
GitHub Hukuk Ekibi Copilot CLI ile İş Akışlarını Nasıl5 Ağu 2026
ASP.NET Core’da Union ve Closed Hiyerarşi Kullanımı
ASP.NET Core’da Union ve Closed Hiyerarşi Kullanımı10 Eyl 2026
Azure Functions Managed Connectors ile SharePoint ve Teams
Azure Functions Managed Connectors ile SharePoint ve Teams6 Eki 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 Azure Cosmos DB Context Provider FoundryChatClient Kalıcı Ajan Belleği Microsoft Agent Framework
Önceki yazı

Microsoft Build of OpenJDK Temmuz 2026 Güncellemesi

Sonraki yazı

GitHub Mobile’da Actions Hatalarını Copilot ile Tek

İlginizi Çekebilir

Microsoft Sovereign Cloud: İş Yükü Bazlı Kontrol Katmanı
Aşkın KILIÇ 0

Microsoft Sovereign Cloud: İş Yükü Bazlı Kontrol Katmanı

24/10/2026
PowerToys 0.102: Yeni Fare Araçları ve CLI Desteği
Aşkın KILIÇ 0

PowerToys 0.102: Yeni Fare Araçları ve CLI Desteği

24/10/2026
Code with Cosmos: Dört Bölümde Üretime Hazır AI Uygulaması
Aşkın KILIÇ 0

Code with Cosmos: Dört Bölümde Üretime Hazır AI Uygulaması

24/10/2026

2 comments

comments user
Pınar H. 25/07/2026 14:59

CosmosDB’yi daha çok veri depolama için kullandım ama ajan belleği olarak kullanmak aklıma gelmemişti açıkçası. before_run/after_run yaşam döngüsü yaklaşımı temiz görünüyor, tek sağlayıcı olarak eklemek de işleri basitleştiriyor. Bunu bir sonraki projemde deneyeceğim.

comments user
Ceren M. 25/07/2026 22:07

CosmosDB’yi zaten başka projelerde kullanıyorum ama agent framework ile bu şekilde entegre edeceğim hiç aklıma gelmemişti. before_run/after_run lifecycle kısmı özellikle temiz görünüyor, tek sağlayıcı olarak ekleme mantığı da güzel tasarlanmış. Bunu yakında denemem lazım.

Yorumlar kapalı.

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • Microsoft Sovereign Cloud: İş Yükü Bazlı Kontrol Katmanı
    24/10/2026 Microsoft Sovereign Cloud: İş Yükü Bazlı Kontrol Katmanı
  • PowerToys 0.102: Yeni Fare Araçları ve CLI Desteği
    24/10/2026 PowerToys 0.102: Yeni Fare Araçları ve CLI Desteği
  • Copilot Usage Metrics API: IDE Dışı Araç Kullanımı
    24/10/2026 Copilot Usage Metrics API: IDE Dışı Araç Kullanımı
  • Code with Cosmos: Dört Bölümde Üretime Hazır AI Uygulaması
    24/10/2026 Code with Cosmos: Dört Bölümde Üretime Hazır AI Uygulaması
  • GitHub Apps ile Enterprise Yönetimi PAT'siz Yürütmek
    23/10/2026 GitHub Apps ile Enterprise Yönetimi PAT’siz Yürütmek
  • 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
  • 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
  • Azure Developer CLI 1.34: azure.yaml Katmanları ve
    04/10/2026 Azure Developer CLI 1.34: azure.yaml Katmanları ve
  • 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 Functions Azure OpenAI azure sdk Azure SQL CI/CD CodeQL code review copilot Copilot CLI DevOps Entra ID geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu MCP Microsoft Agent Framework Microsoft Azure Microsoft Entra ID Microsoft Foundry MSVC otomasyon performans Pull Request RAG 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
    ← Microsoft Build of OpenJDK Tem...
    GitHub Mobile’da Actions... →
    📩

    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