मानव-संदर्भ मेंः प्रस्ताव-फिर-संकल्प
interrupt()प्लस PostgreSQL चेकपॉइंटिंग, माइक्रोसॉफ्ट एजेंट फ्रेमवर्क के RequestInfoEvent, और Cloudflare के waitForApproval()सभी एक ही आकार लागू करते हैं। कैनोनिक विफलता मोड रबर-स्टैम्प अनुमोदन हैः "अनुमोदित करें?" समीक्षा के बिना क्लिक किया जाता है। दस्तावेजीकरण में एक स्पष्ट चेकलिस्ट के साथ चुनौती और प्रतिक्रिया है।Type: Learn
Languages: Python (stdlib, propose-then-commit state machine with idempotency)
Prerequisites: Phase 15 · 12 (Durable execution), Phase 15 · 14 (Tripwires)
Time: ~60 minutes
समस्या
एक एजेंट एक कार्रवाई करता है। उपयोगकर्ता को निर्णय लेना हैः अनुमोदित करें या नहीं। यदि निर्णय तत्काल है, तो यह शायद समीक्षा नहीं है। यदि निर्णय संरचित है, तो यह धीमा है लेकिन विश्वसनीय है। इंजीनियरिंग प्रश्न यह है कि कैसे एक संरचित समीक्षा को न्यूनतम प्रतिरोध का रास्ता बनाना है।
2023 के युग के एचआईटीएल पैटर्न में एक सिंक्रोनस संकेत थाः "एजेंट को शरीर Y अनुमोदित के साथ X को ईमेल भेजना है? " उपयोगकर्ता अनुमोदित पर क्लिक करता है। सभी को लगता है कि सिस्टम सुरक्षित है। व्यवहार में यह सतह भारी मात्रा में रबर-स्टैम्प हैः उपयोगकर्ता तेजी से अनुमोदित करते हैं, अनुमोदन कम भविष्यवाणी करते हैं, और जब एजेंट गलत होता है, तो ऑडिट ट्रेल अनुमोदनों का एक लंबा इतिहास दिखाता है जिसे उपयोगकर्ता याद नहीं कर सकता है।
2026 पैटर्न प्रस्ताव-फिर-प्रतिबंध HITL को टिकाऊ सब्सट्रेट पर ले जाता है, संरचित मेटाडेटा संलग्न करता है, और सकारात्मक प्रतिबद्धता की आवश्यकता होती है। प्रत्येक प्रबंधित एजेंट एसडीके एक संस्करण भेजता हैः लैंगग्राफ interrupt(), Microsoft एजेंट फ्रेमवर्क RequestInfoEvent, क्लाउडफ्लेयर waitForApproval(). एपीआई नाम अलग हैं; आकार नहीं है.
अवधारणा
प्रस्ताव-तब-कमाइश राज्य मशीन
- Propose.एजेंट एक प्रस्तावित कार्रवाई का उत्पादन करता है। एक टिकाऊ स्टोर (PostgreSQL, Redis, टिकाऊ वस्तु) के लिए जारी है। इसमें शामिल हैंः
- इरादा (एजेंट ऐसा क्यों कर रहा है)
- डेटा वंश (इस प्रस्ताव के लिए किस स्रोत ने नेतृत्व किया)
- अनुमतिओं को छुआ (जो दायरे / फ़ाइलों / अंत बिंदुओं)
- विस्फोट त्रिज्या (सबसे खराब मामला क्या है)
- वापसी योजना (यदि प्रतिबद्ध है, तो हम इसे कैसे रद्द करते हैं)
- निष्क्रियता कुंजी (प्रत्येक प्रस्ताव के लिए अद्वितीय; पुनः प्रस्तुत करने के लिए एक ही रिकॉर्ड लौटाया जाता है)
- Surface.समीक्षक प्रस्ताव को सभी मेटाडेटा के साथ देखता है। समीक्षक एक व्यक्ति है (अजाने की समीक्षा नहीं) ।
- Commit.सकारात्मक पुष्टि। कार्रवाई निष्पादित।
- Verify.निष्पादन के बाद, दुष्प्रभाव को फिर से पढ़ा और पुष्टि की जाती है। यदि सत्यापन चरण विफल रहता है, तो सिस्टम ज्ञात खराब स्थिति में है और अलर्ट सक्रिय होता है।
असमर्थता की कुंजी
बिना एक idempotency कुंजी के, एक अस्थायी विफलता के बाद एक पुनः प्रयास एक स्वीकृत कार्रवाई को दो बार निष्पादित कर सकता है। एक ठोस उदाहरणः उपयोगकर्ता "A से B तक $100 स्थानांतरित करें" नेटवर्क ब्लिप को मंजूरी देता है। वर्कफ़्लो पुनः प्रयास करता है। उपयोगकर्ता ने एक बार मंजूरी दी है लेकिन स्थानांतरण दो बार निष्पादित होता है। idempotency कुंजी अनुमोदन को एक एकल, अद्वितीय दुष्प्रभाव से जोड़ती है; दूसरा निष्पादन एक नो-ऑप है।
यह वही idempotency पैटर्न है जो Stripe और AWS API का उपयोग करता है। एजेंट अनुमोदन के लिए इसका पुनः उपयोग Microsoft एजेंट फ्रेमवर्क डॉक्स में स्पष्ट है।
स्थायित्वः क्यों स्वीकृति प्रक्रियाओं से आगे है
अनुमोदन प्रतीक्षा कक्ष एक राज्य का एक टुकड़ा है जो एजेंट के पास नहीं है। कार्यप्रवाह को रोक दिया जाता है (पाठ 12) जब अनुमोदन आता है, तो कार्यप्रवाह उसी बिंदु से फिर से शुरू होता है। यही कारण है कि लैंगग्राफ जोड़े interrupt()PostgreSQL चेकपॉइंटिंग के साथ और सिर्फ स्मृति में नहीं एक अनुमोदन दो दिन बाद अभी भी काम के प्रवाह को बरकरार पाया।
रबर टिकट अनुमोदन और चुनौती-उत्तर को कम करना
HITL के लिए डिफ़ॉल्ट UI ("अनुमोदित करें" / "नकारें" बटन) वास्तविक समीक्षा के बिना त्वरित अनुमोदन उत्पन्न करता है। प्रलेखित मिटावः एक चुनौती और प्रतिक्रिया चेकलिस्ट जो अनुमोदित करें बटन सक्षम होने से पहले विशिष्ट प्रश्नों के सकारात्मक उत्तर की आवश्यकता होती है। ठोस आकारः
- "क्या आप समझते हैं कि यह किस संसाधन को छूता है?
- "क्या आपने पुष्टि की है कि विस्फोट त्रिज्या स्वीकार्य है?
- "क्या आपके पास एक रिवर्स प्लान है अगर यह विफल हो जाता है?
नौकरशाही अपने लिए नहीं एक मजबूर कार्य। जो समीक्षक बक्से नहीं चिह्नित कर सकता है वह स्पष्टीकरण (उच्चतरती) या अस्वीकार करता है (सुरक्षित डिफ़ॉल्ट) । मानव एजेंट-सुरक्षा अनुसंधान स्पष्ट रूप से चेकलिस्ट-चालित एचआईटीएल का उल्लेख करता है।
परिणाम के रूप में क्या मायने रखता है
2026 के दिशा-निर्देश में कहा गया है कि
- Consequential actions(always HITL): अपरिवर्तनीय लेखन, वित्तीय लेनदेन, आउटबाउंड संचार, उत्पादन डेटाबेस परिवर्तन, विनाशकारी फाइल सिस्टम संचालन।
- Reversible actions(कभी-कभी HITL): स्थानीय फ़ाइलों में संपादन, चरण-संवर्धन परिवर्तन, स्पष्ट रोलबैक के साथ reversible लिखता है।
- Reads and inspections(कभी HITL): एक फ़ाइल पढ़ना, संसाधनों की सूची, केवल-पढ़ने के लिए एपीआई कॉल करना।
कार्रवाई के बाद की जांच
"कमीट रन" "साइड इफेक्ट हुआ" के समान नहीं है। नेटवर्क विभाजन और दौड़ की स्थिति एक वर्कफ़्लो उत्पन्न कर सकती है जो लगता है कि यह सफल हो गया है जबकि बैकेंड बरकरार नहीं रहा है। सत्यापित चरण लक्ष्य संसाधन को फिर से पढ़ता है पुष्टि करने के लिए प्रतिबद्ध करने के बाद। यह डेटाबेस लेनदेन के समान पैटर्न हैRETURNINGखंड या AWS GetObjectके बादPutObject. .
यूरोपीय संघ के AI अधिनियम अनुच्छेद 14
अनुच्छेद 14 में यूरोपीय संघ में उच्च जोखिम वाले एआई सिस्टम के लिए प्रभावी मानव पर्यवेक्षण का आदेश दिया गया है। "प्रभावी" सजावटी नहीं है। नियामक भाषा विशेष रूप से रबर-स्टैम्प पैटर्न को बाहर करती है। चुनौती-और-प्रतिसाद के साथ प्रस्ताव-फिर-कार्य करना एक आकार है जो माइक्रोसॉफ्ट एजेंट गवर्नेंस टूलकिट अनुपालन दस्तावेजों में अनुच्छेद 14 जांच से बचता है।
इसका प्रयोग करें
code/main.pystdlib पायथन में एक प्रस्ताव-फिर-कमाएं राज्य मशीन लागू करता है। टिकाऊ भंडारण एक JSON फ़ाइल है। Idempotency कुंजी (thread_id, action_signature) का एक हैश है। ड्राइवर तीन मामलों का अनुकरण करता हैः एक स्वच्छ अनुमोदन प्रवाह, एक क्षणिक विफलता के बाद एक पुनः प्रयास (जो दो बार निष्पादित नहीं किया जाना चाहिए), और एक रबर-स्टैम्प डिफ़ॉल्ट बनाम एक चुनौती-और-प्रतिक्रिया प्रवाह।
इसे भेजें
outputs/skill-hitl-design.mdप्रस्तावित HITL कार्यप्रवाह की समीक्षा करता है- फिर प्रतिबद्धता के लिए प्रस्तावित आकार और ध्वज गायब मेटाडेटा, असमर्थता, सत्यापन, या चुनौती और प्रतिक्रिया परतों के लिए।
व्यायाम
- दौड़ें
code/main.py. पुष्टि करें कि एक अनुमोदित प्रस्ताव के पुनः प्रयास में टिकाऊ रिकॉर्ड का उपयोग किया जाता है और पुनः निष्पादन नहीं होता है। अब समय टिकट शामिल करने के लिए निष्पादन कुंजी को बदलें और पुनः प्रयास दोहराएँ।
- प्रस्तावों के रिकॉर्ड को एक
rollbackक्षेत्र. एक निष्पादन सिमुलेट जिसका सत्यापन चरण विफल रहता है. स्वचालित रूप से रिलबैक शूटिंग दिखाएं.
- Microsoft एजेंट फ्रेमवर्क पढ़ें
RequestInfoEventडॉक्स. एक मेटाडेटा क्षेत्र की पहचान करें एपीआई में शामिल है कि खिलौना इंजन गायब है. इसे जोड़ें और यह क्या सुरक्षा करता है की व्याख्या.
- किसी विशिष्ट क्रिया के लिए एक चुनौती और प्रतिक्रिया चेकलिस्ट बनाएं (जैसे, "एक सार्वजनिक ट्विटर खाते में पोस्ट करें") समीक्षक को किन तीन सवालों का जवाब देना चाहिए? उन तीनों का जवाब क्यों?
- एक ऐसे मामले का चयन करें जहां एक समवर्ती "अनुमोदित करें?" संकेत पर्याप्त हो (कई टिकाऊ स्टोर की आवश्यकता नहीं है) । इसका कारण बताएं, और जोखिम वर्ग का नाम दें जिसे आप स्वीकार कर रहे हैं।
प्रमुख शर्तें
| Term | What people say | What it actually means |
|---|---|---|
| Propose-then-commit | "Two-phase approval" | Persisted proposal + positive commit + verify |
| Idempotency key | "Retry-safe token" | Unique per proposal; second execution no-ops |
| Data lineage | "Where it came from" | The specific source content that led to the proposal |
| Blast radius | "Worst case" | Scope of effect if the action goes wrong |
| Rubber-stamp | "Fast approval" | "Approve" clicked without genuine review |
| Challenge-and-response | "Forcing checklist" | Reviewer must positively acknowledge specific questions |
| RequestInfoEvent | "MS Agent Framework primitive" | Durable HITL request with structured metadata |
interrupt() / waitForApproval() | "Framework primitives" | LangGraph / Cloudflare equivalents of the same shape |
आगे पढ़ना
- Microsoft Agent Framework — Human in the loop
RequestInfoEvent, टिकाऊ अनुमोदन। - Cloudflare Agents — Human in the loop
waitForApproval()और टिकाऊ वस्तुओं। - Anthropic — Measuring agent autonomy in practice दीर्घकालिक जोखिम के लिए एक कम करने के रूप में HITL।
- EU AI Act — Article 14: Human oversight उच्च जोखिम वाले प्रणालियों के लिए नियामक आधार।
- Anthropic — Claude's Constitution (January 2026) पर्यवेक्षण के बारे में संवैधानिक ढांचा।
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.