feat(workflow): workflow as tool output schema (#26241)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
Co-authored-by: Novice <novice12185727@gmail.com>
This commit is contained in:
CrabSAMA
2025-11-27 16:50:48 +08:00
committed by GitHub
parent 299bd351fd
commit 820925a866
21 changed files with 438 additions and 34 deletions

View File

@@ -405,6 +405,7 @@ class ToolTransformService:
name=tool.operation_id or "",
label=I18nObject(en_US=tool.operation_id, zh_Hans=tool.operation_id),
description=I18nObject(en_US=tool.summary or "", zh_Hans=tool.summary or ""),
output_schema=tool.output_schema,
parameters=tool.parameters,
labels=labels or [],
)

View File

@@ -291,6 +291,10 @@ class WorkflowToolManageService:
if len(workflow_tools) == 0:
raise ValueError(f"Tool {db_tool.id} not found")
tool_entity = workflow_tools[0].entity
# get output schema from workflow tool entity
output_schema = tool_entity.output_schema
return {
"name": db_tool.name,
"label": db_tool.label,
@@ -299,6 +303,7 @@ class WorkflowToolManageService:
"icon": json.loads(db_tool.icon),
"description": db_tool.description,
"parameters": jsonable_encoder(db_tool.parameter_configurations),
"output_schema": output_schema,
"tool": ToolTransformService.convert_tool_entity_to_api_entity(
tool=tool.get_tools(db_tool.tenant_id)[0],
labels=ToolLabelManager.get_tool_labels(tool),