fix: agent parameter parsing error
This commit is contained in:
parent
986b75a5c0
commit
8ed46893a8
@ -156,29 +156,32 @@ class AgentNode(ToolNode):
|
|||||||
value = cast(list[dict[str, Any]], value)
|
value = cast(list[dict[str, Any]], value)
|
||||||
value = [tool for tool in value if tool.get("enabled", False)]
|
value = [tool for tool in value if tool.get("enabled", False)]
|
||||||
|
|
||||||
|
for tool in value:
|
||||||
|
if "schemas" in tool:
|
||||||
|
tool.pop("schemas")
|
||||||
|
parameters = tool.get("parameters", {})
|
||||||
|
if all(isinstance(v, dict) for _, v in parameters.items()):
|
||||||
|
params = {}
|
||||||
|
for key, param in parameters.items():
|
||||||
|
if param.get("auto", ParamsAutoGenerated.OPEN.value) == ParamsAutoGenerated.CLOSE.value:
|
||||||
|
params[key] = param.get("value", {}).get("value", "")
|
||||||
|
else:
|
||||||
|
params[key] = None
|
||||||
|
parameters = params
|
||||||
|
tool["settings"] = {k: v.get("value", None) for k, v in tool.get("settings", {}).items()}
|
||||||
|
tool["parameters"] = parameters
|
||||||
|
|
||||||
if not for_log:
|
if not for_log:
|
||||||
if parameter.type == "array[tools]":
|
if parameter.type == "array[tools]":
|
||||||
value = cast(list[dict[str, Any]], value)
|
value = cast(list[dict[str, Any]], value)
|
||||||
tool_value = []
|
tool_value = []
|
||||||
for tool in value:
|
for tool in value:
|
||||||
provider_type = ToolProviderType(tool.get("type", ToolProviderType.BUILT_IN.value))
|
provider_type = ToolProviderType(tool.get("type", ToolProviderType.BUILT_IN.value))
|
||||||
# handle the original settings
|
|
||||||
original_parameters = tool.get("parameters", {})
|
|
||||||
setting_params = tool.get("settings", {})
|
setting_params = tool.get("settings", {})
|
||||||
manual_input_params = []
|
parameters = tool.get("parameters", {})
|
||||||
# handle legacy data compatibility
|
manual_input_params = [key for key, value in parameters.items() if value is not None]
|
||||||
if not all(isinstance(v, dict) for _, v in original_parameters.items()):
|
|
||||||
parameters = original_parameters
|
parameters = {**parameters, **setting_params}
|
||||||
else:
|
|
||||||
params = {}
|
|
||||||
for key, param in original_parameters.items():
|
|
||||||
if param.get("auto", ParamsAutoGenerated.OPEN.value) == ParamsAutoGenerated.CLOSE.value:
|
|
||||||
params[key] = param.get("value", "")
|
|
||||||
manual_input_params.append(key)
|
|
||||||
else:
|
|
||||||
params[key] = None
|
|
||||||
settings = {k: v.get("value", None) for k, v in setting_params.items()}
|
|
||||||
parameters = {**params, **settings}
|
|
||||||
entity = AgentToolEntity(
|
entity = AgentToolEntity(
|
||||||
provider_id=tool.get("provider_name", ""),
|
provider_id=tool.get("provider_name", ""),
|
||||||
provider_type=provider_type,
|
provider_type=provider_type,
|
||||||
|
Loading…
Reference in New Issue
Block a user