From 051b6450e7b52335b63fcbadd178f25eb640b218 Mon Sep 17 00:00:00 2001 From: slhafzjw Date: Fri, 20 Feb 2026 15:24:35 +0800 Subject: [PATCH] refactor(framework): mark `AbstractAgentModule` as capability holder and consolidate module contracts within abstracts --- .../factory/module/abstracts/AgentModule.kt | 39 ++++++++++--------- ...ava => AbstractAgentRunningProxyTest.java} | 4 +- 2 files changed, 23 insertions(+), 20 deletions(-) rename Partner-Framework/src/test/java/module/{AbstractAgentRunningModuleProxyTest.java => AbstractAgentRunningProxyTest.java} (88%) 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 70b5ad81..f5ee3979 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 @@ -1,5 +1,6 @@ package work.slhaf.partner.api.agent.factory.module.abstracts +import work.slhaf.partner.api.agent.factory.capability.annotation.CapabilityHolder 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.interaction.flow.entity.RunningFlowContext @@ -11,26 +12,23 @@ import work.slhaf.partner.api.chat.pojo.Message /** * 模块基类 */ +@CapabilityHolder abstract class AbstractAgentModule { var moduleName: String = javaClass.simpleName + + interface Running { + fun execute(context: T) + } + + interface Sub { + fun execute(input: I): O + } + + interface Standalone + + // TODO 后续于此处扩展生命周期内容 } -data class Model( - val chatClient: ChatClient, - val chatMessages: MutableList = mutableListOf(), - val baseMessages: MutableList = mutableListOf() -) - -interface RunningModule { - fun execute(context: T) -} - -interface SubModule { - fun execute(input: I): O -} - -interface StandaloneModule - interface ActivateModel { companion object { @@ -94,12 +92,17 @@ interface ActivateModel { } /** - * 对应调用的模型配置名称,默认配合[AbstractAgentModule.moduleName]使用 + * 对应调用的模型配置名称 */ fun modelKey(): String { - return (this as AbstractAgentModule).moduleName + return javaClass.simpleName } fun withBasicPrompt(): Boolean + data class Model( + val chatClient: ChatClient, + val chatMessages: MutableList = mutableListOf(), + val baseMessages: MutableList = mutableListOf() + ) } diff --git a/Partner-Framework/src/test/java/module/AbstractAgentRunningModuleProxyTest.java b/Partner-Framework/src/test/java/module/AbstractAgentRunningProxyTest.java similarity index 88% rename from Partner-Framework/src/test/java/module/AbstractAgentRunningModuleProxyTest.java rename to Partner-Framework/src/test/java/module/AbstractAgentRunningProxyTest.java index de4c5da6..54ad7610 100644 --- a/Partner-Framework/src/test/java/module/AbstractAgentRunningModuleProxyTest.java +++ b/Partner-Framework/src/test/java/module/AbstractAgentRunningProxyTest.java @@ -9,7 +9,7 @@ import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentRunnin import java.io.IOException; import java.lang.reflect.InvocationTargetException; -public class AbstractAgentRunningModuleProxyTest { +public class AbstractAgentRunningProxyTest { @Test public void test() throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException, IOException, ClassNotFoundException { Class clazz = new ByteBuddy().subclass(MyAbstractAgentRunningAbstractAgentModule.class) @@ -18,7 +18,7 @@ public class AbstractAgentRunningModuleProxyTest { new MyModuleProxyInterceptor() )) .make() - .load(AbstractAgentRunningModuleProxyTest.class.getClassLoader()) + .load(AbstractAgentRunningProxyTest.class.getClassLoader()) .getLoaded(); clazz.getConstructor().newInstance().execute(null); }