From c8a584c51e29509891bb33d329174251f3327645 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Tue, 6 Oct 2026 00:25:01 +0800 Subject: [PATCH] fix(ai): 显式注册工具回调,修复异步线程类型解析失败 --- yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/config/AiAutoConfiguration.java | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/config/AiAutoConfiguration.java b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/config/AiAutoConfiguration.java index 3939f6c..18f43f6 100644 --- a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/config/AiAutoConfiguration.java +++ b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/config/AiAutoConfiguration.java @@ -21,6 +21,9 @@ import cn.iocoder.yudao.module.ai.framework.ai.core.model.yiyan.YiYanChatModel; import cn.iocoder.yudao.module.ai.framework.ai.core.model.zhipu.ZhiPuChatModel; import cn.iocoder.yudao.module.ai.framework.ai.core.webserch.AiWebSearchClient; import cn.iocoder.yudao.module.ai.framework.ai.core.webserch.bocha.AiBoChaWebSearchClient; +import cn.iocoder.yudao.module.ai.tool.function.DirectoryListToolFunction; +import cn.iocoder.yudao.module.ai.tool.function.UserProfileQueryToolFunction; +import cn.iocoder.yudao.module.ai.tool.function.WeatherQueryToolFunction; import cn.iocoder.yudao.module.ai.tool.method.PersonService; import io.micrometer.observation.ObservationRegistry; import lombok.extern.slf4j.Slf4j; @@ -38,6 +41,7 @@ import org.springframework.ai.support.ToolCallbacks; import org.springframework.ai.tokenizer.JTokkitTokenCountEstimator; import org.springframework.ai.tokenizer.TokenCountEstimator; import org.springframework.ai.tool.ToolCallback; +import org.springframework.ai.tool.function.FunctionToolCallback; import org.springframework.ai.vectorstore.milvus.autoconfigure.MilvusServiceClientProperties; import org.springframework.ai.vectorstore.milvus.autoconfigure.MilvusVectorStoreProperties; import org.springframework.ai.vectorstore.qdrant.autoconfigure.QdrantVectorStoreProperties; @@ -424,7 +428,7 @@ public class AiAutoConfiguration { return new AiBoChaWebSearchClient(yudaoAiProperties.getWebSearch().getApiKey()); } - // ========== MCP 相关 ========== + // ========== MCP & 工具相关 ========== /** * 参考自 MCP Server Boot Starter @@ -434,4 +438,25 @@ public class AiAutoConfiguration { return List.of(ToolCallbacks.from(personService)); } + @Bean + public ToolCallback directoryListToolCallback(DirectoryListToolFunction function) { + return FunctionToolCallback.builder("directory_list", function) + .description("列出指定目录的文件列表") + .inputType(DirectoryListToolFunction.Request.class).build(); + } + + @Bean + public ToolCallback weatherQueryToolCallback(WeatherQueryToolFunction function) { + return FunctionToolCallback.builder("weather_query", function) + .description("查询指定城市的天气信息") + .inputType(WeatherQueryToolFunction.Request.class).build(); + } + + @Bean + public ToolCallback userProfileQueryToolCallback(UserProfileQueryToolFunction function) { + return FunctionToolCallback.builder("user_profile_query", function) + .description("用户信息查询") + .inputType(UserProfileQueryToolFunction.Request.class).build(); + } + } -- libgit2 0.21.4