package com.easyagents.agent.runtime; import com.easyagents.agent.runtime.knowledge.AgentKnowledgeRetriever; import com.easyagents.agent.runtime.persistence.conversation.AgentConversationRecorder; import com.easyagents.agent.runtime.persistence.conversation.noop.NoopAgentConversationRecorder; import com.easyagents.agent.runtime.persistence.session.AgentSessionStore; import com.easyagents.agent.runtime.persistence.session.noop.NoopAgentSessionStore; import com.easyagents.agent.runtime.tool.AgentToolInvoker; import java.util.LinkedHashMap; import java.util.Map; /** * 智能体初始化创建请求参数 */ public class AgentInitRequest { /** * 会话ID,用于从会话存储中加载和保存当前智能体的上下文状态。 */ private String sessionId; /** * 智能体定义,包含模型、系统提示词、工具、知识库、记忆策略等静态配置。 */ private AgentDefinition agentDefinition; /** * 会话状态存储实现,可以实现此接口以管理 session */ private AgentSessionStore sessionStore = NoopAgentSessionStore.INSTANCE; /** * 运行时上下文,传递租户、用户、链路等调用环境信息。 */ private AgentRuntimeContext runtimeContext = new AgentRuntimeContext(); /** * 工具集合。 */ private Map toolInvokers = new LinkedHashMap<>(); /** * 知识库集合,实现AgentKnowledgeRetriever接口以进行知识检索动作。 */ private Map knowledgeRetrievers = new LinkedHashMap<>(); /** * 对话事件记录器,用于记录运行时事件流。 */ private AgentConversationRecorder conversationRecorder = NoopAgentConversationRecorder.INSTANCE; /** * 初始化元数据,用于传递业务侧扩展信息。 */ private Map metadata = new LinkedHashMap<>(); /** * 获取会话ID。 * * @return 会话ID */ public String getSessionId() { return sessionId; } /** * 设置会话ID。 * * @param sessionId 会话ID */ public void setSessionId(String sessionId) { this.sessionId = sessionId; } /** * 获取智能体定义。 * * @return 智能体定义 */ public AgentDefinition getAgentDefinition() { return agentDefinition; } /** * 设置智能体定义。 * * @param agentDefinition 智能体定义 */ public void setAgentDefinition(AgentDefinition agentDefinition) { this.agentDefinition = agentDefinition; } /** * 获取会话存储。 * * @return 会话存储 */ public AgentSessionStore getSessionStore() { return sessionStore; } /** * 设置会话存储。 * * @param sessionStore 会话存储 */ public void setSessionStore(AgentSessionStore sessionStore) { this.sessionStore = sessionStore == null ? NoopAgentSessionStore.INSTANCE : sessionStore; } /** * 获取运行时上下文。 * * @return 运行时上下文 */ public AgentRuntimeContext getRuntimeContext() { return runtimeContext; } /** * 设置运行时上下文。 * * @param runtimeContext 运行时上下文 */ public void setRuntimeContext(AgentRuntimeContext runtimeContext) { this.runtimeContext = runtimeContext == null ? new AgentRuntimeContext() : runtimeContext; } /** * 获取工具调用器。 * * @return 工具调用器 */ public Map getToolInvokers() { return toolInvokers; } /** * 设置工具调用器。 * * @param toolInvokers 工具调用器 */ public void setToolInvokers(Map toolInvokers) { this.toolInvokers = toolInvokers == null ? new LinkedHashMap<>() : toolInvokers; } /** * 获取知识库检索器。 * * @return 知识库检索器 */ public Map getKnowledgeRetrievers() { return knowledgeRetrievers; } /** * 设置知识库检索器。 * * @param knowledgeRetrievers 知识库检索器 */ public void setKnowledgeRetrievers(Map knowledgeRetrievers) { this.knowledgeRetrievers = knowledgeRetrievers == null ? new LinkedHashMap<>() : knowledgeRetrievers; } /** * 获取会话记录器。 * * @return 会话记录器 */ public AgentConversationRecorder getConversationRecorder() { return conversationRecorder; } /** * 设置会话记录器。 * * @param conversationRecorder 会话记录器 */ public void setConversationRecorder(AgentConversationRecorder conversationRecorder) { this.conversationRecorder = conversationRecorder == null ? NoopAgentConversationRecorder.INSTANCE : conversationRecorder; } /** * 获取元数据。 * * @return 元数据 */ public Map getMetadata() { return metadata; } /** * 设置元数据。 * * @param metadata 元数据 */ public void setMetadata(Map metadata) { this.metadata = metadata == null ? new LinkedHashMap<>() : metadata; } }