(לחצו על התמונה למעלה לצפייה בסרטון השיעור)
מסגרות לסוכני AI הן פלטפורמות תוכנה שנועדו לפשט את יצירת, פרישת וניהול סוכני AI. מסגרות אלו מספקות למפתחים רכיבים מוכנים, הפשטות, וכלים שמייעלים את פיתוח מערכות AI מורכבות.
מסגרות אלה מסייעות למפתחים להתמקד בהיבטים הייחודיים של היישומים שלהם על ידי מתן גישות סטנדרטיות לאתגרים נפוצים בפיתוח סוכני AI. הן משפרות את הסקלביליות, הנגישות, והיעילות בבניית מערכות AI.
השיעור יכלול:
מטרות השיעור הן לעזור לך להבין:
מסגרות AI מסורתיות יכולות לסייע לך לשלב AI באפליקציות שלך ולשפר אותן בדרכים הבאות:
מסגרות סוכני AI מייצגות משהו מעבר למסגרות AI פשוטות. הן מיועדות לאפשר יצירת סוכנים חכמים שיכולים לקיים אינטראקציה עם משתמשים, סוכנים אחרים והסביבה כדי להשיג מטרות מסוימות. סוכנים אלו יכולים להציג התנהגות אוטונומית, לקבל החלטות ולהסתגל לתנאים משתנים. הנה כמה יכולות מרכזיות שמאפשרות מסגרות סוכני AI:
לסיכום, סוכנים מאפשרים לך לעשות יותר, לקחת את האוטומציה לרמה הבאה, וליצור מערכות חכמות שיכולות להסתגל וללמוד מהסביבה שלהן.
שוק זה מתקדם במהירות, אבל יש כמה אלמנטים נפוצים ברוב מסגרות סוכני AI שיכולים לסייע לך לדגם במהירות ולאטור, כגון רכיבי מודול, כלים לשיתוף פעולה ולמידה בזמן אמת. נבחן אותם:
SDKs כמו Microsoft Agent Framework מציעים רכיבים מוכנים כגון מחברי AI, הגדרות כלים וניהול סוכנים.
כיצד צוותים יכולים להשתמש בזה: צוותים יכולים להרכיב במהירות את הרכיבים הללו כדי ליצור אבטיפוס פונקציונלי מבלי להתחיל מאפס, מה שמאפשר ניסוי מהיר ולאטור.
איך זה עובד בפועל: ניתן להשתמש במנתח מידע מוכן כדי לחלץ מידע מהקלט של המשתמש, במודול זיכרון לאחסון ושליפה של נתונים, ובמחולל תבניות כדי לתקשר עם המשתמשים, הכל מבלי לבנות רכיבים אלו מאפס.
דוגמת קוד. נבחן דוגמה של שימוש ב-Microsoft Agent Framework עם AzureAIProjectAgentProvider לקבלת תגובה בקלט המשתמש עם קריאת כלים:
# דוגמה למסגרת Microsoft Agent בפייתון
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.
מקרי שימוש: בניית סוכני 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 הוא תוספת חדשה, שהוצגה ב-Microsoft Ignite 2024. הוא מאפשר פיתוח ופריסה של סוכני AI עם מודלים גמישים יותר, כגון קריאה ישירה למודלים פתוחים כמו Llama 3, Mistral ו-Cohere.
שירות Azure AI Agent מספק מנגנוני אבטחה ארגוניים חזקים ושיטות אחסון נתונים, מה שהופך אותו מתאים לאפליקציות ארגוניות.
השירות עובד מחוץ לקופסה עם Microsoft Agent Framework לבניית ופריסת סוכנים.
השירות נמצא כעת בגרסת תצוגה ציבורית, ותומך ב-Python ו-C# לבניית סוכנים.
באמצעות SDK של שירות Azure AI Agent ב-Python, ניתן ליצור סוכן עם כלי שהוגדר ע”י המשתמש:
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 קיימים המושגים המרכזיים הבאים:
סוכן: שירות Azure AI Agent משתלב עם Microsoft Foundry. בתוך AI Foundry, סוכן AI משמש כמיקרו-שירות “חכם” שניתן להשתמש בו למענה על שאלות (RAG), ביצוע פעולות או אוטומציה מלאה של תהליכים. הוא משיג זאת על ידי שילוב כוחם של מודלים גנרטיביים עם כלים המאפשרים גישה לאותם מקורות נתונים חיצוניים ותקשורת איתם. משמעות דוגמה לסוכן:
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 = 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 עובד בשלמות עם Microsoft Agent Framework, כלומר ניתן לבנות סוכנים באמצעות AzureAIProjectAgentProvider ולפרוס אותם דרך שירות הסוכנים לתרחישי ייצור.
מקרי שימוש: שירות Azure AI Agent מיועד לאפליקציות ארגוניות שדורשות פריסה בטוחה, סקלבילית וגמישה של סוכני AI.
נראה שיש חפיפה, אך יש גם הבדלים מרכזיים בעיצוב, יכולות ומקרי שימוש:
עדיין לא בטוח מה לבחור?
נראה אם נוכל לעזור על ידי מעבר על כמה מקרי שימוש נפוצים:
ש: אני בונה יישומי סוכני AI לייצור ורוצה להתחיל במהירות
ת: Microsoft Agent Framework הוא בחירה מצוינת. הוא מספק API פשוט בסגנון Python דרך
AzureAIProjectAgentProviderשמאפשר להגדיר סוכנים עם כלים והוראות בכמה שורות קוד בלבד.
ש: אני צריך פריסה ארגונית עם אינטגרציות Azure כמו חיפוש והפעלת קוד
ת: שירות Azure AI Agent הוא הבחירה הטובה ביותר. זהו שירות פלטפורמה שמספק יכולות מובנות למודלים מרובים, Azure AI Search, Bing Search ופונקציות Azure. הוא מאפשר בניית סוכנים בפורטל Foundry ופריסה בקנה מידה.
ש: אני עדיין מבולבל, תן לי אפשרות אחת בלבד
ת: התחל עם Microsoft Agent Framework לבניית הסוכנים, ולאחר מכן השתמש בשירות Azure AI Agent כשאתה צריך לפרוס ולסקל אותם בייצור. גישה זו מאפשרת לך לאטור במהירות את הלוגיקה של הסוכן תוך שמירה על נתיב ברור לפריסה ארגונית.
נסכם את ההבדלים המרכזיים בטבלה:
| מסגרת | מוקד | מושגים מרכזיים | מקרי שימוש |
|---|---|---|---|
| Microsoft Agent Framework | SDK פשוט לסוכנים עם קריאת כלים | סוכנים, כלים, זהות Azure | בניית סוכני AI, שימוש בכלים, תהליכים מרובי שלבים |
| Azure AI Agent Service | מודלים גמישים, אבטחה ארגונית, יצירת קוד, קריאת כלים | מודולריות, שיתוף פעולה, ארגון תהליכים | פריסה בטוחה, סקלבילית וגמישה של סוכני AI |
התשובה היא כן, ניתן לשלב את כלי המערכת האקולוגית של Azure הקיימים ישירות עם שירות Azure AI Agent במיוחד, מכיוון שהוא בנוי לעבוד בצורה חלקה עם שירותי Azure אחרים. לדוגמה, תוכל לשלב את Bing, Azure AI Search, ו-Azure Functions. יש גם אינטגרציה עמוקה עם Microsoft Foundry.
מסגרת Microsoft Agent Framework משתלבת גם היא עם שירותי Azure דרך AzureAIProjectAgentProvider וזהות Azure, ומאפשרת לך לקרוא לשירותי Azure ישירות מכלי הסוכן שלך.
הצטרף ל-Microsoft Foundry Discord כדי להיפגש עם לומדים נוספים, להשתתף בשעות משרד ולקבל מענה לשאלות שלך על סוכני AI.
כתב ויתור:
מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית Co-op Translator. בעוד שאנו שואפים לדיוק, יש לקחת בחשבון כי תרגומים אוטומטיים עלולים להכיל טעויות או אי-דיוקים. המסמך המקורי בשפת המקור נחשב למקור הסמכותי. למידע קריטי מומלץ לפנות לשירות תרגום מקצועי על ידי אדם. אין אנו אחראים לכל אי-הבנות או פרשנויות שגויות הנובעות משימוש בתרגום זה.