diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/AgentContext.kt b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/AgentContext.kt index c19f1516..e412cc86 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/AgentContext.kt +++ b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/AgentContext.kt @@ -1,6 +1,7 @@ package work.slhaf.partner.api.agent.factory.context import com.alibaba.fastjson2.JSONArray +import work.slhaf.partner.api.agent.factory.AgentComponent import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentModule import java.time.ZonedDateTime @@ -18,6 +19,11 @@ object AgentContext { val capabilities: Map, Any?> get() = _capabilities + private val _additionalComponents = mutableSetOf() + + val additionalComponents: Set + get() = _additionalComponents + val metadata: MutableMap = mutableMapOf() fun addModule(name: String, module: ModuleContextData) { @@ -27,6 +33,17 @@ object AgentContext { fun addCapability(type: Class, value: T) { _capabilities[type] = value } + + fun addAdditionalComponent(type: Class, value: T): Boolean { + if (type.isAnnotationPresent(AgentComponent::class.java)) { + return false + } + if (value == null) { + return false + } + _additionalComponents.add(value) + return true + } } sealed class ModuleContextData {