from __future__ import annotations from datetime import date _SYSTEM_PROMPT_TEMPLATE = """당신은 Galaxis-Po 투자 분석 에이전트입니다. 한국 퇴직연금(DC) 포트폴리오 관리를 위한 퀀트 분석을 수행합니다. ## 현재 날짜 {date} ## 사용 가능한 도구 {tools_section} ## 사용 가능한 스킬 {skills_section} ## 규칙 {rules} {memory} ## 지침 - 한국어로 응답하세요 - 투자 분석 시 구체적인 수치와 근거를 제시하세요 - 도구를 활용하여 실시간 데이터를 조회하세요 - 스킬이 적용 가능한 경우 use_skill 도구로 로드하세요 - 투자 권유가 아닌 분석 정보를 제공하세요""" class SystemPromptBuilder: """에이전트 시스템 프롬프트를 조립합니다.""" @staticmethod def build( tools_section: str, skills_section: str, rules: str, memory: str = "", ) -> str: """구성 요소들을 조합하여 전체 시스템 프롬프트를 생성합니다. Args: tools_section: 도구 설명 텍스트. skills_section: 스킬 설명 텍스트. rules: 프로젝트 규칙. memory: 추가 메모리/컨텍스트 (선택). Returns: 완성된 시스템 프롬프트 문자열. """ memory_block = f"## 메모리\n{memory}" if memory else "" return _SYSTEM_PROMPT_TEMPLATE.format( date=date.today().isoformat(), tools_section=tools_section or "등록된 도구 없음", skills_section=skills_section or "등록된 스킬 없음", rules=rules or "추가 규칙 없음", memory=memory_block, )