Create an agent instance and store it. Args: agent_config: Agent configuration Returns: AgentConfig: Agent configuration with instance
(self, agent_config: AgentConfig)
| 392 | logger.warning(f"| ⚠️ Failed to add agent {agent_config.name} to FAISS index: {e}") |
| 393 | |
| 394 | async def build(self, agent_config: AgentConfig) -> AgentConfig: |
| 395 | """Create an agent instance and store it. |
| 396 | |
| 397 | Args: |
| 398 | agent_config: Agent configuration |
| 399 | |
| 400 | Returns: |
| 401 | AgentConfig: Agent configuration with instance |
| 402 | """ |
| 403 | if agent_config.name in self._agent_configs: |
| 404 | existing_config = self._agent_configs[agent_config.name] |
| 405 | if existing_config.instance is not None: |
| 406 | return existing_config |
| 407 | |
| 408 | # Create new agent instance |
| 409 | try: |
| 410 | # cls should already be loaded (either from registry or from code in _load_from_code) |
| 411 | if agent_config.cls is None: |
| 412 | raise ValueError(f"Cannot create agent {agent_config.name}: no class provided. Class should be loaded during initialization.") |
| 413 | |
| 414 | # Instantiate agent instance |
| 415 | agent_instance = agent_config.cls(**agent_config.config) if agent_config.config else agent_config.cls() |
| 416 | |
| 417 | # Initialize agent if it has an initialize method |
| 418 | if hasattr(agent_instance, "initialize"): |
| 419 | await agent_instance.initialize() |
| 420 | |
| 421 | agent_config.instance = agent_instance |
| 422 | |
| 423 | # Store agent metadata |
| 424 | self._agent_configs[agent_config.name] = agent_config |
| 425 | |
| 426 | logger.info(f"| 🔧 Agent {agent_config.name} created and stored") |
| 427 | |
| 428 | return agent_config |
| 429 | except Exception as e: |
| 430 | logger.error(f"| ❌ Failed to create agent {agent_config.name}: {e}") |
| 431 | raise |
| 432 | |
| 433 | async def register( |
| 434 | self, |
no test coverage detected