package com.easyagents.agent.runtime; import com.easyagents.agent.runtime.knowledge.AgentKnowledgeSpec; import com.easyagents.agent.runtime.memory.AgentMemoryPolicy; import com.easyagents.agent.runtime.mcp.McpSpec; import com.easyagents.agent.runtime.model.AgentGenerationOptions; import com.easyagents.agent.runtime.model.AgentModelSpec; import com.easyagents.agent.runtime.persistence.AgentPersistencePolicy; import com.easyagents.agent.runtime.skill.AgentSkillBoxSpec; import com.easyagents.agent.runtime.tool.AgentToolSpec; import com.easyagents.agent.runtime.tool.operate.AgentOperateToolSpec; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; /** * 主入口 * ReAct 智能体的声明式定义 */ public class AgentDefinition { private String agentId; private String agentName; private String description; private String systemPrompt; private AgentModelSpec modelSpec; private AgentGenerationOptions generationOptions = new AgentGenerationOptions(); private AgentExecutionOptions executionOptions = new AgentExecutionOptions(); private List toolSpecs = new ArrayList<>(); private List mcpSpecs = new ArrayList<>(); private List operateToolSpecs = new ArrayList<>(); private List knowledgeSpecs = new ArrayList<>(); private AgentMemoryPolicy memoryPolicy = AgentMemoryPolicy.autoContext(); private AgentPersistencePolicy persistencePolicy = AgentPersistencePolicy.disabled(); private AgentSkillBoxSpec skillBoxSpec; private Map metadata = new LinkedHashMap<>(); /** * 获取agent id。 * * @return 智能体ID */ public String getAgentId() { return agentId; } /** * 设置agent id。 * * @param agentId 智能体ID */ public void setAgentId(String agentId) { this.agentId = agentId; } /** * 获取agent name。 * * @return 智能体名称 */ public String getAgentName() { return agentName; } /** * 设置agent name。 * * @param agentName 智能体名称 */ public void setAgentName(String agentName) { this.agentName = agentName; } /** * 获取agent description。 * * @return 智能体描述 */ public String getDescription() { return description; } /** * 设置agent description。 * * @param description 智能体描述 */ public void setDescription(String description) { this.description = description; } /** * 获取system prompt。 * * @return 系统提示词 */ public String getSystemPrompt() { return systemPrompt; } /** * 设置system prompt。 * * @param systemPrompt 系统提示词 */ public void setSystemPrompt(String systemPrompt) { this.systemPrompt = systemPrompt; } /** * 获取模型设置。 * * @return 模型设置 */ public AgentModelSpec getModelSpec() { return modelSpec; } /** * 设置模型设置。 * * @param modelSpec 模型设置 */ public void setModelSpec(AgentModelSpec modelSpec) { this.modelSpec = modelSpec; } /** * 获取生成参数。 * * @return 生成参数 */ public AgentGenerationOptions getGenerationOptions() { return generationOptions; } /** * 设置生成参数。 * * @param generationOptions 生成参数 */ public void setGenerationOptions(AgentGenerationOptions generationOptions) { this.generationOptions = generationOptions == null ? new AgentGenerationOptions() : generationOptions; } /** * 获取执行参数。 * * @return 执行参数 */ public AgentExecutionOptions getExecutionOptions() { return executionOptions; } /** * 设置执行参数。 * * @param executionOptions 执行参数 */ public void setExecutionOptions(AgentExecutionOptions executionOptions) { this.executionOptions = executionOptions == null ? new AgentExecutionOptions() : executionOptions; } /** * 获取工具定义。 * * @return 工具定义 */ public List getToolSpecs() { return toolSpecs; } /** * 设置工具定义。 * * @param toolSpecs 工具定义 */ public void setToolSpecs(List toolSpecs) { this.toolSpecs = toolSpecs == null ? new ArrayList<>() : new ArrayList<>(toolSpecs); } /** * 获取 MCP 声明。 * * @return MCP 声明 */ public List getMcpSpecs() { return mcpSpecs; } /** * 设置 MCP 声明。 * * @param mcpSpecs MCP 声明 */ public void setMcpSpecs(List mcpSpecs) { this.mcpSpecs = mcpSpecs == null ? new ArrayList<>() : new ArrayList<>(mcpSpecs); } /** * 获取操作类工具定义。 * * @return 操作类工具定义 */ public List getOperateToolSpecs() { return operateToolSpecs; } /** * 设置操作类工具定义。 * * @param operateToolSpecs 操作类工具定义 */ public void setOperateToolSpecs(List operateToolSpecs) { this.operateToolSpecs = operateToolSpecs == null ? new ArrayList<>() : new ArrayList<>(operateToolSpecs); } /** * 获取知识库定义。 * * @return 知识库定义 */ public List getKnowledgeSpecs() { return knowledgeSpecs; } /** * 设置知识库定义。 * * @param knowledgeSpecs 知识库定义 */ public void setKnowledgeSpecs(List knowledgeSpecs) { this.knowledgeSpecs = knowledgeSpecs == null ? new ArrayList<>() : new ArrayList<>(knowledgeSpecs); } /** * 获取记忆策略。 * * @return 记忆策略 */ public AgentMemoryPolicy getMemoryPolicy() { return memoryPolicy; } /** * 设置记忆策略。 * * @param memoryPolicy 记忆策略 */ public void setMemoryPolicy(AgentMemoryPolicy memoryPolicy) { this.memoryPolicy = memoryPolicy == null ? AgentMemoryPolicy.autoContext() : memoryPolicy; } /** * 获取持久化策略。 * * @return 持久化策略 */ public AgentPersistencePolicy getPersistencePolicy() { return persistencePolicy; } /** * 设置持久化策略。 * * @param persistencePolicy 持久化策略 */ public void setPersistencePolicy(AgentPersistencePolicy persistencePolicy) { this.persistencePolicy = persistencePolicy == null ? AgentPersistencePolicy.disabled() : persistencePolicy; } /** * 获取SkillBox 设置。 * * @return SkillBox 设置 */ public AgentSkillBoxSpec getSkillBoxSpec() { return skillBoxSpec; } /** * 设置SkillBox 设置。 * * @param skillBoxSpec SkillBox 设置 */ public void setSkillBoxSpec(AgentSkillBoxSpec skillBoxSpec) { this.skillBoxSpec = skillBoxSpec; } /** * 获取元数据。 * * @return 元数据 */ public Map getMetadata() { return metadata; } /** * 设置元数据。 * * @param metadata 元数据 */ public void setMetadata(Map metadata) { this.metadata = metadata == null ? new LinkedHashMap<>() : metadata; } }