הרצאה: סוכני AI (AI Agents) ו־LangChain¶
הקדמה – למה בכלל סוכני AI?¶
רוב האנשים מכירים AI כמשהו כזה:
-
שולחים prompt
-
מקבלים תשובה
-
נגמר
אבל במערכות אמיתיות זה לא מספיק.
בפרויקט אמיתי אנחנו רוצים:
-
שה-AI יבצע רצף פעולות
-
שיחליט לבד מה הצעד הבא
-
שיידע לעבוד עם כלים (DB, API, קבצים)
-
שיתקן את עצמו אם נכשל
כאן נכנסים סוכני AI.
מה זה AI Agent?¶
הגדרה:¶
AI Agent הוא ישות שמקבלת:
-
מטרה (Goal)
-
הקשר (Context)
-
סט כלים (Tools)
והיא:
-
מתכננת צעדים
-
מבצעת אותם
-
בודקת תוצאות
-
ממשיכה עד השגת המטרה
כלומר:
לא תשובה אחת- אלא תהליך חשיבה ופעולה
השוואה: LLM רגיל מול Agent¶
| LLM רגיל | AI Agent |
|---|---|
| Prompt → תשובה | Goal → פעולות |
| אין זיכרון | זיכרון |
| לא יודע לבצע קוד | יודע להפעיל כלים |
| חד־פעמי | לולאתי |
| פסיבי | אקטיבי |
דוגמה אינטואיטיבית¶
LLM רגיל:
“תכתוב לי תיאור לטיול בפריז”
Agent:
“צור טיול בפריז כולל:
בדיקת מלונות
יצירת מסלול
שמירה ל־DB
שליחת סיכום למשתמש”
ה-Agent:
-
מחליט מה לעשות
-
שואל את עצמו שאלות
-
משתמש בכלים
אז מה זה LangChain?¶
הLangChain היא ספריית פייתון (וגם JS) שעוזרת לבנות:
- סוכני AI
- שרשראות פעולות
- חיבור בין LLMs לכלים
אבני הבניין של LangChain¶
1. LLM¶
המודל עצמו (OpenAI, Anthropic וכו’)
2. Prompt Template¶
תבנית קבועה לפרומפטים
from langchain.prompts import PromptTemplate
prompt = PromptTemplate(
input_variables=["destination"],
template="Create a travel plan for {destination}"
)
3. Chain¶
שרשרת של שלבים
from langchain.chains import LLMChain
chain = LLMChain(llm=llm, prompt=prompt)
result = chain.run(destination="Tokyo")
Chain =
קלט → עיבוד → פלט
למה Chain זה לא מספיק?¶
Chain הוא:
-
לינארי
-
צפוי
-
בלי החלטות
אבל בפרויקטים אמיתיים:
-
לפעמים צריך API
-
לפעמים DB
-
לפעמים retry
-
לפעמים לבחור פעולה אחרת
לכן עוברים ל־Agents.
Tools – הנשק האמיתי של Agents¶
בעצם Tool = פונקציה שפייתון מספק ל־Agent.
לדוגמה:
-
חיפוש טיסות
-
כתיבה ל־DB
-
קריאה ל־API
-
שליחת מייל
ה-Agent:
-
בוחר מתי להשתמש ב־tool
-
עם אילו פרמטרים
-
לפי המטרה
AI Agent ב־LangChain¶
Agent = LLM + Tools + Strategy¶
from langchain.agents import initialize_agent
agent = initialize_agent(
tools=[get_hotels, get_flights],
llm=llm,
agent="zero-shot-react-description"
)
agent.run("Build a 5-day trip to Rome")
ה-Agent:
-
חושב
-
מפעיל כלים
-
ממשיך לבד
מה זה ReAct?¶
ReAct = Reason + Act
הלולאה:
-
Think – מה הצעד הבא?
-
Act – להפעיל כלי
-
Observe – לקרוא תוצאה
-
Repeat
זה מה שהופך Agent ל"חושב".
זיכרון (Memory)¶
בלי זיכרון:
- כל פעולה מנותקת
עם זיכרון:
-
ה-Agent זוכר מה כבר עשה
-
יודע לא לחזור על עצמו
Agents בפרויקט שלכם (TRIP)¶
דוגמה לסוכן "Trip Builder"¶
מטרה:
לבנות טיול מלא לפי בקשת משתמש
ה-Agent:
-
מבין יעד
-
בוחר טיסות
-
בוחר מלונות
-
יוצר itinerary
-
שומר ל־DB
-
מחזיר סיכום
כל שלב = Tool
שילוב עם FastAPI¶
FastAPI:
-
מקבל בקשה
-
מפעיל Agent
-
מחזיר תוצאה
ה-Agent:
-
לא חלק מה־API
-
אלא מנוע לוגי חכם
Multi-Agent Systems (שלב מתקדם)¶
לא Agent אחד — אלא צוות.
לדוגמה:
-
Planner Agent
-
Research Agent
-
Writer Agent
-
Validator Agent
כל אחד:
-
תפקיד ברור
-
מתקשר דרך תוצאות
בעיות נפוצות וחשובות¶
חוסר דטרמיניזם¶
- Agents לא תמיד צפויים
עלויות¶
- הרבה קריאות ל־LLM
שליטה¶
-
צריך להגביל כלים
-
צריך Timeouts
Best Practices¶
-
כל Tool חייב להיות:
-
קטן
-
ברור
-
בטוח
-
-
Agent לא נוגע ישירות ב־DB
-
לעולם לא לתת Agent גישה חופשית