Program
Yapay zekâ ajanları, görevleri yerine getirebilen ve dünya ile etkileşime girebilen asistanlardır. Sabit kuralları izleyen geleneksel sistemlerden farklı olarak, yeni durumları öğrenip uyum sağlayabilirler. Onları çeşitli görevlerde yardımcı olan akıllı robotlar gibi düşünebilirsiniz.
Peki yapay zekâ ajanlarını, hepimizin adını duyduğu popüler dil modelleri gibi diğer yapay zekâ varlıklarından ayıran nedir?
Bu yazıda bu soruyu ele alacak ve çok ajanlı yapay zekâ sistemlerinin geliştirilmesini kolaylaştırmak için tasarlanmış, ücretsiz ve açık kaynaklı bir Python çatısı olan CrewAI’yi tanıtacağım. Ajanlar ile dil modelleri arasındaki ayrımı inceleyecek, yapay zekâ uygulamaları geliştirmede ajan çatıların neden önemli olduğunu tartışacak ve CrewAI’nin ajanların iş birliği yaparak nasıl güçlü sonuçlar elde etmesini sağladığını göstereceğiz.
Yapay Zekâ Ajanları vs. LLM’ler
Ajanlar ile büyük dil modelleri (LLM’ler) arasındaki farkla ilgili yaygın bir yanılgıyı giderelim. Her ikisi de yapay zekâ ailesine ait olsa da yetenekleri farklıdır.

ChatGPT ve Gemini gibi dil modelleri, dili kullanmada son derece yetkindir. Büyük miktarda metin ve kod üzerinde kapsamlı bir eğitimden geçtikleri için, insan iletişimine oldukça benzeyen dili anlama ve üretme becerisine sahiptirler.
LLM’ler, çeviriler, özetler, yaratıcı anlatılar hatta şiirler dahil geniş bir yelpazede içerik üretebilen yapay zekânın usta kelime işçileridir. Kapsamları genellikle dil ile ilgili görevlere sınırlıdır.
Ajanlar ise öncelikle eyleme odaklanır. Gezinme, nesnelerle etkileşim kurma ve algılarına dayanarak karar verme yeteneğine sahiptirler.
Kısacası, dil modelleri beyin, ajanlar ise ellerdir. Birlikte güçlü bir ikili oluştururlar.
Öyleyse ajanlar yapay zekâ uygulamalarında bu kadar hayati bir rol oynuyorsa, birden çok ajanın birlikte çalışması gerektiğinde ortaya çıkan karmaşıklığı nasıl yönetiriz? İşte burada ajan çatıları devreye girer.
Bir Ajan Çatısına Neden İhtiyaç Var?
Ajan çatılarına duyulan ihtiyaç, özellikle ortak bir hedefe ulaşmak için iş birliği içinde çalışan birden fazla ajanın yer aldığı yapay zekâ uygulamalarının artan karmaşıklığından kaynaklanır. Ajan çatıları neden gereklidir, bakalım.
Orkestrasyon ve koordinasyon
Yapay zekâ sistemleri büyüdükçe, sıklıkla farklı yeteneklere sahip çok sayıda ajanı bünyelerine katarlar. Bu etkileşimleri yönetmek ve uyum içinde çalışmalarını sağlamak giderek zorlaşır.
Ajan çatıları, ajan etkinliklerinin orkestrasyonunu, rollerinin ve sorumluluklarının tanımlanmasını ve iletişimin iyileştirilmesini sağlayan yapılandırılmış bir ortam sunar.
Çok ajanlı sistemlerde önemli bir husus, görevlerin en uygun ajanlara verimli şekilde tahsis edilmesi ve paylaşılan kaynakların etkin biçimde yönetilmesidir. Ajan çatıları, görev tahsisi, kaynak müzakereleri ve çatışma çözümü için dinamik mekanizmalar sağlar.
Modülerlik ve yeniden kullanılabilirlik
Ajan çatıları, ajanların bağımsız bileşenler olarak tasarlanıp uygulandığı modüler bir yapay zekâ geliştirme yaklaşımını teşvik eder. Bu modülerlik daha iyi kod organizasyonu sağlar ve ajan modüllerinin çeşitli projelerde yeniden kullanılmasına imkân tanır; böylece karmaşık sistemlerin geliştirilmesini ve bakımını basitleştirir. Bu bileşen tabanlı yapıyla, yapay zekâ geliştiricileri daha büyük sistemi bozmadan tek tek ajanlara odaklanabilir.
Ayrıca ajan çatıları sıklıkla rol tabanlı bir mimari benimser; bu da geliştiricilerin ajanalara belirli roller atamasına ve böylece yeteneklerini ve izinlerini tanımlamasına olanak tanır. Bu rol tabanlı tasarım, ajanların minimum etkiyle eklenip çıkarılabildiği veya değiştirilebildiği daha düzenli ve yönetilebilir bir sistem ortaya çıkarır. Bu esneklik, sistemlerin önemli yeniden mühendislik gerektirmeden yeni gereksinimlere evrilmesini ve uyum sağlamasını güvence altına alır.
Uyarlanabilirlik ve öğrenme
Gerçek dünya ortamları genellikle dinamik, öngörülemez ve sürekli değişir. Ajan çatıları, ajanların çevrelerindeki değişimleri algılayıp davranışlarını buna göre uyarlamalarını sağlar. Bu uyarlanabilirlik, ajanların karmaşık ve sürekli değişen senaryolarda bile etkili şekilde çalışmasını güvence altına alır; böylece gerçek dünya zorluklarını daha iyi yönetirler.
Dahası, ajan çatıları sıklıkla ajanların zaman içinde performanslarını geliştirmelerini sağlayan öğrenme mekanizmaları içerir. Geri bildirim ve deneyimlerden öğrenerek, ajanlar karar verme süreçlerini sürekli optimize edebilir ve ortaya çıktıkça yeni zorluklara uyum sağlayabilir. Bu sürekli iyileştirme, ajanların daha etkili ve değerli hale gelmesini sağlayarak uzun vadede sistem verimliliğine ve başarısına katkıda bulunur.
Ve ajan çatıları demişken, yapay zekâ topluluğunda ses getiren bir tanesini tanıtalım: CrewAI.
CrewAI Nedir?
CrewAI, çok ajanlı yapay zekâ sistemlerinin geliştirilmesini ve yönetilmesini desteklemek için tasarlanmış açık kaynaklı bir Python çatısıdır.
CrewAI, bu yapay zekâ sistemlerini belirli roller atayarak, otonom karar vermeyi mümkün kılarak ve ajanlar arasındaki iletişimi kolaylaştırarak iyileştirir. Bu yaklaşım, tek başına çalışan bireysel ajanlara kıyasla karmaşık sorunların daha etkili biçimde ele alınmasını sağlar.

Bu çatı, ajanların dış dünyayla etkileşime girmesini, bilgi toplamasını ve hedeflerini yerine getirmek üzere eyleme geçmesini sağlayan web arama motorları ve dil modelleri dâhil bir dizi araçtan oluşur.
CrewAI’nin tasarımı ve ölçeklenebilirliği, hem temel hem de karmaşık çok ajanlı uygulamaların geliştirilmesi için idealdir; yapay zekâ sistemlerinde zorlukların iş birliği içinde ele alınmasını ve kararların birlikte verilmesini teşvik eder.
Şimdi, CrewAI’yi çok ajanlı sistemler kurmak için güçlü bir araç yapan bazı temel özelliklere bakalım.
- Ajan orkestrasyonu: CrewAI, her ajanın gösteride kendi rolünü bilmesini sağlar. Ajan davranışlarını tanımlayıp koordine edecek araçlar sunar ve herkesin uyum içinde çalışmasını temin eder.
- Rol tabanlı mimari: Nasıl ki müzisyenlere farklı enstrümanlar atanırsa, CrewAI de ajanlara belirli roller atamanıza, böylece yeteneklerini ve izinlerini tanımlamanıza olanak tanır. Bu, işler karmaşıklaştığında bile modüler ve iyi yapılandırılmış bir sistem oluşturur.
- Esnek iletişim: CrewAI, ajanların kesintisiz biçimde bilgi alışverişi yapmasına imkân veren çeşitli iletişim kanallarını destekler. Bunu, özel bir sohbetin, bir grup tartışmasının ve bir megafonun tek bir yapıda birleşmesi gibi düşünebilirsiniz.
- Araç entegrasyonu: CrewAI, ajanların dünyayla çeşitli araçlar üzerinden etkileşim kurmasını sağlar. Bu araçlar, ajanların web’de arama yapmasını, dili anlamasını, verileri analiz etmesini ve özel görevleri yerine getirmesini mümkün kılar.
- Ölçeklenebilirlik: CrewAI, zahmetsizce ölçeklenecek şekilde tasarlanmıştır; çok ajanlı sisteminiz büyürken yanıt verme ve verimlilik özelliklerini korur.
Peki CrewAI masaya ne gibi avantajlar getiriyor? Şimdi bu faydaları inceleyelim.
CrewAI Kullanmanın Faydaları
Crew.ai, birden fazla yapay zekâ ajanının iş birliği yapmasını, bilgi paylaşmasını ve ortak bir hedef doğrultusunda eylemlerini koordine etmesini sağlar.
Görev dağıtımını ve kaynak yönetimini otomatikleştirerek Crew.ai, ajanların minimum ek yükle kendi rollerine odaklanmasına olanak tanır.
Çatı ayrıca uyarlanabilirliği destekler; böylece ajanlar değişen koşullara veya hedeflere göre davranışlarını ayarlayabilir.
Buna ek olarak Crew.ai, çok ajanlı sistemlerin oluşturulması ve yönetilmesi için kullanıcı dostu bir platformla geliştirme sürecini basitleştirir.

CrewAI’nin bir diğer önemli gücü, geniş bir araç yelpazesiyle entegrasyonudur. Bu, ajanların dış dünyayla etkileşime girip bilgi toplamasını sağlar.
CrewAI; web arama motorları, dil modelleri, veri analizi araçları ve hatta özel olarak geliştirilmiş işlevler gibi araçları destekler. Bu sayede ajanlar, web’den bilgi getirme veya karmaşık veri analizi yapma gibi, temel yeteneklerinin ötesindeki görevleri de gerçekleştirebilir.
Uygulamalı: CrewAI ile Bir Web Arama Aracı Oluşturma
Kolları sıvayıp, bir web sitesinden içerik kazıyan ve ardından onun üzerinde RAG uygulayan bir iş akışını CrewAI araçlarıyla kuralım.
Aracı çalıştıracak kodu yazmamız gerekiyor. Başlamadan önce, pip kullanarak crewai-tools ve crewai paketlerini kuralım:
pip install crewai-tools crewai
Paketleri kurduktan sonra aşağıdaki adımları izleyin. Bu örnekte üç farklı araç kullanacağız: web sitesini kazımak için ScrapeWebsiteTool, dosya yazmak için FileWriterTool ve RAG için bağlamda arama yapmak üzere TXTSearchTool. Haydi başlayalım.
Adım 1: Bir web sitesini kazıma
Önce gerekli kütüphaneleri içe aktarıp ScrapeWebsiteTool’ü başlatıyoruz. Bu araç, bir web sitesinden içerik çıkarmak için kullanılır. Bu durumda, Vikipedi’nin “Yapay zekâ” sayfasından içerik kazımaya ayarlanmıştır:
from crewai_tools import ScrapeWebsiteTool, FileWriterTool, TXTSearchTool
import requests
# Initialize the tool, potentially passing the session
tool = ScrapeWebsiteTool(website_url='https://en.wikipedia.org/wiki/Artificial_intelligence')
# Extract the text
text = tool.run()
print(text)
Adım 2: Çıkarılan metni bir dosyaya yazma
Şimdi de çıkarılan metni ai.txt adlı bir dosyaya kaydetmek için FileWriterTool’ü kullanıyoruz.
# Initialize the tool
file_writer_tool = FileWriterTool()
# Write content to a file in a specified directory
result = file_writer_tool._run(filename='ai.txt', content = text, directory = '', overwrite=True)
print(result)
Adım 3: Metin arama aracını kurma
Az önce kaydettiğimiz ai.txt dosyasının içeriğinde arama yapmak için başka bir araç kuruyoruz. Ayrıca OpenAI API anahtarı için ortam değişkenini ayarlıyoruz.
import os
from crewai_tools import TXTSearchTool
os.environ['OPENAI_API_KEY'] = 'API-KEY'
# Initialize the tool with a specific text file, so the agent can search within the given text file's content
tool = TXTSearchTool(txt='ai.txt')
Adım 4: Görev için bir ajan oluşturup çalıştırma
Eğitmen rolünde bir veri analisti ajanı oluşturuyoruz. Bu ajanın görevi, dosyada aradığımız metne dayanarak “Doğal Dil İşleme nedir?” sorusunu yanıtlamaktır.
from crewai import Agent, Task, Crew
context = tool.run('What is natural language processing?')
data_analyst = Agent(
role='Educator',
goal=f'Based on the context provided, answer the question - What is Natural Language Processing? Context - {context}',
backstory='You are a data expert',
verbose=True,
allow_delegation=False,
tools=[tool]
)
test_task = Task(
description="Understand the topic and give the correct response",
tools=[tool],
agent=data_analyst,
expected_output='Give a correct response'
)
crew = Crew(
agents=[data_analyst],
tasks=[test_task]
)
output = crew.kickoff()
Çıktı:

Sonuç
CrewAI, çok ajanlı sistemleri yönetmek için pratik bir platform sunar. İster içerik kazıma ister görev delege etme olsun, bu çatı ajanlar arasında iş birliğini destekler ve onların uyum sağlayıp gelişmesine yardımcı olur.
Araçları entegre edip düzenli bir yapı sağlayarak CrewAI, geliştiricilerin ajan etkileşimlerini yönetmesini, görevleri dağıtmasını ve en iyi performansı güvence altına almasını kolaylaştırır.
GenAI ve veri bilimi üzerine bilgi paylaşarak 20 milyon görüntüleme elde etmiş Kıdemli GenAI Mühendisi ve İçerik Üreticisi.
