Phase 16: Multi-Agent & Swarms

हस्तान्तरण और दिनचर्या बिना-राज्य के संगीत

ओपनएआई के स्वार्म (अक्टूबर 2024) ने दो आदिमों को मल्टी-एजेंट ऑर्केस्ट्रेशन का डिस्टिल कियाः routines(सिस्टम प्रॉम्प्ट के रूप में निर्देश + उपकरण) और handoffs(एक उपकरण जो एक अन्य एजेंट वापस करता है). कोई राज्य मशीन, कोई शाखा डीएसएल नहीं LLM मार्गों को सही हाथ उपकरण कॉल करके। ओपनएआई एजेंट्स एसडीके (मार्च 2025) उत्पादन का उत्तराधिकारी है। स्वार्म स्वयं सबसे स्वच्छ अवधारणात्मक संदर्भ है इसका पूरा स्रोत कुछ सौ पंक्तियों में फिट बैठता है। पैटर्न वायरल है क्योंकि एपीआई सतह लगभग "एजेंट = प्रॉम्प्ट + टूल्स; हैंडऑफ = फ़ंक्शन रिटर्निंग एजेंट है।" सीमाः स्टेटलेस, इसलिए मेमोरी कॉल करने वाले की समस्या है।

Type: Learn + Build

Languages: Python (stdlib)

Prerequisites: Phase 16 · 04 (Primitive Model)

Time: ~60 minutes

समस्या

प्रत्येक मल्टी-एजेंट फ्रेमवर्क चाहता है कि आप अपने डीएसएल सीखेंः लैंगग्राफ नोड्स और किनारे, क्रूएआई क्रू और कार्य, ऑटोजेन ग्रुपचैट और प्रबंधक। डीएसएल वास्तविक अमूर्त हैं, लेकिन वे चीज को महसूस करते हैं कि यह होना चाहिए से भारी है।

Swarm विपरीत दिशा में धक्का देता हैः मॉडल के पास पहले से ही उपकरण-कॉल करने की क्षमता का उपयोग करें। हस्तान्तरण उपकरण कॉल बन जाते हैं। ऑर्केस्ट्रेटर वर्तमान में वार्तालाप करने वाला एजेंट है। राज्य मशीन एजेंटों के सिस्टम संकेतों में अप्रत्यक्ष है।

अवधारणा

दो आदिम

Routine.एक सिस्टम प्रॉम्प्ट जो एजेंट की भूमिका और उपलब्ध उपकरण को परिभाषित करता है। इसे निर्देशों के एक परिमाण सेट के रूप में सोचेंः "आप एक triage एजेंट हैं; यदि उपयोगकर्ता धनवापसी के बारे में पूछता है, तो धनवापसी एजेंट को सौंप दें।"

Handoff.एक उपकरण एजेंट कॉल कर सकते हैं कि एक नया एजेंट वस्तु वापस आता है। Swarm रनटाइम एजेंट रिटर्न मूल्य का पता लगाता है और अगले वक्र के लिए सक्रिय एजेंट स्विच करता है।

यह सारा अमूर्त है।

def transfer_to_refunds():
    return refund_agent  # Swarm sees Agent return → switch active agent

triage_agent = Agent(
    name="triage",
    instructions="Route the user to the right specialist.",
    functions=[transfer_to_refunds, transfer_to_sales, transfer_to_support],
)

ट्राइज एजेंट के सिस्टम प्रॉम्प्ट से उसे उपयोगकर्ता संदेश के आधार पर सही हस्तान्तरण का चयन करने के लिए प्रेरित होता है। एलएलएम के उपकरण कॉल रूटिंग करता है।

यह वायरल क्यों है

  • Small API.दो अवधारणाएं सीखनी हैं।
  • Uses what the model already does.उपकरण कॉल पहले से ही प्रदाताओं के बीच उत्पादन-ग्रेड है।
  • No state-machine burden.आप ग्राफ का वर्णन नहीं करते हैं; एजेंटों के संकेत बताते हैं कि वे किसको सौंपते हैं।

देशहीन व्यापार

Swarm स्पष्ट रूप से रन के बीच stateless है. फ्रेमवर्क रन के दौरान एक संदेश इतिहास रखता है, लेकिन यह कुछ भी बरकरार नहीं रखता है. स्मृति, निरंतरता, लंबे समय तक चलने वाले कार्यों सभी कॉल करने वाले की समस्या।

उत्पादन में (ओपनएआई एजेंट्स एसडीके, मार्च 2025) यह मुख्य चीजों में से एक था जो बदल गयाः एसडीके ने हस्तान्तरण को आदिम बनाए रखते हुए अंतर्निहित सत्र प्रबंधन, गार्डरेल्स और ट्रैकिंग जोड़ा।

जब Swarm/Handoffs फिट

  • Triage patterns.फ्रंटलाइन एजेंट उपयोगकर्ता को विशेषज्ञ के पास भेजता है।
  • Skill-based handoffs."यदि कार्य को कोड की आवश्यकता है, तो कोडर को कॉल करें; यदि उसे शोध की आवश्यकता है, तो शोधकर्ता को कॉल करें। "
  • Short, bounded conversations.ग्राहक सहायता, FAQ-to-ticket, सरल कार्यप्रवाह।

जब झुंड संघर्ष करता है

  • Long sessions with shared memory.हाथों को नए एजेंट के शीघ्र प्लस इतिहास के लिए बातचीत की स्थिति रीसेट. कॉलर प्रबंधित स्मृति के बिना एजेंटों के बीच कोई स्थायी स्थिति नहीं.
  • Parallel execution.Handoff एक-एक-एक समय सक्रिय एजेंट स्विच करता है. समानांतरता के लिए कॉल करने वाले को कई Swarm रन को व्यवस्थित करने की आवश्यकता होती है।
  • Audit and replay.बिना राज्य के रन को ठीक से दोहराया जाना मुश्किल है; एलएलएम का हाथ-पहचान विकल्प निर्धारात्मक नहीं है।

ओपनएआई एजेंट्स एसडीके (मार्च 2025)

उत्पादन उत्तराधिकारी जोड़ता हैः

  • Session state.रनों के पार निरंतर धागा।
  • Guardrails.इनपुट/आउटपुट सत्यापन हुक।
  • Tracing.हर उपकरण कॉल और हस्तांतरण लॉग किया गया है।
  • Handoff filters.नियंत्रण जो संदर्भ हस्तांतरण पर स्थानांतरित करता है।

हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों से हाथों को हाथों से हाथों से हाथों से हाथों से हाथों को हाथों से हाथों से हाथों से हाथों को हाथों से हाथों से हाथों को हाथों से हाथों से हाथों को हाथों से हाथों को हाथों को हाथों से हाथों को हाथों को हाथों से हाथों को हाथों को हाथों को हाथों से हाथों को हाथों को हाथों को हाथों को हाथों से हाथों को हाथों से हाथों को हाथों को हाथों को हाथों को हाथों को हाथों से हाथों को हाथों को हाथों को हाथों को हाथों को हाथों को हाथों से हाथों को हाथों को हाथों को हाथों को हाथों को हाथों से हाथों को हाथों को हाथों को हाथों को हाथों को हाथों को हाथों से हाथों को हाथों से हाथों को हाथों को हाथों को हाथों को हाथों को हाथों को हाथों को हाथों को हाथों से हाथों को हाथों को हाथों को हाथों को हाथों को हाथों को हाथों से हाथों को हाथों को हाथों को हाथों को हाथों को हाथों को हाथों को हाथों को हाथों से हाथों को हाथों को हाथों को हाथों को हाथों को हाथों से हाथों को हाथों को हाथों को हाथों को हाथों से हाथों को हाथों को हाथों को हाथों को हाथों को हाथों को हाथों से हाथों को हाथों को हाथों को हाथों को हाथों से

समूह चैट बनाम समूह चैट

दोनों LLM-driven routing का उपयोग करते हैं, लेकिन वे अलग-अलग हैं।who picks next:

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

Swarm "एजेंट तय करता है कि आगे क्या है"; GroupChat "प्रबंधक तय करता है कि आगे क्या है।" Swarm के निर्णय सक्रिय एजेंट के उपकरण कॉल में रहता है; GroupChat के जीवन में GroupChatManager. .

इसे बनाओ

code/main.pyस्कार्म को स्क्रैच से लागू करता हैः एक एजेंट डेटाक्लास, एक हस्तांतरण तंत्र (उपकरण एजेंट को लौटाता है), और एक रन लूप जो एजेंट स्विच का पता लगाता है।

डेमोः एक ट्रेज एजेंट धनवापसी, बिक्री या समर्थन विशेषज्ञों के लिए मार्गों। प्रत्येक विशेषज्ञ के पास अपने स्वयं के उपकरण हैं। रन लूप प्रत्येक हस्तान्तरण को प्रिंट करता है।

दौड़ें:

python3 code/main.py

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

outputs/skill-handoff-designer.mdएक दिए गए कार्य के लिए एक हस्तान्तरण टोपोलॉजी डिजाइन करता हैः कौन से एजेंट मौजूद हैं, वे कौन से हस्तान्तरण बुला सकते हैं, कौन सा संदर्भ स्थानांतरित करता है।

इसे भेजें

चेकलिस्टः

  • Handoff logging.प्रत्येक हस्तान्तरण एक घटना के निशान के साथ लिखता है एजेंट से एजेंट, संदर्भ स्नैपशॉट.
  • Context transfer rules.यह तय करें कि क्या स्थानांतरित किया जाता हैः पूरा इतिहास (महंगी), अंतिम N संदेश, या सारांश।
  • Guardrail on handoff.विभिन्न उपकरण अनुमतियों वाले विशेषज्ञ को सौंपने को प्रमाणित किया जाना चाहिए अन्यथा शीघ्र इंजेक्शन अवांछित हस्तान्तरण को मजबूर कर सकता है।
  • Loop detection.दो एजेंटों को आगे और पीछे देने से आम विफलता होती है; अंतिम-के रिंग चेक के साथ पता लगाएं।
  • Fallback agent.यदि कोई हस्तांतरण लक्ष्य मौजूद नहीं है, तो सुरक्षित डिफ़ॉल्ट में वापस गिरें।

व्यायाम

  1. दौड़ेंcode/main.pyदूसरे वक्र के सक्रिय एजेंट की वापसी की पुष्टि करें।
  2. एक लूप-डिटेक्शन नियम जोड़ेंः यदि एक ही दो एजेंटों ने लगातार 3 बार दिया है, तो एक बाहर निकलने के लिए मजबूर करें। बैकअप डिजाइन करें।
  3. Handoff फ़िल्टर पर OpenAI एजेंट्स SDK डॉक्स पढ़ें। एक "सारांश-ऑन-हैंडॉफ" संस्करण लागू करेंः आने वाले एजेंट को संभालने से पहले आउटगॉन्ग एजेंट संदर्भ को एक बुलेट सारांश में संपीड़ित करता है।
  4. समूह चैट मैनेजर सेक्टर के साथ स्वार्म के हस्तांतरण की तुलना करें। किस पैटर्न से शीघ्र इंजेक्शन खराब होता है, और क्यों?
  5. स्कार्म की खाना पकाने की किताब पढ़ें (https://developers.openai.com/cookbook/examples/orchestrating_agents) एक स्पष्ट डिजाइन निर्णय की पहचान करें जो Swarm करता है कि OpenAI एजेंट्स SDK बदल या रखा गया है।

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

TermWhat people sayWhat it actually means
Routine"The agent prompt"System prompt + tool list. Defines role and available handoffs.
Handoff"Transfer to another agent"A tool the active agent can call that returns a new Agent. The runtime switches active agent.
Stateless"No memory between runs"Swarm does not persist anything; memory is the caller's responsibility.
Active agent"Who's speaking now"The agent currently holding the conversation. Handoff changes this.
Context transfer"What moves on handoff"Policy for what history the incoming agent sees: full, last N, or summarized.
Handoff loop"Agents ping-pong"Failure mode where two agents keep handing back to each other.
OpenAI Agents SDK"Production Swarm"March 2025 successor; adds sessions, guardrails, tracing on top of the handoff primitive.
Handoff filter"Gate on transfer"SDK feature to inspect and modify context at the handoff boundary.

आगे पढ़ना

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.