الإخراج المنظم في CrewAI: أوقف انجراف البيانات مع Pydantic

2 min read

إذا رأيت مهمة تُعيد markdown هذه المرة وعرضاً نثرياً حراً في المرة القادمة، فلست وحدك.
الحل مباشر: عرّف مخطط الإخراج مع Pydantic.

لماذا الإخراج المنظم؟

  • المهام اللاحقة تستطيع قراءة حقول ثابتة
  • لا تحليل نصي هش في كل تشغيل
  • الفشل يُكتشف مبكراً (عدم تطابق الحقول يُلقي أخطاء)

إنه عقد API بشكل أساسي. التعاون المستقر يحتاج عقداً.

إنشاء نماذج الإخراج

from pydantic import BaseModel, Field
 
class Finding(BaseModel):
    title: str = Field(description="عنوان النتيجة")
    summary: str = Field(description="شرح مختصر")
    source: str = Field(description="رابط المرجع")
 
class ResearchReport(BaseModel):
    topic: str = Field(description="اسم الموضوع")
    findings: list[Finding] = Field(description="قائمة النتائج الرئيسية")
    conclusion: str = Field(description="الخلاصة النهائية")

استخدام output_pydantic في مهمة

from crewai import Task
 
research_task = Task(
    description="ابحث في أدوات مراقبة الذكاء الاصطناعي في 2026.",
    expected_output="نتيجة بحث منظمة.",
    output_pydantic=ResearchReport,
)

بعد التنفيذ، يمكنك الوصول إلى الحقول الثابتة مباشرةً بدلاً من التخمين من النص.

أسلوب الإقران الموصى به

  • أبقِ متطلبات جودة expected_output صريحة
  • عرّف دلالات الحقول (طول summary، صيغة source)
  • اجعل المهام اللاحقة تعتمد على الحقول، وليس على أسلوب الكتابة

أخطاء المبتدئين الشائعة

  1. الاعتقاد بأن Pydantic يجعل expected_output غير ضروري
  2. حقول قليلة جداً، مما يؤدي إلى ضياع معلومات
  3. حقول تفصيلية كثيرة جداً، مما يسبب حذفاً متكرراً

⚠️ ابدأ بـ 3-5 حقول رئيسية أولاً. وسّع فقط عند الحاجة.

الخطوة التالية

الآن طاقمك الواحد يستطيع الإخراج بشكل موثوق. بعد ذلك، ننتقل إلى تنسيق أطقم متعددة.
👉 أساسيات Flow