package com.superbiz.agent.config; import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; import jakarta.annotation.PostConstruct; import java.io.IOException; import java.nio.charset.StandardCharsets; /** * AI Ops Agent Prompt 配置 * 从独立的 Markdown 文件加载 Prompt 模板 */ @Slf4j @Configuration public class AiOpsPromptProperties { private String planner; private String executor; private String supervisor; @PostConstruct public void loadPrompts() { try { planner = loadPromptFromFile("prompts/planner-prompt.md"); executor = loadPromptFromFile("prompts/executor-prompt.md"); supervisor = loadPromptFromFile("prompts/supervisor-prompt.md"); log.info("AI Ops Prompts 加载成功"); log.debug("Planner Prompt 长度: {} 字符", planner.length()); log.debug("Executor Prompt 长度: {} 字符", executor.length()); log.debug("Supervisor Prompt 长度: {} 字符", supervisor.length()); } catch (IOException e) { log.error("加载 Prompt 文件失败", e); throw new RuntimeException("Failed to load AI Ops prompts", e); } } private String loadPromptFromFile(String path) throws IOException { ClassPathResource resource = new ClassPathResource(path); return new String(resource.getInputStream().readAllBytes(), StandardCharsets.UTF_8); } public String getPlanner() { return planner; } public String getExecutor() { return executor; } public String getSupervisor() { return supervisor; } }