(Кликнете върху изображението по-горе, за да гледате видеото на този урок)
Рамките за AI агенти са софтуерни платформи, проектирани да опростят създаването, внедряването и управлението на AI агенти. Тези рамки предоставят на разработчиците предварително изградени компоненти, абстракции и инструменти, които улесняват разработката на сложни AI системи.
Тези рамки помагат на разработчиците да се фокусират върху уникалните аспекти на техните приложения, като предоставят стандартизирани подходи към често срещани предизвикателства при разработката на AI агенти. Те подобряват мащабируемостта, достъпността и ефективността при изграждането на AI системи.
Този урок ще обхване:
Целите на този урок са да ви помогнат да разберете:
Традиционните рамки за AI могат да ви помогнат да интегрирате AI в приложенията си и да ги подобрите по следните начини:
Рамките за AI агенти представляват нещо повече от обикновени AI рамки. Те са проектирани да позволят създаването на интелигентни агенти, които могат да взаимодействат с потребителите, други агенти и средата, за да постигат конкретни цели. Тези агенти могат да проявяват автономно поведение, да вземат решения и да се адаптират към променящите се условия. Нека разгледаме някои ключови възможности, които предоставят рамките за AI агенти:
В обобщение, агентите ви позволяват да правите повече, да издигнете автоматизацията на следващо ниво и да създадете по-интелигентни системи, които могат да се адаптират и да се учат от своята среда.
Това е бързо променяща се област, но има някои общи неща, присъщи за повечето рамки за AI агенти, които могат да ви помогнат бързо да прототипирате и итерарате — а именно модулни компоненти, инструменти за сътрудничество и обучение в реално време. Нека разгледаме тези елементи:
SDK-ове като Microsoft Agent Framework предлагат предварително изградени компоненти като AI конектори, дефиниции на инструменти и управление на агенти.
Как екипите могат да използват тези компоненти: Екипите могат бързо да съберат тези компоненти, за да създадат функционален прототип без да започват от нулата, което позволява бързо експериментиране и итерация.
Как работи на практика: Можете да използвате предварително изграден парсър, за да извлечете информация от потребителски вход, модул за памет за съхранение и извличане на данни и генератор на подканване за взаимодействие с потребителите, всичко това без да изграждате тези компоненти от нулата.
Примерен код. Нека разгледаме пример за това как можете да използвате Microsoft Agent Framework с AzureAIProjectAgentProvider, за да накарате модела да отговаря на потребителски вход с извикване на инструменти:
# Пример на Microsoft Agent Framework на Python
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)
В предишния код виждате как можете да създадете задача, която включва множество агенти, работещи заедно за анализ на данни. Всеки агент изпълнява специфична функция, а задачата се изпълнява чрез координиране на агентите за постигане на желания резултат. Създавайки специализирани агенти с конкретни роли, можете да подобрите ефективността и представянето на задачите.
Разширени рамки предоставят възможности за разбиране на контекста и адаптация в реално време.
Как екипите могат да използват това: Екипите могат да внедрят обратни връзки, при които агентите се учат от взаимодействията и динамично коригират поведението си, което води до непрекъснато подобряване и усъвършенстване на възможностите.
Как работи на практика: Агентите могат да анализират потребителска обратна връзка, данни от средата и резултати от задачи, за да актуализират своята база знания, да коригират алгоритмите си за вземане на решения и да подобряват представянето с течение на времето. Този итеративен процес на учене позволява на агентите да се адаптират към променящи се условия и предпочитания на потребителите, повишавайки общата ефективност на системата.
Има много начини да се сравнят тези подходи, но нека разгледаме някои ключови разлики по отношение на техния дизайн, възможности и целеви случаи на употреба:
Microsoft Agent Framework предоставя опростен SDK за изграждане на AI агенти, използвайки AzureAIProjectAgentProvider. Той позволява на разработчиците да създават агенти, които използват Azure OpenAI модели с вградена функционалност за извикване на инструменти, управление на разговори и корпоративна сигурност чрез Azure identity.
Сценарии на употреба: Изграждане на производствени AI агенти с използване на инструменти, многостъпкови работни потоци и сценарии за интеграция в предприятия.
Ето някои важни основни концепции на Microsoft Agent Framework:
AzureAIProjectAgentProvider и се конфигурира с име, инструкции и инструменти. Агентът може:
Ето фрагмент от код, който показва как да създадете агент:
import os
from agent_framework.azure import AzureAIProjectAgentProvider
from azure.identity import AzureCliCredential
provider = AzureAIProjectAgentProvider(credential=AzureCliCredential())
agent = await provider.create_agent(
name="my_agent",
instructions="You are a helpful assistant.",
)
response = await agent.run("Hello, World!")
print(response)
Инструменти. Рамката поддържа дефиниране на инструменти като Python функции, които агентът може да извиква автоматично. Инструментите се регистрират при създаването на агента:
def get_weather(location: str) -> str:
"""Get the current weather for a location."""
return f"The weather in {location} is sunny, 72\u00b0F."
agent = await provider.create_agent(
name="weather_agent",
instructions="Help users check the weather.",
tools=[get_weather],
)
Координация между множество агенти. Можете да създадете множество агенти с различни специализации и да координирате тяхната работа:
planner = await provider.create_agent(
name="planner",
instructions="Break down complex tasks into steps.",
)
executor = await provider.create_agent(
name="executor",
instructions="Execute the planned steps using available tools.",
tools=[execute_tool],
)
plan = await planner.run("Plan a trip to Paris")
result = await executor.run(f"Execute this plan: {plan}")
AzureCliCredential (или DefaultAzureCredential) за сигурна, безключова автентикация, което елиминира нуждата да управлявате API ключове директно.Azure AI Agent Service е по-скорошно допълнение, представено на Microsoft Ignite 2024. Тя позволява разработката и внедряването на AI агенти с по-гъвкави модели, като например директно извикване на отворени LLM модели като Llama 3, Mistral и Cohere.
Azure AI Agent Service предоставя по-силни корпоративни механизми за сигурност и методи за съхранение на данни, което я прави подходяща за корпоративни приложения.
Тя работи веднага с Microsoft Agent Framework за изграждане и внедряване на агенти.
Тази услуга в момента е в Public Preview и поддържа Python и C# за изграждане на агенти.
Използвайки Python SDK на Azure AI Agent Service, можем да създадем агент с дефиниран от потребителя инструмент:
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 се интегрира с Microsoft Foundry. В рамките на AI Foundry, AI агентът действа като „умен“ микросервис, който може да се използва за отговаряне на въпроси (RAG), изпълнение на действия или пълна автоматизация на работни потоци. Това постига чрез комбиниране на мощта на генеративните AI модели с инструменти, които му позволяват да достъпва и взаимодейства с реални източници на данни. Ето пример за агент:
agent = project_client.agents.create_agent(
model="gpt-4o-mini",
name="my-agent",
instructions="You are helpful agent",
tools=code_interpreter.definitions,
tool_resources=code_interpreter.resources,
)
В този пример агент е създаден с модела gpt-4o-mini, име my-agent и инструкции You are helpful agent. Агентът е оборудван с инструменти и ресурси за изпълнение на задачи свързани с интерпретация на код.
Тема и съобщения. Темата (thread) е друга важна концепция. Тя представлява разговор или взаимодействие между агент и потребител. Темите могат да се използват за проследяване на напредъка на разговора, съхраняване на контекстна информация и управление на състоянието на взаимодействието. Ето пример за тема:
thread = project_client.agents.create_thread()
message = project_client.agents.create_message(
thread_id=thread.id,
role="user",
content="Could you please create a bar chart for the operating profit using the following data and provide the file to me? Company A: $1.2 million, Company B: $2.5 million, Company C: $3.0 million, Company D: $1.8 million",
)
# Ask the agent to perform work on the thread
run = project_client.agents.create_and_process_run(thread_id=thread.id, agent_id=agent.id)
# Fetch and log all messages to see the agent's response
messages = project_client.agents.list_messages(thread_id=thread.id)
print(f"Messages: {messages}")
В предишния код е създадена тема. След това се изпраща съобщение към темата. Чрез извикване на create_and_process_run, на агента се дава задача да извърши работа по темата. Накрая, съобщенията се извличат и записват, за да се види отговорът на агента. Съобщенията показват напредъка на разговора между потребителя и агента. Също така е важно да се разбере, че съобщенията могат да бъдат от различни типове като текст, изображение или файл; тоест работата на агента може да е довела например до генериране на изображение или текстов отговор. Като разработчик, можете след това да използвате тази информация за допълнителна обработка на отговора или за представянето му на потребителя.
Интегрира се с Microsoft Agent Framework. Azure AI Agent Service работи безпроблемно с Microsoft Agent Framework, което означава, че можете да изграждате агенти с AzureAIProjectAgentProvider и да ги внедрявате чрез 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 портала и да ги внедрите в мащаб.
Q: Все още съм объркан, просто ми дайте един вариант
A: Започнете с Microsoft Agent Framework за изграждане на вашите агенти, а след това използвайте Azure AI Agent Service, когато трябва да ги внедрите и мащабирате в производство. Този подход ви позволява бързо да итерирате върху логиката на агента, като имате ясен път към корпоративно внедряване.
Нека обобщим ключовите разлики в таблица:
| Framework | Focus | Core Concepts | Use Cases |
|---|---|---|---|
| Microsoft Agent Framework | Оптимизиран SDK за агенти с извикване на инструменти | Агенти, Инструменти, Azure Identity | Създаване на AI агенти, използване на инструменти, мултистъпкови работни потоци |
| Azure AI Agent Service | Гъвкави модели, корпоративна сигурност, генериране на код, извикване на инструменти | Модулност, Сътрудничество, Оркестрация на процеси | Сигурно, мащабируемо и гъвкаво внедряване на AI агенти |
Отговорът е да — можете да интегрирате вашите съществуващи инструменти от екосистемата Azure директно с Azure AI Agent Service, особено тъй като е създаден да работи безпроблемно с други услуги на Azure. Например можете да интегрирате Bing, Azure AI Search и Azure Functions. Има и дълбока интеграция с Microsoft Foundry.
Microsoft Agent Framework също се интегрира с услугите на Azure чрез AzureAIProjectAgentProvider и Azure identity, което ви позволява да извиквате услуги на Azure директно от инструментите на вашия агент.
Присъединете се към Microsoft Foundry Discord, за да се срещнете с други учащи се, да посетите консултативни часове и да получите отговори на въпросите си за AI агенти.
Въведение в AI агентите и случаи на използване
Разбиране на агентските дизайн шаблони
Отказ от отговорност: Този документ е преведен с помощта на AI преводаческата услуга Co-op Translator (https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля имайте предвид, че автоматичните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален превод, извършен от човешки преводач. Не носим отговорност за никакви недоразумения или погрешни тълкувания, произтичащи от използването на този превод.