From 0a7197295e65272d3f587973b9e0e50c4d3a89fb Mon Sep 17 00:00:00 2001 From: zhaoxi Date: Tue, 28 Apr 2026 19:47:19 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E5=A4=8D=E4=BA=86=E4=B8=80?= =?UTF-8?q?=E4=BA=9Bbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/Agent/WorkerIndividualSettings.tsx | 2 +- pretor/worker_individual/worker_cluster.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) 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")