MCPcopy Create free account
hub / github.com/SkyworkAI/DeepResearchAgent / initialize

Method initialize

src/agent/context.py:89–176  ·  view source on GitHub ↗

Initialize the agent context manager and all registered agents.

(self, agent_names: Optional[List[str]] = None)

Source from the content-addressed store, hash-verified

87 self._variables_lock = asyncio.Lock() # Lock for get/set trainable variables
88
89 async def initialize(self, agent_names: Optional[List[str]] = None) -> None:
90 """Initialize the agent context manager and all registered agents."""
91
92 # Register agent-related symbols for auto-injection in dynamic code
93 dynamic_manager.register_symbol("AGENT", AGENT)
94 dynamic_manager.register_symbol("Agent", Agent)
95 dynamic_manager.register_symbol("AgentConfig", AgentConfig)
96
97 # Register agent context provider for automatic import injection
98 def agent_context_provider():
99 return {
100 "AGENT": AGENT,
101 "Agent": Agent,
102 "AgentConfig": AgentConfig,
103 }
104
105 dynamic_manager.register_context_provider("agent", agent_context_provider)
106
107 # Initialize Faiss service for agent embedding
108 self._faiss_service = FaissService(
109 base_dir=self.base_dir,
110 model_name=self.model_name,
111 )
112
113 # Load agents from AGENT registry
114 agent_configs: Dict[str, AgentConfig] = {}
115 registry_agent_configs: Dict[str, AgentConfig] = await self._load_from_registry()
116 agent_configs.update(registry_agent_configs)
117
118 # Load agents from code JSON (including older versions / dynamic agents)
119 code_agent_configs: Dict[str, AgentConfig] = await self._load_from_code()
120
121 # Merge code configs with registry configs, only override if code version is strictly greater
122 for agent_name, code_config in code_agent_configs.items():
123 if agent_name in agent_configs:
124 registry_config = agent_configs[agent_name]
125 if (
126 version_manager.compare_versions(
127 code_config.version, registry_config.version
128 )
129 > 0
130 ):
131 logger.info(
132 f"| 🔄 Overriding agent {agent_name} from registry "
133 f"(v{registry_config.version}) with code version (v{code_config.version})"
134 )
135 agent_configs[agent_name] = code_config
136 else:
137 logger.info(
138 f"| 📌 Keeping agent {agent_name} from registry (v{registry_config.version}), "
139 f"code version (v{code_config.version}) is not greater"
140 )
141 # If versions are equal, update the history with registry config (which has real class, not dynamic)
142 if version_manager.compare_versions(code_config.version, registry_config.version) == 0:
143 # Replace the code config in history with registry config to preserve real class reference
144 if agent_name in self._agent_history_versions:
145 self._agent_history_versions[agent_name][registry_config.version] = registry_config
146 else:

Callers 1

buildMethod · 0.45

Calls 14

_load_from_registryMethod · 0.95
_load_from_codeMethod · 0.95
buildMethod · 0.95
save_to_jsonMethod · 0.95
save_contractMethod · 0.95
FaissServiceClass · 0.90
gather_with_concurrencyFunction · 0.90
register_symbolMethod · 0.80
compare_versionsMethod · 0.80
updateMethod · 0.45
infoMethod · 0.45

Tested by

no test coverage detected