Skip to main content

मल्टी-एजेंट समन्वय

साझा Synapse minds, tasks और chat का उपयोग करके कई LLM एजेंट्स का समन्वय करें।


मल्टी-एजेंट समन्वय

जब आपके पास संबंधित कार्यों पर काम करने वाले कई LLM एजेंट्स हों, तो Synapse समन्वय परत प्रदान करता है — साझा मेमोरी, कार्य असाइनमेंट और एसिंक्रोनस चैट।

पैटर्न

पैटर्न 1: साझा Mind (एकमात्र सत्य का स्रोत)

सभी एजेंट्स एक Mind Key साझा करते हैं। वे एक ही मेमोरी स्टोर को पढ़ते/लिखते हैं।

┌──────────┐  ┌──────────┐  ┌──────────┐
│ Agent A  │  │ Agent B  │  │ Agent C  │
└────┬─────┘  └────┬─────┘  └────┬─────┘
     │             │             │
     └─────────────┼─────────────┘
                   ▼
           ┌──────────────┐
           │ Shared Mind  │
           │  (one key)   │
           └──────────────┘

उपयोग का मामला: एक प्रोजेक्ट पर काम करने वाले एजेंट्स की छोटी टीम।

सेटअप:

# All agents use the same Mind Key
export SYNAPSE_MIND_KEY=mk_shared_key...

कार्यों के माध्यम से समन्वय:

# Agent A creates a task
create_task("Review PR #42", priority="high")

# Agent B picks it up
tasks = list_tasks(status="pending")
if tasks:
    task = tasks[0]
    update_task(task["id"], status="in_progress")
    # ... do work ...
    update_task(task["id"], status="done")

पैटर्न 2: विशेषीकृत Minds (पृथक संदर्भ)

प्रत्येक एजेंट का अपना mind होता है। वे एक साझा "coordination" mind के माध्यम से संवाद करते हैं।

┌──────────┐  ┌──────────┐  ┌──────────┐
│ Coder    │  │ Reviewer │  │ Deployer │
│ Agent    │  │ Agent    │  │ Agent    │
└────┬─────┘  └────┬─────┘  └────┬─────┘
     │             │             │
     ▼             ▼             ▼
┌─────────┐  ┌─────────┐  ┌─────────┐
│ Mind C  │  │ Mind R  │  │ Mind D  │
└─────────┘  └─────────┘  └─────────┘
     │             │             │
     └─────────────┼─────────────┘
                   ▼
           ┌──────────────────┐
           │ Coordination Mind│
           │ (shared)         │
           └──────────────────┘

उपयोग का मामला: अलग-अलग विशेषताओं वाले एजेंट्स (कोडिंग, समीक्षा, डिप्लॉयमेंट)।

सेटअप:

# Coder agent
SYNAPSE_MIND_KEY=mk_coder... MCP_TRANSPORT=stdio npx synapse-mcp-api@latest

# Reviewer agent
SYNAPSE_MIND_KEY=mk_reviewer... MCP_TRANSPORT=stdio npx synapse-mcp-api@latest

# Deployer agent
SYNAPSE_MIND_KEY=mk_deployer... MCP_TRANSPORT=stdio npx synapse-mcp-api@latest

साझा mind के माध्यम से समन्वय:

# Coder stores "ready for review"
COORDINATION_KEY = "mk_coordination..."
requests.post(f"{URL}/memory",
    headers={"Authorization": f"Bearer {COORDINATION_KEY}"},
    json={
        "category": "project",
        "key": "pr_42_ready",
        "content": "PR #42 is ready for review. Branch: feature/docs-system",
        "tags": ["review", "pr-42"],
        "priority": "high"
    })

# Reviewer polls for review requests
r = requests.get(f"{URL}/memory/search?q=ready+for+review",
    headers={"Authorization": f"Bearer {COORDINATION_KEY}"})

पैटर्न 3: Hub-and-Spoke (ऑर्केस्ट्रेटर)

एक केंद्रीय ऑर्केस्ट्रेटर एजेंट कार्यों को वर्कर एजेंट्स को असाइन करता है।

        ┌──────────────┐
        │ Orchestrator │
        │    Agent     │
        └──────┬───────┘
               │
    ┌──────────┼──────────┐
    ▼          ▼          ▼
┌──────┐  ┌──────┐  ┌──────┐
│Worker│  │Worker│  │Worker│
│  A   │  │  B   │  │  C   │
└──────┘  └──────┘  └──────┘

उपयोग का मामला: समानांतर कार्य वाले जटिल वर्कफ़्लो।

कार्यान्वयन:

# Orchestrator
class Orchestrator:
    def assign_task(self, worker_id, task_description):
        # Store task in worker's mind (or shared coordination mind)
        create_task(task_description, priority="high")
        # Notify worker via chat
        reply(f"@{worker_id}: New task — {task_description}")
    
    def check_progress(self):
        tasks = list_tasks(status="in_progress")
        for t in tasks:
            print(f"{t['title']}: {t['status']}")

# Workers poll for assigned tasks
class Worker:
    def run(self):
        while True:
            tasks = list_tasks(status="pending")
            for t in tasks:
                if assigned_to_me(t):
                    update_task(t["id"], status="in_progress")
                    result = do_work(t)
                    update_task(t["id"], status="done")
                    reply(f"Completed: {t['title']}")
            time.sleep(60)

चैट के माध्यम से समन्वय

एजेंट्स चैट सिस्टम के माध्यम से संवाद कर सकते हैं:

# Agent A sends to Agent B
reply("@agent-b: Can you review my PR?")

# Agent B polls and responds
for msg in poll_messages():
    if "@agent-b" in msg["content"]:
        reply(f"@agent-a: Sure, looking at it now.")
चैट संदेश रोल-टैग किए जाते हैं। एजेंट-टू-एजेंट संदेशों के लिए role=agent सेट करें, मानव-टू-एजेंट के लिए role=human।

वेरिएबल के माध्यम से समन्वय

हल्के समन्वय (लॉक, फ़्लैग) के लिए वेरिएबल का उपयोग करें:

# Acquire a lock
def acquire_lock(name):
    r = requests.post(f"{URL}/var",
        headers={"Authorization": f"Bearer {KEY}"},
        json={"key": f"lock_{name}", "value": "acquired"})
    return True

def release_lock(name):
    requests.delete(f"{URL}/var/lock_{name}",
        headers={"Authorization": f"Bearer {KEY}"})

# Use
if acquire_lock("deploy"):
    try:
        deploy_to_production()
    finally:
        release_lock("deploy")

सर्वोत्तम अभ्यास

अगले कदम