package com.infoepoch.pms.agent.platform.agent.application;

import com.alibaba.cloud.ai.graph.agent.Agent;
import com.alibaba.cloud.ai.graph.checkpoint.BaseCheckpointSaver;
import com.infoepoch.pms.agent.platform.agent.adapter.out.ai.DynamicAgentBuilder;
import com.infoepoch.pms.agent.platform.chatbot.domain.Chatbot;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

/**
 * 智能体执行应用服务。
 * <p>
 * 对外暴露聊天机器人运行时所需的主智能体构建入口，隔离上层模块对底层构建器的直接依赖。
 * </p>
 */
@Service
@RequiredArgsConstructor
public class AgentExecutionService {

    private final DynamicAgentBuilder dynamicAgentBuilder;

    /**
     * 根据聊天机器人配置构建可执行的主智能体。
     *
     * @param chatbot    聊天机器人配置
     * @param saver      checkpoint saver
     * @param requestKey 本次请求的追踪键
     * @return 已配置好的主智能体
     */
    public Agent buildChatbotAgent(Chatbot chatbot, BaseCheckpointSaver saver, String requestKey) {
        return dynamicAgentBuilder.buildChatbotAgent(chatbot, saver, requestKey);
    }
}
