Kiko: Programming Agents to Enact Interaction Protocols
यह शोध पत्र किको (Kiko) को प्रस्तुत करता है, जो एक प्रोटोकॉल-आधारित प्रोग्रामिंग मॉडल है जो संचार सेवाओं को अमूर्त बनाता है और आंतरिक निर्णय तर्क को सार्वजनिक इंटरैक्शन के साथ जोड़ता है, जिससे डेवलपर्स को ऐसे विकेंद्रीकृत मल्टीएजेंट सिस्टम बनाने में सक्षम बनाया जाता है जो प्रोटोकॉल-अनुपालन की गारंटी देते हैं।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक विशाल, अराजक डांस पार्टी आयोजित करने की कोशिश कर रहे हैं जहाँ हजारों लोग (एजेंट्स) आपस में बातचीत कर रहे हैं, लेकिन कोई भी प्रभारी नहीं है। कोई डीजे नहीं है, कोई केंद्रीय योजनाकार नहीं है, और हर कोई संगीत के ऊपर चिल्ला रहा है। कंप्यूटर विज्ञान की दुनिया में, इसे मल्टी-एजेंट सिस्टम (MAS) कहा जाता है। लक्ष्य यह है कि ये डिजिटल "लोग" बिना किसी बॉस के निर्देश के, चीजें करने के लिए, जैसे कि सामान खरीदना और बेचना, एक साथ मिलकर काम करें।
इस पेपर के अनुसार, समस्या यह है कि इन एजेंटों को प्रोग्राम करने के वर्तमान तरीके एक कठोर स्क्रिप्ट देने जैसा है। उन्हें कार्य करने के लिए एक विशिष्ट क्रम में एक विशिष्ट संदेश मिलने का इंतजार करना पड़ता है। यदि कोई संदेश देर से आता है या गलत क्रम में आता है, तो पूरा सिस्टम अटक जाता है या क्रैश हो जाता है। यह शतरंज खेलने की कोशिश करने जैसा है जहाँ आप अपने प्रतिद्वंद्वी से समय बताने वाला पत्र प्राप्त किए बिना अपने नाइट (घोड़े) को नहीं चला सकते।
यहाँ Kiko आता है, जो इन एजेंटों को प्रोग्राम करने का एक नया तरीका है जिसे लेखकों (नॉर्थ कैरोलिना स्टेट यूनिवर्सिटी और लैंकेस्टर यूनिवर्सिटी से) ने आविष्कार किया है।
मूल विचार: "फॉर्म-फिलर" (फॉर्म भरने वाला) सादृश्य
"संदेशों" और "क्रमों" के रूप में सोचने के बजाय, Kiko प्रोग्रामर्स से फॉर्मों और निर्णयों के रूप में सोचने के लिए कहता है।
एक सरकारी कार्यालय की कल्पना करें जहाँ नागरिक चीजों के लिए आवेदन करने आते हैं।
- पुराना तरीका (पारंपरिक प्रोटोकॉल): आपको लाइन में प्रतीक्षा करनी पड़ती है। आप फॉर्म A तभी भर सकते हैं जब आपने पहले ही फॉर्म B प्राप्त कर लिया हो। यदि क्लर्क फॉर्म B खो देता है, तो आप हमेशा के लिए अटक जाते हैं।
- Kiko का तरीका: आप काउंटर पर जाते हैं और देखते हैं कि भरने के लिए खाली फॉर्मों (पेपर में जिन्हें "फॉर्म्स" कहा गया है) का एक ढेर इंतज़ार कर रहा है।
- कुछ फॉर्म पहले से ही आधे भरे हुए हैं क्योंकि आपने अन्य लोगों से जानकारी (जैसे कि मूल्य उद्धरण/प्राइस कोट) प्राप्त की है।
- आपका काम "निर्णय लेने वाले" (Decision Maker) के रूप में केवल उस ढेर को देखना है, उन फॉर्मों को चुनना है जिन्हें आप अभी भरने के लिए अधिकृत हैं, और खाली स्थानों को भरना है।
- यदि आप एक फॉर्म सही ढंग से भरते हैं, तो सिस्टम उसे भेजता है। यदि आप दो ऐसे फॉर्म भरने की कोशिश करते हैं जो एक-दूसरे का विरोध करते हैं (जैसे "मैं इस कीमत को स्वीकार करता हूँ" और "मैं इसी वस्तु के लिए इस कीमत को अस्वीकार करता हूँ"), तो सिस्टम कहता है, "रुको, ठहर जाओ," और आपको उनमें से किसी को भी भेजने से रोक देता है।
Kiko वास्तविक जीवन में कैसे काम करता है
पेपर एक "खरीद" (Purchase) परिदृश्य (एक खरीदार और एक विक्रेता) का उपयोग समझाने के लिए करता है। यहाँ बताया गया है कि Kiko अराजकता को कैसे संभालता है:
1. क्रम की प्रतीक्षा नहीं करना ("अनऑर्डर्ड मेल" का रूपक)
पारंपरिक प्रणालियों में, यदि कोई पत्र गलत क्रम में आता है, तो सिस्टम घबरा जाता है। Kiko को इससे फर्क नहीं पड़ता। यह एक "लॉसी" (lossy) कनेक्शन का उपयोग करता है (जैसे UDP, जो तेज़ है लेकिन कोई पत्र गिरा सकता है)।
- सादृश्य: कल्पना करें कि आप एक पैकेज का इंतज़ार कर रहे हैं। पुराने तरीके में, पैकेज आने से पहले आपको ट्रैकिंग नंबर की आवश्यकता होती है। Kiko में, पैकेज बस आ जाता है। यदि ट्रैकिंग नंबर बाद में आता है, तो सिस्टम आपके इतिहास को अपडेट कर देता है। यदि पैकेज ट्रैकिंग नंबर के आने से पहले आ जाता है, तो सिस्टम बस तब तक प्रतीक्षा करता है जब तक कि नंबर समझ में आने के लिए उपलब्ध न हो जाए। एजेंट कभी भ्रमित नहीं होता; यह बस जो कुछ भी उसने देखा है उसकी एक चलती हुई सूची रखता है।
2. "डिसीजन मेकर" (दिमाग)
प्रोग्रामर एक "डिसीजन मेकर" लिखता है। यह कोड का एक हिस्सा है जो एक स्मार्ट सहायक की तरह कार्य करता है।
- यह क्या करता है: यह उन सभी "फॉर्मों" को देखता है जिन्हें एजेंट अब तक देखी गई जानकारी के आधार पर भरने के लिए अधिकृत है।
- जादू: यह एक साथ कई स्थितियों को देख सकता है।
- उदाहरण: कल्पना करें कि एक खरीदार (बॉब) तीन अलग-अलग विक्रेताओं से बात कर रहा है। उसे तीन अलग-अलग मूल्य उद्धरण मिलते हैं। एक पारंपरिक प्रणाली उसे एक को चुनने और उसी पर टिके रहने के लिए मजबूर कर सकती है। Kiko का डिसीजन मेकर उन तीनों उद्धरणों को देख सकता है, गणना कर सकता है कि कौन सा सबसे सस्ता है, और फिर तुरंत सबसे सस्ते वाले के लिए "खरीद" (Buy) फॉर्म और अन्य के लिए "अस्वीकार" (Reject) फॉर्म भर सकता है। वह यह सब एक बार में करता है।
3. "सेफ्टी नेट" (एडॉप्टर)
डिसीजन मेकर और बाहरी दुनिया के बीच एक घटक है जिसे एडॉप्टर (Adapter) कहा जाता है।
- सादृश्य: एडॉप्टर को एक सख्त लेकिन सहायक द्वारपाल के रूप में सोचें। डिसीजन मेकर कहता है, "मैं ये 5 पत्र भेजना चाहता हूँ।" एडॉप्टर जाँच करता है: "क्या ये पत्र एक-दूसरे का विरोध करते हैं? क्या वे खेल के नियमों को तोड़ते हैं?"
- यदि डिसीजन मेकर एक ही वस्तु के लिए "खरीद" और "अस्वीकार" भेजने की कोशिश करता है, तो एडॉप्टर कहता है, "नहीं, यह अवैध है," और पूरे बैच को ब्लॉक कर देता है।
- यदि सब कुछ कानूनी है, तो एडॉप्टर उन्हें बाहर भेज देता है। यह सुनिश्चित करता है कि भले ही प्रोग्रामर गलती करे, एजेंट प्रोटोकॉल को नहीं तोड़ेगा।
यह एक बड़ी बात क्यों है
पेपर उन "सुपरपावर्स" को उजागर करता है जो Kiko प्रोग्रामर्स को देता है:
- लूज़ कपलिंग (Loose Coupling): यदि खेल के नियम बदलते हैं (जैसे, विक्रेता अब नकद के बजाय बैंक ट्रांसफर के माध्यम से भुगतान स्वीकार करता है), तो खरीदार के दिमाग (डिसीजन मेकर) को फिर से लिखने की आवश्यकता नहीं है। "एडॉप्टर" नए नियमों के आधार पर नए फॉर्म भरने के तरीके को स्वचालित रूप से समझ लेता है। यह एक वीडियो गेम में मुद्रा बदलने जैसा है; खिलाड़ी को नए नियंत्रण सीखने की आवश्यकता नहीं है, गेम इंजन स्वयं रूपांतरण को संभाल लेता है।
- क्रॉस-प्रोटोकॉल थिंकिंग: एक एजेंट एक साथ दो अलग-अलग खेल खेल सकता है (जैसे, "खरीदना" और "अनुमोदन प्राप्त करना")। Kiko एजेंट को एक ही समय में दोनों खेलों के फॉर्म देखने की अनुमति देता है ताकि वह एक स्मार्ट निर्णय ले सके।
- एटॉमिक एमिशन (Atomic Emissions): एजेंट एक साथ संदेशों का एक पूरा सेट भेजने का निर्णय ले सकता है। यदि सेट सुसंगत है, तो वे सभी चले जाते हैं। यदि एक भी गलत है, तो कोई नहीं जाता। यह आधे-अधूरे, भ्रमित करने वाली स्थितियों को रोकता है।
निष्कर्ष
लेखक गणितीय रूप से सिद्ध करते हैं कि Kiko काम करता है। वे दिखाते हैं कि:
- सत्यता (Correctness): यदि आप Kiko का उपयोग करते हैं, तो आपके एजेंट कभी भी प्रोटोकॉल के नियमों को नहीं तोड़ेंगे। वे गलती से ऐसा संदेश नहीं भेज सकते जो नहीं भेजा जाना चाहिए।
- पूर्णता (Completeness): Kiko इतना शक्तिशाली है कि यह किसी भी वैध परिदृश्य को संभाल सकता है जिसकी एक प्रोटोकॉल को आवश्यकता हो सकती है। आप टूल द्वारा सीमित नहीं हैं; टूल वह सब कुछ कर सकता है जो प्रोटोकॉल पूछता है।
संक्षेप में, Kiko विकेंद्रीकृत प्रणालियों को प्रोग्राम करने के सिरदर्द को दूर करता है। यह चिंता करने के बजाय कि किसने क्या संदेश और कब भेजा, प्रोग्रामर्स बिजनेस लॉजिक पर ध्यान केंद्रित कर सकते हैं: "यदि कीमत कम है, तो खरीदें। यदि अधिक है, तो अस्वीकार करें।" Kiko सिस्टम संचार के जटिल विवरणों को संभालता है, यह सुनिश्चित करता है कि बिना किसी केंद्रीय बॉस के सभी एक ही पृष्ठ पर रहें।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।