diff --git a/frontend/src/components/Agent/WorkerIndividualSettings.tsx b/frontend/src/components/Agent/WorkerIndividualSettings.tsx index c13c66c..de4d9a5 100644 --- a/frontend/src/components/Agent/WorkerIndividualSettings.tsx +++ b/frontend/src/components/Agent/WorkerIndividualSettings.tsx @@ -45,7 +45,7 @@ export function WorkerIndividualSettings() { setProviders(Object.values(provRes.data.provider_list || {})); setWorkers(workRes.data.workers || []); - const allTools = toolsRes.data.tools ? Object.values(toolsRes.data.tools).flatMap(tGroup => Object.keys(tGroup as any)) : []; + const allTools = toolsRes.data.tools || []; setAvailableTools(allTools); setAvailableSkills(Object.keys(skillsRes.data.skills || {})); diff --git a/pretor/worker_individual/worker_cluster.py b/pretor/worker_individual/worker_cluster.py index dfa3117..af60fb7 100644 --- a/pretor/worker_individual/worker_cluster.py +++ b/pretor/worker_individual/worker_cluster.py @@ -38,12 +38,14 @@ class WorkerCluster: self.max_capacity = max_capacity self._active_workers: OrderedDict[str, BaseIndividual] = OrderedDict() self.status = "running" - self.task_queue = Queue() + self.task_queue = None self.results_futures = {} self.runners = [] self.num_runners = num_runners async def start(self): + if self.task_queue is None: + self.task_queue = Queue() self.runners = [asyncio.create_task(self._runner(i)) for i in range(self.num_runners)] logger.info(f"WorkerCluster 已启动 {self.num_runners} 个 runner 协程。") @@ -77,6 +79,9 @@ class WorkerCluster: async def _runner(self, runner_id: int): while True: try: + if self.task_queue is None: + await asyncio.sleep(0.1) + continue task = await self.task_queue.get_async() task_id = task.get("task_id") agent_id = task.get("agent_id")