From ded6d86a23dc980f64ea3dbab4a9c5212ffdf92b Mon Sep 17 00:00:00 2001 From: harshalmore31 Date: Wed, 20 Aug 2025 23:18:21 +0530 Subject: [PATCH] fixes ! --- docs/mkdocs.yml | 2 +- swarms/utils/agent_loader.py | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index ff2bc4cc..29db2115 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -326,6 +326,7 @@ nav: - Overview: "swarms_tools/overview.md" - BaseTool Reference: "swarms/tools/base_tool.md" - MCP Client Utils: "swarms/tools/mcp_client_call.md" + - Agent Loader: "swarms/utils/agent_loader.md" - Vertical Tools: - Finance: "swarms_tools/finance.md" @@ -369,7 +370,6 @@ nav: - Utils: - Agent with Streaming: "examples/agent_stream.md" - Agent Output Types: "swarms/examples/agent_output_types.md" - - Agent Loader: "swarms/utils/agent_loader.md" - Gradio Chat Interface: "swarms/ui/main.md" - LLM Providers: - Overview: "swarms/examples/model_providers.md" diff --git a/swarms/utils/agent_loader.py b/swarms/utils/agent_loader.py index 58a81928..ee3b0e89 100644 --- a/swarms/utils/agent_loader.py +++ b/swarms/utils/agent_loader.py @@ -10,7 +10,7 @@ from concurrent.futures import ( from pydantic import BaseModel, Field, field_validator from loguru import logger -from swarms.structs.agent import Agent +# Lazy import to avoid circular dependency # Default model configuration DEFAULT_MODEL = "gpt-4o" @@ -186,7 +186,7 @@ class AgentLoader: def load_agent_from_markdown( self, file_path: str, **kwargs - ) -> Agent: + ) -> "Agent": """ Load a single agent from a markdown file. @@ -222,6 +222,9 @@ class AgentLoader: agent_fields[config_key] = config_value try: + # Lazy import to avoid circular dependency + from swarms.structs.agent import Agent + logger.info( f"Creating agent '{config.name}' from {file_path}" ) @@ -248,7 +251,7 @@ class AgentLoader: max_workers: Optional[int] = None, max_file_size_mb: float = 10.0, **kwargs, - ) -> List[Agent]: + ) -> List["Agent"]: """ Load multiple agents from markdown files with optional concurrent processing. @@ -370,7 +373,7 @@ class AgentLoader: ) return agents - def load_single_agent(self, file_path: str, **kwargs) -> Agent: + def load_single_agent(self, file_path: str, **kwargs) -> "Agent": """ Convenience method for loading a single agent. Uses Claude Code sub-agent YAML frontmatter format. @@ -386,7 +389,7 @@ class AgentLoader: def load_multiple_agents( self, file_paths: Union[str, List[str]], **kwargs - ) -> List[Agent]: + ) -> List["Agent"]: """ Convenience method for loading multiple agents. Uses Claude Code sub-agent YAML frontmatter format. @@ -402,7 +405,7 @@ class AgentLoader: # Convenience functions -def load_agent_from_markdown(file_path: str, **kwargs) -> Agent: +def load_agent_from_markdown(file_path: str, **kwargs) -> "Agent": """ Load a single agent from a markdown file with Claude Code YAML frontmatter format. @@ -422,7 +425,7 @@ def load_agents_from_markdown( concurrent: bool = True, max_file_size_mb: float = 10.0, **kwargs, -) -> List[Agent]: +) -> List["Agent"]: """ Load multiple agents from markdown files with Claude Code YAML frontmatter format.