File size: 796 Bytes
d3b8afc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from typing import Optional

from pydantic import BaseModel, Field

from aworldspace.base_agent import AworldBaseAgent

"""
Agent Space 
"""

class AgentMeta(BaseModel):
    name: str = None
    desc: str = None



class AgentSpace(BaseModel):
    agent_modules: Optional[dict] = Field(default_factory=dict, description="agent module")
    agents_meta: Optional[dict] = Field(default_factory=dict, description="agents meta")

    def register(self, agent_name: str, agent_instance: AworldBaseAgent, metadata: dict=None):
        # Register agent metadata and instance
        self.agent_modules[agent_name] = agent_instance

    async def get_agent_modules(self):
        return self.agent_modules

    async def get_agents_meta(self):
        return self.agents_meta


AGENT_SPACE = AgentSpace()