11 בניית מיומנויות

AutoGen, Mastra ו-Emerging Frameworks -- שאר הנוף

בפרקים 5-10 צללתם לעומק לתוך 6 ה-SDKs הגדולים. אבל השוק לא נגמר שם -- יש עוד frameworks חשובים שצריך להכיר, גם אם הם לא ה-primary שלכם. בפרק הזה תכירו את Microsoft Agent Framework (המיזוג של AutoGen + Semantic Kernel), את AG2 (ה-fork הקהילתי של AutoGen עם interoperability חסר תקדים), את Mastra (TypeScript-native full-stack framework שמשמש את PayPal ו-Adobe), את Pydantic AI (type-safe Python agents), ואת Smolagents (גישה מינימליסטית מ-Hugging Face). תבנו סוכנים עם כל אחד מהם, תשוו ביניהם בטבלה מקיפה, ותקבלו Decision Tree ו-Selection Matrix שיעזרו לכם לבחור את ה-SDK הנכון לכל פרויקט, צוות וארגון.

מה יהיה לך בסוף הפרק הזה
מה תוכלו לעשות אחרי הפרק הזה
לפני שמתחילים
הפרויקט שלך -- קו אדום לאורך הקורס

בפרקים 5-10 בניתם סוכנים עם Claude Agent SDK, Vercel AI SDK, OpenAI Agents SDK, LangGraph, CrewAI ו-Google ADK. עכשיו אתם מרחיבים את הנוף -- מכירים 5 frameworks נוספים שאולי מתאימים יותר לצוות שלכם, ל-tech stack שלכם, או ל-use case ספציפי. בפרק הזה אין "את ה-SDK שלנו" -- אלא מפה שלמה של כל האפשרויות. אחרי הפרק הזה תהיו מוכנים לפרק 12 -- השוואת SDKs מלאה עם scorecards ו-decision matrices מעמיקות.

מילון מונחים -- פרק 11
מונח (English) עברית הסבר
Microsoft Agent Framework פריימוורק סוכנים של מייקרוסופט התוצאה של מיזוג AutoGen (מחקר) + Semantic Kernel (ארגוני) לפריימוורק אחיד. Release Candidate ב-2026. Python + .NET/C#
AutoGen אוטוג'ן פרויקט מחקרי של Microsoft Research לשיחות multi-agent. מוזג לתוך Microsoft Agent Framework. הקהילה המשיכה עם AG2
Semantic Kernel ליבה סמנטית SDK ארגוני של Microsoft ל-AI orchestration. מוזג עם AutoGen ל-Microsoft Agent Framework. תמיכה ב-Python, .NET, Java
AG2 אי-ג'י-2 Fork קהילתי של AutoGen. Apache 2.0, community-governed. USP: Universal Framework Interoperability -- סוכנים מ-frameworks שונים באותו צוות
Mastra מסטרה TypeScript-native full-stack agent framework. v1.0 ינואר 2026, YC W25. Built-in auth, storage, workflows. 19.4K GitHub stars
Pydantic AI פיידנטיק AI Framework ל-type-safe Python agents מיוצר Pydantic (Samuel Colvin). Durable execution, MCP + A2A, Logfire observability
Smolagents סמולאג'נטס Agent framework מינימליסטי מ-Hugging Face. ~1,000 שורות קוד. CodeAgent שכותב Python במקום JSON tool calls
CodeAgent סוכן קוד גישה של Smolagents שבה הסוכן כותב קוד Python כדי להפעיל tools -- במקום JSON schema. Composable ו-natural
MemoryStream זרם זיכרון Pub/sub event bus ב-AG2 שמאפשר concurrent state isolation. כל סוכן מקבל ומפרסם events -- בלי race conditions
Durable Execution הרצה עמידה היכולת של agent לשרוד crashes, restarts, ו-API failures. Pydantic AI ו-Microsoft Agent Framework תומכים ב-durable agents
Framework Interoperability יכולת פעולה הדדית בין פריימוורקים היכולת לחבר סוכנים שנבנו ב-frameworks שונים באותה מערכת. AG2 מוביל בתחום עם Universal Interop
RBAC בקרת גישה מבוססת תפקידים Role-Based Access Control. Mastra כוללת RBAC מובנית -- שליטה מי יכול לעשות מה בתוך ה-agent system
Logfire לוגפייר פלטפורמת observability של Pydantic. אינטגרציה native עם Pydantic AI ל-tracing, monitoring, ו-debugging
AgentFSFilesystem מערכת קבצים של סוכן פיצ'ר של Mastra שמאפשר persistent file storage לסוכנים -- מבוסס Turso/SQLite. הסוכן יכול לקרוא ולכתוב קבצים

סקירה -- למה צריך להכיר את כל הנוף

beginner15 דקותconcept

בפרקים 5-10 עשיתם deep dive לתוך 6 SDKs מרכזיים: Claude Agent SDK, Vercel AI SDK, OpenAI Agents SDK, LangGraph, CrewAI, ו-Google ADK. זה כיסה את הליבה -- אבל השוק של agent frameworks גדול הרבה יותר.

למה זה חשוב? כי הבחירה הנכונה ב-SDK תלויה בהקשר שלכם:

המספרים -- מרץ 2026
FrameworkGitHub StarsLicenseLanguagesRelease Status
Microsoft Agent Framework~35K (combined)MITPython, .NET/C#Release Candidate
AG2~5KApache 2.0PythonStable
Mastra19.4KMITTypeScriptv1.0 (Jan 2026)
Pydantic AI15.1KMITPythonStable
Smolagents~3KApache 2.0PythonStable

הפרק הזה מכסה את כל חמשת ה-frameworks האלה -- עם קוד לדוגמה, use cases ספציפיים, ו-decision tree שיעזור לכם לבחור. בסוף הפרק תהיה לכם מפה שלמה של שוק ה-agent SDKs ב-2026.

עשו עכשיו 5 דקות

פתחו טרמינל ובדקו אם כבר יש לכם את הכלים מותקנים. הריצו:

# Python frameworks
pip list | grep -iE "autogen|ag2|pydantic-ai|smolagents|semantic-kernel"

# TypeScript frameworks
npm list -g | grep mastra

אם שום דבר לא מותקן -- זה בסדר. נתקין כל framework כשנגיע אליו. הנקודה היא לדעת מאיפה אתם מתחילים.

Microsoft Agent Framework -- AutoGen + Semantic Kernel

intermediate30 דקותpractice

הסיפור: מיזוג שני עולמות

עד 2025, ל-Microsoft היו שני frameworks נפרדים לבניית סוכני AI:

ב-2026, Microsoft מיזגה את שניהם ל-Microsoft Agent Framework. זה לא rebranding -- זה rebuild אמיתי שלוקח את הטוב משני העולמות:

מ-AutoGenמ-Semantic Kernelחדש במיזוג
Multi-agent conversations Enterprise orchestration Graph-based workflow engine
Research-grade flexibility .NET/C# first-class Cross-language interop (Python + .NET)
Group chat patterns Microsoft 365 integration Durable Agents
Sandbox execution Vector DB connectors A2A protocol support

למי זה מתאים?

Microsoft Agent Framework הוא ה-SDK היחיד עם first-class .NET/C# support. אם הארגון שלכם רץ על .NET ו-Azure -- זה הבחירה הטבעית. אבל יש עוד סיבות:

מצב Release Candidate

נכון למרץ 2026, Microsoft Agent Framework נמצא ב-Release Candidate -- לא GA. זה אומר שה-API עשוי להשתנות. לפרודקשן קריטי, שקלו לחכות ל-GA או להשתמש ב-version pinning צמוד. לפרויקטים חדשים ו-POCs -- זה בהחלט מוכן לשימוש.

Key Features

קוד לדוגמה -- סוכן ראשון עם Microsoft Agent Framework (Python)

Microsoft Agent Framework -- Basic Agent
# pip install semantic-kernel  (Microsoft Agent Framework Python package)
import asyncio
from semantic_kernel import Kernel
from semantic_kernel.agents import ChatCompletionAgent
from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion
from semantic_kernel.contents import ChatHistory

async def main():
    # 1. Create kernel -- the orchestration core
    kernel = Kernel()

    # 2. Add AI service (Azure OpenAI or direct OpenAI)
    kernel.add_service(
        AzureChatCompletion(
            deployment_name="gpt-4o",
            endpoint="https://your-resource.openai.azure.com/",
            api_key="your-azure-key"
        )
    )

    # 3. Create agent
    agent = ChatCompletionAgent(
        kernel=kernel,
        name="ResearchAssistant",
        instructions="""You are a research assistant.
        Analyze topics thoroughly and provide structured answers.
        Always cite sources when possible."""
    )

    # 4. Create chat history and run
    history = ChatHistory()
    history.add_user_message("What are the key trends in AI agents for 2026?")

    async for message in agent.invoke(history):
        print(f"{message.name}: {message.content}")

asyncio.run(main())

קוד לדוגמה -- Multi-Agent Group Chat

Microsoft Agent Framework -- Group Chat
from semantic_kernel.agents import AgentGroupChat
from semantic_kernel.agents.strategies import (
    SequentialSelectionStrategy,
    DefaultTerminationStrategy
)

async def group_chat_example():
    kernel = Kernel()
    # ... add AI service ...

    # Create specialized agents
    analyst = ChatCompletionAgent(
        kernel=kernel,
        name="Analyst",
        instructions="You analyze data and identify patterns."
    )

    writer = ChatCompletionAgent(
        kernel=kernel,
        name="Writer",
        instructions="You take analysis and write clear reports."
    )

    reviewer = ChatCompletionAgent(
        kernel=kernel,
        name="Reviewer",
        instructions="You review reports for accuracy and clarity."
    )

    # Create group chat with sequential strategy
    chat = AgentGroupChat(
        agents=[analyst, writer, reviewer],
        selection_strategy=SequentialSelectionStrategy(),
        termination_strategy=DefaultTerminationStrategy(
            maximum_iterations=6
        )
    )

    # Run the group chat
    await chat.add_chat_message("Analyze the impact of AI agents on marketing")

    async for message in chat.invoke():
        print(f"[{message.name}]: {message.content[:200]}...")

Adding Tools (Plugins)

Microsoft Agent Framework -- Custom Plugin
from semantic_kernel.functions import kernel_function

class WebSearchPlugin:
    """Plugin for web search capabilities."""

    @kernel_function(
        name="search_web",
        description="Search the web for current information on a topic"
    )
    def search_web(self, query: str) -> str:
        # Your search implementation here
        return f"Search results for: {query}"

    @kernel_function(
        name="get_page_content",
        description="Get the content of a specific web page"
    )
    def get_page_content(self, url: str) -> str:
        # Your page fetching implementation here
        return f"Content from: {url}"

# Add plugin to kernel
kernel.add_plugin(WebSearchPlugin(), plugin_name="web")

# The agent can now use search_web and get_page_content tools
עשו עכשיו 15 דקות

התקינו את Microsoft Agent Framework וצרו סוכן בסיסי:

pip install semantic-kernel

צרו קובץ ms_agent.py, העתיקו את הקוד הראשון מלמעלה, והחליפו ל-OpenAI ישיר (בלי Azure) אם אין לכם Azure account:

from semantic_kernel.connectors.ai.open_ai import OpenAIChatCompletion

kernel.add_service(
    OpenAIChatCompletion(
        ai_model_id="gpt-4o",
        api_key="your-openai-key"
    )
)

הריצו ובדקו שהסוכן מגיב. זה ה-foundation שעליו נבנה את שאר הדוגמאות.

AG2 -- ה-Fork הקהילתי של AutoGen

intermediate25 דקותpractice

הסיפור: כשהקהילה לוקחת פיקוד

כש-Microsoft החליטה למזג את AutoGen עם Semantic Kernel, קבוצת מפתחים מהקהילה החליטה ש-AutoGen המקורי שווה שימור. הם עשו fork, שינו את השם ל-AG2 (AutoGen 2), ובנו אותו מחדש מאפס עם כמה עקרונות ברורים:

זו נקודה שלרוב מתעלמים ממנה: מה קורה כשצריך לשלב סוכנים שנבנו ב-frameworks שונים? בעולם אמיתי, צוות אחד בנה עם LangGraph, צוות שני עם Google ADK, וצוות שלישי עם Claude SDK. AG2 מאפשר לחבר את כולם.

Key Features

קוד לדוגמה -- AG2 Basic Agent

AG2 -- Conversable Agent
# pip install ag2
from ag2 import ConversableAgent, config_list_from_json

# Load LLM config
config_list = config_list_from_json("OAI_CONFIG_LIST")

# Create an assistant agent
assistant = ConversableAgent(
    name="research_assistant",
    system_message="""You are a helpful research assistant.
    When asked to research a topic, break it down into subtopics,
    find key facts, and present a structured summary.""",
    llm_config={"config_list": config_list},
)

# Create a user proxy agent (represents the human)
user_proxy = ConversableAgent(
    name="user",
    human_input_mode="NEVER",  # Automatic mode
    max_consecutive_auto_reply=3,
    code_execution_config=False,
)

# Start conversation
result = user_proxy.initiate_chat(
    assistant,
    message="Research the current state of AI agent frameworks in 2026"
)

print(result.summary)

קוד לדוגמה -- Universal Framework Interoperability

AG2 -- Mixing Frameworks
from ag2 import ConversableAgent
from ag2.interop import GoogleADKAdapter, OpenAIAdapter

# Wrap a Google ADK agent
adk_agent = GoogleADKAdapter(
    adk_agent=your_existing_adk_agent,
    name="google_specialist"
)

# Wrap an OpenAI agent
openai_agent = OpenAIAdapter(
    openai_agent=your_existing_openai_agent,
    name="openai_specialist"
)

# Native AG2 agent
ag2_coordinator = ConversableAgent(
    name="coordinator",
    system_message="You coordinate between specialist agents.",
    llm_config={"config_list": config_list},
)

# All three can now talk to each other!
# AG2, Google ADK, and OpenAI agents in one conversation
result = ag2_coordinator.initiate_chat(
    adk_agent,
    message="Analyze this data using your multimodal capabilities"
)
עשו עכשיו 15 דקות

התקינו AG2 ובנו שיחה פשוטה בין שני סוכנים:

pip install ag2

צרו קובץ ag2_chat.py עם assistant ו-user_proxy מהדוגמה למעלה. שנו את ה-human_input_mode ל-"TERMINATE" -- כך הסוכן ישאל אתכם לפני שממשיך. שימו לב לדפוס: ב-AG2, כל אינטראקציה היא שיחה בין סוכנים -- גם האינטראקציה עם המשתמש.

Mastra -- TypeScript-Native Full-Stack Agents

intermediate30 דקותpractice

הפרשנות: אם Vercel AI SDK הוא library, Mastra הוא framework

בפרק 6 למדתם את Vercel AI SDK -- ספריית TypeScript מצוינת לבניית סוכנים. אבל Vercel AI SDK הוא library: הוא נותן לכם primitives (generateText, streamText, tools) ומשאיר לכם לבנות את ה-auth, storage, workflows, ו-deployment.

Mastra הוא framework -- batteries included:

יכולתVercel AI SDKMastra
AI primitives (generate, stream, tools)כן -- מצויןכן -- 40+ providers
Auth & RBACBYO (Build Your Own)Built-in
Persistent storageBYOAgentFSFilesystem (Turso/SQLite)
WorkflowsVia Vercel infrastructureBuilt-in with path tracking
Concurrent snapshotsManualBuilt-in, concurrent-safe
DeploymentVercel (best), anyAny (self-hosted, cloud)

מי משתמש ב-Mastra?

PayPal, Adobe, Elastic, Docker. 19.4K GitHub stars, 300K+ weekly npm downloads. Built by the ex-Gatsby team (YC W25). זה לא toy project -- זה framework שחברות Fortune 500 משתמשות בו בפרודקשן.

Key Features

קוד לדוגמה -- Mastra Agent

Mastra -- Full-Stack Agent
// npm install mastra @mastra/core
import { Agent, createTool } from "@mastra/core";
import { z } from "zod";

// Define a tool with Zod schema
const searchTool = createTool({
  id: "search",
  description: "Search for information on the web",
  inputSchema: z.object({
    query: z.string().describe("The search query"),
    maxResults: z.number().default(5).describe("Max results to return"),
  }),
  execute: async ({ context }) => {
    // Your search implementation
    const results = await performSearch(context.query, context.maxResults);
    return { results };
  },
});

// Create an agent
const researchAgent = new Agent({
  name: "Research Agent",
  instructions: `You are a research agent that helps users find information.
    Use the search tool to find relevant data, then summarize your findings.
    Always provide sources.`,
  model: {
    provider: "ANTHROPIC",
    name: "claude-sonnet-4-5-20250514",
  },
  tools: { search: searchTool },
});

// Run the agent
const response = await researchAgent.generate(
  "What are the latest trends in AI agents?"
);
console.log(response.text);

קוד לדוגמה -- Mastra Workflows

Mastra -- Workflow with Steps
import { Workflow, Step } from "@mastra/core";
import { z } from "zod";

const researchWorkflow = new Workflow({
  name: "research-pipeline",
  triggerSchema: z.object({
    topic: z.string(),
    depth: z.enum(["shallow", "deep"]).default("shallow"),
  }),
});

// Step 1: Search
const searchStep = new Step({
  id: "search",
  execute: async ({ context }) => {
    const results = await searchTool.execute({
      context: { query: context.triggerData.topic, maxResults: 10 }
    });
    return { searchResults: results };
  },
});

// Step 2: Analyze with agent
const analyzeStep = new Step({
  id: "analyze",
  execute: async ({ context }) => {
    const response = await researchAgent.generate(
      `Analyze these search results: ${JSON.stringify(context.searchResults)}`
    );
    return { analysis: response.text };
  },
});

// Step 3: Generate report
const reportStep = new Step({
  id: "report",
  execute: async ({ context }) => {
    const response = await researchAgent.generate(
      `Write a structured report based on: ${context.analysis}`
    );
    return { report: response.text };
  },
});

// Connect steps
researchWorkflow
  .step(searchStep)
  .then(analyzeStep)
  .then(reportStep)
  .commit();

// Run workflow
const result = await researchWorkflow.execute({
  triggerData: { topic: "AI agents in marketing", depth: "deep" }
});
עשו עכשיו 15 דקות

אם אתם TypeScript developers, התקינו Mastra ובנו סוכן בסיסי:

npm install mastra @mastra/core

צרו קובץ mastra-agent.ts, העתיקו את הדוגמה הראשונה, והחליפו את ה-model ל-provider ו-key שיש לכם. שימו לב לדפוס: Mastra משתמש ב-Zod schemas ל-tool inputs -- בדיוק כמו Vercel AI SDK. אם כבר עבדתם עם Vercel AI SDK, המעבר ל-Mastra יהיה מהיר.

Pydantic AI -- Type-Safe Python Agents

intermediate25 דקותpractice

הפילוסופיה: אם אתם אוהבים Pydantic, תאהבו את זה

Pydantic הוא ה-data validation library הכי פופולרי ב-Python. הוא בבסיס של FastAPI, LangChain, ו-90%+ מהפרויקטים הרציניים ב-Python. Pydantic AI מביא את אותה פילוסופיה -- type safety, validation, clear errors -- לעולם ה-agents.

למה type safety חשוב לסוכנים? כי סוכנים נכשלים בדרכים מפתיעות:

Pydantic AI תופס את כל השגיאות האלה בזמן פיתוח -- לא בפרודקשן.

Key Features

קוד לדוגמה -- Pydantic AI Agent

Pydantic AI -- Type-Safe Agent
# pip install pydantic-ai
from pydantic_ai import Agent
from pydantic import BaseModel

# Define structured output
class ResearchReport(BaseModel):
    title: str
    summary: str
    key_findings: list[str]
    confidence: float  # 0.0 to 1.0
    sources: list[str]

# Create agent with typed output
research_agent = Agent(
    "anthropic:claude-sonnet-4-5-20250514",
    result_type=ResearchReport,  # Enforced output type!
    system_prompt="""You are a research agent.
    Always provide structured research reports with
    clear findings, confidence levels, and sources.""",
)

# Run -- result is guaranteed to be ResearchReport
result = research_agent.run_sync(
    "Research the impact of AI agents on digital marketing in 2026"
)

# Type-safe access -- IDE autocomplete works!
print(f"Title: {result.data.title}")
print(f"Confidence: {result.data.confidence:.0%}")
for finding in result.data.key_findings:
    print(f"  - {finding}")

קוד לדוגמה -- Pydantic AI with Tools and Dependencies

Pydantic AI -- Tools with Dependency Injection
from pydantic_ai import Agent, RunContext
from dataclasses import dataclass
import httpx

# Define dependencies -- injected at runtime
@dataclass
class SearchDeps:
    api_key: str
    http_client: httpx.AsyncClient
    max_results: int = 10

# Create agent with dependency type
search_agent = Agent(
    "openai:gpt-4o",
    deps_type=SearchDeps,  # Type-safe dependencies!
    system_prompt="You search the web and summarize findings.",
)

# Define typed tool
@search_agent.tool
async def search_web(
    ctx: RunContext[SearchDeps],  # Type-safe context!
    query: str,
    num_results: int = 5
) -> str:
    """Search the web for information."""
    # ctx.deps is typed as SearchDeps -- autocomplete works!
    response = await ctx.deps.http_client.get(
        "https://api.search.com/search",
        params={"q": query, "n": min(num_results, ctx.deps.max_results)},
        headers={"Authorization": f"Bearer {ctx.deps.api_key}"}
    )
    return response.text

# Run with injected dependencies
async with httpx.AsyncClient() as client:
    deps = SearchDeps(api_key="your-key", http_client=client)
    result = await search_agent.run(
        "Find recent news about AI agents",
        deps=deps
    )
    print(result.data)
עשו עכשיו 10 דקות

התקינו Pydantic AI וצרו סוכן עם typed output:

pip install pydantic-ai

צרו pydantic_agent.py עם הדוגמה הראשונה. שימו לב: כש-result_type מוגדר, הסוכן מחזיר תמיד את ה-type הזה. נסו לשנות את ה-ResearchReport -- הוסיפו שדה, שנו type, מחקו שדה required -- וראו מה קורה. הנקודה: Pydantic AI תופס שגיאות מבניות בזמן ריצה ומחזיר שגיאה ברורה -- לא תוצאה שבורה.

Smolagents -- Minimal Agents מ-Hugging Face

intermediate20 דקותpractice

הפילוסופיה: פחות קוד, יותר שקיפות

Smolagents הוא ההפך מ-enterprise framework. בעוד Microsoft Agent Framework ו-LangGraph מציעים אלפי שורות קוד עם abstractions מורכבים, Smolagents הוא ~1,000 שורות של core code. ה-source code קריא כולו ביום אחד.

אבל הייחוד האמיתי הוא CodeAgent:

Traditional Tool CallingCodeAgent (Smolagents)
LLM מחזיר JSON: {"tool": "search", "query": "..."} LLM כותב Python: results = search("...")
Framework מפרסר את ה-JSON ומריץ Python code רץ ב-sandbox
קשה לשלב תוצאות מכמה tools Composable: summary = summarize(search("..."))
מוגבל ל-tool calling format כל Python code אפשרי (loops, conditions, variables)

Key Features

קוד לדוגמה -- Smolagents CodeAgent

Smolagents -- CodeAgent
# pip install smolagents
from smolagents import CodeAgent, tool, HfApiModel

# Define a tool
@tool
def get_weather(city: str) -> str:
    """Get the current weather for a city.

    Args:
        city: The city name to check weather for.
    """
    # Your weather API call here
    return f"Weather in {city}: 22°C, sunny"

@tool
def translate(text: str, target_language: str) -> str:
    """Translate text to a target language.

    Args:
        text: The text to translate.
        target_language: The target language code (e.g., 'he', 'en', 'fr').
    """
    # Your translation API call here
    return f"[Translated to {target_language}]: {text}"

# Create CodeAgent -- it writes Python to use tools!
agent = CodeAgent(
    tools=[get_weather, translate],
    model=HfApiModel("Qwen/Qwen2.5-72B-Instruct"),
    # Or use OpenAI/Anthropic:
    # model=OpenAIServerModel("gpt-4o")
)

# Run -- the agent will write Python code like:
# weather = get_weather("Tel Aviv")
# translated = translate(weather, "he")
result = agent.run(
    "What's the weather in Tel Aviv? Translate the answer to Hebrew."
)
print(result)

מה הסוכן באמת עושה?

כשאתם מריצים את ה-CodeAgent, הוא כותב קוד Python אמיתי. בדוגמה למעלה, ה-LLM יחזיר משהו כזה:

Output של CodeAgent -- Python Code שה-LLM כתב
# Code generated by the LLM:
weather_info = get_weather("Tel Aviv")
print(f"Original: {weather_info}")

translated = translate(weather_info, "he")
print(f"Hebrew: {translated}")

final_answer(translated)

שימו לב: הסוכן לא החזיר JSON tool call -- הוא כתב תוכנית Python שמשתמשת ב-tools כפונקציות רגילות. זו ה-paradigm shift של CodeAgent.

Security: הקוד רץ ב-Sandbox

CodeAgent מריץ קוד שה-LLM כתב. זה נשמע מסוכן? כי זה יכול להיות מסוכן. Smolagents מספק sandboxed execution environments: Modal, E2B, או Docker. לעולם אל תריצו CodeAgent על הקוד שלכם בלי sandbox בפרודקשן. ב-development -- הסיכון נמוך, אבל היו מודעים.

עשו עכשיו 10 דקות

התקינו Smolagents ונסו CodeAgent:

pip install smolagents

העתיקו את הדוגמה ושנו ל-model שיש לכם (OpenAI, Anthropic, או HF model). הריצו ובדקו את ה-generated code שה-LLM יצר. שאלו את עצמכם: האם CodeAgent מתאים ל-use case שלי, או שאני מעדיף traditional tool calling?

טבלת השוואה מלאה -- כל 11 ה-SDKs

beginner15 דקותconcept

אחרי 10 פרקים של deep dives, הנה הטבלה המלאה. זו טבלת ההשוואה הכי מקיפה שתמצאו -- כל 11 ה-SDKs, כל feature חשוב:

Complete SDK Comparison Table -- March 2026
Feature Claude SDK Vercel v6 OpenAI SDK Google ADK LangGraph CrewAI MS Agent FW AG2 Mastra Pydantic AI Smolagents
Languages Python, TS TypeScript Python, TS Py, TS, Java, Go Python, TS Python Python, .NET Python TypeScript Python Python
License Proprietary Apache 2.0 MIT Apache 2.0 MIT OSS+Commercial MIT Apache 2.0 MIT MIT Apache 2.0
MCP Support Native (deep) Native Native Yes Yes Yes Yes Yes Yes Yes Yes
A2A Support -- -- -- Native -- -- Yes Yes -- Yes --
Multi-Agent Handoffs Via loops Handoffs Workflow agents Graph nodes Crews Graph + Chat Conversations Workflows Multi-agent ManagedAgent
Streaming Yes First-class Yes Yes Native Limited Yes Event-driven Yes Event-based Yes
Human-in-Loop Hooks needsApproval Yes Yes Any node Yes Yes Yes Yes Yes Yes
Durable Exec -- Via Vercel -- Via Vertex Checkpoints Limited Durable Agents -- Snapshots Yes (native) --
Tracing Hooks DevTools Built-in Vertex AI LangSmith Platform OpenTelemetry OpenTelemetry Built-in Logfire Logging
Structured Output Yes Yes (Zod) Yes Yes Yes Yes Yes Yes Yes (Zod) Yes (Pydantic) Yes
Best For Code & security Full-stack TS GPT/voice Multimodal/GCP Complex flows Fast teams .NET enterprise FW interop TS full-stack Type-safe Py Minimal/research
עשו עכשיו 5 דקות

הסתכלו על הטבלה וענו לעצמכם על שלוש שאלות:

  1. איזה SDK הכי מתאים ל-tech stack שלכם (שפה, cloud provider)?
  2. איזה SDK הכי מתאים ל-use case שאתם רוצים לבנות (multi-agent? durable? voice?)?
  3. האם התשובות ל-1 ו-2 חופפות? אם לא -- מה עדיף?

רשמו את התשובות. נחזור אליהן ב-Decision Tree.

SDK Selection Decision Tree

beginner15 דקותconcept
Framework: SDK Selection Decision Tree

השתמשו בעץ ההחלטות הזה כדי לבחור SDK. התחילו מהשפה שלכם, המשיכו ל-use case:

TypeScript / JavaScript?

Python?

C# / .NET?

Java / Go?

כלל אצבע: אם שתי אופציות נראות שוות -- לכו על זו עם ה-community הגדולה יותר ו-documentation טובה יותר. בטווח הארוך, אקוסיסטם חזק שווה יותר מ-features.

בחירה לפי גודל צוות וארגון

beginner10 דקותconcept
Framework: SDK Selection by Team Size

Solo developer / Hackathon

מומלץ: CrewAI או Smolagents

Small Startup (2-10 devs)

מומלץ: Vercel AI SDK v6 (TS) או OpenAI SDK (Python)

Mid-size Team (10-50 devs)

מומלץ: LangGraph

Enterprise (50+ devs)

מומלץ: LangGraph או Microsoft Agent Framework

עשו עכשיו 5 דקות

בהתבסס על ה-Decision Tree וה-Team Size guide:

  1. מה גודל הצוות שלכם?
  2. מה ה-tech stack (שפה + cloud)?
  3. מה ה-top 2 SDKs שמתאימים לכם?

רשמו את הבחירה שלכם. בפרק 12 נעשה deep comparison עם scorecards מלאים.

beginner15 דקותconcept

שוק ה-agent SDKs משתנה מהר. אבל יש מגמות ברורות שמשפיעות על כל הבחירות:

מגמה 1: Graph-Based Orchestration הופך לסטנדרט

LangGraph הוביל את המגמה, ועכשיו כולם מתכנסים על graphs:

מה זה אומר עבורכם: למדו "לחשוב בגרפים" -- nodes, edges, conditional routing. זה הדפוס שישלוט ב-2026-2027.

מגמה 2: MCP + A2A כ-Open Standards

שני הפרוטוקולים עברו ל-Linux Foundation -- ה-organization שמנהל את Linux, Kubernetes, ו-Node.js:

מה זה אומר עבורכם: בנו tools כ-MCP servers -- הם יעבדו עם כל SDK. זו ההשקעה הכי בטוחה שתוכלו לעשות.

מגמה 3: TypeScript הופך ל-First-Class Citizen

עד 2025, רוב ה-agent SDKs היו Python-first. ב-2026 המצב השתנה:

מה זה אומר עבורכם: TypeScript כבר לא "האופציה השנייה". אם אתם TypeScript devs -- יש לכם ecosystem מלא.

מגמה 4: Durable Execution הופך ל-Table Stakes

Agents שרצים 10+ דקות חייבים לשרוד crashes. מי שכבר תומך:

מה זה אומר עבורכם: אם הסוכנים שלכם רצים יותר מדקה -- durable execution הוא must-have, לא nice-to-have.

מגמה 5: Consolidation -- השוק מתאחד

Microsoft מיזגה AutoGen + Semantic Kernel. LangChain ו-LangGraph מתקרבים. זה לא מקרי -- שוק עם 11 SDKs לא יישאר כך. תוך 18 חודשים צפו:

מה זה אומר עבורכם: הימרו על open standards (MCP, A2A) ו-frameworks עם community חזקה. אם framework קטן ייעלם -- ה-tools שלכם (MCP servers) ימשיכו לעבוד.

Summary: The Convergence Map
TrendStatus March 2026Prediction 2027Your Action
Graph-based orchestration 4/11 SDKs adopted 8/11+ will adopt Learn graph thinking
MCP standard 11/11 SDKs support Universal Build tools as MCP servers
A2A standard 4/11 SDKs support 8/11+ will support Design for inter-agent comm
TypeScript first-class 6/11 SDKs have TS 9/11+ will have TS TS is viable for agents
Durable execution 5/11 SDKs support Standard feature Add persistence from day 1
Market consolidation 11 SDKs active 6-7 will remain Bet on open standards

הקשר ישראלי -- SDKs באקוסיסטם הישראלי

beginner10 דקותconcept

האקוסיסטם הישראלי של AI agents מתפתח מהר. הנה מה שרלוונטי:

סטארטאפים ישראליים

ארגונים גדולים

Community ישראלי

עשו עכשיו 5 דקות

בדקו אם יש AI Agent meetup בתל אביב או בעיר שלכם ב-meetup.com. חפשו "AI Agents Israel", "LLM Israel", או "GenAI Israel". הצטרפו לקבוצה אחת לפחות -- רשת קשרים בתחום שווה יותר מכל tutorial.

טעויות נפוצות -- ואיך להימנע מהן

beginner10 דקותconcept
טעות 1: בחירת SDK לפי Hype ולא לפי Fit

מה קורה: "Mastra קיבלה 19K stars! בואו נעבור אליה!" -- בלי לבדוק אם היא מתאימה ל-tech stack.

למה זה בעיה: GitHub stars לא שווים production readiness. AG2 עם 5K stars יכול להיות מתאים יותר מ-Mastra עם 19K -- אם אתם Python team.

הפתרון: השתמשו ב-Decision Tree מלמעלה. התחילו מהשפה שלכם, המשיכו ל-use case. Stars הם tiebreaker, לא primary criterion.

טעות 2: לנסות ללמוד את כל 11 ה-SDKs

מה קורה: מפתח שמנסה להיות "expert" בכל SDK ומבלה שבועות על tutorials.

למה זה בעיה: זמן מוגבל. Mastery ב-SDK אחד שווה יותר מ-familiarity ב-11.

הפתרון: בחרו 2 SDKs מרכזיים (primary + backup). הכירו את השאר ברמה של "אני יודע מה זה עושה ומתי לשקול את זה". זה בדיוק מה שהפרק הזה נותן לכם.

טעות 3: להתעלם מ-Vendor Lock-in

מה קורה: בוחרים SDK ש-tightly coupled ל-provider אחד (למשל Google ADK עם Gemini בלבד, או Microsoft Agent Framework עם Azure בלבד).

למה זה בעיה: מודלים משתפרים ומוזלים כל הזמן. אם אתם locked-in ל-provider אחד, אתם לא יכולים לרכב על הגל.

הפתרון: הפרידו את ה-SDK layer מה-LLM layer. SDKs כמו LangGraph, AG2, Pydantic AI, ו-Mastra תומכים ב-multi-provider -- אתם יכולים להחליף model בלי לשנות קוד.

טעות 4: להתעלם מ-MCP ולבנות tools כ-native-only

מה קורה: כל tool מוגדר כ-native function ב-SDK ספציפי.

למה זה בעיה: אם מחליפים SDK -- צריך לכתוב את כל ה-tools מחדש. אם צוות אחר משתמש ב-SDK אחר -- הם לא יכולים להשתמש ב-tools שלכם.

הפתרון: בנו tools חשובים כ-MCP servers. כל 11 ה-SDKs תומכים ב-MCP. זו ההשקעה הכי portable שתעשו.

טעות 5: SDK חדש בפרודקשן קריטי

מה קורה: לוקחים SDK שיצא לפני 3 חודשים ופורסים אותו למערכת קריטית.

למה זה בעיה: SDKs חדשים מלאים ב-breaking changes, bugs לא מתועדים, ו-API instability. Microsoft Agent Framework עדיין ב-RC. Mastra יצאה v1.0 רק בינואר 2026.

הפתרון: לפרודקשן קריטי -- השתמשו ב-SDKs mature: LangGraph (v1.0, battle-tested), OpenAI SDK (backed by OpenAI), Claude SDK. ל-POCs ופרויקטים פנימיים -- נסו את החדשים.

שגרת עבודה -- פרק 11
תדירותמשימהזמן
שבועיבדקו GitHub releases של ה-2 SDKs שבחרתם -- breaking changes? features חדשים?5 דק'
שבועיסקרו את ה-changelog של MCP ו-A2A protocols -- עדכונים חדשים?5 דק'
חודשיבדקו Hacker News / Reddit / Twitter ל-SDK announcements -- framework חדש? מיזוג?15 דק'
חודשינסו feature חדש מ-SDK שאתם לא משתמשים בו -- הרחבת אופקים30 דק'
רבעוניRe-evaluate: האם ה-SDK שבחרתם עדיין הנכון? האם השוק השתנה?30 דק'
רבעוניבדקו אם יש frameworks חדשים שכדאי להכיר -- השוק זזה מהר20 דק'
אם אתם עושים רק דבר אחד מהפרק הזה 15 דקות

בנו את אותו סוכן פשוט (שאלות ותשובות + כלי אחד) ב-שני SDKs שונים. קחו את ה-SDK שאתם כבר מכירים (מפרקים 5-10) ואת אחד מהפרק הזה (Mastra אם אתם TS, Pydantic AI אם אתם Python). ההשוואה בין שני implementations של אותה פונקציונליות תלמד אתכם יותר מכל תיאוריה -- תראו איפה כל SDK מבריק ואיפה הוא מסורבל.

תרגילים

תרגיל 1: SDK Comparison Matrix -- Build Your Own (45 דקות)

בנו טבלת השוואה מותאמת לצוות שלכם:

  1. בחרו 3 SDKs שרלוונטיים לכם (מתוך ה-11)
  2. בנו את אותו סוכן בכל 3: chatbot עם 2 tools (search + calculator)
  3. מדדו: setup time, lines of code, time-to-first-response, error handling quality
  4. תעדו ב-spreadsheet והוסיפו: developer experience (DX) rating (1-10) וה-reasoning

Bonus: הוסיפו MCP server כ-tool ובדקו כמה קל לחבר אותו בכל SDK.

תרגיל 2: Cross-Framework Agent Team (60 דקות)

בנו מערכת של 3 סוכנים שעובדים יחד, כל אחד ב-SDK אחר:

  1. Research Agent (בחרו SDK) -- מחפש מידע
  2. Analysis Agent (SDK אחר) -- מנתח את המידע
  3. Report Agent (SDK שלישי) -- כותב דו"ח

חברו אותם דרך AG2 Universal Interoperability או דרך MCP servers כ-communication layer. זה תרגיל מתקדם -- הנקודה היא להרגיש את הכאב (או החוסר כאב) של cross-framework integration.

תרגיל 3: SDK Decision Presentation (30 דקות)

הכינו מצגת של 5 slides שממליצה על SDK לצוות שלכם (אמיתי או דמיוני):

  1. Slide 1: מי אנחנו -- גודל צוות, tech stack, cloud provider
  2. Slide 2: מה אנחנו בונים -- use case, complexity, timeline
  3. Slide 3: 3 SDKs שהתעמקנו בהם -- pros/cons של כל אחד
  4. Slide 4: ההמלצה -- SDK מרכזי + backup, עם reasoning
  5. Slide 5: תוכנית migration -- מה אם צריך לעבור SDK בעוד שנה?

זה תרגיל שמכין אתכם לעולם האמיתי -- CTO שמבקש "למה בחרת ב-SDK הזה?"

תרגיל 4: MCP-First Tool Library (45 דקות)

בנו 3 MCP servers שעובדים עם כל SDK:

  1. MCP server 1: Weather tool (פשוט, ל-warmup)
  2. MCP server 2: Database query tool (Supabase / PostgreSQL / SQLite)
  3. MCP server 3: Content generation tool (מחולל פוסטים ל-social media)

אחרי שבניתם, חברו את שלושתם ל-שני SDKs שונים ובדקו שהם עובדים בלי שינוי. זו ההוכחה שכלים ב-MCP הם portable.

בדוק את עצמך -- 5 שאלות
  1. מה ההבדל בין Microsoft Agent Framework ל-AG2? למה הקהילה יצרה fork? (רמז: governance, vendor control, interoperability)
  2. מה ההבדל בין Vercel AI SDK ל-Mastra? מתי תבחרו כל אחד? (רמז: library vs framework, auth, storage)
  3. מה ה-CodeAgent של Smolagents עושה אחרת מ-traditional tool calling? תנו דוגמה. (רמז: Python code vs JSON)
  4. נסחו 3 כללים לבחירת SDK לפרויקט חדש. על מה ההחלטה צריכה להתבסס? (רמז: language, team size, use case, maturity)
  5. למה חשוב לבנות tools כ-MCP servers ולא כ-native-only? תנו שני יתרונות קונקרטיים. (רמז: portability, cross-framework, cross-team)

עברתם 4 מתוך 5? מצוין -- אתם מוכנים לפרק 12.

סיכום הפרק

בפרק הזה הרחבתם את המפה של agent SDKs מעבר ל-6 ה-frameworks שלמדתם לעומק. הכרתם את Microsoft Agent Framework -- התוצאה של מיזוג AutoGen + Semantic Kernel, ה-SDK היחיד עם first-class .NET support ו-enterprise-grade compliance. הכרתם את AG2 -- ה-fork הקהילתי שמביא Universal Framework Interoperability. צללתם ל-Mastra -- full-stack TypeScript framework עם auth, storage ו-workflows מובנים שמשמש חברות כמו PayPal ו-Adobe. התנסיתם ב-Pydantic AI -- type-safe Python agents עם durable execution. וראיתם את Smolagents -- גישה מינימליסטית מ-Hugging Face עם CodeAgent ייחודי.

הנקודה המרכזית: אין SDK "הכי טוב" -- יש SDK שהכי מתאים לכם. השפה שלכם, גודל הצוות, ה-cloud provider, ו-use case הספציפי קובעים את הבחירה. ובכל מקרה -- בנו tools כ-MCP servers. זו ההשקעה שתשרוד כל SDK change.

בפרק הבא (פרק 12) נעשה SDK Comparison מלאה -- עם scorecards מפורטים, benchmarks, ו-head-to-head השוואות על אותו use case. מהתיאוריה -- לנתונים.

צ'קליסט -- סיכום פרק 11