
로컬 LLM으로 구동되는 자율형 멀티 에이전트 FX 거래 시스템의 '구현 방법' 해부
요약
로컬 LLM을 활용하여 기술적 분석, 뉴스 해석, 통합 판정, 사후 감사를 수행하는 자율형 멀티 에이전트 FX 거래 시스템의 설계 패턴을 소개합니다. 환각 방지와 안전성을 위해 LLM을 조언자로 활용하고 결정론적인 룰 레이어를 통해 최종 의사결정을 제어하는 이층 구조 아키텍처를 제안합니다.
핵심 포인트
- 관심사 분리를 통한 멀티 에이전트(A/B/C/D) 설계 패턴
- LLM의 확률적 출력을 제어하는 다단계 안전 게이트(Rule Layer) 도입
- ContextProvider 프로토콜을 이용한 에이전트 간 문맥 주입 및 확장성 확보
- 시스템 열화를 감지하고 재학습을 요청하는 감사 에이전트(Agent D)의 중요성
면책: 본 기사는 자율형 소프트웨어 설계에 관한 기술 해설입니다. 투자 조언, 매매 권유 또는 운용 성과를 보장하는 것이 전혀 아닙니다. 기재된 시스템은 데모 계좌에서의 연구 단계이며, 실제 이익을 주장하는 것이 아닙니다.
"AI가 자동으로 돈을 번다" —— 이런 종류의 이야기 중 9할은 알맹이가 없다. 그래서 이 기사에서는 돈 벌 수 있는 이야기를 일절 하지 않는다. 대신, 로컬 LLM(클라우드의 유료 API에 의존하지 않는 소형 모델)만으로 구동되는 자율 거래 시스템을 실제로 어떻게 설계하고 구현했는지를, 작동 중인 코드 구조 그대로 해부한다. 주제는 필자가 build-in-public으로 개발 중인 Nagi(凪)이다. 데모 계좌에서 작동하는 연구 시스템이며, 투자 상품이 아니다.
읽고 얻을 수 있는 것은 "이길 수 있는 시그널"이 아니라, **"복수의 LLM 에이전트를 안전하게 협조시키고, 외부 시장이라는 극도로 동적인 대상에 접속하는 설계 패턴"**이다. 거래에 관심이 없더라도, 자율 에이전트 기반을 만드는 사람이라면 그대로 전용할 수 있다.
왜 "멀티 에이전트(Multi-agent) × 다단계 게이트"인가
LLM을 거래에 사용할 때, 단순하게 "1개의 LLM에게 '살까? 팔까?'라고 묻는" 방식은 반드시 파탄 난다. 이유는 세 가지다:
- 하나의 모델에 모든 책임을 맡기면 환각(Hallucination)이 그대로 발주로 이어진다. 기술적 판단, 뉴스 해석, 최종 의사결정은 관심사가 다르다. 이를 섞으면 검증도 개선도 할 수 없다.
- LLM의 출력을 그대로 믿어서는 안 된다. 확률적인 텍스트 생성기에 불가역적인 발주의 최종 권한을 넘기는 것은 설계 미스다.
- 시장은 동적이고, 모델은 정적이다. 학습 시점의 분포에서 벗어난 시장 상황에서, 모델은 자신만만하게 틀린다.
Nagi의 답은 **"관심사로 분할된 에이전트 군(Agent A/B/C/D)" + "룰 레이어(Rule Layer)에 의한 다단계 안전 게이트"**의 이층 구조다. LLM은 "조언자"이며, 최종적인 발주 여부는 결정론적인 룰이 가진다. 똑똑한 코드보다 검증 가능한 코드를 선택한다.
아키텍처 전체상
MT5(시장 데이터) → 병렬 전략 플러그인 군 → 통합 분석 파이프라인(Agent A/B/C)
→ 다단계 안전 게이트(6단계) → MT5 발주 → SQLite 영속화
↑ ↓
...
데이터는 MetaTrader5로부터 멀티 타임 프레임(D1/H4/M15)으로 들어오며, 여러 전략 플러그인이 병렬로 지표 계산과 1차 판정을 수행한다. 그 이후가 본론인 "LLM 에이전트 협조"와 "안전 게이트"다.
Agent A/B/C/D — 관심사로 분할된 LLM 에이전트
| Agent | 역할 | 나누는 이유 |
|---|---|---|
| A | 기술적 분석 (Price Action · 지표) | 수치 패턴 해석에 특화. 뉴스의 문맥은 포함하지 않음 |
| B | 뉴스 분석 (GDELT 감성 스코어) | 언어 · 이벤트 해석에 특화. 차트는 보지 않음 |
| C | 통합 판정 (A/B 결과 + 전략 프로파일 통합) | "의사결정"만을 담당. 입력은 타 에이전트의 구조화된 출력 |
| D | 사이클 품질 진단 · 재학습 요청 | 거래 결과를 사후 평가하여 시스템 자체의 열화를 검출하는 "감사역" |
설계상의 핵심은, A/B/C를 "책임 연쇄(Chain of Responsibility)" 파이프라인으로서 순차 실행하며, 각 단계 사이의 문맥을 ContextProvider라는 단일 프로토콜(Protocol)로 주입하고 있다는 점이다. 에이전트를 추가하거나 교체할 때 호출 측을 다시 작성할 필요가 없다. 에이전트 협조의 전형적인 안티 패턴(거대한 if 분기로 각 에이전트를 호출하는 방식)을 피하고, 단계의 합성으로 표현한다.
그리고 Agent D가 중요하다. 많은 "AI 에이전트 시스템"은 만들어 놓기만 하고, 자신의 판단이 열화되고 있다는 사실을 깨닫지 못한다. Nagi는 거래 사이클마다 D가 품질 지표를 평가하고, 필요하다면 임계값 조정이나 재학습을 요청하는 자기 진단 루프를 가진다. 단, D 역시 "조언자"이며, 안전 정지의 최종 권한은 룰 레이어가 쥐고 있다. 이 권한 분리가 핵심이다.
로컬 LLM으로 구동하기 (유료 API 제로)
추론 백엔드는 3가지 계통을 설정(config) 한 줄로 전환할 수 있다:
llama_cpp(llama-server를 여러 인스턴스로 실행)tabby_api(ExLlamaV2 + LoRA 동적 전환)direct(transformers + PEFT 직접 로드)
각 Agent가 소비하는 것은 범용 대형 모델이 아니라, 용도에 특화하여 증류(Distillation)한 소형 LoRA 어댑터(자매 프로젝트 Bonsai...
생성). "데이터 센터에 대형 teacher, 수중에 소형 student"라는 2026년의 주류 패턴을 거래 도메인에서 구현한 것이다. 클라우드의 유료 API를 일절 호출하지 않고, 기술적 분석(Technical)/뉴스(News)/통합(Integration)의 각 태스크에 특화된 모델을 할당한다.
6단계 안전 게이트 — LLM에 주문 최종 권한을 부여하지 않는다
통합 판정(Agent C)이 시그널을 내더라도, 그것은 "제안"에 불과하다. 주문에 이르기 위해서는 결정론적인(Deterministic) 6단계 게이트를 모두 통과해야 한다:
- HOLD 판정: AI가 "관망"이라고 말한 것을 제외
- 기존 포지션: 동일 심볼의 중복 보유를 차단
- 진입 쿨다운 (Entry Cooldown): 과도한 연속 진입을 방지
- MTF 정합성: 다우 이론 바이어스(H4)와 실행 타임프레임(M15)의 방향 정합성
- 신뢰도 임계값: 일정 수준 미만의 확신도를 배제
- TP/SL 타당성: 익절(Take Profit) 및 손절(Stop Loss) 가격이 논리적으로 올바른지(BUY라면 TP > 현재가 > SL 등)를 검증
이 "LLM은 조언하고, 규칙이 최종 결정한다"라는 분리가 환각(Hallucination)을 주문 사고로 이어지지 않게 하는 핵심이다.
다우 이론 필터 — 고전을 구조화하여 기계에 부여하다
에이전트의 판단에 더해, 시장 구조(다우 이론) 필터가 상위 타임프레임의 트렌드 바이어스를 판정하며, 이와 역행하는 시그널을 차단한다. LLM의 확률적 판단 위에, 인간 트레이더가 사용하는 구조적 프레임을 기계 판독 가능한(Machine-readable) 제약 조건으로 덧씌우는 것——이것 또한 "LLM 단독을 믿지 않는다"라는 설계 사상의 발현이다.
build-in-public의 솔직한 현재 위치
이 부분이 이 기사에서 가장 중요한 대목이다. 이런 종류의 시스템에서 성과를 부풀리는 것은 쉽기에, 그렇기에 부풀리지 않는다.
- 이것은 데모 계좌에서의 연구 단계이며, 실질적인 수익을 주장하지 않는다.
- 과거 백테스트에서는 특정 전략·통화쌍·기간의 조합에서 거래가 거의 발생하지 않는 문제에 부딪혔다(파이프라인 조정 과제). 이러한 "작동하지 않는 부분"도 로그로 남겨 공개해 나간다.
- 예측(Forecast) 계열 모델은 미학습된 부분이 있어, 현재는 고전적인 베이스라인(ARIMA)으로 대체하고 있는 부분이 있다.
왜 실패를 기록하는가. AI 트레이딩은 규제 당국(CFTC 등)이 직접 지목하여 사기 경고를 하는 카테고리이며, 실적을 부풀린 광고로 넘쳐난다. 그렇기에 "작동하지 않는 부분을 포함하여 구조를 보여주는 것" 그 자체가 엔지니어에게는 가치이자 신뢰라고 생각한다. 돈을 버느냐가 아니라, 어떻게 만들어졌는지를 봐주길 바란다.
전용 가능한 설계 패턴 (거래 이외의 분야에서도)
이 기사를 거래의 맥락에서 벗어나 읽으면, 범용적인 자율 에이전트 설계의 체크리스트가 된다:
- 관심사에 따라 에이전트를 분할하고, 거대한 분기 대신 책임 연쇄(Chain of Responsibility)로 합성한다.
- LLM은 조언자이며, 불가역적인 행동의 최종 결정은 결정론적 규칙 계층에 맡긴다.
- **자기 진단 에이전트(감사역)**를 통해 시스템 자체의 열화를 검출한다.
- 용도 특화된 소형 로컬 모델로 비용과 의존성을 낮춘다.
- 실패를 포함하여 build-in-public으로 공개하며, 기술로 신뢰를 구축한다.
다음 예고
다음에는 "6단계 안전 게이트의 구현"을 실제 검증 로직과 테스트 구조까지 깊이 있게 파헤칠 예정이다. 코드와 진행 상황은 GitHub (build-in-public)에서 공개하고 있다.
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기