Ana içeriğe geç

AutoGen Eğitimi: Çoklu Aracılı Yapay Zekâ Uygulamaları Geliştirin

Autogen Studio, Autogen AgentChat, Autogen Core ve Autogen Extensions ile çoklu aracılı yapay zekâ uygulamalarını nasıl geliştireceğinizi öğrenin.
· 7 dk. oku

Yapay Zeka ile Keşfedin

Modern yapay zekâ, Büyük Dil Modelleri (LLM'ler) ile başladı; ardından yapılandırılmış çıktı için fonksiyon çağırma, sonrasında ajanlar ve araçların geliştirilmesi ve bunun sonucunda MCP sunucularının ortaya çıkması geldi. Günümüzde odak, çoklu ajan sistemlerinde. Şirketler, çeşitli araçları kullanarak akıllı otomatik sistemler kurmaya yönelik çözümler arıyor ve AutoGen bunlar arasında en popüler olanı.

Bu eğitimde AutoGen'i, ekosistemini, farklı kullanım alanlarını ve bu ekosistemdeki her bir bileşenin nasıl kullanılacağını inceleyeceğiz. AutoGen'in yalnızca LangChain gibi tipik bir dil modeli orkestrasyon aracı olmadığını; bundan çok daha fazlasını sunduğunu unutmamak gerekir.

Yapay zekâya yeniyseniz, lütfen bu eğitime geçmeden önce AI Fundamentals yetkinlik yolunu tamamlayın. Ayrıca ayrı bir yazıda Ajans Odaklı (Agentic) Yapay Zekâ hakkında da bilgi edinebilirsiniz. 

AutoGen nedir?

AutoGen; yarı otonom ve tam otonom çalışabilen çoklu aracılı yapay zekâ uygulamaları oluşturmak için tasarlanmış, açık kaynaklı bir çerçevedir. Geliştiricilere, birden çok yapay zekâ ajanının iletişim kurabildiği, iş birliği yapabildiği ve görevleri birlikte yerine getirebildiği sistemler kurma araçları sunar.

AutoGen; otomatik iş akışları, çoklu ajan iş birliği ve dinamik görev çözümü gibi geniş bir kullanım yelpazesini destekler. Geliştiricilerin; ajanların doğal dille etkileşime girebildiği, kod çalıştırabildiği, bilgi getirebildiği ve karmaşık iş akışlarına uyum sağlayabildiği sistemler oluşturmasına olanak tanır.

AutoGen ekosistemi dört ana bileşene ayrılmıştır:

  1. AutoGen Studio: Çoklu ajan iş akışları oluşturup test etmek için kodsuz bir grafik arayüz.
  2. AutoGent AgentChat: Tek ve çoklu aracılı sohbet uygulamaları geliştirmek için basitleştirilmiş bir API.
  3. AutoGen Core: Ölçeklenebilir çoklu aracılı yapay zekâ sistemleri kurmak için temel API. 
  4. AutoGen Extension: Çerçevenin yeteneklerini genişleten birinci ve üçüncü taraf uzantı kitaplığı.

AutoGen Ekosistemi diyagramı

Kaynak: microsoft/AutoGen

AutoGen, şu yetenekleriyle öne çıkar:

  • Karmaşık LLM iş akışlarının orkestrasyonunu ve optimizasyonunu basitleştirmek.
  • LLM'lerin performansını artırırken sınırlamalarını ele almak.
  • LLM'leri, araçları ve insan girdilerini entegre eden çoklu ajan sistemlerini sorunsuzca oluşturmayı sağlamak.

Genişletilebilirliği ve modülerliği, onu finanstan sağlığa, eğitimden robotiğe kadar farklı sektörlerdeki geliştiriciler için güçlü bir araç hâline getirir.

Projelerinizde yenilik ve verimlilik için yapay zekâ ajanlarından nasıl yararlanabileceğinizi öğrenmek üzere Yapay Zekâ Ajanlarını Anlamak: Otonom Sistemlerin Geleceği yazısını okuyun.

AutoGen Ekosistemiyle Başlarken

Bu bölümde AutoGen ekosisteminin dört ana bileşenini yerel olarak kurup çalıştırarak inceleyeceğiz.

1. AutoGen Studio

AutoGen Studio, AI ajanlarını hızla prototiplemenize yardımcı olmak için tasarlanmış düşük kodlu bir arayüzdür. Çoklu ajan sistemleri oluşturmak ve bunları gerçek zamanlı test etmek için kullanıcı dostu, sürükle-bırak bir arayüz sunar.

1. Studio'yu kurmak için pip komutunu kullanın.

pip install -U AutoGenstudio

2. Kurulduktan sonra, tüm ajanların ve şablonların saklanacağı bağlantı noktasını ve uygulama dizinini belirterek AutoGen Studio UI'ını başlatabilirsiniz. 

AutoGenstudio ui --port 8080 --appdir ./app

Komutu çalıştırdıktan sonra terminalinizde aşağıdaki çıktıyı görmelisiniz:

INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
2025-05-09 15:15:22.825 | INFO     | AutoGenstudio.web.app:lifespan:39 - Application startup complete. Navigate to http://127.0.0.1:8080

3. AutoGen Studio panosuna erişmek için tarayıcınızda http://127.0.0.1:8080 adresine gidin.

Uygulama çalıştığında, sade ve sezgisel bir kullanıcı arayüzüyle karşılanırsınız.

AutoGen Studio, çoklu ajan iş akışları oluşturup yönetmenize yardımcı olacak çeşitli temel özellikler sunar:

  1. Team Builder: Ajan ekipleri oluşturmak için sürükle-bırak arayüz.
  2. Playground: Ajan iş akışlarını test etmek ve çalıştırmak için etkileşimli ortam.
  3. Gallery: Topluluk tarafından oluşturulan bileşenleri keşfetmek ve içe aktarmak için merkez.
  4. Labs: Kullanıcıların gelişmiş iş akışlarını keşfetmesine ve en yeni fikirleri prototiplemesine olanak tanıyan deneysel bir özelliktir.
  5. Deploy: Ajan iş akışlarını Python kodu olarak dışa aktarma ve çalıştırma.

AutogGen Studio

AutoGen Studio düşük kodlu bir uygulamadır; yani minimum kodlamayla iş akışları oluşturmanıza olanak tanır. Ancak, Python kodu kullanarak ajanları ve iş akışlarını özelleştirme esnekliği de sunar.

AutoGen Studio'da bileşeni düzenleme

2. AutoGen AgentChat

AgentChat, çoklu aracılı sohbet tabanlı iş akışları oluşturmak için üst düzey bir çerçevedir. Birden fazla ajanın (AI, araçlar veya insanlar) görevleri çözmek için iş birliği yaptığı uygulamaları kurma sürecini basitleştirir. 

Önce gerekli paketleri yükleyin:

pip install -U "AutoGen-agentchat" "AutoGen-ext[openai]"

Ardından; Python kodu üretmek, çalıştırmak ve anlatmak için round-robin grup sohbetinde iş birliği yapan üç ajan—bir kullanıcı, bir kodlayıcı ve bir kod yürütücü—kuracağız. Sistem, dinamik kod üretimi ve yürütmeyi kolaylaştırırken insan etkileşimine ve sonlandırma koşullarına izin verecek şekilde tasarlanmıştır.

Bu örnekte; kod üretimi için gpt-4.1-mini modeli, komut satırı kod yürütme için CodeExecutorAgent ve insanı döngüde tutmak için UserProxyAgent kullanıyoruz. 

import asyncio
from pathlib import Path

from AutoGen_agentchat.agents import AssistantAgent, CodeExecutorAgent, UserProxyAgent
from AutoGen_agentchat.conditions import TextMentionTermination
from AutoGen_agentchat.teams import RoundRobinGroupChat
from AutoGen_agentchat.ui import Console
from AutoGen_ext.code_executors.local import LocalCommandLineCodeExecutor
from AutoGen_ext.models.openai import OpenAIChatCompletionClient

async def main() -> None:
    model_client = OpenAIChatCompletionClient(model="gpt-4.1-mini")

    coder = AssistantAgent(
        "coder",
        model_client=model_client,
        system_message=(
            "You are a senior engineer. Think step-by-step, then output ONLY runnable "
            "Python inside ```pythonthon``` blocks—no commentary."
        ),
    )

    executor = CodeExecutorAgent(
        "executor",
        model_client=model_client,  # lets it narrate results
        code_executor=LocalCommandLineCodeExecutor(work_dir=Path.cwd() / "runs"),
    )

    user = UserProxyAgent("user")  # human in the loop

    termination = TextMentionTermination("exit", sources=["user"])
    team = RoundRobinGroupChat(
        [user, coder, executor], termination_condition=termination
    )

    try:
        await Console(
            team.run_stream()
        )
    finally:
        await model_client.close()

if __name__ == "__main__":
    asyncio.run(main())

Yukarıdaki kodu chat_app.py dosyasına kaydedin ve şu şekilde çalıştırın:

python chat_app.py 

Ajan uygulamasından, yıldızları üçgen biçiminde yazdıracak kodu üretmesini ve ardından bu kodu yürütmesini istedik. 

Kod başarıyla üretildi ve yürütüldü; ayrıca ek seçenekler de sunuldu. Kullanıcı, çıkmak için “exit” yazabilir veya sohbet deneyimi için takip soruları sorabilir.

Çıktı: 

Enter your response: Write a Python script that prints stars and run it.
---------- TextMessage (user) ----------
Write a Python script that prints stars and run it.
---------- TextMessage (coder) ----------
# Print a simple star pattern
for i in range(1, 6):
    print('*' * i)
---------- CodeGenerationEvent (executor) ----------
# Print a simple star pattern
for i in range(1, 6):
    print('*' * i)
---------- CodeExecutionEvent (executor) ----------

*

**

***

****

*****

---------- TextMessage (executor) ----------

The star pattern has been printed successfully. If you'd like a different pattern or further modifications, just let me know!

Enter your response:

3. AutoGen Core

AutoGen Core, çoklu ajan sistemlerini oluşturmak ve yönetmek için güçlü bir yol sunan, düşük seviyeli bir çerçevedir. 

Bu örnekte iki ajan oluşturacağız: Bir mesajın içeriğini tersine çeviren Echo Agent ve mesaj içeriğini konsola yazdıran Printer Agent.

pip install "autogen-core"

Bu uygulamada kullanılan bileşenler:

  1. Mesaj yapısı: Text sınıfı, bir mesajın içeriğini tutan basit bir veri yapısıdır.
  1. Echo Agent: Echo ajanı, aldığı her mesajın içeriğini tersine çevirir ve publish_message kullanarak tersine çevrilmiş mesajı varsayılan başlığa yayımlar.
  1. Printer Agent: Printer ajanı, mesajları dinler ve içeriklerini konsola yazdırır.
  1. Çalışma zamanı: SingleThreadedAgentRuntime, ajanların yaşam döngüsünü yönetmek ve mesaj yönlendirmeyi ele almak için kullanılır.
import asyncio
from dataclasses import dataclass

from AutoGen_core import (
    AgentId,
    DefaultTopicId,
    MessageContext,
    RoutedAgent,
    SingleThreadedAgentRuntime,
    default_subscription,
    message_handler,
)

@dataclass
class Text:
    content: str

@default_subscription
class Echo(RoutedAgent):
    def __init__(self) -> None:
        super().__init__("echo")

    @message_handler
    async def handle(self, message: Text, ctx: MessageContext) -> None:  # param must be named 'message'
        await self.publish_message(Text(message.content[::-1]), DefaultTopicId())

@default_subscription
class Printer(RoutedAgent):
    def __init__(self) -> None:
        super().__init__("printer")

    @message_handler
    async def handle(self, message: Text, ctx: MessageContext) -> None:  # param must be named 'message'
        print(message.content)

async def main() -> None:
    rt = SingleThreadedAgentRuntime()
    await Echo.register(rt, "echo", lambda: Echo())
    await Printer.register(rt, "printer", lambda: Printer())
    rt.start()
    await rt.send_message(Text("DataCamp"), AgentId("echo", "default"))
    await rt.stop_when_idle()

if __name__ == "__main__":
    asyncio.run(main())

Kodu core_app.py dosyasına kaydedin ve şu şekilde çalıştırın:

python core_app.py            

Mesaj Akışı:

  • İçeriği "DataCamp" olan bir mesaj Echo ajanına gönderilir.
  • Echo ajanı mesajı "pmaCataD" olarak tersine çevirir ve yayımlar.
  • Printer ajanı tersine çevrilmiş mesajı alır ve konsola yazdırır.

Çıktı: 

pmaCataD

4. AutoGen Extensions

AutoGen Extensions çerçevesi, çerçevenin yeteneklerini genişleten birinci ve üçüncü taraf uzantılar sağlar. 

Bu örnekte; web sayfalarıyla etkileşime geçebilen, arama yapabilen ve bilgi çıkarabilen MultimodalWebSurfer ajanının nasıl kullanılacağını göstereceğiz. 

Örneği çalıştırmadan önce Playwright yüklü olduğundan emin olun:

playwright install 

Kod nasıl çalışır: 

  1. Ajan başlatma: Karar verme için OpenAI'ın gpt-4.1-mini modelini ve web etkileşimleri için (Playwright aracılığıyla) bir tarayıcıyı kullanan bir MultimodalWebSurfer ajanı oluşturulur.
  2. Ekip kurulumu: Ajan, ajanın iş akışını yöneten ve görevi 3 tura sınırlayan bir RoundRobinGroupChat ekibine eklenir.
  3. Görev yürütme: Ekip şu görevi yerine getirmekle talimatlandırılır: "Google'a gidin ve Abid Ali Awan hakkında arama yapın." Ajan bir tarayıcı açar, Google'a gider, aramayı yapar ve ilgili bilgileri çıkarır.
  4. Anlık akış: Ajanın eylemleri (ör. bir sayfaya gitme, bağlantılara tıklama, meta veri çıkarma) gerçek zamanlı olarak konsola aktarılır.
  5. Temizlik: Görev tamamlandıktan sonra, kaynakları serbest bırakmak için tarayıcı kapatılır.
import asyncio
from AutoGen_agentchat.ui import Console
from AutoGen_agentchat.teams import RoundRobinGroupChat
from AutoGen_ext.models.openai import OpenAIChatCompletionClient
from AutoGen_ext.agents.web_surfer import MultimodalWebSurfer

async def main() -> None:
    # Define an agent
    web_surfer_agent = MultimodalWebSurfer(
        name="MultimodalWebSurfer",
        model_client=OpenAIChatCompletionClient(model="gpt-4.1-mini"),
    )

    # Define a team
    agent_team = RoundRobinGroupChat([web_surfer_agent], max_turns=3)

    # Run the team and stream messages to the console
    stream = agent_team.run_stream(task="Navigate to Google and search about Abid Ali Awan.")
    await Console(stream)
    # Close the browser controlled by the agent
    await web_surfer_agent.close()

asyncio.run(main())

Kodu web_ext_app.py dosyasına kaydedin ve şu şekilde çalıştırın:

python web_ext_app.py          

Uygulamayı çalıştırdığınızda aşağıdaki etkileşim gerçekleşecektir:

                                                           
---------- TextMessage (user) ----------
Navigate to Google and search about Abid Ali Awan.
---------- MultiModalMessage (MultimodalWebSurfer) ----------
I typed 'https://www.google.com' into the browser address bar.

The web browser is open to the page [Google](https://www.google.com/).
The viewport shows 100% of the webpage, and is positioned at the top of the page
The following text is visible in the viewport:

Gmail
Images
Sign in
Google offered in:
اردو
پښتو
سنڌيPakistan
About
Advertising
Business
 How Search works
Privacy
Terms
Settings
Google recommends using Chrome
Try a fast, secure browser with updates built in
Don't switch
Yes

The following metadata was extracted from the webpage:

{
    "microdata": [
        {
            "itemType": "http://schema.org/WebPage",
            "image": "/images/branding/googleg/1x/googleg_standard_color_128dp.png"
        }
    ],
    "meta_tags": {
        "referrer": "origin"
    }
}

Here is a screenshot of the page.
<image>
---------- MultiModalMessage (MultimodalWebSurfer) ----------
I clicked 'Sign in'.

The web browser is open to the page [Sign in - Google Accounts](https://accounts.google.com/v3/signin/identifier?continue=https%3A%2F%2Fwww.google.com%2F&ec=futura_exp_og_so_72776762_e&hl=en&ifkv=ASKV5MhAzFZnwDH-Aw10tuqQN1ppsY8OZ2-OJ3YavFHXMDlX9iTddg1d_k78ZZ0SogFUivcY7Td0Hg&passive=true&flowName=GlifWebSignIn&flowEntry=ServiceLogin&dsh=S1980923188%3A1746809726624486).
The viewport shows 100% of the webpage, and is positioned at the top of the page
The following text is visible in the viewport:

Sign inUse your Google AccountEmail or phone
Forgot email?
Not your computer? Use a private browsing window to sign in.
Learn more about using Guest modeNext
Create account
English (United States)
Help
Privacy
Terms
Sign in Use your Google Account

The following metadata was extracted from the webpage:

{
    "meta_tags": {
        "referrer": "origin",
        "chrome": "nointentdetection",
        "viewport": "width=device-width, initial-scale=1",
        "description": ""
    }
}

Here is a screenshot of the page.
<image>
---------- TextMessage (MultimodalWebSurfer) ----------
Please provide the email or phone number you want to use to sign in, or let me know if you want to create a new account or need help with something else on this page.

AutoGen’e benzer şekilde CrewAI de ajan odaklı iş akışları oluşturmak için yapay zekâ meraklılarının favori çerçevelerinden biridir. Daha fazla bilgi için CrewAI: Çoklu AI Ajan Sistemlerine Örneklerle Bir Rehber eğitimini takip edin.

AutoGen Kullanım Alanları

AutoGen, akıllı ve çoklu aracılı sistemler oluşturmak için sayısız olasılık sunar. İşte AutoGen ekosisteminin en öne çıkan kullanım alanlarından bazıları:

  1. Kod üretimi, yürütme ve hata ayıklama: Kodlama görevlerini otomatikleştirir, hataları azaltır ve verimliliği artırır.
  2. Çoklu ajan iş birliği: Karmaşık görevleri çözmek için ajanlar arasında ekip çalışmasını mümkün kılar.
  3. Sıralı çoklu ajan sohbetleri: Yapılandırılmış görev dizilerini verimli tamamlamak için yönetir.
  4. İç içe sohbetler: Ayrıntılı, katmanlı konuşmalarla karmaşık görevleri ele alır.
  5. Araç kullanımı: Web araması ve SQL sorguları gibi araçları entegre ederek ajan işlevselliğini genişletir.
  6. İnsan katılımı: İş akışlarını iyileştirmek için insan geri bildirimlerini dahil eder.
  7. Ajan eğitimi ve öğrenmesi: Ajanların beceri ve bilgisini geliştirir.
  8. OpenAI Assistants ile çoklu ajan sohbeti: Gelişmiş görevler için OpenAI yeteneklerini AutoGen ile birleştirir.
  9. Multimodal Ajan: Daha zengin etkileşimler için metin, görseller ve diğer medyayı işler.
  10. Uzun bağlam yönetimi: Uzatılmış konuşmalarda tutarlılığı korur.

Sonuç

AutoGen'in bu kadar çok dikkat ve takdir görmesinin, GitHub'da en çok yıldızlanan ajan odaklı çerçevelerden biri olmasının bir nedeni var. 

Profesyonel geliştiricilerden hobi amaçlı programcılara ve hatta daha önce kodlama deneyimi olmayan kişilere kadar herkesin ihtiyaçlarına cevap veren kapsamlı bir çerçevedir. 

AutoGen ile AutoGen Studio kullanarak iş akışlarını hızla prototipleyebilir, Core çerçevesi ve Extensions ile sağlam uygulamalar geliştirebilir ve bunları buluta sorunsuzca dağıtabilirsiniz. Gerçekten de akıllı çoklu ajan sistemleri oluşturmak ve yönetmek için hepsi bir arada bir çözümdür.

Popüler LLM çerçevesini kullanarak ilk yapay zekâ ajanı uygulamanızı geliştirmeyi öğrenmek için Dinamik LangChain Ajanları Oluşturun kursunu alın.

Abid Ali Awan

Yazar

Abid Ali Awan

Sertifikalı bir veri bilimcisi olarak, yenilikçi makine öğrenimi uygulamaları oluşturmak için en son teknolojileri kullanmaya büyük ilgi duyuyorum. Konuşma tanıma, veri analizi ve raporlama, MLOps, konuşma yapay zekası ve NLP alanlarında güçlü bir geçmişe sahip olarak, gerçek bir etki yaratabilecek akıllı sistemler geliştirme becerilerimi geliştirdim. Teknik uzmanlığımın yanı sıra, karmaşık kavramları açık ve özlü bir dille ifade etme yeteneğine sahip, becerikli bir iletişimciyim. Sonuç olarak, veri bilimi konusunda aranan bir blog yazarı oldum ve giderek büyüyen veri profesyonelleri topluluğuyla görüşlerimi ve deneyimlerimi paylaşıyorum. Şu anda, içerik oluşturma ve düzenlemeye odaklanıyorum. Büyük dil modelleriyle çalışarak, hem işletmelerin hem de bireylerin verilerinden en iyi şekilde yararlanmalarına yardımcı olabilecek güçlü ve ilgi çekici içerikler geliştiriyorum.

Konular

İlgili