İç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
  • Agent Framework Python’da Vector Store ile Ajan Bağlamı
Geliştirici Araçları Microsoft Azure Yapay Zeka Agent Framework, Ajan Araçları, embedding, Vector Arama, Vector Store Aşkın KILIÇ 15/10/2026 0 Yorumlar

Agent Framework Python’da Vector Store ile Ajan Bağlamı

Agent Framework Python'da Vector Store ile Ajan Bağlamı
📑 İçindekiler
  1. Önce kendi veri modeliniz
  2. Vektör aramayı ajan aracına dönüştürmek
  3. Context provider'lar: collection'ı bir bütün olarak ajana açmak
  4. Aranabilir konuşma geçmişi
  5. Embedding ve arama: sağlayıcıyı koda gömmeden
  6. Desteklenen entegrasyonlar
  7. Nereden başlamalı
  8. İlgili İçerikler
  9. Kaynaklar ve İleri Okuma

⏱️ 4 dk okuma📅 15 Ekim 2026

Microsoft Agent Framework’ün Python tarafındaki vector store desteği sıfırdan yazılmadı. Semantic Kernel’de bir süredir duran vector-store API’leri bu çatıya taşındı; tipli kayıt tanımları, store/collection ayrımı, toplu yazma-okuma, embedding üretimi ve vektör arama yerli yerinde duruyor. Değişen şey, bu yapıların ajanlara bağlanma biçimi: arama artık ajana bir araç (tool) olarak verilebiliyor, konuşma geçmişi bile bir vector store üzerinde aranabilir halde tutulabiliyor.

Bu yazı Python tarafını anlatıyor..NET karşılığı için Microsoft’un Use vector stores in.NET AI apps dokümanına bakabilirsiniz. Vector-store API’leri hala deneysel (experimental) durumda, entegrasyon paketleri de alpha ya da beta seviyesinde. Kurulum ve desteklenen yetenekler için her implementasyonun kendi dokümantasyonunu açmak gerekiyor.

Önce kendi veri modeliniz

Agent Framework, modeli uygulamanın zaten sahip olduğu veri sınıfı üzerinden kuruyor; veritabanının şeması işin merkezinde durmuyor. Anahtar, veri ve vektör alanlarını VectorStoreField ile işaretliyorsunuz, @vectorstoremodel dekoratörü de collection tanımını bu işaretlemelerden türetiyor.

from dataclasses import dataclass
from typing import Annotated
from agent_framework import (
Filter,
InMemoryCollection,
VectorStoreField,
vectorstoremodel,
)
from agent_framework.openai import OpenAIEmbeddingClient
@vectorstoremodel(collection_name="documents")
@dataclass
class Document:
id: Annotated[str, VectorStoreField("key")]
category: Annotated[str, VectorStoreField("data", is_indexed=True)]
text: Annotated[str, VectorStoreField("data")]
embedding: Annotated[
list[float] | str | None,
VectorStoreField(
"vector",
dimensions=1536,
distance_function="cosine_similarity",
),
] = None
async def index_and_search() -> None:
documents: InMemoryCollection[str, Document] = InMemoryCollection(
Document, embedding_generator=OpenAIEmbeddingClient(model="text-embedding-3-small"),
)
await documents.ensure_collection_exists()
await documents.upsert([
Document(
id="release-checklist",
category="operations",
text="Verify rollback, monitoring, and owner sign-off.",
embedding="Verify rollback, monitoring, and owner sign-off.",
)
])
results = await documents.search(
"What should I check before a release?",
filter=Filter("category", "eq", "operations"),
top=3,
)
async for result in results:
print(result["record"].text, result["score"])

Örneği çalıştırmadan önce OPENAI_API_KEY ortam değişkeninin tanımlı olması gerekiyor. Kayıtlar bellekte tutulduğu için süreç yeniden başlayınca kayboluyor, embedding üretimi ise hem upsert hem de search sırasında OpenAI tarafında yapılıyor. InMemoryCollection yerine desteklenen başka bir implementasyon koyduğunuzda kodun geri kalanına dokunmanız gerekmiyor.

Dataclass tek seçenek değil. Aynı model katmanı Pydantic modellerini, msgspec struct’larını, düz sınıfları, sözlükleri ve özel codec’ler aracılığıyla dışarıdan gelen tipleri de destekliyor.

Vektör aramayı ajan aracına dönüştürmek

Semantic Kernel’de olduğu gibi aramayı doğrudan birinci sınıf bir ajan aracı olarak sunabiliyorsunuz. create_vector_search_tool aranabilir bir collection’ı sarmalıyor; aracın adını, açıklamasını, dönen sonucun biçimini, filtrelerini ve onay (approval) davranışını siz belirliyorsunuz.

Param, özel arama araçları yazmayı burada belirgin biçimde kolaylaştırıyor. Bir Param nesnesini Filter veya FilterGroup içine yerleştirdiğinizde yardımcı yapı bunu, modelin doldurabileceği tipli bir argüman olarak dışarı açıyor:

from typing import Literal
from agent_framework import Filter, Param, create_vector_search_tool
category = Param(
"category",
Literal["engineering", "operations", "product"],
required=False,
description="Only return documents from this category.",
)
search_documents = create_vector_search_tool(
collection,
name="search_documents",
description="Search the document collection.",
filter=Filter("category", "eq", category),
result_mapper=lambda result: result["record"].text,
)

Oluşan araç her zaman doğal dilde bir sorgu alıyor, category parametresini ise isteğe bağlı kabul ediyor. Literal değerleri araç şemasında bir enum’a dönüştüğü için ajan geçerli seçenekleri net görüyor. Model bu opsiyonel parametreyi doldurmazsa ilgili filtre uygulanmıyor. Daha karmaşık senaryolarda birden fazla parametreyi FilterGroup ile birleştirmek mümkün.

Context provider’lar: collection’ı bir bütün olarak ajana açmak

Tek bir odaklı arama aracı yetmediğinde VectorCollectionContextProvider devreye giriyor. Bu sağlayıcı ajana upsert, get, delete ve search araçlarını, bunların nasıl kullanılacağını anlatan yönergelerle birlikte ekleyebiliyor. Senaryoya göre yalnızca okunabilir bir bilgi koleksiyonu sunabilir, kayıt yönetimini onay mekanizmasına bağlayabilir, erişilebilir veri kümesini daraltabilir ya da varsayılan aramanın yerine kendi özel araçlarınızı koyabilirsiniz.

Embedding ayarları da işlem bazında kalıyor: veri alımında doküman embedding seçenekleri, aramada sorgu embedding seçenekleri kullanılabiliyor. Üretilen araçlar bu ayarları aynı collection’a iletiyor.

Aranabilir konuşma geçmişi

Konuşma geçmişi büyüdükçe her turda modele gönderilen bağlam da büyüyor. VectorStoreHistoryProvider konuşmanın tamamını aranabilir bir vektör koleksiyonunda saklıyor, model bağlamına ise yalnızca sıkıştırılmış bir çalışma kümesi yüklüyor.

include_search_tool=True verildiğinde ajan, kapsamlandırılmış tam dökümü arayabileceği bir araç da alıyor. Aktif bağlam sınırlı kalıyor ama geçmişte alınmış bir karara, bir gereksinime veya kullanıcı tercihine erişim kaybolmuyor; ajan her çağrıda tüm mesajları taşımak yerine ihtiyaç duyduğunda ilgili bölümü geri getiriyor.

Embedding ve arama: sağlayıcıyı koda gömmeden

Uygulamalar önceden hesaplanmış vektörleri kendileri verebilir ya da upsert ve search sırasında Agent Framework’ün bir embedding servisini çağırmasını sağlayabilir. Tüm vektör alanları üretilebileceği gibi yalnızca seçili alanlar da üretilebiliyor, doküman alımı ile sorgu üretimi için farklı sağlayıcı seçenekleri geçirilebiliyor. Vektör boyutları model tanımıyla birlikte durduğu için Agent Framework, hem üretilen hem de dışarıdan verilen vektörleri arka uçtaki store’a ulaşmadan önce doğrulayabiliyor.

Arama tarafında da entegrasyonlar arasında aynı collection API’si kullanılıyor; taşınabilir veri filtreleri ve destekleyen sistemlerde keyword-hybrid arama mevcut. Hangi indekslerin, filtrelerin, metriklerin ve arama modlarının desteklendiğini her implementasyon kendi dokümantasyonunda belirtiyor.

Desteklenen entegrasyonlar

Python tarafında halihazırda şu entegrasyonlar var:

  • Azure AI Search
  • Azure Cosmos DB for NoSQL
  • Azure DocumentDB
  • MongoDB
  • Oracle AI Database 26ai
  • Redis
  • SQL Server ve Azure SQL
  • PostgreSQL (pgvector ile)
  • DuckDB
  • Qdrant
  • Testler ve yerel geliştirme için çekirdek in-memory store

Model katmanı ve temel işlemler bu entegrasyonların hepsinde aynı şekilde çalışıyor, buna karşılık her veritabanı kendi özelliklerini ve kısıtlarını korumaya devam ediyor. Taşınabilirlik model ve API seviyesinde kalıyor; yetenek farklarını yine sizin hesaba katmanız gerekiyor.

Nereden başlamalı

Model tanımı, arama ve ajan araçları için çalıştırılabilir vector store örnekleriyle başlamak en pratik yol. Sınırlı çalışma bağlamı ile tüm konuşma üzerinde arama birleşimini görmek içinse vector store tabanlı konuşma örneğine bakabilirsiniz.

Kullanmak istediğiniz store’un entegrasyon paketini kurup kurulum ve desteklenen yetenekler için README’sini izlemek gerekiyor. Ekip özellikle context provider deneyimi, aranabilir geçmiş ve sıradaki entegrasyon talepleri konusunda geri bildirim istiyor; bunun için Microsoft Agent Framework deposunda issue açmak öneriliyor.

İlgili İçerikler

  • Microsoft Agent Framework Harness ile C# Ajan Kurmak
  • Agent Framework, Copilot CLI ve Squad ile Ajan Ekipleri
  • Agent Framework Orchestration 1.0: Çoklu Ajan Koordinasyonu Yetişkin

Kaynaklar ve İleri Okuma

  • Vector stores in Agent Framework for Python: familiar foundations, streamlined for agents (Eduard van Valkenburg)
  • Microsoft Agent Framework blogu
  • Microsoft Agent Framework için Cosmos DB Tabanlı Bellek
  • Microsoft Agent Framework 1.0: Ajanlar Artık Ciddileşti
🤖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

MSVC’de SPGO Neyi Değiştiriyor: PGO’nun Pratik Hali
MSVC’de SPGO Neyi Değiştiriyor: PGO’nun Pratik Hali22 May 2026
.NET 10 ile Yapay Zekâya Sıfırdan Giriş: Generative AI for Beginners v2 Neler Getiriyor?
.NET 10 ile Yapay Zekâya Sıfırdan Giriş: Generative AI for Beginners v2 Neler Getiriyor?24 Mar 2026
Copilot cloud agent ile Kırık Actions İşini Tek Tıkta Çözmek
Copilot cloud agent ile Kırık Actions İşini Tek Tıkta Çözmek19 May 2026
Azure DevOps Server Mart Yaması: Grup Üyeliği
Azure DevOps Server Mart Yaması: Grup Üyeliği14 Mar 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 Agent Framework Ajan Araçları embedding Vector Arama Vector Store
Önceki yazı

SQL Server ve Azure SQL: Kanada 2026 Saat Dilimi Rehberi

Sonraki yazı

AI Scan, CodeQL’in Kapsamadığı Dilleri PR’da Tarıyor

İlginizi Çekebilir

SQL Server ve Azure SQL: Kanada 2026 Saat Dilimi Rehberi
Aşkın KILIÇ 0

SQL Server ve Azure SQL: Kanada 2026 Saat Dilimi Rehberi

15/10/2026
Headlamp Kueue Eklentisi: Job Neden Hâlâ Bekliyor?
Aşkın KILIÇ 0

Headlamp Kueue Eklentisi: Job Neden Hâlâ Bekliyor?

15/10/2026
Gemini 4 Argon GitHub Copilot'ta: Kimler Kullanabilir?
Aşkın KILIÇ 0

Gemini 4 Argon GitHub Copilot’ta: Kimler Kullanabilir?

15/10/2026

Yorum gönder Yanıtı iptal et

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • AI Scan, CodeQL'in Kapsamadığı Dilleri PR'da Tarıyor
    15/10/2026 AI Scan, CodeQL’in Kapsamadığı Dilleri PR’da Tarıyor
  • Agent Framework Python'da Vector Store ile Ajan Bağlamı
    15/10/2026 Agent Framework Python’da Vector Store ile Ajan Bağlamı
  • SQL Server ve Azure SQL: Kanada 2026 Saat Dilimi Rehberi
    15/10/2026 SQL Server ve Azure SQL: Kanada 2026 Saat Dilimi Rehberi
  • Headlamp Kueue Eklentisi: Job Neden Hâlâ Bekliyor?
    15/10/2026 Headlamp Kueue Eklentisi: Job Neden Hâlâ Bekliyor?
  • Gemini 4 Argon GitHub Copilot'ta: Kimler Kullanabilir?
    15/10/2026 Gemini 4 Argon GitHub Copilot’ta: Kimler Kullanabilir?
  • 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
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • 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
  • 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 OpenAI azure sdk Azure SQL CI/CD code review copilot Copilot CLI DevOps geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes Kurumsal geliştirme kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu MCP Microsoft Agent Framework Microsoft Azure Microsoft Entra ID Microsoft Foundry otomasyon performans public preview Pull Request RAG REST API SEO uyumlu 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
    ← SQL Server ve Azure SQL: Kanad...
    AI Scan, CodeQL’in Kapsa... →
    📩

    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