From 388c1ab16dacfe1bc9f30375ee46ef78c8eaa790 Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Sun, 16 Nov 2025 11:50:58 +0800 Subject: [PATCH] fix: ensure parameter properties are correctly handled in spec_to_func --- astrbot/core/provider/func_tool_manager.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/astrbot/core/provider/func_tool_manager.py b/astrbot/core/provider/func_tool_manager.py index ee7d2909c..7cdbeec01 100644 --- a/astrbot/core/provider/func_tool_manager.py +++ b/astrbot/core/provider/func_tool_manager.py @@ -1,6 +1,7 @@ from __future__ import annotations import asyncio +import copy import json import os from collections.abc import Awaitable, Callable @@ -115,7 +116,7 @@ class FunctionToolManager: def spec_to_func( self, name: str, - func_args: list, + func_args: list[dict], desc: str, handler: Callable[..., Awaitable[Any]], ) -> FuncTool: @@ -124,7 +125,9 @@ class FunctionToolManager: "properties": {}, } for param in func_args: - params["properties"][param["name"]] = param + p = copy.deepcopy(param) + p.pop("name", None) + params["properties"][param["name"]] = p return FuncTool( name=name, parameters=params,