Lesson 06 � Advanced
MULTI-AGENT SYSTEMS:
AGENTS MILKAR KAAM KAREIN.
Ek agent akela kaam karta hai, lekin jab bahut saare agents milkar kaam karein toh magic hota hai. Specialized agents alag-alag kaam karte hain aur milkar complex problems solve karte hain � jaise ek team. Yeh real-world AI ka future hai.
WHY: Multiple agents kyun zaroori hain?
Ek agent sab kuch kar sakta hai � lekin kya woh sab kuch acche se kar sakta hai✓ Nahi. Jaise ek company mein HR, finance, engineering alag-alag teams hoti hain, waise agents bhi specialized hone chahiye. Ek researcher accha research karta hai, ek writer accha likhta hai, ek reviewer galtiyan dhundhta hai. Jab yeh team mein kaam karein toh output 10x better hota hai.
Agent coordination � kaun kya karega, kab karega, kaise pass karega. Orchestrator ek manager hai jo saare agents ko coordinate karta hai aur task distribute karta hai.
Expert agents � har agent ek kaam mein best ho. Researcher sirf research karega, writer sirf likhega, reviewer sirf check karega. Specialization se quality badhti hai.
Agent messaging � agents ek dusre se baat karte hain. Results share karte hain, feedback dete hain, questions poochte hain. Bina communication ke team kaam nahi kar sakti.
Decision making � jab agents alag-alag sochein toh kaise decide karein✓ Voting, priority, ya senior agent ka final call. Consensus banana zaroori hai.
WHAT: Multi-Agent System kya hai?
Multi-Agent System (MAS) ek aisi system hai jismein:
- Multiple agents hain: Ek se zyada agents jo alag-alag roles play karte hain
- Specialized hain: Har agent ek specific domain mein expert hai
- Communicate karte hain: Agents ek dusre se messages, data, aur results share karte hain
- Goal achieve karte hain: Milkar ek bada goal complete karte hain jo akela agent nahi kar sakta
PATTERNS: Multi-Agent ke 3 patterns
Multi-Agent Systems alag-alag patterns mein kaam karte hain. Har pattern apni jagah useful hai:
1. Sequential Pipeline
✓ Agents ek ke baad ek kaam karte hain
✓ Output ek agent ka input ban jaata hai
✓ Example: Research ✓ Write ✓ Review ✓ Publish
✓ Simple hai, lekin slow
2. Parallel Processing
✓ Multiple agents ek saath kaam karte hain
✓ Har agent apna task independently karta hai
✓ Example: Ek hi data ko 3 agents alag angle se analyze karein
✓ Fast hai, lekin coordination mushkil
3. Hierarchical (Manager Pattern)
✓ Ek manager agent hota hai jo baaki ko coordinate karta hai
✓ Manager task distribute karta hai, results collect karta hai
✓ Example: CEO ✓ Managers ✓ Workers
✓ Scalable hai, lekin manager bottleneck ban sakta haiCODE: Multi-Agent System banana
Ab dekhte hain kaise multi-agent system code karte hain. Pehle basic agent banao, phir system jo agents ko coordinate kare.
# Multi-agent system
class Agent:
def __init__(self, name, role):
self.name = name
self.role = role
def work(self, task):
return f"{self.name} ({self.role}) processing: {task}"
class MultiAgentSystem:
def __init__(self):
self.agents = {}
def add_agent(self, agent):
self.agents[agent.name] = agent
def assign_task(self, task, agent_name=None):
if agent_name and agent_name in self.agents:
return self.agents[agent_name].work(task)
# Assign to best agent based on role
for agent in self.agents.values():
if agent.role in task.lower():
return agent.work(task)
return "No suitable agent found"
def collaborate(self, task):
results = []
for agent in self.agents.values():
results.append(agent.work(task))
return results
# Create system
system = MultiAgentSystem()
system.add_agent(Agent("Researcher", "research"))
system.add_agent(Agent("Writer", "writing"))
system.add_agent(Agent("Reviewer", "review"))
print(system.collaborate("Write a blog about AI"))ORCHESTRATION: Agents ko coordinate kaise karein?
Orchestration sabse mushkil part hai � kaun kya karega, kab karega, aur kaise pass karega. Orchestrator ek brain hai jo saare agents ko manage karta hai.
# Orchestrator pattern
class Orchestrator:
def __init__(self):
self.agents = {}
self.pipeline = []
def register_agent(self, name, agent):
self.agents[name] = agent
def set_pipeline(self, pipeline):
self.pipeline = pipeline
def execute(self, task):
current_input = task
results = []
for agent_name in self.pipeline:
agent = self.agents[agent_name]
result = agent.work(current_input)
results.append({
"agent": agent_name,
"input": current_input,
"output": result
})
current_input = result
return results
# Research ✓ Write ✓ Review pipeline
orchestrator = Orchestrator()
orchestrator.register_agent("researcher", Agent("Researcher", "research"))
orchestrator.register_agent("writer", Agent("Writer", "writing"))
orchestrator.register_agent("reviewer", Agent("Reviewer", "review"))
orchestrator.set_pipeline(["researcher", "writer", "reviewer"])
results = orchestrator.execute("Write about AI agents")
for r in results:
print(f"{r['agent']}: {r['output']}")COMMUNICATION: Agents kaise baat karte hain?
Agents ko communicate karna padta hai � results share karna, feedback dena, questions poochna. Message passing ek clean pattern hai.
# Agent communication via messages
class Message:
def __init__(self, sender, receiver, content, msg_type="info"):
self.sender = sender
self.receiver = receiver
self.content = content
self.msg_type = msg_type
class CommunicatingAgent:
def __init__(self, name, role):
self.name = name
self.role = role
self.inbox = []
self.outbox = []
def receive(self, message):
self.inbox.append(message)
return f"{self.name} received: {message.content}"
def send(self, receiver_name, content, msg_type="info"):
msg = Message(self.name, receiver_name, content, msg_type)
self.outbox.append(msg)
return msg
def process_inbox(self):
results = []
for msg in self.inbox:
result = self.work(msg.content)
results.append(result)
self.inbox.clear()
return results
def work(self, task):
return f"{self.name} ({self.role}) done: {task}"
# Example communication
researcher = CommunicatingAgent("Researcher", "research")
writer = CommunicatingAgent("Writer", "writing")
# Researcher sends findings to writer
msg = researcher.send("Writer", "AI agents autonomous hain")
print(writer.receive(msg))
# Writer processes and sends to reviewer
writer_results = writer.process_inbox()
print(writer_results)CONSENSUS: Jab agents disagree karein?
Kabhi kabhi agents alag-alag answers dete hain. Consensus building zaroori hai � voting, priority, ya weighted decisions.
# Consensus mechanism
class ConsensusSystem:
def __init__(self):
self.agents = {}
self.votes = {}
def add_agent(self, name, weight=1):
self.agents[name] = weight
def vote(self, agent_name, decision):
if agent_name in self.agents:
self.votes[decision] = self.votes.get(decision, 0) + self.agents[agent_name]
def get_consensus(self):
if not self.votes:
return "No votes yet"
# Weighted voting
max_votes = max(self.votes.values())
winners = [d for d, v in self.votes.items() if v == max_votes]
if len(winners) == 1:
return f"Consensus: {winners[0]} (votes: {max_votes})"
else:
return f"Tie between: {', '.join(winners)}"
def reset(self):
self.votes = {}
# Example: Choose best approach
consensus = ConsensusSystem()
consensus.add_agent("Researcher", weight=2) # Expert has more weight
consensus.add_agent("Writer", weight=1)
consensus.add_agent("Reviewer", weight=1)
consensus.vote("Researcher", "approach_A")
consensus.vote("Writer", "approach_B")
consensus.vote("Reviewer", "approach_A")
print(consensus.get_consensus()) # approach_A winsTry it: Build a Multi-Agent System
Yahan apna multi-agent system banao � agents add karo, pipeline set karo, aur dekho kaise collaborate karte hain.
Exercise: Test Your Knowledge
Quick check
"Multi-agent system kya hai?"
Socho: ek agent vs bahut saare agents � kya fark hai✓ Specialized agents milkar kya karte hain?
Key Takeaways
- Specialization wins: Ek agent sab kuch nahi kar sakta � specialized agents better performance dete hain.
- Orchestration zaroori hai: Agents ko coordinate karna padta hai � kaun kya karega, kab karega.
- Communication is key: Agents ko baat karna padta hai � results share karna, feedback dena.
- Consensus building: Jab agents disagree karein toh voting ya priority se decide karo.
- Real-world pattern: Jaise cricket team � har player specialist hai, sab milke match jeethte hain.
Ab Deployment par chalo � samjho ki apne agents ko production mein kaise deploy karein.