التفكير: تعزيز اللفظي
Type: Build
Languages: Python (stdlib)
Prerequisites: Phase 14 · 01 (Agent Loop), Phase 14 · 02 (ReWOO)
Time: ~60 minutes
أهداف التعلم
- أسمائ ثلاثة مكونات التفكير (التمثيل، المقيّم، المرآة الذاتية) ودور الذاكرة الحلقة.
- تنفيذ حلقة التفكير stdlib مع تقييم ثنائي، حافظ التفكير، ومحاولات جديدة.
- اختر بين مصادر ردود الفعل المتعددة، والهوريسية، والقيام بتقييم ذاتي لمهام معينة.
- شرح لماذا التكثيف اللفظي يلتقط الأخطاء التي تحتاج الآلاف من التجارب لتصحيحها على أساس التدفقات.
المشكلة
وكيل يفشل في مهمة. في RL القياسية كنت ستقوم بمزيد من الآلاف من التجارب، وتحساب تراجع، وتحديث الأوزان. مكلفة، بطيئة، ومعظم وكلاء الإنتاج ليس لديهم ميزانية تدريبية لكل فشل.
التفكير (شين وزملاءه) يسأل سؤالًا مختلفًا: ماذا لو فكّر الوكيل فقط في سبب فشله و حاول مرة أخرى مع تلك الفكرة في طلبها؟ لا تحديثات للوزن. لا تراجع. مجرد لغة طبيعية مخزنة بين التجارب.
النتيجة: على ALFWorld يضرب ReAct وغيرها من خطوط الأساس غير المجهزة. على HotpotQA يتحسن على ReAct. على إنتاج الرمز (HumanEval / MBPP) يضع حالة الفن في ذلك الوقت. كل ذلك دون خطوة تراجعية واحدة.
المفهوم
المكونات الثلاثة
Actor : generates a trajectory (ReAct-style loop)
Evaluator : scores the trajectory — binary, heuristic, or self-eval
Self-Reflector: writes a natural-language reflection on the failureبالإضافة إلى هيكل بيانات واحد:
Episodic memory: list of prior reflections, prepended to the next trial's promptيدير أحد المحاكمات الممثل. يقوم المقيّم بتسجيله. إذا كانت النتيجة منخفضة، ينتج Self-Reflector انعكاسًا ("لقد اخترت الأداة الخطأ لأنني أخطأت في قراءة السؤال على أنه يسأل عن X عندما كان يسأل عن Y"). يذهب التأثير إلى الذاكرة الحلقة. تبدأ المحاكمة التالية جديدة ولكنها ترى التأثير.
ثلاثة أنواع من المقيّمين
- Scalarإشارة ثنائية خارجية. إشارة ALFWorld تنجح أو تفشل. اختبارات HumanEval تمر أو تفشل. أبسط وأعلى إشارة.
- Heuristic توقيعات فشل محددة مسبقاً. "إذا كان الوكيل قد أدى إلى نفس العمل مرتين على التوالي، اشير إلى أنه عالق". "إذا تجاوز المسار 50 خطوة، اشير إلى أنه غير فعال".
- Self-evaluated يدرج ماجستير في العلوم الدراسية مسارها الخاص. مطلوب عندما لا توجد حقيقة أساسية متاحة. إشارة ضعيفة؛ يزداد ارتباطاً جيداً مع التحقق القائم على الأدوات (الدرس 05 CRITIC).
إن الوضع الافتراضي لعام 2026 هو مزيج: متسع عند المتاحة، متسع عند عدم المتاحة، ومتسع كحافلات سلامة.
لماذا هذا يُعظم
التفكير ليس خوارزمية جديدة بل نمطًا مسمى تقريباً كل عامل إنتاج "تعافي الذات" يستخدم نوعًا ما:
- حساب وقت النوم ليتا (درس 08): وكيل منفصل يتعكس على المحادثات السابقة ويكتب على كتب الذاكرة.
- كود كود
CLAUDE.mdنمط "إنقاذ الذاكرة": التفكيرات التي تم التقاطها كالتعلمات، والتي تم تعديلها على جلسات مستقبلية. - التدفقات العملية
/learn-ruleالقيادة: تصحيحات تم التقاطها كقواعد صريحة. - عقدات التفكير لـ LangGraph: عقدة تسجل الناتج والطرق لتصميمها إذا لزم الأمر.
كلّها تنبع من نفس البصيرة: اللغة الطبيعية هي وسيلة غنية بما فيه الكفاية لنقل "ما تعلمته من الفشل" بين الجولات.
عندما يعمل و عندما لا يعمل
التفكير يعمل عندما:
- هناك إشارة فشل واضحة (فشل اختبار، خطأ أداة، إجابة خاطئة).
- فئة المهام قابلة للتكرار (يمكن طرح نفس نوع السؤال مرة أخرى).
- هناك مجال للتحسين على المسار (ميزانية العمل الكافية).
التفكير لا يساعد عندما:
- العميل ينجح بالفعل في المحاولة الأولى.
- الفشل خارجي (الشبكة أسقطت، أداة مكسورة) التفكير على "الشبكة كانت أسقطت" لا تساعد على تشغيل مستقبلي.
- تتحول التفكير إلى خرافة تخزين رواية عن رحلة واحدة.
2026 حفرة: تلف ذاكرة. تتراكم الترددات؛ بعضها قديم أو خاطئ؛ وتصبح إعادة التشغيل بطيئة مع نمو المضاد الحصري. التخفيف: ضغط دوري (المدرسة 06) ، TTL على الترددات ، أو وكيل تنظيف منفصل في وقت النوم (Letta).
بناءها
code/main.pyيطبق التفكير على اللعبة اللعبة: إنتاج قائمة 3 عناصر التي تضم إلى هدف. يقوم الممثل بإصدار قوائم المرشحين؛ يقوم المقيّم بتحقق من المبلغ؛ ويكتب المرشح الذاتي سطر حول ما حدث خطأ. يذهب التفكير إلى الذاكرة الحلقة للمحاكمة التالية.
المكونات:
Actorسياسة مكتوبة تحسن عندما ترى انعكاسات.Evaluator.binary()إنجاز/فشل على المبلغ المستهدف.SelfReflectorيخلق تشخيص واحد للفشل.EpisodicMemoryقائمة محدودة مع تعبيرات TTL.
إشغله
python3 code/main.pyيظهر البصمة ثلاثة تجارب. تجارب 1 تفشل، يتم تخزين انعكاس، تجارب 2 ترى انعكاس وتحسن ولكن لا يزال يفشل، تجارب 3 ناجحة. مقارنة مع خط الأساس (لا انعكاس) فإنه يبقى عالقا في إجابة تجارب 1.
استخدمها
(لانغغراف) يرسل التردد كنمط عقدة/memoryالتدريبات والعمل المفضل/learn-ruleتطبيق الـ "Letta" في وقت النوم يقوم بتشغيل "Self-Reflector" في وقت التوقف حتى يبقى الوكيل الأساسي مقيدًا على التأخير. لا يتم شحن OpenAI Agents SDK لـ "Reflexion" مباشرةً. يمكنك بناؤه باستخدام Guardrail المخصص الذي يرفض المسارات حسب النتيجة والذاكرةSessionالتي تنجو عبر السباقات
أرسله
outputs/skill-reflexion-buffer.mdيخلق ويحافظ على حافظة حلقة مع التقاط العكس ، TTL ، والتنسيق. بالنظر إلى فئة المهمة والفشل ، فإنه ينبعث من عكس يساعد في الواقع التجربة التالية (ليس عامة "كن أكثر حذراً").
التمارين
- الانتقال من ثنائي إلى مقيّم مقياس يعيد مقياس المسافة (كم يبعد من الهدف). هل يتقارب أسرع؟
- إضافة 10 تجربات TTL للتفكير. هل التفكير القديم يؤلم أو يساعد بعد ذلك النقطة؟
- تنفيذ تقييم هيرستي: قم بتسجيل التجربة كمتعلق إذا كررت نفس الإجراء. كيف يتفاعل هذا مع Self-Reflector؟
- أخرج (ريفليكسيون) مع ممثل معادٍ يتجاهل الترددات ما هو الحد الأدنى من التدريب على التردد الذي يضطر الممثل إلى ملاحظته؟
- اقرأ القسم 4 من ورقة التفكير على AlfWorld. استعاد تحسن نسبة نجاح 130% من الناحية الفكرية: ما هو المفتاح بين دلتا مقابل فانيلا ReAct؟
الشروط الرئيسية
| Term | What people say | What it actually means |
|---|---|---|
| Reflexion | "Self-correction" | Shinn et al. 2023 — Actor, Evaluator, Self-Reflector plus episodic memory |
| Verbal reinforcement | "Learning without gradients" | Natural-language reflection prepended to the next trial's prompt |
| Episodic memory | "Per-task reflections" | Bounded buffer of prior reflections for one task class |
| Scalar evaluator | "Binary success signal" | Pass/fail or numeric score from ground truth |
| Heuristic evaluator | "Pattern-based detector" | Predefined failure signatures (e.g. stuck-loop, too-many-steps) |
| Self-evaluator | "LLM-as-judge on own trace" | Lower-signal fallback when no ground truth — pair with tool-grounded verification |
| Memory rot | "Stale reflections" | Episodic buffer fills with obsolete entries; fix with compaction/TTL |
| Sleep-time reflection | "Async self-reflection" | Run Self-Reflector off the hot path so primary agent stays fast |
المزيد من القراءة
- Shinn et al., Reflexion: Language Agents with Verbal Reinforcement Learning (arXiv:2303.11366) الورق القديس
- Letta, Sleep-time Compute انعكاس عدم التزامن في الإنتاج
- Anthropic, Effective context engineering for AI agents إدارة الحافظ الحادثي كجزء من السياق
- LangGraph overviewنمط عقدة التأرجح
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.