الإخراج المنظم في 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) - اجعل المهام اللاحقة تعتمد على الحقول، وليس على أسلوب الكتابة
أخطاء المبتدئين الشائعة
- الاعتقاد بأن Pydantic يجعل
expected_outputغير ضروري - حقول قليلة جداً، مما يؤدي إلى ضياع معلومات
- حقول تفصيلية كثيرة جداً، مما يسبب حذفاً متكرراً
⚠️ ابدأ بـ 3-5 حقول رئيسية أولاً. وسّع فقط عند الحاجة.
الخطوة التالية
الآن طاقمك الواحد يستطيع الإخراج بشكل موثوق. بعد ذلك، ننتقل إلى تنسيق أطقم متعددة.
👉 أساسيات Flow