浏览代码

fix(tool): validate return type from _invoke method to ensure ToolInv… (#12079)

Signed-off-by: -LAN- <laipz8200@outlook.com>
-LAN- 4 月之前
父节点
当前提交
7ae417b4b6
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      api/core/tools/tool/tool.py

+ 6 - 0
api/core/tools/tool/tool.py

@@ -222,6 +222,12 @@ class Tool(BaseModel, ABC):
         if not isinstance(result, list):
             result = [result]
 
+        if not all(isinstance(message, ToolInvokeMessage) for message in result):
+            raise ValueError(
+                f"Invalid return type from {self.__class__.__name__}._invoke method. "
+                "Expected ToolInvokeMessage or list of ToolInvokeMessage."
+            )
+
         return result
 
     def _transform_tool_parameters_type(self, tool_parameters: Mapping[str, Any]) -> dict[str, Any]: