• בלוג
  • יומי
  • שלושה דברים שאהבתי במיוחד ב Pydantic AI

שלושה דברים שאהבתי במיוחד ב Pydantic AI

26/06/2026

ספריית פיתוח הסוכנים Pydantic AI היא משב רוח מרענן של פשטות. היא מזכירה את OpenAI Agents SDK האהובה עליי רק בלי החיבור ל OpenAI ועם הרבה יותר שליטה בפרמטרים של המודלים. העבודה איתה בהחלט יכולה להרגיש כמו מישהו שהבין מה ש OpenAI ניסו לעשות עם Agents SDK ופשוט המשיך עם זה.

אפשר לקרוא את התיעוד המלא ודוגמאות שלהם כאן:

https://pydantic.dev/docs/ai/overview/

והנה שלושה דברים שאהבתי במיוחד בספריה.

1. תיעוד מלא וידידותי לסוכן

ב 2026 הדרישה הראשונה שלי מספריית קוד היא שאפשר יהיה לעבוד איתה בקלות מתוך סוכן קידוד. הבעיה של OpenAI Agents SDK היא שאף אחד לא משתמש בקודקס והם לא רוצים לקדם את קלוד קוד. התשובה שלהם למי שביקשו Agent Skill היתה:

Thanks for writing in. Our current recommendation is to use codex for loading and utilizing agent skills because the codex layer already has a robust mechanism for it. We prefer to avoid reinventing the wheel for now.

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

2. מנגנון Fallback

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

https://pydantic.dev/docs/ai/models/overview/#fallback-model

ובגדול זה נראה כך:

from pydantic_ai.exceptions import ModelAPIError
from pydantic_ai.models.fallback import FallbackModel
from fallback_on_native_tool import anthropic_model, google_model, web_fetch_failed
fallback_model = FallbackModel(
    google_model,
    anthropic_model,
    fallback_on=[
        ModelAPIError,  # Exception type
        lambda exc: 'rate limit' in str(exc).lower(),  # Exception handler (untyped lambda)
        web_fetch_failed,  # Response handler (auto-detected via type hint)
    ],
)

מגדירים את המעבר והתנאים במקום אחד ועובדים עם המודל רגיל בכל שאר התוכנית. בדוגמה שהדבקתי אם המודל של גוגל לא מצליח לענות על הבקשה יש לעבור למודל של אנטרופיק ויש 3 מנגנוני כשלון, או שהמודל זורק שגיאה מסוג ModelAPIError, או שהמודל זורק שגיאה עם הטקסט rate limit או שהתשובה של המודל כוללת כשלון בהרצת כלי.

3. גמישות במודלים ושליטה בכל הפרמטרים

זה פיצ'ר שמאוד היה חסר לי ב OpenAI Agents SDK שם היתה העדפה ברורה למודלים של OpenAI. פידנטיק לא רק שמאפשרים לי לבחור כל ספק אלא שאפשר גם לשלוט בפרמטרים הספציפיים של המודל. לדוגמה עם OpenAI אפשר להתחבר ל Responses API שלהם אבל גם ל Chat API, וגם לפרוביידרים הסינים לדוגמה:

from pydantic_ai import Agent
from pydantic_ai.models.openai import OpenAIChatModel
from pydantic_ai.providers.alibaba import AlibabaProvider
model = OpenAIChatModel(
    'qwen-max',
    provider=AlibabaProvider(
        api_key='your-api-key',
        base_url='https://dashscope.aliyuncs.com/compatible-mode/v1',  # China region
    ),
)
agent = Agent(model)
...

באנטרופיק יש אפשרות להשתמש במנגנון ה Cache System Instructions שלהם כדי לחסוך טוקנים:

from datetime import date

from pydantic_ai import Agent, RunContext
from pydantic_ai.models.anthropic import AnthropicModelSettings

agent = Agent(
  'anthropic:claude-sonnet-4-6',
  deps_type=str,
  instructions='You are a helpful customer service agent. Follow company policy.',  
  model_settings=AnthropicModelSettings(
      anthropic_cache_instructions=True,  
  ),
)


@agent.instructions
def dynamic_context(ctx: RunContext[str]) -> str:  
  return f"Customer name: {ctx.deps}. Today's date: {date.today()}."


result = agent.run_sync('What is your return policy?', deps='Alice')
print(result.output)

ואפילו יש אפשרות להגדיר Cache Breakpoints ידנית.

לגוגל אפשר להעביר וידאו מיוטיוב שוב לפי הפורמט של ג'מני:

from pydantic_ai import Agent, VideoUrl
from pydantic_ai.models.google import GoogleModel
agent = Agent(GoogleModel('gemini-3-flash-preview'))
result = agent.run_sync(
    [
        'What is this video about?',
        VideoUrl(url='https://www.youtube.com/watch?v=dQw4w9WgXcQ'),
    ]
)
print(result.output)

יש להם תמיכה מלאה ב Server Side Tools כמו חיפוש ברשת של OpenAI ושליטה על מידת החשיבה:

from pydantic_ai import Agent
from pydantic_ai.capabilities import Thinking, WebSearch
agent = Agent(
    'anthropic:claude-opus-4-6',
    instructions='You are a research assistant. Be thorough and cite sources.',
    capabilities=[
        Thinking(effort='high'),
        WebSearch(local='duckduckgo'),
    ],
)

סך הכל הספריה מאוד כיפית - דברים שלא נכנסו פה לרשימה אבל שווים אזכור הם החיבור למערכת הלוגים שלהם logfire (במקום זאת של OpenAI), תמיכה ב MCP, תמיכה מובנית בבדיקות עם TestModel וממשק Web Interface מבוסס צ'ט כדי לנסות את הסוכן שלכם.

אם אהבתם את OpenAI Agents SDK שווה מאוד לנסות את Pydantic AI.