feat: workflow_template改为可不选

This commit is contained in:
朝夕 2026-04-28 22:48:59 +08:00
parent 3e0f377004
commit b20beb23c0
5 changed files with 10 additions and 9 deletions

View File

@ -149,9 +149,10 @@ class ConsciousnessNode:
available_skills=payload.available_skills
)
self.logger.debug("ConsciousnessNode: 开始生成工作流 (原生重试开启)")
result = await self.agent.run(
"根据original_command制定严密的可执行workflow可以学习并参考workflow_template的设计理念",
deps=deps)
prompt = "根据original_command制定严密的可执行workflow"
if payload.workflow_template:
prompt += "可以学习并参考workflow_template的设计理念"
result = await self.agent.run(prompt, deps=deps)
return result.output
elif isinstance(payload, ForWorkflowInput):

View File

@ -52,7 +52,7 @@ class ConsciousnessNodeInput(InputModel):
class ForWorkflowEngineInput(ConsciousnessNodeInput):
workflow_template: str
workflow_template: str | None = None
original_command: str
available_skills: list[dict] | None = None

View File

@ -51,7 +51,7 @@ class SupervisoryNode:
"你的核心职责是进行【意图识别与路由】。请仔细阅读用户的请求:\n"
"1. 如果用户只是进行简单的问候、闲聊或查询非常基础的信息,请直接生成友好的回复,使用 ForUser 格式。\n"
"2. 如果用户提出的是复杂任务(如需要编写代码、多步骤规划、数据处理等),请务必将其判定为需要工作流处理的任务,"
" 并使用 ForConsciousnessNode 格式,同时从提供的【可用模板列表】中选择最合适的工作流模板移交给意识节点\n"
" 并使用 ForConsciousnessNode 格式。若提供的【可用模板列表】中有合适的模板请选用,若都不匹配则 workflow_template 设为 null\n"
"3. 如果你收到的是 TerminationMessage代表工作流已完成并生成了报告请将报告内容转化为友好的面向用户的回复使用 ForUser 格式。\n"
"请保持冷静、专业,并严格遵循上述路由规则。"
)
@ -83,7 +83,7 @@ class SupervisoryNode:
prompt += (
"\n\n注意:你必须调用且只能调用一个函数(工具)来输出结果。"
"如果你想直接回复用户,请调用 ForUser"
"如果你想移交给工作流,请调用 ForConsciousnessNode"
"如果你想移交给工作流,请调用 ForConsciousnessNode若没有合适的模板workflow_template 填 null"
"严禁返回纯文本,必须使用工具格式!"
)
if ctx.deps.error_history:

View File

@ -23,7 +23,7 @@ class ForUser(SupervisoryNodeResponse):
context: str = Field(..., description="对用户的回复,应当使用和蔼的语气进行回复。用于直接解答简单问题或返回最终报告。")
class ForConsciousnessNode(SupervisoryNodeResponse):
workflow_template: str = Field(..., description="选择的工作流模板的名称,用于处理复杂任务")
workflow_template: str | None = Field(default=None, description="选择的工作流模板的名称,用于处理复杂任务。若无需模板则为 None")
reasoning: str = Field(..., description="选择将任务移交意识节点并选用该模板的简短原因。")
class TerminationMessage(BaseModel):

View File

@ -310,8 +310,8 @@ class WorkflowRunningEngine:
if not self.consciousness_node:
raise WorkflowError("未配置 consciousness_node无法生成工作流")
workflow_template = event.context.get("workflow_template", "")
workflow_template = get_workflow_template(workflow_template)
workflow_template_name = event.context.get("workflow_template", "")
workflow_template = get_workflow_template(workflow_template_name) if workflow_template_name else None
available_skills = None
if self.global_state_machine: