-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathagent_manager.py
36 lines (28 loc) · 1.26 KB
/
agent_manager.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from typing import Dict, Any, Optional
from agent_factory import AgentFactory
class AgentManager:
def __init__(self):
self.agents: Dict[str, Dict[str, Any]] = {}
self.factory = AgentFactory()
def create_agent(self, name: str, personality: str, role: str, mode: str, source: str) -> Optional[str]:
agent_id = self.factory.create_agent(name, personality, role, mode, source)
if agent_id is None:
return None
self.agents[agent_id] = {"name": name, "personality": personality, "role": role, "mode": mode, "source": source}
return agent_id
def get_agent_name(self, agent_id: str) -> Optional[str]:
return self.agents.get(agent_id, {}).get("name")
def get_all_agents(self) -> Dict[str, Dict[str, Any]]:
return self.agents.copy()
def update_agent_state(self, agent_id: str, state: Dict[str, Any]) -> None:
if agent_id in self.agents:
self.agents[agent_id].update(state)
else:
print(f"Error: Agent {agent_id} not found.")
def register_agent(self, agent_id, name, personality, role, mode):
self.agents[agent_id] = {
'name': name,
'personality': personality,
'role': role,
'mode': mode
}