From b2d44668da8173158907ead8546f171d9ae3d04e Mon Sep 17 00:00:00 2001 From: slhafzjw Date: Sat, 21 Feb 2026 16:51:59 +0800 Subject: [PATCH] refactor(framework): rename `AgentConfigManager` to `AgentConfigLoader` and update agent/core wiring --- .../src/main/java/work/slhaf/partner/Main.java | 4 ++-- ...anager.java => PartnerAgentConfigLoader.java} | 4 ++-- .../partner/common/vector/VectorClient.java | 6 +++--- .../work/slhaf/partner/core/PartnerCore.java | 6 +++--- .../core/action/runner/LocalRunnerClient.java | 4 ++-- .../runtime/interaction/WebSocketGateway.java | 6 +++--- .../java/work/slhaf/partner/api/agent/Agent.java | 10 +++++----- .../api/agent/factory/AgentBaseFactory.java | 16 +--------------- .../ConfigFactoryInitFailedException.java | 4 ++-- .../factory/context/AgentRegisterContext.java | 2 +- .../factory/module/abstracts/AgentModule.kt | 4 ++-- ...ConfigManager.java => AgentConfigLoader.java} | 4 ++-- ...igManager.java => FileAgentConfigLoader.java} | 2 +- .../interaction/AgentInteractionAdapter.java | 4 ++-- 14 files changed, 31 insertions(+), 45 deletions(-) rename Partner-Core/src/main/java/work/slhaf/partner/common/config/{PartnerAgentConfigManager.java => PartnerAgentConfigLoader.java} (93%) rename Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/config/{AgentConfigManager.java => AgentConfigLoader.java} (97%) rename Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/config/{FileAgentConfigManager.java => FileAgentConfigLoader.java} (98%) diff --git a/Partner-Core/src/main/java/work/slhaf/partner/Main.java b/Partner-Core/src/main/java/work/slhaf/partner/Main.java index 318b385c..2f1729c3 100644 --- a/Partner-Core/src/main/java/work/slhaf/partner/Main.java +++ b/Partner-Core/src/main/java/work/slhaf/partner/Main.java @@ -1,7 +1,7 @@ package work.slhaf.partner; import work.slhaf.partner.api.agent.Agent; -import work.slhaf.partner.common.config.PartnerAgentConfigManager; +import work.slhaf.partner.common.config.PartnerAgentConfigLoader; import work.slhaf.partner.common.vector.VectorClient; import work.slhaf.partner.runtime.exception.PartnerExceptionCallback; import work.slhaf.partner.runtime.interaction.WebSocketGateway; @@ -9,7 +9,7 @@ import work.slhaf.partner.runtime.interaction.WebSocketGateway; public class Main { public static void main(String[] args) { Agent.newAgent(Main.class) - .setAgentConfigManager(PartnerAgentConfigManager.class) + .setAgentConfigManager(PartnerAgentConfigLoader.class) .setGateway(WebSocketGateway.class) .setAgentExceptionCallback(PartnerExceptionCallback.class) .addAfterLaunchRunners(VectorClient::load) diff --git a/Partner-Core/src/main/java/work/slhaf/partner/common/config/PartnerAgentConfigManager.java b/Partner-Core/src/main/java/work/slhaf/partner/common/config/PartnerAgentConfigLoader.java similarity index 93% rename from Partner-Core/src/main/java/work/slhaf/partner/common/config/PartnerAgentConfigManager.java rename to Partner-Core/src/main/java/work/slhaf/partner/common/config/PartnerAgentConfigLoader.java index 78ba1369..3ca2497f 100644 --- a/Partner-Core/src/main/java/work/slhaf/partner/common/config/PartnerAgentConfigManager.java +++ b/Partner-Core/src/main/java/work/slhaf/partner/common/config/PartnerAgentConfigLoader.java @@ -4,7 +4,7 @@ import cn.hutool.json.JSONUtil; import lombok.Data; import lombok.EqualsAndHashCode; import work.slhaf.partner.api.agent.factory.config.exception.ConfigNotExistException; -import work.slhaf.partner.api.agent.runtime.config.FileAgentConfigManager; +import work.slhaf.partner.api.agent.runtime.config.FileAgentConfigLoader; import work.slhaf.partner.common.exception.ConfigLoadFailedException; import java.io.File; @@ -12,7 +12,7 @@ import java.nio.charset.StandardCharsets; @EqualsAndHashCode(callSuper = true) @Data -public final class PartnerAgentConfigManager extends FileAgentConfigManager { +public final class PartnerAgentConfigLoader extends FileAgentConfigLoader { private static final String COMMON_CONFIG_FILE = CONFIG_DIR + "common_config.json"; diff --git a/Partner-Core/src/main/java/work/slhaf/partner/common/vector/VectorClient.java b/Partner-Core/src/main/java/work/slhaf/partner/common/vector/VectorClient.java index bd8f7bf9..bdfdc8e7 100644 --- a/Partner-Core/src/main/java/work/slhaf/partner/common/vector/VectorClient.java +++ b/Partner-Core/src/main/java/work/slhaf/partner/common/vector/VectorClient.java @@ -4,9 +4,9 @@ import lombok.extern.slf4j.Slf4j; import org.nd4j.linalg.api.ndarray.INDArray; import org.nd4j.linalg.factory.Nd4j; import org.nd4j.linalg.ops.transforms.Transforms; -import work.slhaf.partner.api.agent.runtime.config.AgentConfigManager; +import work.slhaf.partner.api.agent.runtime.config.AgentConfigLoader; import work.slhaf.partner.common.config.Config.VectorConfig; -import work.slhaf.partner.common.config.PartnerAgentConfigManager; +import work.slhaf.partner.common.config.PartnerAgentConfigLoader; import work.slhaf.partner.common.exception.ServiceLoadFailedException; import work.slhaf.partner.common.vector.exception.VectorClientExecuteException; import work.slhaf.partner.common.vector.exception.VectorClientLoadFailedException; @@ -18,7 +18,7 @@ public abstract class VectorClient { public static VectorClient INSTANCE; public static void load() { - PartnerAgentConfigManager configManager = (PartnerAgentConfigManager) AgentConfigManager.INSTANCE; + PartnerAgentConfigLoader configManager = (PartnerAgentConfigLoader) AgentConfigLoader.INSTANCE; VectorConfig vectorConfig = configManager.getConfig().getVectorConfig(); int type = vectorConfig.getType(); try { diff --git a/Partner-Core/src/main/java/work/slhaf/partner/core/PartnerCore.java b/Partner-Core/src/main/java/work/slhaf/partner/core/PartnerCore.java index 9b75d06d..2ca1e516 100644 --- a/Partner-Core/src/main/java/work/slhaf/partner/core/PartnerCore.java +++ b/Partner-Core/src/main/java/work/slhaf/partner/core/PartnerCore.java @@ -3,9 +3,9 @@ package work.slhaf.partner.core; import cn.hutool.core.bean.BeanUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; -import work.slhaf.partner.api.agent.runtime.config.AgentConfigManager; +import work.slhaf.partner.api.agent.runtime.config.AgentConfigLoader; import work.slhaf.partner.api.common.entity.PersistableObject; -import work.slhaf.partner.common.config.PartnerAgentConfigManager; +import work.slhaf.partner.common.config.PartnerAgentConfigLoader; import java.io.*; import java.nio.file.Files; @@ -18,7 +18,7 @@ import static work.slhaf.partner.common.Constant.Path.MEMORY_DATA; @Slf4j public abstract class PartnerCore> extends PersistableObject { - private final String id = ((PartnerAgentConfigManager) AgentConfigManager.INSTANCE).getConfig().getAgentId(); + private final String id = ((PartnerAgentConfigLoader) AgentConfigLoader.INSTANCE).getConfig().getAgentId(); public PartnerCore() throws IOException, ClassNotFoundException { createStorageDirectory(); diff --git a/Partner-Core/src/main/java/work/slhaf/partner/core/action/runner/LocalRunnerClient.java b/Partner-Core/src/main/java/work/slhaf/partner/core/action/runner/LocalRunnerClient.java index a3fd355f..876a6e25 100644 --- a/Partner-Core/src/main/java/work/slhaf/partner/core/action/runner/LocalRunnerClient.java +++ b/Partner-Core/src/main/java/work/slhaf/partner/core/action/runner/LocalRunnerClient.java @@ -342,8 +342,8 @@ public class LocalRunnerClient extends RunnerClient { @Override public JSONObject listSysDependencies() { // 先只列出系统/环境的 Python 依赖 - // TODO 在 AgentConfigManager 内配置启用的脚本语言及对应的扩展名 - // 这里的逻辑后续需要替换为“根据 AgentConfigManager 读取到的脚本语言启用情况,遍历并列出当前系统环境依赖” + // TODO 在 AgentConfigLoader 内配置启用的脚本语言及对应的扩展名 + // 这里的逻辑后续需要替换为“根据 AgentConfigLoader 读取到的脚本语言启用情况,遍历并列出当前系统环境依赖” // 还需要将返回值调整为相应的数据类 // 后续还需要将不同语言的处理逻辑分散到不同方法内,这里为了验证,先写死在当前方法 JSONObject sysDependencies = new JSONObject(); diff --git a/Partner-Core/src/main/java/work/slhaf/partner/runtime/interaction/WebSocketGateway.java b/Partner-Core/src/main/java/work/slhaf/partner/runtime/interaction/WebSocketGateway.java index 3bc7adcb..ddb781ec 100644 --- a/Partner-Core/src/main/java/work/slhaf/partner/runtime/interaction/WebSocketGateway.java +++ b/Partner-Core/src/main/java/work/slhaf/partner/runtime/interaction/WebSocketGateway.java @@ -8,10 +8,10 @@ import org.java_websocket.WebSocket; import org.java_websocket.framing.Framedata; import org.java_websocket.handshake.ClientHandshake; import org.java_websocket.server.WebSocketServer; -import work.slhaf.partner.api.agent.runtime.config.AgentConfigManager; +import work.slhaf.partner.api.agent.runtime.config.AgentConfigLoader; import work.slhaf.partner.api.agent.runtime.interaction.AgentGateway; import work.slhaf.partner.api.agent.runtime.interaction.AgentInteractionAdapter; -import work.slhaf.partner.common.config.PartnerAgentConfigManager; +import work.slhaf.partner.common.config.PartnerAgentConfigLoader; import work.slhaf.partner.common.thread.InteractionThreadPoolExecutor; import work.slhaf.partner.runtime.interaction.data.PartnerInputData; import work.slhaf.partner.runtime.interaction.data.PartnerOutputData; @@ -33,7 +33,7 @@ public class WebSocketGateway extends WebSocketServer implements AgentGateway lastPongTimes = new ConcurrentHashMap<>(); public WebSocketGateway() { - this(((PartnerAgentConfigManager) AgentConfigManager.INSTANCE).getConfig().getWebSocketConfig().getPort()); + this(((PartnerAgentConfigLoader) AgentConfigLoader.INSTANCE).getConfig().getWebSocketConfig().getPort()); } private WebSocketGateway(int port) { diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/Agent.java b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/Agent.java index f491021e..f4d22ed8 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/Agent.java +++ b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/Agent.java @@ -2,7 +2,7 @@ package work.slhaf.partner.api.agent; import lombok.extern.slf4j.Slf4j; import work.slhaf.partner.api.agent.factory.AgentRegisterFactory; -import work.slhaf.partner.api.agent.runtime.config.AgentConfigManager; +import work.slhaf.partner.api.agent.runtime.config.AgentConfigLoader; import work.slhaf.partner.api.agent.runtime.exception.AgentExceptionCallback; import work.slhaf.partner.api.agent.runtime.exception.AgentLaunchFailedException; import work.slhaf.partner.api.agent.runtime.exception.GlobalExceptionHandler; @@ -29,7 +29,7 @@ public final class Agent { } public interface AgentConfigManagerStep { - AgentGatewayStep setAgentConfigManager(Class agentConfigManager); + AgentGatewayStep setAgentConfigManager(Class agentConfigManager); } public interface AgentGatewayStep { @@ -59,7 +59,7 @@ public final class Agent { private final Class applicationClass; private final CountDownLatch latch = new CountDownLatch(1); private AgentGateway gateway; - private Class agentConfigManagerClass; + private Class agentConfigManagerClass; private Class gatewayClass; private Class agentExceptionCallbackClass; @@ -86,7 +86,7 @@ public final class Agent { } @Override - public AgentGatewayStep setAgentConfigManager(Class agentConfigManager) { + public AgentGatewayStep setAgentConfigManager(Class agentConfigManager) { this.agentConfigManagerClass = agentConfigManager; return this; } @@ -134,7 +134,7 @@ public final class Agent { private void beforeLaunch() { try { - AgentConfigManager.setINSTANCE(agentConfigManagerClass.getDeclaredConstructor().newInstance()); + AgentConfigLoader.setINSTANCE(agentConfigManagerClass.getDeclaredConstructor().newInstance()); log.info("配置管理器设置完毕: {}", agentConfigManagerClass.getSimpleName()); GlobalExceptionHandler.setExceptionCallback(agentExceptionCallbackClass.getDeclaredConstructor().newInstance()); log.info("异常处理回调设置完毕: {}", agentExceptionCallbackClass.getSimpleName()); diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/AgentBaseFactory.java b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/AgentBaseFactory.java index e4b371e0..fa4a2d63 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/AgentBaseFactory.java +++ b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/AgentBaseFactory.java @@ -1,21 +1,7 @@ package work.slhaf.partner.api.agent.factory; -import work.slhaf.partner.api.agent.factory.capability.exception.CapabilityFactoryExecuteFailedException; import work.slhaf.partner.api.agent.factory.context.AgentRegisterContext; -import java.lang.reflect.InvocationTargetException; - public abstract class AgentBaseFactory { - public void execute(AgentRegisterContext context) { - try { - setVariables(context); - run(); - } catch (Exception e) { - throw new CapabilityFactoryExecuteFailedException(e.getMessage(), e); - } - } - - protected abstract void setVariables(AgentRegisterContext context); - - protected abstract void run() throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException; + abstract void execute(AgentRegisterContext context); } diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/config/exception/ConfigFactoryInitFailedException.java b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/config/exception/ConfigFactoryInitFailedException.java index 7f39dfcc..b3869b94 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/config/exception/ConfigFactoryInitFailedException.java +++ b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/config/exception/ConfigFactoryInitFailedException.java @@ -4,10 +4,10 @@ import work.slhaf.partner.api.agent.runtime.exception.AgentLaunchFailedException public class ConfigFactoryInitFailedException extends AgentLaunchFailedException { public ConfigFactoryInitFailedException(String message, Throwable cause) { - super("AgentConfigManager 执行失败: " + message, cause); + super("AgentConfigLoader 执行失败: " + message, cause); } public ConfigFactoryInitFailedException(String message) { - super("AgentConfigManager 执行失败: " + message); + super("AgentConfigLoader 执行失败: " + message); } } diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/AgentRegisterContext.java b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/AgentRegisterContext.java index 09a61800..6ab1b479 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/AgentRegisterContext.java +++ b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/AgentRegisterContext.java @@ -13,7 +13,7 @@ public class AgentRegisterContext { private Reflections reflections; private CapabilityFactoryContext capabilityFactoryContext = new CapabilityFactoryContext(); private ConfigFactoryContext configFactoryContext = new ConfigFactoryContext(); - private ModuleFactoryContext moduleFactoryContext = new ModuleFactoryContext(); + private AgentContext agentContext = AgentContext.INSTANCE; public AgentRegisterContext(List urls) { reflections = new Reflections(new ConfigurationBuilder().setScanners( diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/module/abstracts/AgentModule.kt b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/module/abstracts/AgentModule.kt index d631d6b6..89cd841f 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/module/abstracts/AgentModule.kt +++ b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/module/abstracts/AgentModule.kt @@ -4,7 +4,7 @@ import org.slf4j.Logger import org.slf4j.LoggerFactory import work.slhaf.partner.api.agent.factory.AgentComponent import work.slhaf.partner.api.agent.factory.module.annotation.Init -import work.slhaf.partner.api.agent.runtime.config.AgentConfigManager +import work.slhaf.partner.api.agent.runtime.config.AgentConfigLoader import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.RunningFlowContext import work.slhaf.partner.api.chat.ChatClient import work.slhaf.partner.api.chat.constant.ChatConstant @@ -47,7 +47,7 @@ interface ActivateModel { companion object { val modelMap: MutableMap = mutableMapOf() - private val configManager: AgentConfigManager = AgentConfigManager.INSTANCE + private val configManager: AgentConfigLoader = AgentConfigLoader.INSTANCE } @Init(order = -1) diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/config/AgentConfigManager.java b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/config/AgentConfigLoader.java similarity index 97% rename from Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/config/AgentConfigManager.java rename to Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/config/AgentConfigLoader.java index b17d7f4d..8b03392c 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/config/AgentConfigManager.java +++ b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/config/AgentConfigLoader.java @@ -13,11 +13,11 @@ import java.util.*; @Slf4j @Data -public abstract class AgentConfigManager { +public abstract class AgentConfigLoader { private static final String DEFAULT_KEY = "default"; @Setter - public static AgentConfigManager INSTANCE; + public static AgentConfigLoader INSTANCE; protected HashMap modelConfigMap; protected HashMap> modelPromptMap; protected HashMap moduleEnabledStatus; diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/config/FileAgentConfigManager.java b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/config/FileAgentConfigLoader.java similarity index 98% rename from Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/config/FileAgentConfigManager.java rename to Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/config/FileAgentConfigLoader.java index 301a0a97..3d799c1f 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/config/FileAgentConfigManager.java +++ b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/config/FileAgentConfigLoader.java @@ -22,7 +22,7 @@ import java.util.List; * 将从当前运行目录的config文件夹下创建并读取配置 */ @Slf4j -public class FileAgentConfigManager extends AgentConfigManager { +public class FileAgentConfigLoader extends AgentConfigLoader { protected static final String CONFIG_DIR = "./config/"; protected static final String MODEL_CONFIG_DIR = "./config/model/"; diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/AgentInteractionAdapter.java b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/AgentInteractionAdapter.java index 94561c6b..8331d795 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/AgentInteractionAdapter.java +++ b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/AgentInteractionAdapter.java @@ -1,7 +1,7 @@ package work.slhaf.partner.api.agent.runtime.interaction; import work.slhaf.partner.api.agent.factory.module.pojo.MetaModule; -import work.slhaf.partner.api.agent.runtime.config.AgentConfigManager; +import work.slhaf.partner.api.agent.runtime.config.AgentConfigLoader; import work.slhaf.partner.api.agent.runtime.interaction.data.AgentInputData; import work.slhaf.partner.api.agent.runtime.interaction.data.AgentOutputData; import work.slhaf.partner.api.agent.runtime.interaction.flow.AgentRunningFlow; @@ -13,7 +13,7 @@ import java.util.Map; public abstract class AgentInteractionAdapter { protected AgentRunningFlow agentRunningFlow = new AgentRunningFlow<>(); - protected Map> moduleOrderedMap = AgentConfigManager.INSTANCE.getModuleOrderedMap(); + protected Map> moduleOrderedMap = AgentConfigLoader.INSTANCE.getModuleOrderedMap(); public C call(C finalInputData) { return agentRunningFlow.launch(moduleOrderedMap, finalInputData);