Compare commits
No commits in common. "0a7197295e65272d3f587973b9e0e50c4d3a89fb" and "f5aa396d972461ddac01eef1067bcd47ed7b6126" have entirely different histories.
0a7197295e
...
f5aa396d97
|
|
@ -45,7 +45,7 @@ export function WorkerIndividualSettings() {
|
|||
setProviders(Object.values(provRes.data.provider_list || {}));
|
||||
setWorkers(workRes.data.workers || []);
|
||||
|
||||
const allTools = toolsRes.data.tools || [];
|
||||
const allTools = toolsRes.data.tools ? Object.values(toolsRes.data.tools).flatMap(tGroup => Object.keys(tGroup as any)) : [];
|
||||
setAvailableTools(allTools);
|
||||
setAvailableSkills(Object.keys(skillsRes.data.skills || {}));
|
||||
|
||||
|
|
|
|||
|
|
@ -78,11 +78,6 @@ class ConsciousnessNode:
|
|||
)
|
||||
if ctx.deps.workflow_template:
|
||||
prompt += f"- 选定工作流模板 (Workflow Template): {ctx.deps.workflow_template}\n"
|
||||
if ctx.deps.available_skills:
|
||||
prompt += "\n=== 当前可用 Skill Individual ===\n"
|
||||
prompt += "你可以直接将以下 Skill Individual 安排进工作流的步骤中(设置 node 为 composite_individual 或 primary_individual,并将 agent_id 设置为对应的 Skill Individual 名称),作为可调用的工具。\n"
|
||||
for skill in ctx.deps.available_skills:
|
||||
prompt += f"- 名称: {skill['name']}\n 描述: {skill['description']}\n"
|
||||
|
||||
return prompt
|
||||
|
||||
|
|
@ -145,8 +140,7 @@ class ConsciousnessNode:
|
|||
deps = ConsciousnessNodeDeps(
|
||||
original_command=payload.original_command,
|
||||
workflow_template=payload.workflow_template,
|
||||
command="拆解原始命令变成一个工作流",
|
||||
available_skills=payload.available_skills
|
||||
command="拆解原始命令变成一个工作流"
|
||||
)
|
||||
self.logger.debug("ConsciousnessNode: 开始生成工作流 (原生重试开启)")
|
||||
result = await self.agent.run(
|
||||
|
|
|
|||
|
|
@ -44,7 +44,6 @@ class ConsciousnessNodeDeps(DepsModel):
|
|||
original_command: str
|
||||
workflow_template: str | None = None
|
||||
command: str
|
||||
available_skills: list[dict] | None = None
|
||||
|
||||
|
||||
class ConsciousnessNodeInput(InputModel):
|
||||
|
|
@ -54,7 +53,6 @@ class ConsciousnessNodeInput(InputModel):
|
|||
class ForWorkflowEngineInput(ConsciousnessNodeInput):
|
||||
workflow_template: str
|
||||
original_command: str
|
||||
available_skills: list[dict] | None = None
|
||||
|
||||
|
||||
class ForWorkflowInput(ConsciousnessNodeInput):
|
||||
|
|
|
|||
|
|
@ -300,21 +300,9 @@ class WorkflowRunningEngine:
|
|||
workflow_template = event.context.get("workflow_template", "")
|
||||
workflow_template = get_workflow_template(workflow_template)
|
||||
|
||||
available_skills = None
|
||||
if self.global_state_machine:
|
||||
try:
|
||||
raw_skills = await self.global_state_machine.get_skill_list.remote()
|
||||
available_skills = [
|
||||
{"name": name, "description": details[0], "instructions": details[1]}
|
||||
for name, details in raw_skills.items()
|
||||
]
|
||||
except Exception as e:
|
||||
self.logger.warning(f"获取技能列表失败: {e}")
|
||||
|
||||
payload = ForWorkflowEngineInput(
|
||||
original_command=event.message,
|
||||
workflow_template=workflow_template,
|
||||
available_skills=available_skills
|
||||
workflow_template=workflow_template
|
||||
)
|
||||
|
||||
result_obj = await self.consciousness_node.working.remote(payload)
|
||||
|
|
|
|||
|
|
@ -38,14 +38,12 @@ class WorkerCluster:
|
|||
self.max_capacity = max_capacity
|
||||
self._active_workers: OrderedDict[str, BaseIndividual] = OrderedDict()
|
||||
self.status = "running"
|
||||
self.task_queue = None
|
||||
self.task_queue = Queue()
|
||||
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 协程。")
|
||||
|
||||
|
|
@ -79,9 +77,6 @@ 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")
|
||||
|
|
|
|||
|
|
@ -143,11 +143,6 @@ async def test_workflow_running_engine_runner():
|
|||
)
|
||||
await engine.workflow_queue.put(mock_event)
|
||||
|
||||
# Mock the global_state_machine get_skill_list.remote method properly
|
||||
mock_gsm = MagicMock()
|
||||
mock_gsm.get_skill_list.remote = AsyncMock(return_value={"test_skill": ("description", "instructions")})
|
||||
engine.global_state_machine = mock_gsm
|
||||
|
||||
with patch("pretor.core.workflow.workflow_runner.WorkflowEngine") as mock_wf_engine_cls, patch("builtins.open", new_callable=MagicMock) as mock_open:
|
||||
|
||||
# Instead of patching hook, we inject it directly
|
||||
|
|
|
|||
Loading…
Reference in New Issue