🛠️ שיעור למתקדמים, דורש ידע ב-Python ו-API. אם אתה מתחיל, דלג ועבור ל-lesson 30b לסיום הקורס.
Chatbot מחכה לשאלה. Agent פועל עד שהמשימה הושגת.
הרגע שבו ChatGPT ו-Claude הפכו מכלי שיחה לכלי עבודה אמיתי, הוא הרגע שבו הופיעו AI Agents. ב-2026, חברות כמו Notion, Rakuten ו-Asana כבר משלבות agents על בסיס Claude ב-production שלהן. ואנטרופיק עצמה הכריזה בינואר 2026 שרוב הקוד שלה נכתב על-ידי Claude Code, agent פיתוח אוטונומי.
מה שמבדיל agent מ-chatbot: לולאה. Agent מקבל מטרה, חושב, בוחר כלי, מפעיל אותו, בוחן את התוצאה, ומחליט מה הצעד הבא, שוב ושוב, עד שהמשימה הושלמה.
שלושת רכיבי הליבה של כל Agent
כל agent, בין אם פשוט ובין אם מורכב, בנוי מאותם שלושה רכיבים:
- מטרה (Goal): מה ה-agent צריך להשיג. מוגדרת ב-system prompt ובהודעת המשתמש.
- כלים (Tools): הפעולות שה-agent יכול לבצע בעולם. קריאת קבצים, חיפוש ברשת, הרצת קוד, שליחת API.
- לולאת החלטה (Agentic Loop): המנגנון שחוזר על עצמו: Claude מחליט על כלי ← מריץ ← רואה תוצאה ← מחליט שוב.
כאשר Anthropic חוקרת שימוש אמיתי, הם מוצאים שמשתמשים מנוסים (750+ sessions) נותנים ל-agent auto-approve ביותר מ-40% מהסשנים, בעוד משתמשים חדשים רק ב-20%. המשמעות: ככל שמכירים את ה-agent, סומכים עליו יותר.
הלולאה הבסיסית, קוד שרץ בפועל
זה ה-agent loop הבסיסי ב-Python. שבעה צעדים שכל agent בעולם מבצע:
import anthropic, json
client = anthropic.Anthropic()
tools = [
{
"name": "read_file",
"description": "Read a file's contents",
"input_schema": {
"type": "object",
"properties": {"path": {"type": "string"}},
"required": ["path"]
}
},
{
"name": "run_command",
"description": "Run a shell command",
"input_schema": {
"type": "object",
"properties": {"cmd": {"type": "string"}},
"required": ["cmd"]
}
}
]
def run_agent(goal, max_turns=10):
messages = [{"role": "user", "content": goal}]
system = "You are an autonomous agent. Use tools to complete the goal step by step."
for turn in range(max_turns):
resp = client.messages.create(
model="claude-opus-4-7-20260416",
max_tokens=4096,
system=system,
tools=tools,
messages=messages,
)
# אם Claude סיים, מחזיר תשובה סופית
if resp.stop_reason == "end_turn":
return next(b.text for b in resp.content if b.type == "text")
# מעבד tool calls ומחזיר תוצאות
messages.append({"role": "assistant", "content": resp.content})
results = []
for block in resp.content:
if block.type == "tool_use":
print(f"[Tool] {block.name}: {block.input}")
result = execute_tool(block.name, block.input) # ← המימוש שלך
results.append({"type": "tool_result", "tool_use_id": block.id, "content": str(result)})
messages.append({"role": "user", "content": results})
return "Agent הגיע למגבלת הסיבובים"
print(run_agent("Read requirements.txt and check if all packages are installed"))
ארכיטקטורת Agents, ארבעה דפוסים מוכחים
| דפוס | מבנה | דוגמה ישראלית |
|---|---|---|
| Single Loop | agent אחד עם כלים, לולאה ישירה | agent שסורק מועמדים ב-LinkedIn לסטארטאפ ת"א |
| Orchestrator-Worker | agent ראשי מפצל לתת-agents מקביליים | אגף HR שמריץ בדיקת רקע, ניתוח CV, ו-scheduling במקביל |
| Pipeline | שרשרת, כל agent מעביר תוצאה לבא | Pipeline שיווק: מחקר → כתיבה → עריכה → פרסום |
| Evaluator-Optimizer | agent מייצר, agent שני מעריך ומחזיר feedback | agent שכותב הצעות מחיר, agent שמדרג אותן לפי win rate |
Claude Managed Agents, מה השתנה באפריל 2026
ב-8 לאפריל 2026 Anthropic השיקה Claude Managed Agents, שירות שמחסל את הצורך לכתוב agent loop בעצמך. במקום לנהל containers, sandboxing, ו-state, אתה מגדיר את ה-agent ו-Anthropic מריצה אותו בתשתית שלה.
- Environment מוכן: Python, Node.js, Go pre-installed; network access לפי הגדרה
- Built-in tools: Bash, קריאת קבצים, חיפוש ברשת, בלי לכתוב execute_tool בעצמך
- מחיר: $0.08 לשעת session + עלות טוקנים רגילה
- Persistent Memory (beta, 23.4.2026): זיכרון מתמיד בין sessions, memories נשמרות כקבצים, ניתן לייצא ולנהל
מתי לא להשתמש ב-Managed Agents? כשאתה צריך שליטה מלאה על הלוגיקה, כלים מותאמים אישית, או כשה-$0.08/שעה יוצר עלות גבוהה מדי בנפח גדול.
בטיחות ושליטה, חמישה כללי ברזל
Anthropic מציינת שהאוטונומיות שהופכת agents לשימושיים יוצרת גם סיכונים חדשים. שני הכשלים הנפוצים שאנחנו רואים בקהילה:
- חוסר קריטריוני הצלחה: agent לא יודע מתי לעצור. הוא ממשיך לרוץ, צובר עלויות, ולפעמים מבצע פעולות מיותרות. פתרון: הגדר stop condition ברורה ב-system prompt.
- שגיאות מסתכמות (error propagation): אם agent אחד מייצר output שגוי ואחרים בונים עליו, הטעות מסלימה לפני שמישהו שם לב. פתרון: validation בין שלבים בכל Pipeline.
חמשת כללי הברזל לכל agent בפרודקשן:
- הגבל כלים: תן רק read access אם write לא נדרש
- max_turns חובה: בלי תקרה, agent יכול להיתקע בלולאה ולצבור עלויות
- Human-in-the-loop לפעולות הרסניות: מחיקה, שליחת מייל, deploy, אישור אנושי חובה
- Sandbox: הרץ commands ב-Docker או container מבודד
- Logging: שמור כל tool call עם input ו-output, בלי logs לא ניתן לדבג
def safe_tool(name, input_data, dangerous=["run_command", "delete_file", "send_email"]):
# לוג כל קריאה
log({"tool": name, "input": input_data, "ts": now()})
# אישור אנושי לפעולות רגישות
if name in dangerous:
print(f"Agent רוצה לבצע: {name}({input_data})")
if input("אשר? (y/n): ").lower() != "y":
return "Action denied by user"
return execute_tool(name, input_data)
השיעור הבא: שליטה ב-Claude API, Streaming, Tool Use ו-Prompt Caching
Agents הם השכבה העליונה, השכבה התחתונה היא ה-API עצמו. בשיעור הסיום תשלוט בשלוש טכניקות ה-production שהופכות דמו למוצר אמיתי: Streaming שמעביר תשובות מילה-מילה, Prompt Caching שחוסך עד 90% מעלויות ה-input, ו-Tool Use שמחבר את כל החלקים לכלי עבודה שלם.
⏱️ 50 דקות · 🎯 FastAPI endpoint עם SSE streaming, prompt caching ו-tool use loop עובד
