(לחצו על התמונה למעלה כדי לצפות בסרטון של השיעור הזה)
מסגרות סוכני AI הן פלטפורמות תוכנה שנועדו לפשט את יצירתם, הפריסה והניהול של סוכני AI. מסגרות אלו מספקות למפתחים רכיבים מוכנים, הפשטות וכלים שמייעלים את פיתוח מערכות AI מורכבות.
מסגרות אלו מסייעות למפתחים להתמקד בהיבטים הייחודיים של היישומים שלהם על ידי מתן גישות סטנדרטיות לאתגרים נפוצים בפיתוח סוכני AI. הן משפרות את סקלאביליות, הנגישות והיעילות בבניית מערכות AI.
בשיעור זה נכסה:
מטרות השיעור הן לסייע לך להבין:
מסגרות AI מסורתיות יכולות לעזור לך לשלב AI באפליקציות שלך ולשפר אותן בדרכים הבאות:
מסגרות סוכני AI הן יותר מאשר מסגרות AI רגילות. הן מיועדות לאפשר יצירת סוכנים אינטיליגנטיים שיכולים לקיים אינטראקציה עם משתמשים, סוכנים אחרים, והסביבה להשגת מטרות ספציפיות. סוכנים אלו עשויים להפגין התנהגות אוטונומית, לקבל החלטות ולהסתגל לתנאים משתנים. בואו נבחן כמה יכולות מרכזיות שמסגרות סוכני AI מאפשרות:
לסיכום, סוכנים מאפשרים לך לעשות יותר, לקחת את האוטומציה לרמה הבאה, וליצור מערכות אינטיליגנטיות יותר שיכולות להסתגל וללמוד מהסביבה שלהן.
זוהי סביבה דינמית ומהירה, אך ישנם אלמנטים משותפים לרוב מסגרות סוכני ה-AI שמסייעים באב-טיפוס ובלולאות איטרציה מהירות: רכיבי מודולים, כלים לשיתוף פעולה ולמידה בזמן אמת. בואו נעמיק בהם:
SDKs כמו Microsoft Agent Framework מציעים רכיבים מוכנים כגון מחברי AI, הגדרות כלים וניהול סוכנים.
כיצד צוותים יכולים להשתמש בזה: ניתן להרכיב מהר רכיבים אלו כדי ליצור אב-טיפוס פונקציונלי מבלי להתחיל מאפס, מה שמאפשר ניסוי מהיר ואיטרציה.
כיצד זה עובד בפועל: ניתן להשתמש בפרסר מוכן לחילוץ מידע מקלט משתמש, במודול זיכרון לאחסון ושליפה, ובמחולל פרומפט לאינטראקציה עם המשתמשים, והכל ללא בניית הרכיבים עצמם מאפס.
קוד לדוגמה. נבחן דוגמה לשימוש ב-Microsoft Agent Framework יחד עם FoundryChatClient לגרום למודל להגיב לקלט המשתמש עם קריאת כלים:
# דוגמה למסגרת סוכן של מיקרוסופט בפייתון
import asyncio
import os
from agent_framework import tool
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential
# הגדר פונקציית כלי לדוגמה להזמנת נסיעות
@tool(approval_mode="never_require")
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 = FoundryChatClient(
project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
credential=AzureCliCredential(),
)
agent = provider.as_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):
# יצירת סוכנים מרובים שעובדים יחד באמצעות מסגרת הסוכן של מיקרוסופט
import os
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential
provider = FoundryChatClient(
project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
credential=AzureCliCredential(),
)
# סוכן משיכת נתונים
agent_retrieve = provider.as_agent(
name="dataretrieval",
instructions="Retrieve relevant data using available tools.",
tools=[retrieve_tool],
)
# סוכן ניתוח נתונים
agent_analyze = provider.as_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 באמצעות FoundryChatClient. הוא מאפשר למפתחים ליצור סוכנים שמשתמשים במודלים של Azure OpenAI עם קריאת כלים מובנית, ניהול שיחות, ואבטחה ברמת ארגונית דרך זהות Azure.
מקרי שימוש: בניית סוכני AI מוכנים לייצור עם שימוש בכלים, תהליכי עבודה מרובי שלבים, וסצנרי אינטגרציה ארגונית.
להלן כמה מושגים מרכזיים ב-Microsoft Agent Framework:
FoundryChatClient ומוגדר עם שם, הוראות וכלים. הסוכן יכול:
כאן קטע קוד המדגים יצירת סוכן:
import os
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential
provider = FoundryChatClient(
project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
credential=AzureCliCredential(),
)
agent = provider.as_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 = provider.as_agent(
name="weather_agent",
instructions="Help users check the weather.",
tools=[get_weather],
)
תיאום בין סוכנים מרובים. ניתן ליצור סוכנים מרובים עם התמחות שונות ולתאם את עבודתם:
planner = provider.as_agent(
name="planner",
instructions="Break down complex tasks into steps.",
)
executor = provider.as_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, ומפשטת את הניהול.Microsoft Foundry Agent Service הוא תוסף חדש יחסית שהוצג בכנס Microsoft Ignite 2024. הוא מאפשר פיתוח והפצה של סוכני AI עם מודלים גמישים יותר, כגון קריאה ישירה למודלים פתוחים כמו Llama 3, Mistral ו-Cohere.
Microsoft Foundry Agent Service מספק מנגנוני אבטחה ארגוניים חזקים ושיטות לאחסון נתונים, מה שהופך אותו מתאים ליישומים ארגוניים.
הוא עובד ישירות עם Microsoft Agent Framework לבניית סוכנים ולפריסתם.
שירות זה נמצא כעת ב-Preview ציבורי ותומך ב-Python ו-C# לבניית סוכנים.
באמצעות Microsoft Foundry 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-5-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())
ל-Microsoft Foundry Agent Service יש את המושגים המרכזיים הבאים:
סוכן. השירות משולב עם Microsoft Foundry. בתוך Foundry, סוכן AI מתפקד כמיקרו-שירות “חכם” שיכול לענות על שאלות (RAG), לבצע פעולות או לאוטומט תהליכים באופן מלא. זאת באמצעות שילוב של מודלי AI גנרטיביים וכלים המאפשרים גישה לאינפורמציה אמיתית וסינכרון איתה. דוגמה לסוכן:
agent = project_client.agents.create_agent(
model="gpt-5-mini",
name="my-agent",
instructions="You are helpful agent",
tools=code_interpreter.definitions,
tool_resources=code_interpreter.resources,
)
בדוגמה זו, סוכן נוצר עם מודל gpt-5-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",
)
# בקש מהסוכן לבצע עבודה על התהליך
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"Messages: {messages}")
בקוד הקודם נוצר שרשור. לאחר מכן נשלחה הודעה לשרשור. באמצעות קריאה ל-create_and_process_run, מבקשים מהסוכן לבצע עבודה בשרשור. בסוף, ההודעות מתקבלות ונרשמות לצפייה בתשובת הסוכן. ההודעות מצביעות על התקדמות השיחה בין המשתמש לסוכן. חשוב להבין שההודעות יכולות להיות מסוגים שונים כגון טקסט, תמונה או קובץ, כלומר עבודת הסוכן הביאה לתוצאה כמו תמונה או תגובת טקסט. כמפתח, ניתן להשתמש במידע זה לעיבוד נוסף או להצגתו למשתמש.
משולב עם Microsoft Agent Framework. Microsoft Foundry Agent Service עובד באופן חלק עם Microsoft Agent Framework, מה שמאפשר לבנות סוכנים באמצעות FoundryChatClient ולפרסמם דרך השירות לסביבות ייצור.
מקרי שימוש: Microsoft Foundry Agent Service מיועד ליישומים ארגוניים שדורשים פריסה מאובטחת, סקלאבילית וגמישה של סוכני AI.
אמנם יש חפיפות, אך קיימים הבדלים מרכזיים בעיצוב, יכולות ומקרי השימוש:
עדיין לא בטוח איזה לבחור?
בואו נבדוק עם כמה מקרי שימוש נפוצים:
ש: אני בונה יישומי סוכני AI לייצור ורוצה להתחיל במהירות
ת: Microsoft Agent Framework הוא בחירה מצוינת. הוא מספק API פשוט בפייתון דרך
FoundryChatClientשמאפשר להגדיר סוכנים עם כלים והוראות בכמה שורות קוד בלבד.
ש: אני צריך פריסה ברמת ארגון עם אינטגרציות Azure כמו חיפוש והפעלה של קוד
ת: Microsoft Foundry Agent Service מתאים ביותר. זו פלטפורמה שמספקת יכולות מובנות למודלים רבים, Azure AI Search, Bing Search ו-Azure Functions. הוא מקל על בניית הסוכנים ב-Foundry Portal ופריסתם בסקלה.
ש: אני עדיין מבולבל, תן לי רק אפשרות אחת
ת: התחל עם Microsoft Agent Framework לבניית הסוכנים שלך, ואז השתמש ב-Microsoft Foundry Agent Service כשתצטרך לפרוס ולסקלא אותם בייצור. גישה זו מאפשרת לך לאטום במהירות על הלוגיקה של הסוכן עם דרך ברורה לפריסה ארגונית.
נסכם את ההבדלים המרכזיים בטבלה:
| מסגרת | מיקוד | מושגים מרכזיים | מקרי שימוש |
|---|---|---|---|
| Microsoft Agent Framework | SDK ממוקד לסוכן עם קריאת כלים | סוכנים, כלים, זהות Azure | בניית סוכני AI, שימוש בכלים, תהליכים מרובי שלבים |
| Microsoft Foundry Agent Service | מודלים גמישים, אבטחה ארגונית, יצירת קוד, קריאת כלים | מודולריות, שיתוף פעולה, תזמור תהליכים | פריסה מאובטחת, סקלאבילית וגמישה של סוכני AI |
התשובה היא כן, ניתן לשלב את כלי האקוסיסטם הקיימים שלך של Azure ישירות עם שירות ה-Agent של Microsoft Foundry במיוחד, שכן הוא נבנה לעבוד בצורה חלקה עם שירותי Azure אחרים. לדוגמה, תוכל לשלב את Bing, Azure AI Search, ו-Azure Functions. יש גם אינטגרציה עמוקה עם Microsoft Foundry.
מסגרת הסוכנים של Microsoft משתלבת גם עם שירותי Azure דרך FoundryChatClient וזהות Azure, המאפשרת לך לקרוא לשירותי Azure ישירות מכלי הסוכן שלך.
הצטרף ל-Microsoft Foundry Discord כדי לפגוש לומדים אחרים, להשתתף בשעות קבלת קהל ולקבל מענה לשאלותיך על סוכני AI.
הקדמה לסוכני AI ומקרי שימוש בהם
כתב ויתור: מסמך זה תורגם באמצעות שירות תרגום אוטומטי Co-op Translator. למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עלולים להכיל שגיאות או אי-דיוקים. יש להחשיב את המסמך המקורי בשפתו הטבעית כמקור הסמכות. למידע קריטי מומלץ להשתמש בתרגום מקצועי על ידי מתרגם אדם. אנו לא אחראים לכל אי-הבנה או פירוש שגוי הנובע מהשימוש בתרגום זה.