feat: workflow_template改为可不选
This commit is contained in:
parent
3e0f377004
commit
b20beb23c0
|
|
@ -149,9 +149,10 @@ class ConsciousnessNode:
|
||||||
available_skills=payload.available_skills
|
available_skills=payload.available_skills
|
||||||
)
|
)
|
||||||
self.logger.debug("ConsciousnessNode: 开始生成工作流 (原生重试开启)")
|
self.logger.debug("ConsciousnessNode: 开始生成工作流 (原生重试开启)")
|
||||||
result = await self.agent.run(
|
prompt = "根据original_command制定严密的可执行workflow"
|
||||||
"根据original_command制定严密的可执行workflow,可以学习并参考workflow_template的设计理念",
|
if payload.workflow_template:
|
||||||
deps=deps)
|
prompt += ",可以学习并参考workflow_template的设计理念"
|
||||||
|
result = await self.agent.run(prompt, deps=deps)
|
||||||
return result.output
|
return result.output
|
||||||
|
|
||||||
elif isinstance(payload, ForWorkflowInput):
|
elif isinstance(payload, ForWorkflowInput):
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ class ConsciousnessNodeInput(InputModel):
|
||||||
|
|
||||||
|
|
||||||
class ForWorkflowEngineInput(ConsciousnessNodeInput):
|
class ForWorkflowEngineInput(ConsciousnessNodeInput):
|
||||||
workflow_template: str
|
workflow_template: str | None = None
|
||||||
original_command: str
|
original_command: str
|
||||||
available_skills: list[dict] | None = None
|
available_skills: list[dict] | None = None
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ class SupervisoryNode:
|
||||||
"你的核心职责是进行【意图识别与路由】。请仔细阅读用户的请求:\n"
|
"你的核心职责是进行【意图识别与路由】。请仔细阅读用户的请求:\n"
|
||||||
"1. 如果用户只是进行简单的问候、闲聊或查询非常基础的信息,请直接生成友好的回复,使用 ForUser 格式。\n"
|
"1. 如果用户只是进行简单的问候、闲聊或查询非常基础的信息,请直接生成友好的回复,使用 ForUser 格式。\n"
|
||||||
"2. 如果用户提出的是复杂任务(如需要编写代码、多步骤规划、数据处理等),请务必将其判定为需要工作流处理的任务,"
|
"2. 如果用户提出的是复杂任务(如需要编写代码、多步骤规划、数据处理等),请务必将其判定为需要工作流处理的任务,"
|
||||||
" 并使用 ForConsciousnessNode 格式,同时从提供的【可用模板列表】中选择最合适的工作流模板移交给意识节点。\n"
|
" 并使用 ForConsciousnessNode 格式。若提供的【可用模板列表】中有合适的模板请选用,若都不匹配则 workflow_template 设为 null。\n"
|
||||||
"3. 如果你收到的是 TerminationMessage(代表工作流已完成并生成了报告),请将报告内容转化为友好的面向用户的回复,使用 ForUser 格式。\n"
|
"3. 如果你收到的是 TerminationMessage(代表工作流已完成并生成了报告),请将报告内容转化为友好的面向用户的回复,使用 ForUser 格式。\n"
|
||||||
"请保持冷静、专业,并严格遵循上述路由规则。"
|
"请保持冷静、专业,并严格遵循上述路由规则。"
|
||||||
)
|
)
|
||||||
|
|
@ -83,7 +83,7 @@ class SupervisoryNode:
|
||||||
prompt += (
|
prompt += (
|
||||||
"\n\n注意:你必须调用且只能调用一个函数(工具)来输出结果。"
|
"\n\n注意:你必须调用且只能调用一个函数(工具)来输出结果。"
|
||||||
"如果你想直接回复用户,请调用 ForUser;"
|
"如果你想直接回复用户,请调用 ForUser;"
|
||||||
"如果你想移交给工作流,请调用 ForConsciousnessNode。"
|
"如果你想移交给工作流,请调用 ForConsciousnessNode(若没有合适的模板,workflow_template 填 null)。"
|
||||||
"严禁返回纯文本,必须使用工具格式!"
|
"严禁返回纯文本,必须使用工具格式!"
|
||||||
)
|
)
|
||||||
if ctx.deps.error_history:
|
if ctx.deps.error_history:
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ class ForUser(SupervisoryNodeResponse):
|
||||||
context: str = Field(..., description="对用户的回复,应当使用和蔼的语气进行回复。用于直接解答简单问题或返回最终报告。")
|
context: str = Field(..., description="对用户的回复,应当使用和蔼的语气进行回复。用于直接解答简单问题或返回最终报告。")
|
||||||
|
|
||||||
class ForConsciousnessNode(SupervisoryNodeResponse):
|
class ForConsciousnessNode(SupervisoryNodeResponse):
|
||||||
workflow_template: str = Field(..., description="选择的工作流模板的名称,用于处理复杂任务。")
|
workflow_template: str | None = Field(default=None, description="选择的工作流模板的名称,用于处理复杂任务。若无需模板则为 None。")
|
||||||
reasoning: str = Field(..., description="选择将任务移交意识节点并选用该模板的简短原因。")
|
reasoning: str = Field(..., description="选择将任务移交意识节点并选用该模板的简短原因。")
|
||||||
|
|
||||||
class TerminationMessage(BaseModel):
|
class TerminationMessage(BaseModel):
|
||||||
|
|
|
||||||
|
|
@ -310,8 +310,8 @@ class WorkflowRunningEngine:
|
||||||
if not self.consciousness_node:
|
if not self.consciousness_node:
|
||||||
raise WorkflowError("未配置 consciousness_node,无法生成工作流")
|
raise WorkflowError("未配置 consciousness_node,无法生成工作流")
|
||||||
|
|
||||||
workflow_template = event.context.get("workflow_template", "")
|
workflow_template_name = event.context.get("workflow_template", "")
|
||||||
workflow_template = get_workflow_template(workflow_template)
|
workflow_template = get_workflow_template(workflow_template_name) if workflow_template_name else None
|
||||||
|
|
||||||
available_skills = None
|
available_skills = None
|
||||||
if self.global_state_machine:
|
if self.global_state_machine:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue