ai-agents-for-beginners

Истраживање оквира за AI агенте

(Кликните на слику изнад да бисте погледали видео о овој лекцији)

Истраживање оквира за AI агенте

AI фрејмворци за агенте су софтверске платформе дизајниране да поједноставе креирање, имплементацију и управљање AI агентима. Ови фрејмворци пружају програмерима унапред изграђене компоненте, апстракције и алате који убрзавају развој сложених AI система.

Ови фрејмворци помажу програмерима да се фокусирају на јединствене аспекте својих апликација пружајући стандардизоване приступе уобичајеним изазовима у развоју AI агената. Они побољшавају скалабилност, приступачност и ефикасност у изградњи AI система.

Увод

Ова лекција ће обухватити:

Циљеви учења

Циљеви ове лекције су да вам помогну да разумете:

Шта су AI фрејмворци за агенте и шта омогућавају програмерима?

Традиционални AI фрејмворци могу вам помоћи да интегришете AI у своје апликације и учините их бољим на следеће начине:

То све звучи одлично, па зашто нам треба AI Agent Framework?

AI фрејмворци за агенте представљају више од обичних AI фрејмворка. Они су дизајнирани да омогуће креирање интелигентних агената који могу да комуницирају са корисницима, другим агентима и окружењем како би постигли специфичне циљеве. Ови агенти могу показивати аутономно понашање, доносити одлуке и прилагођавати се изменљивим условима. Погледајмо неке кључне способности које омогућавају AI фрејмворци за агенте:

Дакле, укратко, агенти вам омогућавају да урадите више, да подигнете аутоматизацију на виши ниво, да креирате интелигентније системе који се могу прилагодити и учити из свог окружења.

Како брзо прототипирати, итеративно побољшавати и унапређивати способности агента?

Ово је брзо-померајући се пејзаж, али постоје неке ствари које су заједничке за већину AI фрејмворка за агенте и које вам могу помоћи да брзо прототипирате и итеративно радите, а то су модуларне компоненте, алати за сарадњу и учење у реалном времену. Хајде да их размотримо:

Користите модуларне компоненте

SDK-ови као што је Microsoft Agent Framework нуде унапред изграђене компоненте као што су AI конектори, дефиниције алата и управљање агентима.

Како тимови могу да их користе: Тимови могу брзо саставити ове компоненте да би креирали функционални прототип без почетка од нуле, омогућавајући брзо експериментисање и итерације.

Како то функционише у пракси: Можете користити унапред изграђени парсер за извлачење информација из уноса корисника, модул за меморију за чување и преузимање података и генератор промпта за интеракцију са корисницима, све без потребе да градите ове компоненте од нуле.

Пример кода. Хајде да погледамо пример како можете користити Microsoft Agent Framework са AzureAIProjectAgentProvider да би модел реаговао на унос корисника позивањем алата:

# Пример Microsoft Agent Framework у Пајтону

import asyncio
import os
from typing import Annotated

from agent_framework.azure import AzureAIProjectAgentProvider
from azure.identity import AzureCliCredential


# Дефинишите пример функције алата за резервацију путовања
def book_flight(date: str, location: str) -> str:
    """Book travel given location and date."""
    return f"Travel was booked to {location} on {date}"


async def main():
    provider = AzureAIProjectAgentProvider(credential=AzureCliCredential())
    agent = await provider.create_agent(
        name="travel_agent",
        instructions="Help the user book travel. Use the book_flight tool when ready.",
        tools=[book_flight],
    )

    response = await agent.run("I'd like to go to New York on January 1, 2025")
    print(response)
    # Пример излаза: Ваш лет за Њујорк 1. јануара 2025. успешно је резервисан. Срећно путовање! ✈️🗽


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

Оно што можете видети из овог примера је како можете искористити унапред изграђени парсер за извлачење кључних информација из уноса корисника, као што су полазиште, одредиште и датум захтева за резервацију лета. Овакв приступ омогућава да се фокусирате на логичку, вишу нивоу апликације.

Искористите алате за сарадњу

Фрејмворци као што је Microsoft Agent Framework олакшавају креирање више агената који могу заједно да раде.

Како тимови могу да их користе: Тимови могу дизајнирати агенте са специфичним улогама и задацима, омогућавајући им да тестирају и усавршавају сарадничке токове рада и побољшају укупну ефикасност система.

Како то функционише у пракси: Можете креирати тим агената где сваки агент има специјализовану функцију, као што су прикупљање података, анализа или доношење одлука. Ови агенти могу комуницирати и делити информације да би постигли заједнички циљ, као што је одговор на кориснички упит или завршавање задатка.

Пример кода (Microsoft Agent Framework):

# Креирање више агената који заједно раде користећи Microsoft Agent Framework

import os
from agent_framework.azure import AzureAIProjectAgentProvider
from azure.identity import AzureCliCredential

provider = AzureAIProjectAgentProvider(credential=AzureCliCredential())

# Агенат за преузимање података
agent_retrieve = await provider.create_agent(
    name="dataretrieval",
    instructions="Retrieve relevant data using available tools.",
    tools=[retrieve_tool],
)

# Агенат за анализу података
agent_analyze = await provider.create_agent(
    name="dataanalysis",
    instructions="Analyze the retrieved data and provide insights.",
    tools=[analyze_tool],
)

# Покрени агенте у низу на задатку
retrieval_result = await agent_retrieve.run("Retrieve sales data for Q4")
analysis_result = await agent_analyze.run(f"Analyze this data: {retrieval_result}")
print(analysis_result)

У претходном коду видите како можете креирати задатак који укључује више агената који заједно анализирају податке. Свaki agent обавља одређену функцију, а задатак се извршава координирањем агената да би се постигao жељени исход. Креирањем посвећених агената са специјализованим улогама можете побољшати ефикасност и перформансе задатака.

Учење у реалном времену

Напредни фрејмворци пружају могућности за разумевање контекста и прилагођавање у реалном времену.

Како тимови могу да их користе: Тимови могу имплементирати повратне петље у којима агенти уче из интеракција и динамички прилагођавају своје понашање, што води константном побољшању и усавршавању способности.

Како то функционише у пракси: Агенти могу анализирати повратне информације корисника, податке из окружења и резултате задатака да ажурирају своју базу знања, прилагоде алгоритме доношења одлука и временом побољшају перформансе. Ова итеративна метода учења омогућава агентима да се прилагоде променљивим условима и преференцијама корисника, повећавајући укупну ефикасност система.

Које су разлике између Microsoft Agent Framework и Azure AI Agent Service?

Постоји много начина да се упореде ови приступи, али погледајмо неке кључне разлике у смислу дизајна, могућности и циљних случајева употребе:

Microsoft Agent Framework (MAF)

Microsoft Agent Framework пружа поједностављен SDK за изградњу AI агената користећи AzureAIProjectAgentProvider. Омогућава програмерима да креирају агенте који користе Azure OpenAI моделе са уграђеним позивима алата, управљањем разговором и безбедношћу нивоа предузећа кроз Azure идентитет.

Случајеви употребе: Изградња AI агената спремних за продукцију са употребом алата, вишестепеним токовима рада и сценаријима интеграције у предузеће.

Ево неких важних основних концепата Microsoft Agent Framework-а:

Azure AI Agent Service

Azure AI Agent Service је недавнији додатак, представљен на Microsoft Ignite 2024. Омогућава развој и деплој AI агената са флексибилнијим моделима, као што је директно позивање open-source LLM-ова као што су Llama 3, Mistral и Cohere.

Azure AI Agent Service пружа јаче механизме корпоративне безбедности и методе чувања података, што га чини погодним за апликације у предузећима.

Ради одмах са Microsoft Agent Framework-ом за изградњу и деплој агената.

Ова услуга је тренутно у Public Preview и подржава Python и C# за изградњу агената.

Користећи Azure AI Agent Service Python SDK, можемо креирати агента са кориснички дефинисаним алатом:

import asyncio
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient

# Дефиниши функције алата
def get_specials() -> str:
    """Provides a list of specials from the menu."""
    return """
    Special Soup: Clam Chowder
    Special Salad: Cobb Salad
    Special Drink: Chai Tea
    """

def get_item_price(menu_item: str) -> str:
    """Provides the price of the requested menu item."""
    return "$9.99"


async def main() -> None:
    credential = DefaultAzureCredential()
    project_client = AIProjectClient.from_connection_string(
        credential=credential,
        conn_str="your-connection-string",
    )

    agent = project_client.agents.create_agent(
        model="gpt-4o-mini",
        name="Host",
        instructions="Answer questions about the menu.",
        tools=[get_specials, get_item_price],
    )

    thread = project_client.agents.create_thread()

    user_inputs = [
        "Hello",
        "What is the special soup?",
        "How much does that cost?",
        "Thank you",
    ]

    for user_input in user_inputs:
        print(f"# User: '{user_input}'")
        message = project_client.agents.create_message(
            thread_id=thread.id,
            role="user",
            content=user_input,
        )
        run = project_client.agents.create_and_process_run(
            thread_id=thread.id, agent_id=agent.id
        )
        messages = project_client.agents.list_messages(thread_id=thread.id)
        print(f"# Agent: {messages.data[0].content[0].text.value}")


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

Основни концепти

Azure AI Agent Service има следеће основне концепте:

Случајеви употребе: Azure AI Agent Service је дизајниран за апликације у предузећима које захтевају сигурно, скалабилно и флексибилно распоређивање AI агената.

Која је разлика између ових приступа?

Изгледа да постоји преклапање, али постоје неке кључне разлике у смислу дизајна, могућности и циљних случајева употребе:

И даље нисте сигурни који да одаберете?

Случајеви употребе

Хајде да видимо да ли вам можемо помоћи проласком кроз неке уобичајене сценарије:

Q: Радим на продукцијским апликацијама AI агената и желим брзо да започнем

A: Microsoft Agent Framework је одличан избор. Пружа једноставан, Python-ичан API преко AzureAIProjectAgentProvider који вам омогућава да дефинишете агенте са алатима и инструкцијама у само неколико редова кода.

Q: Потребно ми је деплојовање на нивоу предузећа са Azure интеграцијама попут Search и извршавања кода

A: Azure AI Agent Service је најприкладнији. То је платформа која пружа уграђене могућности за више модела, Azure AI Search, Bing Search и Azure Functions. Омогућава једноставно креирање агената у Foundry Portalu и њихово распоређивање на скали.

Q: Још увек сам збуњен, дајте ми само једну опцију

A: Почните са Microsoft Agent Framework-ом да изградите своје агенте, а затим користите Azure AI Agent Service када будете требали да их деплојујете и скалирате у продукцији. Овај приступ вам омогућава да брзо итератe над логиком агента, а имате јасан пут до деплоја на нивоу предузећа.

Хајде да резимирамо кључне разлике у табели:

Framework Focus Core Concepts Use Cases
Microsoft Agent Framework Поједностављен SDK за агенте са позивањем алата Агенти, Алатке, Azure Identity Изградња AI агената, употреба алата, вишестепени токови рада
Azure AI Agent Service Флексибилни модели, корпоративна безбедност, генерисање кода, позивање алата Модуларност, Сарадња, Оркестрација процеса Сигурно, скалабилно и флексибилно распоређивање AI агената

Могу ли директно интегрисати своје постојеће Azure екосистем алате или ми требају самостална решења?

Одговор је да — можете интегрисати своје постојеће алате у Azure екосистему директно са Azure AI Agent Service, посебно зато што је он изграђен да беспрекорно сарађује са осталим Azure сервисима. На пример, можете интегрисати Bing, Azure AI Search и Azure Functions. Постоји и дубока интеграција са Microsoft Foundry.

Microsoft Agent Framework се такође интегрише са Azure сервисима преко AzureAIProjectAgentProvider и Azure identity, што вам омогућава да позивате Azure сервисе директно из ваших алата агента.

Примери кода

Имате ли још питања о оквирима за AI агенте?

Придружите се Microsoft Foundry Discord да бисте се упознали са другим ученицима, присуствовали канцеларијским сатима и добили одговоре на питања о вашим AI агентима.

Референце

Претходна лекција

Увод у AI агенте и случајеве употребе

Следећа лекција

Разумевање агентских образаца дизајна


Изјава о одрицању одговорности: Овај документ је преведен помоћу AI сервиса за превођење Co-op Translator. Иако се трудимо да будемо тачни, имајте у виду да аутоматски преводи могу да садрже грешке или нетачности. Изворни документ на оригиналном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људског преводиоца. Нисмо одговорни за било каква неспоразумевања или погрешна тумачења која произилазе из употребе овог превода.