संचार प्रोटोकॉल (संदेश बस)
एजेंटों को संदेश बस (Redis, NATS, Kafka) से अलग-अलग जोड़ें, ताकि वे स्वतंत्र रूप से स्केल और विफल हो सकें।
संचार प्रोटोकॉल (संदेश बस), CoddyKit पर AI एजेंट का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह AI एजेंट सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। AI एजेंट पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
इस पाठ के कुछ हिस्सों का अभी तक अनुवाद नहीं हुआ है और वे अंग्रेज़ी में दिखाए गए हैं।
प्रक्रिया-अंदर की बातचीत से आगे
छोटी प्रणालियों में एजेंट एक-दूसरे को उसी प्रक्रिया के भीतर कॉल करते हैं। बड़ी प्रणालियों में उन्हें संदेश बस के माध्यम से अलग करें — Redis, NATS या Kafka का उपयोग करें।
अलग क्यों करें?
- एजेंट स्वतंत्र रूप से स्केल किए जा सकते हैं
- हर एजेंट की विफलताएँ अलग रहती हैं
- अतुल्यकालिक कार्यप्रवाह (धीमे एजेंटों के लिए उसी पंक्ति में प्रतीक्षा करने की आवश्यकता नहीं)
- डिबगिंग के लिए संदेशों को फिर से चलाएँ
- बहुभाषी समर्थन: Python एजेंट और Go एजेंट, दोनों subscribe कर सकते हैं
Simple Bus: Redis Pub/Sub
import redis
r = redis.Redis()
# Publisher
r.publish('agent.research.task', json.dumps({'task_id': 'abc', 'query': '...'}))
# Subscriber
p = r.pubsub()
p.subscribe('agent.research.task')
for msg in p.listen():
if msg['type'] == 'message':
handle_task(json.loads(msg['data']))प्रसारण के लिए Pub/Sub
इसका उपयोग तब करें जब कई एजेंट किसी घटना के बारे में जानना चाहें (जैसे "user-question-received")।
कार्य-वितरण के लिए कतारें
जब हर कार्य को ठीक एक worker द्वारा संभाला जाना हो, तब कतार (Redis BLPOP, RabbitMQ) का उपयोग करें:
import json, queue
r = queue.Queue()
# Producer
r.put(json.dumps({'task_id': 'abc', 'kind': 'research'}))
def process(task):
print('processing', task)
# Worker
while not r.empty():
raw = r.get()
task = json.loads(raw)
process(task)
गति के लिए NATS
NATS एक हल्का संदेश-ब्रोकर है, जिसे माइक्रोसर्विस के लिए बनाया गया है। एक मिलीसेकंड से कम विलंबता और अंतर्निहित request/reply सुविधा:
import nats
nc = await nats.connect('nats://localhost:4222')
await nc.publish('agent.research', json.dumps(task).encode())
# Request/reply
response = await nc.request('agent.research', payload, timeout=10)टिकाऊपन के लिए Kafka
Kafka टिकाऊ और फिर से चलाए जा सकने वाले लॉग जोड़ता है। ऑडिट और पुनःप्रसारण के लिए बिल्कुल उपयुक्त:
from confluent_kafka import Producer, Consumer
producer.produce('agent-events', key=task_id, value=json.dumps(task))
producer.flush()घटना स्कीमा
हर संदेश के प्रारूप को Pydantic या Protobuf से परिभाषित करें। स्कीमा के बिना आपकी बस अव्यवस्थित हो जाएगी:
class ResearchTask(BaseModel):
task_id: str
user_id: str
query: str
deadline: datetime
class ResearchResult(BaseModel):
task_id: str
findings: list[str]
duration_ms: intसहसंबंध पहचानकर्ता
हर संबंधित संदेश में समान correlation_id होना चाहिए, ताकि आप सेवाओं के बीच किसी कार्य का पता लगा सकें:
record = {'correlation_id': 'abc', 'task_id': 'def', 'span': 'llm_call'}
print(record)
इडेम्पोटेंट हैंडलर
संदेश एक से अधिक बार वितरित किए जा सकते हैं (कम-से-कम-एक-बार अर्थविज्ञान)। हैंडलर को इडेम्पोटेंट बनाएँ — समान task_id को केवल एक बार संसाधित किया जाए।
डेड-लेटर कतार
जब कोई हैंडलर बार-बार विफल हो, तो संदेश को हमेशा लूप में चलाने के बजाय मानवीय समीक्षा के लिए DLQ में डाल दें:
if attempts > MAX_RETRIES:
r.rpush('queue:research:dlq', raw)
log.error('Sent to DLQ', extra={'task_id': task_id})निगरानी-योग्यता
हर संदेश का पता लगाएँ:
- ट्रेस ID बस के माध्यम से आगे बढ़ें
- लॉग में task_id और correlation_id शामिल हों
- मेट्रिक्स: प्रत्येक विषय के लिए प्रसंस्करण-दर, विलंबता और त्रुटि-दर
कब अपनाएँ
सरल शुरुआत करें — प्रक्रिया-अंदर के एजेंटों से। बस पर तभी जाएँ जब आपके पास ये हों:
- उत्पादन में 5 या अधिक एजेंट
- एजेंटों को स्वतंत्र रूप से स्केल करने की आवश्यकता
- कई सेवाओं तक फैले कार्यप्रवाह
कम-से-कम-एक-बार?
"कम-से-कम-एक-बार वितरण" आपके हैंडलरों से क्या अपेक्षा रखता है?
पुनरावलोकन
सरल मामलों के लिए Redis, कम विलंबता के लिए NATS और टिकाऊपन के लिए Kafka से प्रणालियों को अलग करें। स्कीमा, सहसंबंध ID, इडेम्पोटेंट हैंडलर और DLQ रखें।
एआई शिक्षक के साथ AI एजेंट सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 60
- पाठ
- 239
अक्सर पूछे जाने वाले प्रश्न
क्या “संचार प्रोटोकॉल (संदेश बस)” पाठ निःशुल्क है?
हाँ—“संचार प्रोटोकॉल (संदेश बस)” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और AI एजेंट पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। AI एजेंट पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“संचार प्रोटोकॉल (संदेश बस)” में मैं क्या सीखूँगा?
एजेंटों को संदेश बस (Redis, NATS, Kafka) से अलग-अलग जोड़ें, ताकि वे स्वतंत्र रूप से स्केल और विफल हो सकें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ AI एजेंट का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या AI एजेंट शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर AI एजेंट शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“संचार प्रोटोकॉल (संदेश बस)” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस AI एजेंट पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर AI एजेंट पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- बातचीत-आधारित बहु-एजेंट (AutoGen)
- पदानुक्रमित पर्यवेक्षक (ऑर्केस्ट्रेटर + कार्यकर्ता)
- एजेंट की भूमिकाएँ और विशेषज्ञताएँ
- संचार प्रोटोकॉल (संदेश बस)