204 lines
5.4 KiB
Java
204 lines
5.4 KiB
Java
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<String, AgentToolInvoker> toolInvokers = new LinkedHashMap<>();
|
||
|
||
/**
|
||
* 知识库集合,实现AgentKnowledgeRetriever接口以进行知识检索动作。
|
||
*/
|
||
private Map<String, AgentKnowledgeRetriever> knowledgeRetrievers = new LinkedHashMap<>();
|
||
|
||
/**
|
||
* 对话事件记录器,用于记录运行时事件流。
|
||
*/
|
||
private AgentConversationRecorder conversationRecorder = NoopAgentConversationRecorder.INSTANCE;
|
||
|
||
/**
|
||
* 初始化元数据,用于传递业务侧扩展信息。
|
||
*/
|
||
private Map<String, Object> 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<String, AgentToolInvoker> getToolInvokers() {
|
||
return toolInvokers;
|
||
}
|
||
|
||
/**
|
||
* 设置工具调用器。
|
||
*
|
||
* @param toolInvokers 工具调用器
|
||
*/
|
||
public void setToolInvokers(Map<String, AgentToolInvoker> toolInvokers) {
|
||
this.toolInvokers = toolInvokers == null ? new LinkedHashMap<>() : toolInvokers;
|
||
}
|
||
|
||
/**
|
||
* 获取知识库检索器。
|
||
*
|
||
* @return 知识库检索器
|
||
*/
|
||
public Map<String, AgentKnowledgeRetriever> getKnowledgeRetrievers() {
|
||
return knowledgeRetrievers;
|
||
}
|
||
|
||
/**
|
||
* 设置知识库检索器。
|
||
*
|
||
* @param knowledgeRetrievers 知识库检索器
|
||
*/
|
||
public void setKnowledgeRetrievers(Map<String, AgentKnowledgeRetriever> 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<String, Object> getMetadata() {
|
||
return metadata;
|
||
}
|
||
|
||
/**
|
||
* 设置元数据。
|
||
*
|
||
* @param metadata 元数据
|
||
*/
|
||
public void setMetadata(Map<String, Object> metadata) {
|
||
this.metadata = metadata == null ? new LinkedHashMap<>() : metadata;
|
||
}
|
||
}
|