कई एजेंट्स को एक साथ चलाना (Orchestration)
एक एजेंट काम के कुछ हिस्से दूसरे एजेंट्स को सौंप सकता है। orchestrator-worker पैटर्न और हैंडऑफ़ के बारे में जानें, और यह भी कि कब ज़्यादा एजेंट्स मदद करते हैं और कब वे सिर्फ़ ख़र्च और उलझन बढ़ाते हैं।
60 सेकंड में
कई एजेंट्स को एक साथ चलाना (Orchestration)
एक एजेंट काम के कुछ हिस्से दूसरे एजेंट्स को सौंप सकता है। orchestrator-worker पैटर्न और हैंडऑफ़ के बारे में जानें, और यह भी कि कब ज़्यादा एजेंट्स मदद करते हैं और कब वे सिर्फ़…
दो आम पैटर्न
| पैटर्न | यह कैसे काम करता है | किसके लिए अच्छा है |
|---|---|---|
| Orchestrator-worker | एक मुख्य (lead) एजेंट काम को बाँटता है, उसके हिस्सों को वर्कर एजेंट्स के पास भेजता है (अक्सर एक साथ / पैरेलल में), और फिर उनके नतीजों को जोड़ता है। | कई स्रोतों से रिसर्च करना, कई फ़ाइलों की समीक्षा करना, ऐसा काम जो स्वतंत्र हिस्सों में बँट सकता हो। |
| Handoff (रूटिंग) | एक एजेंट पूरी बातचीत किसी ज़्यादा उपयुक्त एजेंट को सौंप देता है, जैसे कोई फ़ोन कॉल सही विभाग को ट्रांसफ़र कर दिया जाए। | कस्टमर सपोर्ट जहाँ बिलिंग, डिलीवरी और टेक्निकल समस्याओं के लिए अलग-अलग एजेंट्स हों। |
कोड में Orchestrator-worker
from concurrent.futures import ThreadPoolExecutor
def call_model(prompt: str) -> str:
# Placeholder. Plug in your provider here.
return "[model answer to: " + prompt[:50] + "...]"
def worker(sub_task: str) -> str:
# Each worker could run its own agent loop with its own narrow tools.
return call_model("You are a research worker. Do only this, and reply "
"in at most 5 bullet points with sources: " + sub_task)
def orchestrate(goal: str) -> str:
sub_tasks = [ # in real code, ask the model for this list as JSON
"Price and validity of plan A",
"Price and validity of plan B",
"Price and validity of plan C",
]
with ThreadPoolExecutor(max_workers=3) as pool:
results = list(pool.map(worker, sub_tasks))
notes = "\n".join(t + ": " + r for t, r in zip(sub_tasks, results))
return call_model("Goal: " + goal + "\nWorker notes:\n" + notes +
"\nCombine into one short comparison. Say if anything is missing.")
print(orchestrate("Compare three mobile plans for a student"))Handoffs
transfer_to_billing(reason)। जब मॉडल इसे कॉल करता है, तो आपका कोड बिलिंग एजेंट के निर्देशों और टूल्स पर स्विच कर जाता है, और मामले का एक छोटा सारांश भेज देता है। ध्यान से तय करें कि हैंडऑफ़ के साथ क्या भेजा जाए: पूरी बातचीत, एक सारांश, या सिर्फ़ वे तथ्य जिनकी अगले एजेंट को ज़रूरत है।कब ज़्यादा एजेंट्स मदद करते हैं, और कब नुकसान पहुँचाते हैं
- काम छोटा हो या पूरी तरह से एक-के-बाद-एक (step-by-step) होने वाला हो
- हर कदम अपने पिछले कदम पर निर्भर करता हो
- एजेंट्स को आपस में बहुत सारी बारीक जानकारियाँ शेयर करनी पड़ती हों
- आप अभी तक एक अकेले एजेंट से भी भरोसेमंद तरीके से काम नहीं करवा पा रहे हों
- काम अलग-अलग स्वतंत्र हिस्सों में बँट सकता हो
- समय बचाने के लिए कई हिस्से एक साथ (पैरेलल में) चलाए जा सकते हों
- अलग-अलग हिस्सों के लिए अलग-अलग टूल्स या अनुमतियों (permissions) की ज़रूरत हो
- एक अकेले एजेंट के लिए सारा context बहुत ज़्यादा भर जाएगा
डिज़ाइन के नियम
- हर वर्कर को एक साफ़ सब-टास्क, काम पूरा हुआ या नहीं जाँचने का तरीका (done-test), और आउटपुट का एक फ़ॉर्मैट दें।
- हर वर्कर को सिर्फ़ वही टूल्स दें जिनकी उसके सब-टास्क को ज़रूरत है। रिसर्च करने वाले वर्कर को ईमेल टूल की ज़रूरत नहीं होती।
- वर्कर्स की संख्या और उनकी गहराई (depth) सीमित रखें: वर्कर्स को बिना किसी सीमा के आगे नए वर्कर्स नहीं बनाने चाहिए।
- हर एजेंट की कॉल्स को एक ही रन आईडी (run id) के तहत ट्रैक (trace) करें, ताकि आप एजेंट्स के बीच किसी समस्या की जड़ तक पहुँच सकें।
- नतीजों को जोड़ने से पहले ऑर्केस्ट्रेटर से उनकी जाँच करवाएं, उदाहरण के लिए छूटी हुई बातों या विरोधाभासों के लिए।
और देखें और पढ़ें
लैब
दो स्तरों वाले एजेंट सिस्टम का एक लिखित डिज़ाइन, साथ में यह साफ़ तर्क कि इसे एक से ज़्यादा एजेंट्स की ज़रूरत क्यों है।
समस्या
एक अख़बार एक ऐसा सिस्टम चाहता है जो हर सुबह 10 क्षेत्रीय समाचार वेबसाइटों को पढ़े और आसान भाषा में खेती से जुड़ी ख़बरों का एक पन्ने का सारांश तैयार करे।
- तय करें: एक अकेला एजेंट, या ऑर्केस्ट्रेटर के साथ वर्कर्स? तीन वाक्यों में समझाएं कि क्यों।
- अगर आप वर्कर्स चुनते हैं: तो हर वर्कर का सब-टास्क, टूल्स और आउटपुट फ़ॉर्मैट लिखें। अगर नहीं चुनते, तो अकेले एजेंट के कदम लिखें।
- यह नियम लिखें कि जब कोई वर्कर फ़ेल हो जाए या कुछ भी न भेजे, तब ऑर्केस्ट्रेटर क्या करेगा।
- यह तय करें कि कौन-सा एजेंट पब्लिश कर सकता है (यदि कोई हो), और उसे किस मंज़ूरी की ज़रूरत होगी।
आपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1दो वर्कर्स ऐसे तथ्य वापस भेजते हैं जो एक-दूसरे से उलट हैं। ऑर्केस्ट्रेटर को क्या करना चाहिए?दिखाएं
उसे चुपचाप किसी एक को नहीं चुन लेना चाहिए। वह हर वर्कर द्वारा दिए गए स्रोतों की जाँच कर सकता है, किसी वर्कर से दोबारा जाँच करने को कह सकता है, या दोनों पक्षों को उनके स्रोतों के साथ पेश कर सकता है और किसी मानव संपादक के देखने के लिए इस टकराव को मार्क कर सकता है। टकरावों को छिपाने से सारांश सही न होते हुए भी आत्मविश्वास से भरा दिखता है।
Q2किसी दूसरे एजेंट के काम की जाँच करने वाला "रिव्यूअर" एजेंट जोड़ने के बाद भी गलतियाँ क्यों छूट सकती हैं?दिखाएं
रिव्यूअर अक्सर मिलते-जुलते मॉडल का इस्तेमाल करता है जिसकी कमज़ोरियाँ भी वैसी ही होती हैं, वह सिर्फ़ वही देखता है जो उसे दिखाया जाता है, और किसी आत्मविश्वास से भरे जवाब से आसानी से मान सकता है। यह तब सबसे ज़्यादा मदद करता है जब इसका नज़रिया अलग हो: जैसे कि मूल स्रोतों तक पहुँच, ठोस टेस्ट्स की एक चेकलिस्ट, या तथ्यों की पुष्टि करने वाले टूल्स। महत्वपूर्ण आउटपुट के लिए कोड पर आधारित जाँच और इंसानी समीक्षा की ज़रूरत फिर भी बनी रहती है।
अक्सर पूछे जाने वाले सवाल
क्या मल्टी-एजेंट सिस्टम किसी अकेले एजेंट से ज़्यादा समझदार होता है?
अपने आप नहीं। यह एक साथ ज़्यादा दायरा कवर कर सकता है और हर context को केंद्रित रख सकता है, जिससे बड़े कामों के नतीजे बेहतर हो सकते हैं। लेकिन यह ख़र्च भी बढ़ाता है, नतीजों को जोड़ने में समय लेता है, और गलतियों की संभावना भी बढ़ा देता है। इसे अपने कामों पर परख कर देखें।
क्या सभी एजेंट्स को एक ही मॉडल का इस्तेमाल करना चाहिए?
ऐसा ज़रूरी नहीं है। कुछ टीमें ऑर्केस्ट्रेटर के लिए ज़्यादा शक्तिशाली मॉडल और सीधे-सादे वर्कर्स के लिए सस्ते मॉडल्स का इस्तेमाल करती हैं। टेस्ट करके देखें कि क्या सस्ते वर्कर्स भी काम के लिए काफ़ी अच्छे हैं।
एजेंट्स आपस में जानकारी कैसे शेयर करते हैं?
आपके कोड के ज़रिए: किसी वर्कर को दिए गए arguments, वापस मिले नतीजे, या कोई साझा जगह जैसे कि कोई नोट्स फ़ाइल। शेयर किए गए डेटा को व्यवस्थित और छोटा रखें, और यह रिकॉर्ड रखें कि कौन-सी बात किस एजेंट ने लिखी है।
एजेंट-टू-एजेंट प्रोटोकॉल के बारे में क्या?
अलग-अलग सिस्टम के एजेंट्स के आपस में बात करने के लिए प्रोटोकॉल मौजूद हैं। वे अपने साथ भरोसे से जुड़े सवाल लाते हैं: दूसरा एजेंट कौन है, और वह क्या मांग सकता है? देखें एजेंट-टू-एजेंट प्रोटोकॉल और भरोसा।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।