Phase 14: Agent Engineering

विचार करेंः मौखिक रूप से शिक्षा

ग्रेडिएंट आधारित आरएल को विफलता मोड को ठीक करने के लिए हजारों परीक्षणों और एक जीपीयू क्लस्टर की आवश्यकता होती है। चिंतन (शिन और अन्य, न्यूरआईपीएस 2023) इसे प्राकृतिक भाषा में करता हैः प्रत्येक असफल परीक्षण के बाद, एजेंट एक चिंतन लिखता है, इसे एपिसोडिक मेमोरी में संग्रहीत करता है, और उस मेमोरी पर अगले परीक्षण की स्थिति। यह लट्टा के नींद समय गणना, क्लाउड कोड के क्लाउड.एमडी सीखने और कार्यप्रवाह के अनुकूल सीखने के नियम के पीछे का पैटर्न है।

Type: Build

Languages: Python (stdlib)

Prerequisites: Phase 14 · 01 (Agent Loop), Phase 14 · 02 (ReWOO)

Time: ~60 minutes

सीखने के लक्ष्य

  • प्रतिबिंब (अभिनेता, मूल्यांकनकर्ता, आत्म-प्रतिबिंबक) और एपिसोडिक स्मृति की भूमिका के तीन घटक का नाम बताइए।
  • द्विआधारी मूल्यांकनकर्ता, प्रतिबिंब बफर, और नए पुनः प्रयासों के साथ एक stdlib प्रतिबिंब लूप लागू करें।
  • किसी दिए गए कार्य के लिए स्केलर, हेउरिस्टिक और स्व-मूल्यांकन प्रतिक्रिया स्रोतों के बीच चयन करें।
  • बताएं कि मौखिक प्रवर्धन त्रुटियों को क्यों पकड़ता है, जिन्हें सुधारने के लिए ग्रेडिएंट आधारित आरएल को हजारों परीक्षणों की आवश्यकता होगी।

समस्या

एक एजेंट एक कार्य में विफल रहता है। मानक आरएल में आप हजारों और परीक्षण चलाएंगे, गणना ग्रेडिएंट, अद्यतन वजन। महंगे, धीमे, और अधिकांश उत्पादन एजेंटों के पास हर विफलता के लिए प्रशिक्षण बजट नहीं है।

विचार (शिन और सहयोगियों, arXiv:2303.11366) एक अलग सवाल पूछता हैः क्या होगा अगर एजेंट ने सिर्फ इस बारे में सोचा कि वह क्यों विफल रहा और फिर से उस विचार के साथ अपने प्रोम्प्ट में कोशिश की? कोई वजन अपडेट नहीं। कोई ग्रेडिएंट नहीं। केवल परीक्षणों के बीच संग्रहीत प्राकृतिक भाषा।

परिणामः 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

एक परीक्षण अभिनेता को चलाता है। मूल्यांकनकर्ता इसे स्कोर करता है। यदि स्कोर कम है, तो स्व-प्रतिबिंबक एक प्रतिबिंब उत्पन्न करता है ("मैंने गलत उपकरण चुना क्योंकि मैंने सवाल को गलत तरीके से X के बारे में पूछने के रूप में पढ़ा जब यह Y के बारे में पूछ रहा था") प्रतिबिंब एपिसोडिक स्मृति में जाता है। अगला परीक्षण नया शुरू होता है लेकिन प्रतिबिंब देखता है।

तीन प्रकार के मूल्यांकनकर्ता

  1. Scalar बाहरी द्विआधारी संकेत. ALFWorld सफल या विफल हो जाता है. मानव-ईवल परीक्षण पास या विफल हो जाता है. सबसे सरल, उच्चतम संकेत.
  2. Heuristic पूर्वनिर्धारित विफलता हस्ताक्षर। "यदि एजेंट ने एक ही क्रिया दो बार लगातार की है, तो चिह्नित करें कि यह अटक गया है।" "यदि पटरि 50 चरणों से अधिक है, तो अंकित करें कि यह अप्रभावी है।"
  3. Self-evaluated LLM अपनी खुद की पटरियों को स्कोर करता है। जब कोई आधारभूत सत्य उपलब्ध नहीं है तो आवश्यक है। कमजोर संकेत; उपकरण आधारित सत्यापन के साथ अच्छी तरह से जोड़ा जाता है (पाठ 05 महत्वपूर्ण) ।

2026 डिफ़ॉल्ट एक मिश्रण हैः उपलब्ध होने पर स्केलर, उपलब्ध नहीं होने पर स्व-समान, सुरक्षा रेल के रूप में हेउरिस्टिक।

यह सामान्यीकरण क्यों है

प्रतिबिंब एक नया एल्गोरिथ्म नहीं है बल्कि एक नामित पैटर्न है। लगभग हर उत्पादन "स्व-चिकित्सा" एजेंट कुछ प्रकार का चल रहा हैः

  • लेटा का नींद समय गणना (सत्र 08): एक अलग एजेंट अतीत की बातचीत पर चिंतन करता है और स्मृति ब्लॉक को लिखता है।
  • क्लाउड कोड की CLAUDE.md/ "स्मृति सहेजें" पैटर्नः भविष्य के सत्रों के लिए पूर्व-पढ़ने के रूप में कैप्चर किए गए प्रतिबिंब।
  • कार्यप्रवाह के लिए /learn-ruleआदेशः स्पष्ट नियम के रूप में कैप्चर किए गए सुधार।
  • लैंगग्राफ के प्रतिबिंब नोड्सः एक नोड जो आवश्यक होने पर परिष्कृत करने के लिए आउटपुट और मार्गों को स्कोर करता है।

ये सभी एक ही धारणा से आते हैंः प्राकृतिक भाषा एक ऐसी माध्यम है जो "मैंने असफलता से जो सीखा है" उसे दौड़ के बीच ले जाने के लिए पर्याप्त समृद्ध है।

जब यह काम करता है और जब यह नहीं करता है

प्रतिबिंब तब काम करता है जबः

  • एक स्पष्ट विफलता संकेत है (परीक्षण विफलता, उपकरण त्रुटि, गलत उत्तर) ।
  • कार्य वर्ग पुनः प्रस्तुत किया जा सकता है (एक ही प्रकार का प्रश्न फिर से पूछा जा सकता है) ।
  • इस पर विचार करने के लिए मार्ग में सुधार करने की जगह है (अधिनियम बजट पर्याप्त है) ।

यदि:

  • एजेंट पहले प्रयास में पहले ही सफल हो जाता है।
  • विफलता बाहरी है (नेटवर्क डाउन, उपकरण टूट गया) "नेटवर्क डाउन था" पर प्रतिबिंब भविष्य के रन में मदद नहीं करता है।
  • प्रतिबिंब अंधविश्वास में बदल जाता है एक बार के फ्लेक रन के बारे में एक कथा संग्रहीत करता है।

2026 फंदाः स्मृति सड़ना। प्रतिबिंब जमा होते हैं; कुछ अप्रचलित या गलत होते हैं; पुनरावृत्ति एपिसोडिक बफर बढ़ने के साथ धीमी होती है। कम करनाः आवधिक संपीड़न (लक्ष्य 06), प्रतिबिंबों पर टीटीएल, या एक अलग नींद समय सफाई एजेंट (लेटा) ।

इसे बनाओ

code/main.pyएक खिलौना पहेली पर परिकल्पना लागू करता हैः एक 3-element सूची बनाएं जो एक लक्ष्य के लिए योग है। अभिनेता उम्मीदवारों की सूची जारी करता है; मूल्यांकनकर्ता राशि की जांच करता है; आत्म-प्रकाशक गलत होने के बारे में एक पंक्ति लिखता है। प्रतिबिंब अगले परीक्षण के लिए एपिसोडिक स्मृति में जाता है।

घटक:

  • Actor एक स्क्रिप्ट वाली नीति जो प्रतिबिंबों को देखते हुए सुधारती है।
  • Evaluator.binary() लक्ष्य राशि पर पारित/अस्वीकृत।
  • SelfReflector विफलता का एक पंक्ति का निदान उत्पन्न करता है।
  • EpisodicMemory TTL अर्थशास्त्र के साथ एक सीमित सूची।

इसे चलाओः

python3 code/main.py

ट्रैक में तीन परीक्षण दिखाए गए हैं. परीक्षण 1 विफल हो गया, एक प्रतिबिंब संग्रहीत किया गया, परीक्षण 2 प्रतिबिंब देखता है और सुधार करता है लेकिन फिर भी विफल रहता है, परीक्षण 3 सफल होता है। एक मूल लाइन रन (कोई प्रतिबिंब नहीं) की तुलना करें यह परीक्षण 1 के उत्तर पर अटक जाता है।

इसका प्रयोग करें

LangGraph एक नोड पैटर्न के रूप में प्रतिबिंब जहाजों।/memoryकमांड और प्रो-वर्कफ्लो /learn-ruleएक मार्कडाउन फ़ाइल के रूप में एपिसोडिक बफर को बाहरी करें। लेटा की नींद समय गणना ऑटो-रिफ्लेक्टर को डाउनटाइम पर चलाती है ताकि प्राथमिक एजेंट विलंबता-बंद रहे। ओपनएआई एजेंट्स एसडीके सीधे रिफ्लेक्शन नहीं भेजता है; आप इसे कस्टम गार्डरेल के साथ बनाते हैं जो स्कोर और मेमोरी द्वारा पटरियों को अस्वीकार करता है।Sessionजो पार दौड़ता रहता है।

इसे भेजें

outputs/skill-reflexion-buffer.mdएक कार्य वर्ग और एक विफलता को देखते हुए, यह एक प्रतिबिंब जारी करता है जो वास्तव में अगले परीक्षण में मदद करता है (एक सामान्य "अधिक सावधान रहें" नहीं) ।

व्यायाम

  1. बाइनरी से स्केलर एवेलेटर में स्विच करें जो दूरी मीट्रिक (लक्ष्य से कितनी दूर) लौटाता है। क्या यह तेजी से अभिसरण करता है?
  2. क्या पुराने विचार उस बिंदु के बाद चोट पहुंचाते हैं या मदद करते हैं?
  3. हेरिस्टिक मूल्यांकनकर्ता लागू करेंः यदि एक ही क्रिया दोहराई जाती है तो परीक्षण को फंस गया है। यह आत्म-प्रतिबिंबक के साथ कैसे बातचीत करता है?
  4. प्रतिबिंबों को अनदेखा करने वाले प्रतिद्वंद्वी अभिनेता के साथ प्रतिबिंब चलाएं। प्रतिबिंब प्रवृत्तियों को ध्यान में रखने के लिए अभिनेता को मजबूर करने के लिए न्यूनतम प्रतिबिंब प्रलोभन इंजीनियरिंग क्या है?
  5. अल्फवर्ल्ड पर रिफ्लेक्शंस पेपर के खंड 4 को पढ़ें। 130% सफलता दर में सुधार को अवधारणात्मक रूप से दोहराएंः डेल्टा बनाम वैनिला रिएक्ट की कुंजी क्या है?

प्रमुख शर्तें

TermWhat people sayWhat 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

आगे पढ़ना

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.