From 115a8d54469b7952e1fbed9d1f50633badd8d262 Mon Sep 17 00:00:00 2001 From: slhafzjw Date: Fri, 20 Feb 2026 18:57:36 +0800 Subject: [PATCH] refactor(framework): redesign `AgentContext` to store typed module contexts and runtime metadata --- .../api/agent/factory/context/Context.kt | 39 +++++++++++++++---- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/Context.kt b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/Context.kt index 10e9d591..6fd59fe6 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/Context.kt +++ b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/Context.kt @@ -2,26 +2,49 @@ package work.slhaf.partner.api.agent.factory.context import com.alibaba.fastjson2.JSONArray import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentModule +import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.RunningFlowContext +import java.time.ZonedDateTime object AgentContext { - + val modules = mutableMapOf>() + val capabilities = mutableMapOf, Any>() } sealed class ModuleContextData { - abstract val name: String abstract val clazz: Class abstract val instance: T - abstract val prompt: JSONArray - abstract val modelActivated: Boolean + abstract val launchTime: ZonedDateTime - data class RunningModule( - override val name: String, + val modelInfo: ModelInfo? = null + val metadata = mutableMapOf() + + data class Running>( override val clazz: Class, override val instance: T, - override val prompt: JSONArray, - override val modelActivated: Boolean, + override val launchTime: ZonedDateTime, val order: Int ) : ModuleContextData() + data class Sub>( + override val clazz: Class, + override val instance: T, + override val launchTime: ZonedDateTime, + + val injectTarget: MutableSet = mutableSetOf() + ) : ModuleContextData() + + data class Standalone( + override val clazz: Class, + override val instance: T, + override val launchTime: ZonedDateTime, + + val injectTarget: MutableSet = mutableSetOf() + ) : ModuleContextData() + + data class ModelInfo( + val baseUrl: String, + val model: String, + val basePrompt: JSONArray + ) } \ No newline at end of file