galaxis-po/docs/plans/agents-architecture.md
머니페니 76e3220e77
All checks were successful
Deploy to Production / deploy (push) Successful in 3m10s
feat: 에이전트 기능 추가 (LLM 서비스, 에이전트 API, 테스트)
2026-05-06 20:56:45 +09:00

69 lines
2.6 KiB
Markdown

# Agent Architecture
## 개요
Galaxis-Po 투자 분석 에이전트 시스템. 자연어 쿼리를 받아 도구를 활용하여 투자 분석을 수행합니다.
## 구조
```
backend/app/agents/
├── __init__.py
├── tools/ # Meta-tool 패턴
│ ├── types.py # ToolResult, RegisteredTool
│ ├── registry.py # 도구 레지스트리
│ ├── meta_tool.py # MetaTool 베이스 클래스
│ ├── finance/ # 금융 데이터 도구
│ │ ├── get_financials.py
│ │ ├── get_market_data.py
│ │ └── sub_tools.py
│ ├── search/ # 검색 도구
│ │ ├── web_search.py
│ │ └── news_search.py
│ └── filesystem/ # 파일 도구
│ ├── read_file.py
│ ├── write_file.py
│ └── edit_file.py
├── skills/ # SKILL.md 시스템
│ ├── types.py # SkillMetadata, Skill
│ ├── loader.py # SKILL.md 파서
│ ├── registry.py # 스킬 디스커버리
│ ├── tool.py # use_skill 도구
│ └── builtin/ # 내장 스킬
│ ├── dcf/SKILL.md
│ └── kim-jong-bong-strategy/SKILL.md
└── core/ # 에이전트 코어
├── agent.py # 에이전트 루프
├── compact.py # 컨텍스트 압축
├── prompts.py # 시스템 프롬프트
├── scratchpad.py # 실행 로그
├── tool_executor.py # 동시 도구 실행
└── rules.py # RULES.md 로더
```
## 핵심 패턴
### Meta-tool
NL 쿼리를 받아 LLM(fast tier)으로 적절한 sub-tool을 선택하여 실행합니다.
### SKILL.md
YAML frontmatter + 마크다운 본문으로 구성된 전문 분석 워크플로우입니다.
에이전트가 use_skill 도구로 스킬을 로드하면 해당 워크플로우를 따릅니다.
### 도구 동시성
concurrency_safe 플래그로 읽기 전용 도구는 병렬 실행, 쓰기 도구는 직렬 실행합니다.
### 컨텍스트 압축
토큰 수가 임계값을 초과하면 LLM으로 대화를 요약하여 컨텍스트를 압축합니다.
## API
### POST /api/agent/query
동기 응답. 에이전트 실행 후 최종 결과 반환.
### POST /api/agent/stream
SSE 스트리밍. 도구 실행 과정을 실시간으로 전달.
## LLM 연동
app.services.llm.get_chat_model()을 통해 LangChain BaseChatModel 사용.
ModelTier.FAST(라우팅/압축), ModelTier.STRONG(분석/추론).