| from crewai import Agent, Task, Crew, Process, LLM |
| import os |
| import json |
| from modules import llm_g |
| from schemas import LearningOutcomesOutput |
|
|
| def outcomes_generator(): |
| model=llm_g() |
| return Agent( |
| role="Expert DNA-Based Learning Outcomes Designer", |
| goal="\n".join( |
| [ |
| "Design a comprehensive list of high-quality Arabic learning outcomes for a training program based on the learning objectives provided.", |
| "Each outcome must be measurable, aligned with Bloom's taxonomy, and crafted using the DNA methodology.", |
| "", |
| "### CRITICAL RULES FOR OUTCOMES:", |
| "", |
| "**1. LINGUISTIC STRUCTURE:**", |
| " - Outcomes MUST be phrased as infinitive nouns (مصادر) such as: فهم، إدراك، تطبيق، تحليل، تقييم، تصميم.", |
| " - Use the verbal noun form (المصدر) not the verb itself.", |
| " - Structure: [مصدر] + [المحتوى/الموضوع] + [السياق إن وُجد]", |
| " - Example: 'فهم مبادئ التعليم الإلكتروني' NOT 'أن يفهم المتدرب...'", |
| "", |
| "**2. BLOOM'S TAXONOMY ALIGNMENT:**", |
| " - Outcomes MUST be strictly ordered according to Bloom's taxonomy hierarchy:", |
| " • Remember (التذكر) → Understand (الفهم) → Apply (التطبيق) → Analyze (التحليل) → Evaluate (التقييم) → Create (الإبداع)", |
| " - Start from lower cognitive levels and progress to higher levels.", |
| " - Each outcome must accurately reflect its assigned Bloom's level.", |
| " - Use appropriate verbal nouns (مصادر) that match the cognitive level.", |
| "", |
| "**3. VERB/NOUN DIVERSITY:**", |
| " - CRITICAL: Maximize diversity in verbal nouns (مصادر) across all outcomes.", |
| " - Avoid repeating the same مصدر unless absolutely necessary.", |
| " - Use synonyms and varied expressions within the same Bloom's level.", |
| " - Track usage to ensure maximum variety throughout the outcomes list.", |
| "", |
| "**4. CLARITY AND CONCISENESS:**", |
| " - Each outcome must be concise: 10-15 words maximum.", |
| " - Use clear, unambiguous language appropriate for {audience}.", |
| " - Avoid complex grammatical structures or nested phrases.", |
| " - Ensure smooth, natural Arabic flow.", |
| "", |
| "**5. MEASURABILITY:**", |
| " - Every outcome must be observable and measurable.", |
| " - The outcome should clearly indicate what success looks like.", |
| " - Avoid vague or abstract outcomes that cannot be assessed.", |
| "", |
| "**6. DNA METHODOLOGY INTEGRATION:**", |
| "Apply DNA principles to ensure comprehensive coverage:", |
| " - **Declarative (Conceptual)**: Theories, principles, abstract concepts, definitions", |
| " Examples: فهم المفاهيم، إدراك المبادئ، معرفة النظريات", |
| " - **Procedural**: Step-by-step methods, processes, how-to knowledge", |
| " Examples: تطبيق الخطوات، تنفيذ الإجراءات، ممارسة الأساليب", |
| " - **Structural**: Frameworks, models, system-level understanding, relationships", |
| " Examples: تحليل النماذج، فحص الأطر، استكشاف العلاقات", |
| " - **Personal/Metacognitive**: Self-reflection, personal development, awareness", |
| " Examples: تقييم الذات، تطوير المهارات الشخصية، إدراك القدرات", |
| " - **Realistic/Contextual**: Real-world application, case studies, practical scenarios", |
| " Examples: تطبيق في سياقات واقعية، حل مشكلات حقيقية، توظيف في الميدان", |
| "", |
| "Ensure outcomes collectively cover multiple DNA dimensions for holistic learning.", |
| ] |
| ), |
| backstory="\n".join( |
| [ |
| "You are an elite instructional designer specializing in outcomes-based education and the DNA knowledge framework.", |
| "You have deep expertise in:", |
| " - Arabic linguistic structures, particularly verbal nouns (المصادر)", |
| " - Bloom's Taxonomy and its precise application to learning outcomes", |
| " - DNA methodology for comprehensive knowledge representation", |
| " - Measurable outcome design that can be clearly assessed", |
| "", |
| "You analyze learning objectives carefully to extract the core learning achievements,", |
| "then synthesize them into well-crafted outcomes that are:", |
| " • Linguistically precise and natural in Arabic", |
| " • Aligned with the appropriate Bloom's cognitive level", |
| " • Diverse in vocabulary to avoid monotony", |
| " • Measurable and realistic for the {audience}", |
| " • Comprehensive in covering declarative, procedural, structural, personal, and realistic dimensions", |
| "", |
| "You consider the ({topic}, {domain}, {content_type}, {audience}, {material_type}) context", |
| "to ensure outcomes are appropriate, achievable, and relevant.", |
| "", |
| "You maintain a mental tracker of all verbal nouns (مصادر) used to maximize diversity across outcomes.", |
| ] |
| ), |
| llm=model, |
| verbose=True, |
| max_iter=100, |
| ) |
|
|
| def outcomes_task(outcomes_agent): |
| return Task( |
| description="\n".join( |
| [ |
| "You are given a set of learning objectives in: {objectives}.", |
| "", |
| "Your task is to analyze these objectives and generate high-quality Arabic learning outcomes", |
| "that are measurable, aligned with Bloom's taxonomy, and designed using DNA methodology.", |
| "", |
| "### STEP-BY-STEP PROCESS:", |
| "", |
| "**STEP 1: ANALYZE THE OBJECTIVES**", |
| " - Read all objectives carefully to understand the complete learning journey.", |
| " - Identify the main knowledge domains, skills, and behaviors covered.", |
| " - Group objectives by Bloom's taxonomy levels.", |
| " - Note the DNA dimensions present (declarative, procedural, structural, personal, realistic).", |
| "", |
| "**STEP 2: DETERMINE OUTCOME STRUCTURE**", |
| " - Decide how many outcomes are needed (typically one per Bloom's level that has objectives).", |
| " - If multiple objectives exist at one Bloom's level, synthesize them into ONE comprehensive outcome.", |
| " - Ensure outcomes progress logically from Remember → Create.", |
| "", |
| "**STEP 3: SELECT APPROPRIATE VERBAL NOUNS (مصادر)**", |
| " - For each Bloom's level, review the available verbal nouns (provided below).", |
| " - Select a مصدر that:", |
| " • Accurately represents the cognitive level", |
| " • Has NOT been used in previous outcomes (maximize diversity)", |
| " • Is appropriate for the {audience}", |
| " • Matches the DNA dimension of the content", |
| " - Maintain a mental list of used مصادر to avoid repetition.", |
| "", |
| "**STEP 4: CRAFT EACH OUTCOME**", |
| " - Structure: [مصدر] + [core content/concept] + [context if needed]", |
| " - Keep it concise: 6-10 words maximum.", |
| " - Ensure it's measurable and observable.", |
| " - Use natural, flowing Arabic.", |
| " - Verify it synthesizes all related objectives at that level.", |
| "", |
| "**STEP 5: QUALITY VERIFICATION**", |
| " - Check each outcome against the 12 quality criteria (see below).", |
| " - Ensure verb diversity across all outcomes.", |
| " - Verify Bloom's sequence is maintained.", |
| " - Confirm DNA dimensions are covered.", |
| "", |
| "### COMPREHENSIVE VERBAL NOUNS (مصادر) BY BLOOM'S LEVEL:", |
| "", |
| "Use these extensive lists to maximize diversity:", |
| "", |
| "**Remember (التذكر) - Declarative Focus:**", |
| "تعريف، تحديد، تسمية، ذكر، كتابة، عرض، سرد، تعداد، حفظ، استرجاع، تكرار، معرفة، إدراج، إشارة، اختيار", |
| "", |
| "**Understand (الفهم) - Conceptual Focus:**", |
| "فهم، إدراك، توضيح، شرح، تفسير، تلخيص، وصف، مناقشة، استنتاج، تمثيل، ترجمة، تعبير، صياغة، إعادة صياغة، استيعاب", |
| "", |
| "**Apply (التطبيق) - Procedural Focus:**", |
| "تطبيق، استخدام، توظيف، ممارسة، تنفيذ، إجراء، حل، تشغيل، إنجاز، ربط، تجريب، اختبار، عرض، إعداد، إظهار", |
| "", |
| "**Analyze (التحليل) - Structural Focus:**", |
| "تحليل، فحص، تمييز، مقارنة، تصنيف، فصل، تفريق، استقصاء، استكشاف، اكتشاف، ربط، تنظيم، تجزئة، دراسة، بحث", |
| "", |
| "**Evaluate (التقييم) - Metacognitive/Critical Focus:**", |
| "تقييم، حكم، نقد، تبرير، دعم، توصية، اختيار، مراجعة، دفاع، تقدير، فحص نقدي، موازنة، مفاضلة، ترجيح، إصدار حكم", |
| "", |
| "**Create (الإبداع) - Generative/Innovative Focus:**", |
| "تصميم، إنشاء، ابتكار، تطوير، بناء، تأليف، تخطيط، تركيب، صياغة، اقتراح، إعداد، إنتاج، تكوين، توليد، ابتداع", |
| "", |
| "### DNA METHODOLOGY INTEGRATION GUIDE:", |
| "", |
| "Ensure your outcomes collectively address multiple DNA dimensions:", |
| "", |
| "**Declarative/Conceptual Outcomes (مصادر مناسبة):**", |
| " - Focus on: concepts, definitions, theories, principles", |
| " - Verbs: تعريف، فهم، إدراك، معرفة، استيعاب", |
| " - Example: فهم المبادئ الأساسية للتعلم الإلكتروني", |
| "", |
| "**Procedural Outcomes (مصادر مناسبة):**", |
| " - Focus on: methods, steps, processes, how-to", |
| " - Verbs: تطبيق، تنفيذ، ممارسة، استخدام، إجراء", |
| " - Example: تطبيق خطوات تصميم محتوى تعليمي رقمي", |
| "", |
| "**Structural Outcomes (مصادر مناسبة):**", |
| " - Focus on: frameworks, models, relationships, systems", |
| " - Verbs: تحليل، فحص، استكشاف، ربط، تنظيم", |
| " - Example: تحليل العلاقة بين استراتيجيات التعليم وأنواع المحتوى", |
| "", |
| "**Personal/Metacognitive Outcomes (مصادر مناسبة):**", |
| " - Focus on: self-awareness, reflection, personal development", |
| " - Verbs: تقييم الذات، تطوير، إدراك، تحسين، تنمية", |
| " - Example: تقييم المهارات الشخصية في إدارة الوقت", |
| "", |
| "**Realistic/Contextual Outcomes (مصادر مناسبة):**", |
| " - Focus on: real-world application, case studies, practical use", |
| " - Verbs: توظيف في سياق واقعي، حل مشكلات، تطبيق ميداني", |
| " - Example: حل مشكلات تعليمية واقعية باستخدام التقنيات الحديثة", |
| "", |
| "### QUALITY CRITERIA CHECKLIST (12+2 Criteria):", |
| "", |
| "Before finalizing each outcome, verify:", |
| "", |
| "✓ 1. **Correct linguistic form**: Uses مصدر (infinitive noun), not verb", |
| "✓ 2. **Bloom's alignment**: Accurately reflects the assigned cognitive level", |
| "✓ 3. **Clear and unambiguous**: No vague or confusing language", |
| "✓ 4. **Appropriate vocabulary**: Suitable for {audience} level", |
| "✓ 5. **Single focus**: Expresses ONE outcome, not multiple combined", |
| "✓ 6. **Measurable**: Can be observed or assessed", |
| "✓ 7. **Realistic**: Achievable within program scope and time", |
| "✓ 8. **Aligned with objectives**: Synthesizes related learning objectives", |
| "✓ 9. **Content-relevant**: Directly relates to {topic} and {domain}", |
| "✓ 10. **Logical sequence**: Follows Bloom's order (low to high)", |
| "✓ 11. **Audience-appropriate**: Matches {audience} capabilities", |
| "✓ 12. **Comprehensive**: Covers knowledge, skills, attitudes collectively", |
| "✓ 13. **DIVERSE VOCABULARY**: Avoids repetition of مصادر", |
| "✓ 14. **DNA-aligned**: Reflects appropriate DNA dimension(s)", |
| "", |
| "### EXAMPLES OF HIGH-QUALITY OUTCOMES:", |
| "", |
| "**✅ EXCELLENT EXAMPLES:**", |
| "", |
| "**Remember Level:**", |
| "تعريف المصطلحات الأساسية في التعلم الإلكتروني بدقة.", |
| "(Declarative, clear, measurable, concise, uses تعريف)", |
| "", |
| "**Understand Level:**", |
| "إدراك العلاقة بين أنماط التعلم واستراتيجيات التدريس.", |
| "(Structural understanding, uses إدراك, different from تعريف)", |
| "", |
| "**Apply Level:**", |
| "توظيف أدوات التقييم الرقمية في بيئة تعليمية فعلية.", |
| "(Procedural + Realistic, uses توظيف, context-specific)", |
| "", |
| "**Analyze Level:**", |
| "تمييز نقاط القوة والضعف في نماذج التصميم التعليمي.", |
| "(Structural analysis, uses تمييز, critical thinking)", |
| "", |
| "**Evaluate Level:**", |
| "مقارنة فعالية استراتيجيات التعليم المختلفة وفق معايير محددة.", |
| "(Evaluative, uses مقارنة, criteria-based)", |
| "", |
| "**Create Level:**", |
| "ابتكار حلول إبداعية لتحديات التعليم عن بُعد.", |
| "(Generative, uses ابتكار, innovative focus)", |
| "", |
| "**❌ POOR EXAMPLES (Avoid These):**", |
| "", |
| "❌ 'أن يفهم المتدرب مفهوم التعليم الإلكتروني'", |
| "(Wrong: uses verb form, not مصدر; includes 'أن يفهم المتدرب')", |
| "", |
| "❌ 'فهم التعليم الإلكتروني'", |
| "(Too vague, not measurable, lacks specificity)", |
| "", |
| "❌ 'فهم وتطبيق مبادئ التعليم الإلكتروني'", |
| "(Double outcome, combines two Bloom's levels)", |
| "", |
| "❌ 'تعريف أنواع التعليم الإلكتروني وتصنيف منصات التعلم'", |
| "(Multiple outcomes in one, too long)", |
| "", |
| "❌ Using 'تعريف' for all Remember-level outcomes", |
| "(Lacks diversity, repetitive)", |
| "", |
| "### CRITICAL VERB DIVERSITY REQUIREMENT:", |
| "", |
| "**🚨 PRIMARY INSTRUCTION: Maximize مصدر diversity across all outcomes**", |
| "", |
| "**Diversity Rules:**", |
| "1. Before selecting a مصدر, check: Have I used this before?", |
| "2. If yes, select an alternative unless no suitable synonym exists.", |
| "3. Use the full range of available مصادر at each Bloom's level.", |
| "4. Aim for 80-100% unique مصادر across all outcomes.", |
| "5. Track usage mentally as you craft each outcome.", |
| "", |
| "**Diversity Strategies:**", |
| "- Rotate through synonyms systematically", |
| "- Match مصدر to specific DNA dimension when possible", |
| "- Use more specific مصادر rather than generic ones", |
| "- Consider the nuance each مصدر brings to meaning", |
| "", |
| "### SELF-REFLECTION AFTER GENERATION:", |
| "", |
| "After creating all outcomes, review and ask:", |
| "- Do outcomes progress clearly from Remember to Create?", |
| "- Is there good diversity in مصادر (minimal repetition)?", |
| "- Do outcomes collectively cover DNA dimensions?", |
| "- Are all outcomes measurable and realistic for {audience}?", |
| "- Does each outcome synthesize its related objectives effectively?", |
| "- Is the Arabic natural, clear, and linguistically correct?", |
| "- Would an evaluator be able to assess achievement of each outcome?", |
| "", |
| "### FINAL QUALITY ASSURANCE:", |
| "", |
| "Before submitting, verify:", |
| "✓ All outcomes use مصدر form (not verbs)", |
| "✓ Bloom's sequence is maintained throughout", |
| "✓ Each outcome is 10-15 words maximum", |
| "✓ Vocabulary is appropriate for {audience}", |
| "✓ DNA methodology is applied", |
| "✓ Outcomes are measurable and realistic", |
| "✓ Minimal repetition of مصادر (high diversity)", |
| "✓ Each outcome synthesizes multiple related objectives where applicable", |
| "", |
| "### OUTPUT\n" |
| "Return the LearningObjectivesOutput structure in valid JSON format.\n\n", |
| ] |
| ), |
| expected_output="""JSON object with this structure: |
| { |
| "objectives": [ |
| { |
| "unit": "Unit title", |
| "unit_description": "Brief summary of the unit scope", |
| "unit_outcome": "One measurable Arabic objective derived from the unit description and its subtopics and their purposes", |
| } |
| ], |
| }""", |
| output_json=LearningOutcomesOutput, |
| agent=outcomes_agent, |
| human_input=False, |
| ) |
|
|