Skip to main content

title: “Pydantic AI” sidebarTitle: “Pydantic AI” description: “הגן על אג’נטים מוקלדים, כלים, קריאות מודל וניסיונות חוזרים.” icon: “/images/frameworks/pydantic-ai.svg”

התקנה

נתמך: pydantic-ai-slim 2.0 עד 3.0. גרסה 2.0 הסירה את Agent(instrument=...) והציגה את פרוטוקול ההיכולת שעליו בנוי המתאם הזה, ולכן לא ניתן לבצע אינסטרומנטציה של 1.x בדרך זו.

אינסטרומנטציה

instrument() חייב להריץ לפני שאתה בונה Agent. ההיכולת מתווספת בזמן הבנייה, ולכן אג’נט שנבנה קודם לכן לא נושא אחת וכלל לא מתעד דבר, ללא שגיאה כיוון שלא קרה שום דבר רע. זו הסיבה השכיחה ביותר לעקבה ריקה עם המתאם הזה.
אג’נטים בהיקף מודול הם המקום שבו זה משתולל:
אשר שזה עבד:
Pydantic AI מציבה את הרשימה שאתה מעביר להיכולת root_capability יחידה, ולכן אין תכונת agent.capabilities שניתן לקרוא. אג’נטים שנבנו תוך כדי אינסטרומנטציה שומרים על ההיכולת, ולכן תוכל להפעיל uninstrument() ולהמשיך לאינסטרומנטציה ללא בנייה מחדש.

מה מתעד

אין כאן זוג hook ואין זוג human-in-the-loop. Pydantic AI אין לו גבול node או step שיש לתחום ואין הפסקה בנויה של בן אדם, ולכן אין מה למפות. אם תבנה כל אחד מהם, פלוט את האירועים בעצמך — ראה אג’נטים מותאמים אישית. output_type לא משנה את העקבה. ריצה מוקלדת וריצה של מחרוזת מייצרות את אותם אירועים.

דוגמה

בעקבה, restock_eta מופיע כ-tool_result המנשא שגיאה, ואחריו קריאת מודל נוספת שבה האג’נט עובד סביב זה, והריצה עדיין מסתיימת ב-success. שני העובדות נשמרות.

שגיאות, ניסיונות חוזרים וזרימת בקרה

Pydantic AI משמיע חריגים בשלוש דברים שונים, והמתאם מפריד ביניהם: ModelRetry נמצא בקבוצה הראשונה בכוונה. זה אומר שניסיון באמת נכשל ובמודל בקשו לנסות שוב, וזה בדיוק מה ששדה השגיאה של span של כלי מיועד לעשות. סיווג זה כזרימת בקרה היה מסתיר כשלי כלי אמיתיים מאחורי ריצה ירוקה.

שמות את ה-spans שלך

ה-span של ריצה של Pydantic AI עצמו נקרא agent. עטוף את הקריאה כדי לתן לה תווית שבחרת:
ה-span של הframe-work אז קינן תחת inventory, וזה המקום שבו אירועי המודל והכלים תלויים. שמור agent_id בקרדינליות נמוכה. זו הפן הראשוני על כל משטח לוח מחוונים, ולכן השתמש בשם תפקיד, אפילו לעולם לא UUID או מחרוזת לכל ריצה.

שלוט בחסות

הורה בסדר זה, ההתאמה הראשונה ניצחת:
  1. instrument("pydantic_ai", session_id=...)
  2. היקף failproofai_sdk.session() המקיף
  3. ה-conversation_id של הריצה, ואז ה-run_id שלה
  4. uuid4().hex שנוצר

אפשרויות

בעיות נפוצות

ה-Agent בנוי לפני שה-instrument() הופעל. ראה את ההתראה לעיל, ובדוק את agent.root_capability.capabilities.
raise חשוף הוא מתפשט; זה עיצוב של Pydantic AI. כדי לתת למודל לעבוד סביב זה, הרם ModelRetry עם הודעה שהיא יכולה לפעול עליה. הכשל מתועד בכל מקרה.
הילד הוא span ריצה של Pydantic AI עצמו, וזה המקום שבו אירועי המודל והכלים תלויים. שחרר את ההיקף שלך אם אתה רוצה span יחיד, במחיר השם המותאם.
ערימת הגרף האסינכרונית של Pydantic AI ארוכה יותר מגבול שדה העומס, וקו האחרון של traceback הוא החריג עצמו. שדה זה קוצץ מהחזית ולא מהגב, ולכן הקו שאתה צריך שורד.

הבא

איך זה עובד

זוגות, מזהים, מחזור חיים של חסות וסילוק.

קרא עקבה

עקוב אחר סיבתיות דרך החסות שרק תפסת.

מסגרות אחרות

LangGraph, CrewAI, LlamaIndex, ואג’נטים מותאמים אישית.