fix: circular import — lazy registry access in meta_agent.py
This commit is contained in:
@@ -14,7 +14,11 @@ from datetime import datetime, timezone
|
|||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from app.agents.base import AgentResult, AgentStatus, AgentTrigger, BaseAgent
|
from app.agents.base import AgentResult, AgentStatus, AgentTrigger, BaseAgent
|
||||||
from app.agents.registry import registry
|
|
||||||
|
|
||||||
|
def _get_registry():
|
||||||
|
from app.agents.registry import registry
|
||||||
|
return registry
|
||||||
|
|
||||||
|
|
||||||
DEFAULT_CONFIG: dict[str, Any] = {
|
DEFAULT_CONFIG: dict[str, Any] = {
|
||||||
@@ -86,7 +90,7 @@ class MetaAgent(BaseAgent):
|
|||||||
sources_count = context.get("sources_count", self._config["sources_count"])
|
sources_count = context.get("sources_count", self._config["sources_count"])
|
||||||
weights = self._config.get("weights", {})
|
weights = self._config.get("weights", {})
|
||||||
|
|
||||||
all_agents = registry.list_agents()
|
all_agents = _get_registry().list_agents()
|
||||||
if not all_agents:
|
if not all_agents:
|
||||||
await self.set_idle()
|
await self.set_idle()
|
||||||
return AgentResult(
|
return AgentResult(
|
||||||
@@ -117,7 +121,7 @@ class MetaAgent(BaseAgent):
|
|||||||
results: dict[str, Any] = {}
|
results: dict[str, Any] = {}
|
||||||
for name, _weight in selected:
|
for name, _weight in selected:
|
||||||
try:
|
try:
|
||||||
result = await registry.run_agent(name, {"trigger": "meta_agent"})
|
result = await _get_registry().run_agent(name, {"trigger": "meta_agent"})
|
||||||
results[name] = {
|
results[name] = {
|
||||||
"success": result.success,
|
"success": result.success,
|
||||||
"message": result.message,
|
"message": result.message,
|
||||||
@@ -151,8 +155,8 @@ class MetaAgent(BaseAgent):
|
|||||||
|
|
||||||
async def _generate_report(self) -> AgentResult:
|
async def _generate_report(self) -> AgentResult:
|
||||||
"""Generate summary report of all agent statuses."""
|
"""Generate summary report of all agent statuses."""
|
||||||
all_agents = registry.list_agents()
|
all_agents = _get_registry().list_agents()
|
||||||
metrics = registry.get_metrics_all()
|
metrics = _get_registry().get_metrics_all()
|
||||||
|
|
||||||
return AgentResult(
|
return AgentResult(
|
||||||
success=True,
|
success=True,
|
||||||
|
|||||||
Reference in New Issue
Block a user