NVIDIA Ajans Zeka Araç Setini Yeni Ajans Çerçevelerini Destekleyecek Şekilde Genişletme

NVIDIA’nın Agent Intelligence Toolkit, ekiplerin AI ajansları ile etkili bir şekilde bağlantı kurmasını ve optimize etmesini sağlayan açık kaynaklı bir kütüphanedir. Bu araç, geliştiricilerin karmaşık ajanik AI iş akışlarını hızlıca inşa etmelerini, değerlendirmelerini, profil çıkarmalarını ve hızlandırmalarını mümkün kılar.

Agent Intelligence Toolkit, farklı platformlar arasında mevcut ajansları, araçları ve iş akışlarını entegre eden bir çatı işlevi görür. Bu toolkit, bu bileşenleri işlev çağrıları gibi ele alarak, bunların birbiriyle birleşmesini ve tekrar kullanılmasını sağlar. Agent toolkit’i, AI ajanslarından oluşan bir ekibi yöneten bir “orkestra şefi” gibi düşünebilirsiniz. Ayrıca, işlevselliğinizi artıran; profil çıkarmak (örneğin, gecikme ve token kullanımı izleme), optimizasyon, ölçeklendirme ve görünürlük gibi araçlar sağlar, bu da kurumsal düzeyde ajanik sistemlerin verimli performansını garanti eder.

Overview of Agent Intelligence toolkit architecture.
Şekil 1. Agent Intelligence toolkit mimari diyagramı

Agent Intelligence Toolkit’in temel gücü, uzun ömürlülüğüdür. Bu yazıda, Agno gibi ek ajanik çerçevelerle entegrasyon ekleyerek toolkit’in nasıl genişletileceği açıklanmaktadır.

Agent Toolkit’in Temel Özellikleri

Agent toolkit ekosisteminde yer alan bazı ortak özellikler ve terimler şunlardır:

  • İş Akışı: İş akışı, bir Agent toolkit uygulamasının ana giriş noktasıdır. Bu, bir YAML yapılandırma dosyası ile tamamen yapılandırılmıştır. Bu dosya, iş akışında hangi varlıkların (işlevler, LLM’ler veya gömme işlemleri gibi) kullanılacağını belirler.
  • Paket: Toolkit’in işlevselliğini genişleten modüler bileşenler veya eklentilerdir. Bu paketler, belirli kullanım durumlarına veya gereksinimlere göre ayrı ayrı kurulabilir, bu da Agent Toolkit’in çeşitli ajanik iş akışlarını desteklemesini sağlar. Örneğin, CrewAI’nin çoklu ajan işbirliği gibi bir iş akışı agentiq-crewai paketini kullanır.
  • Eklenti: Agent toolkit, kütüphaneye yeni araçlar, ajanslar, iş akışları eklemenizi sağlayan genişletilebilir bir eklenti sistemi sunar. Eklenti sistemi, iki ana kavram üzerine inşa edilmiştir: giriş noktaları ve dekoratörler. Giriş noktaları, toolkit’in bir Python ortamındaki her yüklü dağıtım paketinden eklentileri keşfetmesini sağlar. Dekoratörler, geliştiricilerin eklentilerini kütüphaneye kaydetmelerine olanak tanır.
Şekil 2. Agent Intelligence toolkit içindeki eklentiler

Agent Intelligence Toolkit’e Agno Entegrasyonu

Bu bölüm, Agno’nun Agent toolkit’e nasıl entegre edileceğini açıklayan adımları sunmaktadır. Bu adımlar, diğer ajanik çerçevelerin de toolkit’e entegre edilmesi için aynı şekilde uygulanabilir.

Adım 0: Gereksinimler

Agent toolkit iş akışlarını çalıştırmak için özel bir GPU gereksinimi yoktur, NVIDIA NIM mikro servislerine erişirken. Ancak, kendi NIM’nizi barındırıyorsanız, seçilen NIM’in gerektirdiği belirli GPU’lara ihtiyacınız olacaktır. Agent Toolkit’in gereksinimleri ve kurulum adımları hakkında daha fazla ayrıntı için NVIDIA/AIQToolkit‘a göz atın.

Adım 1: Yeni Bir Agent Toolkit Paketi Oluşturma

Agent toolkit, dış çerçevelerle entegrasyonu sağlamak için paketleri (packages dizini) kullanır. Agno’yu Agent toolkit’e bağlamak için agentiq_agno adında bir paket oluşturun. Öncelikle, AgentIQ/packages/ altında agentiq_agno adında yeni bir klasör oluşturun. agentiq_crewai gibi mevcut bir paket yapısını incelemek, temel yapı için size yardımcı olacaktır.

Şekil 3. agentiq_agno için dizin yapısı

İkinci olarak, paketinizi ve bağımlılıklarını tanımlayan pyproject.toml dosyasını yapılandırın:

[build-system]
build-backend = "setuptools.build_meta"
requires = ["setuptools >= 64", "setuptools-scm>=8"]

[tool.setuptools.packages.find]
where = ["src"]
include = ["aiq.*"]

[tool.setuptools_scm]
root = "../.."

[project]
name = "agentiq-agno"
dynamic = ["version"]
dependencies = [
  "agentiq",
  "agno~=1.2.3",
]
requires-python = ">=3.12"
readme = "src/aiq/meta/pypi.md"
description = "Agent toolkit'te Agno entegrasyonu için alt paket"
keywords = ["ai", "rag", "agents"]
classifiers = ["Programming Language :: Python"]

[tool.uv]
config-settings = { editable_mode = "compat" }

[tool.uv.sources]
agentiq = { workspace = true }

[project.entry-points.'aiq.components']
aiq_agno = "aiq.plugins.agno.register"

Bu pyproject.toml dosyasında dikkat etmeniz gereken noktalar:

  • Bağımlılıklar:agentiq ve agno gibi bağımlılık kütüphanelerinin listesi.
  • Proje giriş noktaları: Python ortamındaki giriş noktalarını tarayarak aiq.components adını taşıyanları bulur. Eşleşme değeri, giriş noktası yüklendiğinde içe aktarılacak Python modülüdür. Bu örnekte, aiq.plugins.agno.register değerine işaret eder.

Sonrasında, NVIDIA NIM ile entegrasyon için LLM istemcisini tanımlayın. Aşağıdaki kod örneğinde, @register_llm_client dekoratörü, Agno entegrasyonu için LLM istemcisini kaydeder ve bu, ajanik iş akışlarında kullanılmaya hazır hale gelir:

@register_llm_client(config_type=NIMModelConfig, wrapper_type=LLMFrameworkEnum.AGNO)
async def nim_agno(llm_config: NIMModelConfig, builder: Builder):
    from agno.models.nvidia import Nvidia

    config_obj = {
        **llm_config.model_dump(exclude={"type", "model_name"}, by_alias=True),
        "id": f"{llm_config.model_name}",
    }

    if ("api_key" not in config_obj or config_obj["api_key"] is None):
        if ("NVIDIA_API_KEY" in os.environ):
            pass
        else:
            nvidai_api_key = os.getenv("NVIDIA_API_KEY")
            if (nvidai_api_key is not None):
                os.environ["NVIDIA_API_KEY"] = nvidai_api_key

    nvidia_args = {"id": config_obj.get("id")}
    if "base_url" in config_obj and config_obj.get("base_url") is not None:
        nvidia_args["base_url"] = config_obj.get("base_url")
    yield Nvidia(**nvidia_args)

Daha sonra, Agno için bir araç sarmalayıcı kaydedin. Araç sarmalayıcıları, işlevlerin bir LLM çerçevesine özgü biçimde sarmalanması için kullanılır. Bu örnekte, Agno çerçevesi kullanılırken, Agent toolkit işlevleri Agno’nun Araç sınıfı içine sarmalanmalıdır. source code’dan agno_tool_wrapper’ın ayrıntılarını kontrol edin.

Adım 2: Yeni Toolkit Paketini Kurma

Artık yeni oluşturduğunuz Agno paketini, yeni eklentileriyle birlikte aşağıdaki komutu çalıştırarak kurabilirsiniz:

uv pip install -e '.[agno]'

Adım 3: Yeni Desteklenen Ajanik Çerçeveyi Kullanarak Özel Bir İş Akışı Oluşturma

Sonraki adım, Agno’yu kullanarak bir ajan özel iş akışı oluşturmaktır. Örneğin, bir kişisel finans ajanı yaratılacaktır; bu ajan, bireylere kendilerine özgü finansal planlar oluşturarak yardımcı olacaktır. Bu işlem, finansal araştırmaları, bütçeleri, yatırım stratejilerini ve tasarruf hedeflerini yönetmeyi otomatikleştirir ve bireylere mali geleceklerini kontrol etme imkanı sağlar.

Agent toolkit, iş akışlarını yönetmek için set bir komut satırı arayüzü ile gelmektedir. Aşağıdaki komut, agentiq proje kökünde çalıştırıldığında, yeni agno_personal_finance iş akışımız için gerekli dosya ve dizin yapısını otomatik olarak oluşturur:

aiq workflow create --workflow-dir examples agno_personal_finance

Bu komut, agentiq’nin examples dizini altında aşağıdaki dosyaları ve klasörleri oluşturur:

Şekil 4. agno_personal_finance için dizin yapısı

Bu yapı başlangıç şablonudur. Şimdi detayları doldurma zamanı.

pyproject.toml

[build-system]
build-backend = "setuptools.build_meta"
requires = ["setuptools >= 64", "setuptools-scm>=8"]

[tool.setuptools_scm]
root = "../.."

[project]
name = "aiq_agno_personal_finance"
dynamic = ["version"]
dependencies = [
  "agentiq[agno]",
  "openai~=1.66",
  "litellm~=1.63.14"
]
requires-python = ">=3.12"
description = "Agno kullanarak kişisel finans için Özel İş Akışı"
classifiers = ["Programming Language :: Python"]

[tool.uv.sources]
agentiq = { path = "../..", editable = true }

[project.entry-points.'aiq.components']
aiq_agno_personal_finance = "aiq_agno_personal_finance.register"

agno_personal_finance_function.py

Bu dosya, kişisel finans ajanın ana işlevini içerir. AgnoPersonalFinanceFunctionConfig sınıfı, agno_personal_finance işlevini oluşturmak için kullanılan parametreleri tanımlar. Bu işlev, kullanıcının finansal hedeflerini alır, bir araştırma ajanı aracılığıyla finansal öneriler, yatırım fırsatları ve tasarruf stratejileri arar ve planlama ajanı, kişiselleştirilmiş bir finansal plan oluşturur. Bu dosyanın kaynak kodunu görmek için wenqiglantz/AgentIQ‘ya bakabilirsiniz.

config.yml

İş akışı yapılandırma dosyası, fonksiyonları ve LLM’leri belirtir ve bu tanımlanan fonksiyonlar ile LLM’ler arasından bir iş akışı oluşturur. Bu örnek, Llama 3.3 70B İfade modelini LLM olarak kullanır. İstediğiniz LLM’i kullanacak şekilde özelleştirebilirsiniz. Bu, build.nvidia.com veya kendi barındırdığınız bir NIM ile uyumlu olmalıdır.

general:
  use_uvloop: true

functions:
  agno_personal_finance:
    _type: agno_personal_finance
    llm_name: nim_llm

llms:
  nim_llm:
    _type: nim
    model_name: meta/llama-3.3-70b-instruct
    temperature: 0.0

workflow:
  _type: agno_personal_finance
  tool_names: [agno_personal_finance]
  llm_name: nim_llm
  verbose: true
  retry_parsing_errors: true
  max_retries: 3

Adım 4: İş Akışını Yeniden Kullanılabilir Fonksiyonlarla Geliştirme

Agent toolkit’in belirgin özelliklerinden biri, yapıcı aracılığıyla çerçeve bağımsız bir şekilde araçları alma veya oluşturma yeteneğidir. Bu, araçların, belirli tanımlanan özelliklere sahip herhangi bir iş akışı tarafından yeniden kullanılabilmesini sağlar.

Şu anki agno_personal_finance uygulamasında, araştırma ajanı, kullanıcı girişine dayanarak finansal önerileri, yatırım fırsatlarını ve diğer bilgileri bulmak için bir Serp API arama aracını çağırmaktadır. Arama aracı, agno_personal_finance_function.py dosyasında Agno’nun SerpApiTools sınıfı doğrudan çağrılarak başlatılır:

search_tool = SerpApiTools(api_key=os.getenv("SERP_API_KEY"))

Serp API arama aracı, Agent toolkit içinde yeniden kullanılabilir bir fonksiyon kategorisindedir. Bu nedenle, Agent toolkit içinde bu fonksiyonu eklemek için nasıl gideceğinizi aşağıda açıklayacağız:

Öncelikle, Agent toolkit eklenti diyagramını (Şekil 2) inceleyin ve bu yeniden kullanılabilir fonksiyonu paketin düzeyinde oluşturmanın en iyi yer olduğunu belirleyin. Neden? Çünkü SerpApiTools, Agno çerçevesinde tanımlanmış bir sınıftır. Daha sonra SerpApiToolConfig sınıfını tanımlayın, serp_api_tool işlevini uygulayın ve bu yeni fonksiyonu Agent toolkit’e kaydedin. serp_api_tool fonksiyonunun tam kaynak koduna buradan ulaşabilirsiniz.

Yeni bir fonksiyon olarak tanımladıktan ve onu Agent toolkit’e kaydettikten sonra, bu yeni fonksiyon Agent toolkit yapıcısı tarafından keşfedilebilir hale gelir. Aşağıdaki orijinal kodu güncelleyerek SerpApiTools oluşturma işlemini değiştirebilirsiniz:

search_tool = SerpApiTools(api_key=os.getenv("SERP_API_KEY"))

bunu:

search_tool = builder.get_tool(fn_name=config.serp_api_tool, wrapper_type=LLMFrameworkEnum.AGNO)

Son halini almış agno_personal_finance_function.py kodunun son hali için bu bağlantıya göz atabilirsiniz.

Yeni serp_api_tool fonksiyonu eklenince, iş akışı yapılandırma dosyası config.yml de gözden geçirilmelidir. Burada serp_api_tool‘u fonksiyonlar bölümünde tanımlayın ve aynı zamanda agno_personal_finance fonksiyonuna ekleyin. İş akışı bölümü, llm_name ve serp_api_tool de dahil olmak üzere, agno_personal_finance iş akışını bir araya getirir. Aşağıdaki config.yml kesitine bakabilirsiniz:

general:
  use_uvloop: true

functions:
  serp_api_tool:
    _type: serp_api_tool
    # Buraya SerpAPI anahtarınızı ekleyebilirsiniz ya da ortam değişkenlerini kullanabilirsiniz
    # api_key: your_serp_api_key
  
  agno_personal_finance:
    _type: agno_personal_finance
    llm_name: nim_llm
    serp_api_tool: serp_api_tool
  
llms:
  nim_llm:
    _type: nim
    model_name: meta/llama-3.3-70b-instruct
    temperature: 0.0

workflow:
  _type: agno_personal_finance
  llm_name: nim_llm
  serp_api_tool: serp_api_tool
  verbose: true
  retry_parsing_errors: true
  max_retries: 3

Yenilik olarak, serp_api_tool‘un agentiq_agno paketinde eklenmesi ile beraber, o paketin pyproject.toml giriş noktalarında da bazı değişiklikler yapmalısınız. aiq_agno_tools için yeni giriş noktasını eklemeyi unutmayın:

[project.entry-points.'aiq.components']
aiq_agno = "aiq.plugins.agno.register"
aiq_agno_tools = "aiq.plugins.agno.tools.register"

Adım 5: Yeni İş Akışını Kurma ve Çalıştırma

Son olarak, yeni iş akışını kurmak için aşağıdaki komutu çalıştırın:

uv pip install -e examples/agno_personal_finance

İş akışını başlatmadan önce iki ortam değişkenini ayarlayın:

  • NVIDIA_API_KEY, NVIDIA barındırılan NIM uç noktasına erişim için gereklidir.
  • SERP_API_KEY, arama aracı için kullanılır.

Ardından aiq run komutunu kullanarak iş akışını çalıştırın:

export NVIDIA_API_KEY=
export SERP_API_KEY=

aiq run --config_file examples/agno_personal_finance/src/aiq_agno_personal_finance/configs/config.yml --input "Mali hedefim 60 yaşında emekli olmak. Şu anda 40 yaşındayım, NVIDIA'da Makine Öğrenimi mühendisi olarak çalışıyorum."

Örnek bir yanıt aşağıdaki gibi olabilir:

Workflow Result:
["60 yaşında emekli olmayı hedefleyen 40 yaşında bir Makine Öğrenimi mühendisi için bir finansal plan oluşturmak üzere, mevcut gelir, harcamalar, tasarruflar ve yatırım hedefleri gibi birkaç faktörü dikkate alacağız.nnMühendisin düzenli bir geliri ve makul bir tasarruf oranı olduğunu varsayarsak, işte olası bir plan:nn1. **Emeklilik Tasarrufu**: Gelirin en az %10 ila %15'ini 401(k) veya IRA gibi emeklilik hesaplarına katkıda bulunun. NVIDIA'nın bir karşılık programı sunması durumunda, en azından karşılık miktarını maksimize edecek kadar katkıda bulunmak önemlidir.n2. **Yatırım Stratejisi**: Portföyün önemli bir kısmını geniş kapsamlı farklılaşma sağlamak ve daha az volatilite sunmak için düşük maliyetli endeks fonları ya da ETF'lere ayırın. Olası bir tahsis şu olabilir:nt* %60 Hisse (Yüzde 40 ABD, %20 Uluslararası)nt* %30 Tahviller (Yüzde 20 Kamu, Yüzde 10 Kurumsal)nt* %10 Alternatifler (Gayrimenkul, Emtia vb.)n3. **Tasarruf Oranı**: Gelirin en az %20 ila %25'ini acil durum fonları ve büyük alımlar dahil olmak üzere kısa vadeli ve uzun vadeli hedefler için tasarruf etmeye çalışın.n4. **Gider Yönetimi**: Konut, gıda, ulaşım ve sigorta gibi gerekli tüm harcamaları dikkate alan bir bütçe oluşturun. İhtiyaç dışı harcamaları kontrol altında tutmaya çalışın ve fazladan olan fonları tasarruf ve yatırımlara yönlendirin.n5. **Vergi Optimizasyonu**: Vergi tasarrufu sağlamak için katkılarda bulunmayı düşünün."]

Sonuç

NVIDIA’nın Agent Intelligence Toolkit, geliştiricilerin karmaşık ajanik AI iş akışlarını hızla inşa etmelerini, değerlendirmelerini, profil çıkarmalarını ve hızlandırmalarını sağlar. Açık kaynaklı olması ve son derece genişletilebilir olması, geliştiricilerin ihtiyaçlarına göre yeteneklerini özelleştirmelerine olanak tanır.

Bu yazı, Agent Toolkit’in nasıl geliştirilebileceği ve Agno gibi ajanik çerçevelerle entegrasyon sağlanarak özel bir iş akışının nasıl oluşturulacağına dair ayrıntılı bir rehber sunmaktadır. Bu süreç, toolkit’in esnekliğini göstermekte ve onu yenilikçi AI ajanı odaklı çözümler için bir temel olarak vurgulamaktadır.

Yeni çerçeveler ve iş akışlarının sorunsuz bir şekilde entegre edilmesi, Agent toolkit’in, belirli kullanım durumlarına hassasiyetle ve verimlilikle uyum sağlama imkanı sunmasını sağlar. Daha fazla bilgi için resmi belgelere göz atabilirsiniz.

Yeteneklerinizi sergilemeye hazır mısınız? NVIDIA Agent Toolkit Hackathonu için kayıt olun ve bir NVIDIA GeForce RTX 5090 kazanma şansınızı yakalayın.

Kaynak

Nvdia Blog

Exit mobile version