AI-Агенти є захоплюючим розвитком у галузі генеративного ШІ, що дозволяє великим мовним моделям (LLM) еволюціонувати від асистентів до агентів, здатних виконувати дії. Фреймворки AI-Агентів дозволяють розробникам створювати додатки, які надають LLM доступ до інструментів і керування станом. Ці фреймворки також підвищують видимість, дозволяючи користувачам і розробникам відслідковувати плановані LLM дії, тим самим покращуючи управління досвідом.
Урок охопить наступні теми:
- Розуміння, що таке AI-Агент - Що саме являє собою AI-Агент?
- Ознайомлення з п’ятьма різними фреймворками AI-Агентів - Чим вони унікальні?
- Застосування цих AI-Агентів для різних випадків використання - Коли слід використовувати AI-Агентів?
Після проходження цього уроку ви зможете:
- Пояснити, що таке AI-Агенти і як їх можна використовувати.
- Мати уявлення про відмінності між деякими популярними фреймворками AI-Агентів і чим вони відрізняються.
- Розуміти, як функціонують AI-Агенти, щоб будувати додатки з їх використанням.
AI-Агенти — це дуже захоплююча сфера у світі генеративного ШІ. З цією зацікавленістю іноді виникає плутанина з термінами та їх застосуванням. Щоб усе було просто і охоплювало більшість інструментів, які називають AI-Агентами, ми використаємо таке визначення:
AI-Агенти дозволяють великим мовним моделям (LLM) виконувати завдання, надаючи їм доступ до стану та інструментів.
Давайте визначимо ці терміни:
Великі мовні моделі – це моделі, про які йдеться в цьому курсі, такі як GPT-5, GPT-4o, та Llama 3.3 тощо.
Стан — це контекст, у якому працює LLM. LLM використовує контекст своїх попередніх дій і поточний контекст, направляючи прийняття рішень для наступних дій. Фреймворки AI-Агентів дозволяють розробникам простіше підтримувати цей контекст.
Інструменти — щоб виконати завдання, яке користувач запросив і яке LLM запланував, LLM потрібен доступ до інструментів. Приклади інструментів: база даних, API, зовнішній застосунок або навіть інша LLM!
Ці визначення, сподіваємося, дадуть вам добру основу далі, коли ми розглянемо, як вони реалізовані. Давайте ознайомимось із кількома різними фреймворками AI-Агентів:
LangChain Agents — це реалізація наведених вище визначень.
Для керування станом він використовує вбудовану функцію AgentExecutor. Вона приймає визначеного агента та доступні йому інструменти.
Agent Executor також зберігає історію чату, щоб забезпечити контекст розмови.
LangChain пропонує каталог інструментів, які можна імпортувати у ваш додаток, отримуючи таким чином доступ для LLM. Вони створені спільнотою та командою LangChain.
Ви можете визначити ці інструменти і передати їх Agent Executor.
Видимість — це ще один важливий аспект при обговоренні AI-Агентів. Важливо, щоб розробники додатків розуміли, який інструмент LLM використовує і чому. Для цього команда LangChain розробила LangSmith.
Наступний фреймворк AI-Агентів, про який ми поговоримо, — це AutoGen. Основна увага AutoGen — це розмови. Агенти є як розмовними, так і налаштовуваними.
Розмовні – LLM можуть починати і продовжувати розмову з іншим LLM для виконання завдання. Це досягається створенням AssistantAgents з конкретним системним повідомленням.
autogen.AssistantAgent( name="Coder", llm_config=llm_config, ) pm = autogen.AssistantAgent( name="Product_manager", system_message="Creative in software product ideas.", llm_config=llm_config, )Налаштовувані – агенти можуть бути визначені не лише як LLM, а й як користувач або інструмент. Ви, як розробник, можете визначити UserProxyAgent, який відповідає за взаємодію з користувачем для отримання зворотного зв’язку щодо виконання завдання. Цей відгук може продовжити виконання завдання або його зупинити.
user_proxy = UserProxyAgent(name="user_proxy")Щоб змінювати і керувати станом, асистент-Агент генерує Python код для виконання завдання.
Ось приклад процесу:
system_message="For weather related tasks, only use the functions you have been provided with. Reply TERMINATE when the task is done."Це системне повідомлення спрямовує цю конкретну LLM, які функції релевантні для її завдання. Пам’ятайте, що з AutoGen ви можете мати декілька визначених AssistantAgents з різними системними повідомленнями.
user_proxy.initiate_chat( chatbot, message="I am planning a trip to NYC next week, can you help me pick out what to wear? ", )Це повідомлення від user_proxy (людини) запускає процес Агентом для вивчення можливих функцій, які він має виконувати.
chatbot (to user_proxy):
***** Suggested tool Call: get_weather ***** Arguments: {"location":"New York City, NY","time_periond:"7","temperature_unit":"Celsius"} ******************************************************** --------------------------------------------------------------------------------
>>>>>>>> EXECUTING FUNCTION get_weather... user_proxy (to chatbot): ***** Response from calling function "get_weather" ***** 112.22727272727272 EUR ****************************************************************
Після обробки початкової розмови, Агент надішле інструмент для виклику. У даному випадку це функція get_weather. Залежно від вашої конфігурації, цю функцію можуть автоматично виконувати і читати Агентом або виконувати за користувацьким введенням.
Ви можете знайти список прикладів коду AutoGen, щоб глибше вивчити, як почати розробку.
Microsoft Agent Framework — це відкритий SDK від Microsoft для побудови AI-Агентів і систем з кількома агентами на Python та .NET. Він об’єднує сильні сторони двох попередніх проєктів Microsoft — корпоративні функції Semantic Kernel та оркестрацію кількох агентів AutoGen — в єдиний підтримуваний фреймворк. Якщо ви розпочинаєте новий проєкт агентів сьогодні, це рекомендований наступник AutoGen.
Фреймворк масштабований — від одного чат-агента до складних робочих потоків з кількома агентами, і він інтегрується безпосередньо з Microsoft Foundry, Azure OpenAI та OpenAI. Він також забезпечує вбудовану спостережуваність через OpenTelemetry, щоб ви могли точно відслідковувати, що роблять ваші агенти.
Стан — фреймворк керує контекстом розмови за допомогою ниток. Агент відстежує історію повідомлень (запити користувача, виклики інструментів та їх результати), тому кожен крок базується на попередніх. Нитки можуть зберігатися, що дозволяє припинити і відновити розмову пізніше.
Інструменти — ви надаєте агенту інструменти, передаючи звичайні Python-функції. Параметри з типами автоматично перетворюються на схему, тому модель знає, як і коли їх викликати (виклик функцій). Фреймворк також підтримує сервери Model Context Protocol (MCP) і розміщені інструменти, наприклад інтерпретатор коду.
Ось приклад одного агента з користувацьким інструментом:
import asyncio
from typing import Annotated
from pydantic import Field
from agent_framework import Agent
from agent_framework.openai import OpenAIChatClient
def get_weather(
location: Annotated[str, Field(description="The location to get the weather for.")],
) -> str:
"""Get the weather for a given location."""
return f"The weather in {location} is sunny with a high of 22°C."
async def main():
agent = Agent(
client=OpenAIChatClient(),
instructions="You are a helpful assistant that can answer weather questions.",
tools=[get_weather],
)
response = await agent.run("What's the weather in Amsterdam?")
print(response)
asyncio.run(main())Для підключення до Azure OpenAI в Microsoft Foundry замість цього передайте кінцеву точку та облікові дані клієнту:
from azure.identity.aio import AzureCliCredential
from agent_framework.openai import OpenAIChatClient
client = OpenAIChatClient(
model="my-gpt-5-mini-deployment",
azure_endpoint="https://my-resource.openai.azure.com",
credential=AzureCliCredential(),
)Особливо фреймворк виділяється оркестрацією кількох агентів разом. Наприклад, ви можете запускати агентів один за одним (кожен передаючи свій контекст наступному) або запускати декілька агентів паралельно з подальшою агрегацією результатів:
from agent_framework.orchestrations import SequentialBuilder, ConcurrentBuilder
# Запустіть агентів послідовно, передаючи контекст розмови по ланцюжку
sequential = SequentialBuilder(participants=[researcher, writer, editor]).build()
# Розпаралелюйте на агентів одночасно, а потім об’єднайте їхні відповіді
concurrent = ConcurrentBuilder(participants=[analyst_a, analyst_b, analyst_c]).build()Для встановлення фреймворку і початку роботи:
pip install agent-framework-core
# Необов’язкові інтеграції
pip install agent-framework-openai # OpenAI та Azure OpenAI
pip install agent-framework-foundry # Microsoft FoundryВи можете дізнатися більше в репозиторії Microsoft Agent Framework та офіційній документації.
Наступний фреймворк агентів, який ми розглянемо, — це Taskweaver. Його називають «code-first» агентом, бо він працює не лише з рядками, а й з DataFrames у Python. Це стає надзвичайно корисним для завдань аналізу та генерації даних. Це можуть бути, наприклад, створення графіків і діаграм або генерація випадкових чисел.
Для керування станом розмови TaskWeaver використовує концепцію Planner. Planner — це LLM, який приймає запит від користувачів і планує завдання, які необхідно виконати для виконання запиту.
Щоб виконати завдання, Planner має доступ до набору інструментів під назвою Plugins. Це можуть бути Python-класи або загальний інтерпретатор коду. Ці плагіни зберігаються у вигляді ембеддингів, щоб LLM легше шукав потрібний плагін.
Ось приклад плагіна для виявлення аномалій:
class AnomalyDetectionPlugin(Plugin): def __call__(self, df: pd.DataFrame, time_col_name: str, value_col_name: str):Код перевіряється перед виконанням. Ще однією особливістю керування контекстом у Taskweaver є experience. Experience дозволяє зберігати контекст розмови довгостроково у YAML-файл. Це можна налаштувати так, щоб LLM з часом покращувався у виконанні певних завдань, враховуючи попередні розмови.
Останній фреймворк агентів, який ми розглянемо, — це JARVIS. Унікальність JARVIS полягає в тому, що він використовує LLM для керування станом розмови, а інструментами є інші AI-моделі. Кожна з AI-моделей — спеціалізована модель, що виконує певні завдання, такі як виявлення об’єктів, транскрипція чи генерація підписів до зображень.
LLM, як модель загального призначення, отримує запит від користувача і визначає конкретне завдання та будь-які аргументи/дані, необхідні для його виконання.
[{"task": "object-detection", "id": 0, "dep": [-1], "args": {"image": "e1.jpg" }}]LLM потім форматуює запит у вигляді, зрозумілому для спеціалізованої AI-моделі, наприклад JSON. Після того як AI-модель поверне прогноз за завданням, LLM отримує відповідь.
Якщо для виконання завдання потрібно кілька моделей, LLM також інтерпретує відповіді від цих моделей, перш ніж об’єднати їх, щоб сформувати відповідь користувачу.
Нижченаведений приклад показує, як це працюватиме, коли користувач запитує опис і підрахунок об’єктів на зображенні:
Щоб продовжити ваше навчання AI-Агентам, ви можете створити з Microsoft Agent Framework:
- Додаток, який симулює ділову зустріч різних відділів освітнього стартапу.
- Створити системні повідомлення, які направляють LLM у розумінні різних персон і пріоритетів, та дають користувачу можливість презентувати нову ідею продукту.
- LLM має генерувати наступні запитання від кожного відділу для уточнення і покращення презентації та ідеї продукту.
Після проходження цього уроку перегляньте нашу колекцію навчання з генеративного ШІ, щоб продовжувати підвищувати свій рівень знань про генеративний ШІ!
Відмова від відповідальності: Цей документ було перекладено за допомогою сервісу штучного інтелекту для перекладу Co-op Translator. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.





