From dc72fc5f694607be6bbfb46f21c1ff9480065ba3 Mon Sep 17 00:00:00 2001 From: guoming Date: Sun, 19 Apr 2026 21:57:44 +0800 Subject: [PATCH] =?UTF-8?q?fix(assistant-agent-start):=20=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=20=E5=AE=98=E6=96=B9=E6=96=87=E6=A1=A3=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0=E7=9A=84=E8=87=AA=E5=AE=9A=E4=B9=89=20CodeAct=20?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E6=89=A9=E5=B1=95=E6=96=B9=E5=BC=8F=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E7=94=9F=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../agent/start/config/CodeactAgentConfig.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/assistant-agent-start/src/main/java/com/alibaba/assistant/agent/start/config/CodeactAgentConfig.java b/assistant-agent-start/src/main/java/com/alibaba/assistant/agent/start/config/CodeactAgentConfig.java index 96352dd4..11e4517a 100644 --- a/assistant-agent-start/src/main/java/com/alibaba/assistant/agent/start/config/CodeactAgentConfig.java +++ b/assistant-agent-start/src/main/java/com/alibaba/assistant/agent/start/config/CodeactAgentConfig.java @@ -217,6 +217,7 @@ def calculate_sum(a, b): * @param triggerCodeactTools Trigger模块的工具列表(可选) * @param unifiedSearchCodeactTool 统一搜索工具(可选) * @param mcpToolCallbackProvider MCP工具提供者(由MCP Client Boot Starter自动注入,可选) + * @param springDiscoveredCodeactTools 容器中其它 {@link CodeactTool} Bean(如 start 模块自定义 {@code @Component} 工具) */ @Bean public CodeactAgent grayscaleCodeactAgent( @@ -225,6 +226,7 @@ public CodeactAgent grayscaleCodeactAgent( @Autowired(required = false) SearchCodeactToolFactory searchCodeactToolFactory, @Autowired(required = false) List triggerCodeactTools, @Autowired(required = false) UnifiedSearchCodeactTool unifiedSearchCodeactTool, + @Autowired(required = false) List springDiscoveredCodeactTools, @Autowired(required = false) ToolCallbackProvider mcpToolCallbackProvider, @Autowired(required = false) ExperienceProvider experienceProvider, @Autowired(required = false) ExperienceExtensionProperties experienceExtensionProperties, @@ -267,6 +269,20 @@ public CodeactAgent grayscaleCodeactAgent( logger.info("CodeactAgentConfig#grayscaleCodeactAgent - reason=添加TriggerCodeactTools, count={}", triggerCodeactTools.size()); } + // 注册仅实现 CodeactTool 的 Spring Bean(例如 assistant-agent-start 下的 @Component 自定义工具) + if (springDiscoveredCodeactTools != null) { + for (CodeactTool tool : springDiscoveredCodeactTools) { + if (tool instanceof ReplyCodeactTool || tool instanceof SearchCodeactTool || tool instanceof TriggerCodeactTool) { + continue; + } + allCodeactTools.add(tool); + logger.info( + "CodeactAgentConfig#grayscaleCodeactAgent - reason=添加 Spring 注册的自定义 CodeactTool, class={}, name={}", + tool.getClass().getSimpleName(), + tool.getToolDefinition() != null ? tool.getToolDefinition().name() : "null"); + } + } + // 添加 MCP 动态工具(通过 MCP Client Boot Starter 注入的 ToolCallbackProvider) // 配置方式参考 mcp-client-spring-boot.md,在 application.properties 中配置: // spring.ai.mcp.client.streamable-http.connections.my-server.url=https://mcp.example.com