· Hakan Çelik · Yapay Zeka · 4 dk okuma
AI Agents: Araç Kullanan ve Kendi Kararlarını Veren Yapay Zeka

- 1. Bir AI Modeli İndirdiğinizde Aslında Ne İndiriyorsunuz?
- 2. Token Nedir? AI Modelleri Metni Nasıl Okur ve Nasıl Ücretlendirilir?
- 3. Prompt Engineering: AI ile Doğru Konuşmanın Yolu
- 4. RAG Nedir? Yapay Zekaya Hafıza Kazandırmanın Yolu
- 5. Fine-Tuning: Bir AI Modelini Ne Zaman ve Nasıl Özelleştirirsiniz?
- 6. MCP Nedir? AI Araçları için REST API
- 7. AI Agents: Araç Kullanan ve Kendi Kararlarını Veren Yapay Zeka
- 8. Multi-Agent Sistemler: Orkestrasyon ve Paralel AI
Chatbot ile Agent Arasındaki Fark
Bir dil modeliyle normal bir konuşma şöyle işler:
Kullanıcı → Soru → Model → CevapSiz sorar, model cevaplar. Tek turlu, tek yönlü.
Bir AI agent ise farklı çalışır:
Kullanıcı → Hedef
↓
Model (düşünür)
↓
Araç kullanır (web ara, kod çalıştır, API çağır...)
↓
Sonucu değerlendirir
↓
Yeniden düşünür / tekrar araç kullanır
↓
Nihai çıktı → KullanıcıAgent, hedefe ulaşmak için kendi kararlarını alır. Hangi araçları hangi sırayla kullanacağını kendisi belirler. Gerekirse planını değiştirir.
Ajanın Üç Bileşeni
Her AI agent üç temel parçadan oluşur:
1. Beyin (LLM)
Bir AI modeli — akıl yürütme, planlama ve karar verme buradan gelir. Agent, modelin düşünme kapasitesini bir döngü içinde tekrar tekrar kullanır.
2. Araçlar (Tools)
Modelin yapamayacağı şeyleri yapan fonksiyonlar:
- Web araması
- Kod çalıştırma
- Dosya okuma/yazma
- API çağrısı
- Veritabanı sorgusu
- E-posta gönderme
Model, bu araçları ne zaman ve nasıl kullanacağına kendisi karar verir.
3. Hafıza (Memory)
Önceki adımların sonuçları, araç çıktıları ve konuşma geçmişi — bunların tümü context window’da yaşar. Agent her adımda bu birikmiş bağlamı kullanır.
ReAct: Düşün → Davran → Gözlemle
En yaygın agent mimarisi ReAct (Reason + Act) döngüsüdür:
Düşünce (Thought): "Kullanıcı EUR/TRY kurunu soruyor.
Güncel kur için web araması yapmalıyım."
↓
Eylem (Action): web_search("EUR TRY kur 2026")
↓
Gözlem (Observation): "1 EUR = 38.42 TRY (26 Nisan 2026)"
↓
Düşünce (Thought): "Kuru buldum. Kullanıcıya verebilirim."
↓
Yanıt (Final Answer): "Güncel EUR/TRY kuru: 38.42"Model her adımda hem düşünür hem davranır. Bu döngü hedefe ulaşılana kadar devam eder.
Araç Kullanımı: Function Calling
Modern API’lerde araçlar, modele JSON şeması olarak tanımlanır. Model, hangi aracı kullanacağına karar verince API bunu yapılandırılmış bir nesne olarak döner — sizin kodunuz aracı çalıştırır, sonucu modele geri gönderirsiniz.
from anthropic import Anthropic
client = Anthropic()
# Araç tanımları
tools = [
{
"name": "web_search",
"description": "İnternette güncel bilgi arar",
"input_schema": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "Arama sorgusu"}
},
"required": ["query"]
}
},
{
"name": "hesap_makinesi",
"description": "Matematiksel hesaplama yapar",
"input_schema": {
"type": "object",
"properties": {
"ifade": {"type": "string", "description": "Hesaplanacak ifade"}
},
"required": ["ifade"]
}
}
]
mesajlar = [{"role": "user", "content": "1 EUR kaç TRY? 500 EUR'u TRY'ye çevir."}]
# Agent döngüsü
while True:
yanit = client.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
tools=tools,
messages=mesajlar
)
if yanit.stop_reason == "end_turn":
# Model bitti, son cevabı al
print(yanit.content[0].text)
break
if yanit.stop_reason == "tool_use":
# Model araç kullanmak istiyor
for blok in yanit.content:
if blok.type == "tool_use":
# Aracı çalıştır (gerçek implementasyon)
if blok.name == "web_search":
sonuc = web_search(blok.input["query"])
elif blok.name == "hesap_makinesi":
sonuc = eval(blok.input["ifade"])
# Sonucu modele geri gönder
mesajlar.append({"role": "assistant", "content": yanit.content})
mesajlar.append({
"role": "user",
"content": [{"type": "tool_result", "tool_use_id": blok.id, "content": str(sonuc)}]
})Kod Asistanları Neden Agent Gibi Davranır?
Modern kod asistanları dosya okuma, kod yazma, terminal komutu çalıştırma, dosya arama ve içerik tarama gibi araçlara erişerek çalışır. Bir görev aldıklarında hangi aracı hangi sırayla kullanacaklarına karar verir, ara sonuçları değerlendirir ve planlarını günceller.
Bu yaklaşım, RAG yazısında anlattığım “dinamik araştırma” fikriyle de örtüşür: sabit bir tek adım yerine, ihtiyaç oldukça ilgili bilgiye gidip geri dönmek.
Multi-Agent: Ajanların İş Birliği
Tek bir agent her şeyi yapamaz — context window token sınırlıdır, dikkat dağılır, karmaşık görevler için yetersiz kalır.
Multi-agent sistemlerde birden fazla agent iş birliği yapar:
Orkestratör Agent
├── Araştırma Agentı (web arama, bilgi toplama)
├── Kod Agentı (kod yazma, test etme)
└── Yazı Agentı (raporlama, özetleme)Orkestratör görevi parçalar, alt agentlara delege eder, sonuçları birleştirir. Her agent kendi context window’unda çalışır — paralel ve verimli.
Agent’ların Zorlukları
1. Token maliyeti yüksektir. Her araç çağrısı, düşünce adımı ve gözlem token tüketir. Uzun bir agent döngüsü, tek bir API çağrısının on katı token harcayabilir.
2. Hata yayılımı. Erken adımdaki bir yanlış karar sonraki adımları etkiler. İyi bir agent, belirsizlikle nasıl başa çıkacağını bilmeli veya kullanıcıya sormalıdır.
3. Kontrol sorunu. Agent ne kadar özerk olmalı? Geri dönüşü olmayan bir eylemi (e-posta gönderme, dosya silme) yapmadan önce onay almalı mı? Bu kararlar, sistemin güvenliğini doğrudan etkiler.
Sonuç
AI agent, dil modelini tek seferlik bir cevap makinasından, hedefe yönelik çalışan bir iş ortağına dönüştürür.
Model neyi bildiğini söyler. Agent neyi yapabileceğini gösterir.
Bu serinin başında model nedir sorusunu sorduk. Sonra token’ların bu modelin temel birimi olduğunu gördük. RAG ile bilgiyi akıllıca besledik. Prompt engineering ile doğru konuşmayı öğrendik. Fine-tuning ile modeli özelleştirdik. Agent ile hepsini eyleme döktük.
Hakan Çelik


