![]()
Önceki ders, ajanları buluta yükseltmişti. Bu ders, onları tek bir makineye indiriyor. Dersin sonunda, mantık yürüten, araç çağıran, dosyalarınızı okuyan ve belgelerinizi arayan çalışan bir mühendislik asistanınız olacak — tek bir bulut çıkarımı çağrısı olmadan.
Neden böyle bir şeye ihtiyacınız olsun? Mühendislik çalışmalarında sıkça karşılaşılan üç sebep:
Fakat burada, sınırdaki bulut modelini CPU, GPU veya NPU üzerinde çalışan Küçük Dil Modeli (SLM) ile takas ediyorsunuz. Bu ders, bu kısıt içinde iyi olan ajanlar oluşturmakla ilgilidir, kısıt yokmuş gibi davranmakla değil.
Bu ders şunları kapsayacak:
Bu dersi tamamladıktan sonra şunları bileceksiniz:
Bu ders, önceki dersleri tamamladığınızı ve şu konularda rahat olduğunuzu varsayar:
Ayrıca ihtiyacınız olacak:
requirements.txt, ayrıca bu ders için foundry-local-sdk, openai ve chromadb.Bir sınır modeli yüzlerce milyar parametreye ve bir veri merkezine sahiptir. Bir SLM birkaç milyar parametreye sahiptir ve dizüstü bilgisayarınızın belleğine sığmalıdır. Bu fark beklentileri netleştirir.
SLM’ler şunlarda iyidir:
SLM’ler şunlarda zayıftır:
Bu nedenle yerel ajanlar için kazanan strateji: SLM orkestrasyon yapsın, ağır iş araçlara kalsın. Model kod tabanınızı bilmesine gerek yok — read_file ve search_docs ne zaman çağrılacağını bilmesi yeterli. Bu doğrudan SLM’nin güçlü yanlarına oynar.
flowchart LR
U[Geliştirici] --> A[Yerel SLM Ajanı]
A -->|hangi aracın kullanılacağına karar verir| T1[dosya_oku]
A -->|hangi aracın kullanılacağına karar verir| T2[dökümanlari_ara RAG]
A -->|hangi aracın kullanılacağına karar verir| T3[kodu_analiz_et]
T1 --> A
T2 --> A
T3 --> A
A --> R[Cevap, tamamen cihazda]
Microsoft Foundry Local, modelleri tamamen makinenizde indirip yöneten ve sunan hafif bir çalışma zamanıdır. Bizim için en önemli özelliği, OpenAI uyumlu bir HTTP uç noktası sunmasıdır — bu, OpenAI SDK’nın ve Microsoft Agent Framework’ün OpenAI istemcisinin yalnızca base_url değişikliğine ihtiyaç duyarak buna bağlanabileceği anlamına gelir. Ajan oluşturmanın tüm bilgisi doğrudan aktarılır; sadece uç nokta buluttan localhosta taşınır.
Foundry Local ayrıca donanımınıza en uygun modeli otomatik seçer — CPU derlemesi, CUDA/GPU derlemesi veya NPU derlemesi — böylece makine başına elle optimizasyon yapmanıza gerek kalmaz.
Foundry Local’u kurun (işletim sisteminiz için belgelere bakın), sonra çalıştığını doğrulayın:
# Kurulum (örnek; platformunuz için belgeleri takip edin)
winget install Microsoft.FoundryLocal # Windows
# brew install microsoft/foundrylocal/foundrylocal # macOS
# Bir Qwen modeli indirip çalıştırın, sonra yerel servisi başlatın
foundry model run qwen2.5-7b-instruct
foundry service status
Hizmet çalışmaya başladıktan sonra yerel, OpenAI uyumlu bir uç noktanız olur (genellikle http://localhost:PORT/v1). Not defteri foundry-local-sdk kullanarak bu uç noktayı otomatik bulur, böylece portu sabit kodlamanız gerekmez.
Bir ajan ancak araç çağırabiliyorsa ajandır. Çoğu SLM sohbet eder ama güvenilmez, hatalı araç çağrıları üretir. Qwen modelleri fonksiyon çağırmak üzere eğitilmiştir ve tutarlı, düzgün araç çağrıları üretir — bu da yerel sohbet modelini yerel ajan haline getirir.
Akış, zaten bildiğiniz standart araç çağırma döngüsüdür, sadece cihazda çalışır:
sequenceDiagram
participant U as Kullanıcı
participant A as Qwen Ajanı (yerel)
participant T as Yerel Araç
U->>A: "auth.py ne yapar?"
A->>A: Kararlaştır: read_file çağır
A->>T: read_file("auth.py")
T-->>A: dosya içeriği
A->>A: İçerik üzerinde değerlendirme yap
A-->>U: Açıklama
Dokümantasyon araması, yerel ajanların değerini gösterir. SLM’nin framework belgelerinizi ezberlediğini ummak yerine, bu belgeleri yerel vektör veritabanına gömersiniz ve ajanın ilgili parçaları ihtiyaç anında getirmesini sağlarsınız.
Yönetim gerektirmeyen, uygulama içi çalışan gömülü bir vektör mağazası olan Chroma‘yı kullanıyoruz. İşlem tamamen yerel: yerel gömme modeli → yerel vektörler → yerel arama → yerel SLM.
flowchart TB
D[Belgeleriniz / kodunuz] --> E[Yerel gömme modeli]
E --> V[(Chroma vektör veritabanı - disk üzerinde)]
Q[Aracı sorgusu] --> QE[Sorguyu yerel olarak gömme]
QE --> V
V -->|en iyi k parça| A[Qwen aracı]
A --> Ans[Dayanıklı cevap]
Bu, Ders 5’ten aynı Agentic RAG deseni — tek fark, her bileşenin makinenizde çalışmasıdır.
MCP bir taşımacılık protokolüdür, bulut hizmeti değil. Bir MCP sunucusu stdio üzerinde yerel bir işlem olarak çalışabilir, ajanınıza standart protokol üzerinden araçlar sunar. Bu, dosya sistemi erişimi, git işlemleri, veritabanı sorguları gibi büyüyen MCP sunucu ekosistemini tamamen çevrimdışı kullanmanızı sağlar.
Güvenlik duruşu buluttan farklıdır ama yok değildir: yerel MCP sunucusu hala kullanıcı izinlerinizle çalışır, bu yüzden erişebileceği alanı (örneğin bir proje dizini, tüm ev klasörünüz değil) sınırlandırın ve çıktıları doğrulama için giriş olarak değerlendirin.
Yerel öncelikli, sadece yerel demek değildir. Olgun sistemler hassasiyet ve zorluk bazında yönlendirme yapar:
| Durum | Nerede çalışır |
|---|---|
| Hassas kod/veri veya çevrimdışı | Yerel SLM |
| Basit, sınırlı görevler | Yerel SLM (ucuz, hızlı) |
| Zorlu çok adımlı çıkarım, hassas olmayan verilerde | Bulut modeli |
| Her durumda, kesinti sırasında | Yerel SLM (nazik degrade) |
Bu, Ders 16’daki model yönlendirme fikrine benzer — tek fark “modellerden” birinin artık kendi makineniz olması. Dayanıklı tasarım, bulut kullanılamayınca yerel modele düşer, böylece ajan kalitesini azaltır ama tamamen başarısız olmaz.
flowchart LR
Q[İstek] --> S{Hassas veya çevrimdışı mı?}
S -->|evet| L[Yerel SLM]
S -->|hayır| C{Derin muhakeme gerekiyor mu?}
C -->|hayır| L
C -->|evet| Cloud[Bulut modeli]
L --> Out[Yanıt]
Cloud --> Out
code_samples/17-local-agent-foundry-local.ipynb dosyasını açın ve ilerleyin. Tümüyle çalışma istasyonunuzda çalışan bir yerel mühendislik asistanı oluşturacaksınız ve şunları yapabilecek:
Herhangi bir noktada bulut çıkarımı kullanılmaz.
Asistan, OpenAI uyumlu uç nokta aracılığıyla Foundry Local’a bağlanır, bu yüzden ajan kodu bulut derslerinkiyle neredeyse aynıdır — sadece istemci değişir:
from foundry_local import FoundryLocalManager
from openai import OpenAI
# Foundry Local modeli keşfeder/indirir ve bize yerel bir uç nokta sağlar.
manager = FoundryLocalManager(\"qwen2.5-7b-instruct\")
client = OpenAI(base_url=manager.endpoint, api_key=manager.api_key) # api_key yerel bir yer tutucudur
Araçlar, proje dizinine bağlı sıradan Python fonksiyonlarıdır:
def read_file(path: str) -> str:
\"\"\"Read a file, but only inside the sandboxed project directory.\"\"\"
full = (PROJECT_ROOT / path).resolve()
if PROJECT_ROOT not in full.parents and full != PROJECT_ROOT:
return \"Access denied: path is outside the project directory.\"
return full.read_text(encoding=\"utf-8\")
Sandbox kontrolüne dikkat edin — yerelde bile, rastgele yolları okuyan bir araç risklidir. Not defteri her aracı tek bir proje köküne sınırlar.
Atamaya geçmeden önce bilginizi test edin.
1. Bir ajanı neden bulutta değil de yerelde çalıştırmak için iki somut sebep verin.
2. Yerel bir ajanda SLM ile araçları arasında önerilen iş bölümü nedir ve neden?
3. Foundry Local ile bulut ajan kodunu yeniden kullanmayı mümkün kılan nedir?
4. Neden herhangi bir SLM yerine özellikle Qwen fonksiyon çağırma modelini kullanıyoruz?
5. Yerel RAG işlem hattında hangi bileşenler makinede çalışır?
6. Yerel bir MCP sunucusu makinenizde çalışıyor. Bu onu otomatik olarak güvenli yapar mı? Hangi önlemi almalısınız?
7. Yerel modeli içeren mantıklı bir hibrit yönlendirme kuralını tanımlayın.
8. Bu derste yerel ajanı çalıştırmak için gerçekçi minimum RAM miktarı nedir ve daha fazla RAM size ne kazandırır?
Yerel mühendislik asistanını, kendi seçtiğiniz küçük bir proje için yerel dokümantasyon inceleyicisi haline getirin (İsterseniz bu depodaki ders klasörlerinden birini kullanabilirsiniz).
Teslimatınız şunları içermelidir:
Projede TODO/FIXME yorumlarını tarayan ve dosya ile satır numarasıyla birlikte döndüren bir find_todos aracı ekleyin — read_file ile aynı sandbox kontrolünü koruyarak.
Sonra, bu değerlendirme için neleri buluta taşıyacağınız ve neleri yerelde tutacağınız hakkında kısa bir paragraf yazın ve nedenlerini açıklayın. Yerel bileşenlerin doğru şekilde birbirine bağlanıp bağlanmadığı ve karma hibrit akıl yürütmenizin sağlamlığı değerlendirilir — model kalitesi değil.
Bu derste tamamen kendi makinenizde çalışan bir ajan oluşturdunuz:
Bu, dağıtım döngüsünü tamamlar: Ders 16 ajanları Microsoft Foundry’e ölçeklendirdi, bu ders onları tek bir iş istasyonuna küçülttü. Sonraki ders, dağıtılmış ajanların güvenliğinin korunmasına odaklanıyor.
Ölçeklenebilir Ajanları Dağıtmak
AI Ajanlarını Güvence Altına Almak
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.