멀티에이전트 역할 분리 설계: 분석·예측·의사결정 에이전트를 나누는 기준(재현성·디버깅·안전성)

최종 수정: 작성자: Finyul

단일 LLM로 트레이딩을 만들면 가장 흔히 터지는 문제가 “분석(근거) + 예측 + 의사결정(행동)이 한 덩어리로 섞이는 것”입니다. 그 순간부터 출력이 흔들리고(재현성↓), 어디서 틀렸는지 못 찾고(디버깅↓), 잘못된 확신이 주문으로 연결됩니다(안전성↓). 이 글은 멀티에이전트 역할 분리를 “감”이 아니라 경계(금지행동)·계약(JSON)·제약(리스크 룰)으로 설계하는 방법을 제공합니다.

코너스톤에서 전체 폐루프(분석→예측→결정→실행)를 먼저 보고 싶다면 LLM 멀티에이전트 투자 시스템(MAS) 완전 가이드를 참고하세요.

단일 LLM 혼합 출력과 멀티에이전트 역할 분리 비교: 좌측 혼합 출력(출력 포맷 불안정·근거 추적 어려움·리스크 전이), 우측 역할 분리(MAS) 분석→예측→결정→실행→로그 카드 흐름
단일 LLM 혼합 출력과 멀티에이전트 역할 분리 비교.

역할 분리를 해야 ‘시스템’이 된다: 단일 LLM의 3가지 구조적 실패

1) 혼합 출력: “왜 샀는지”가 남지 않는다

단일 LLM은 한 번의 응답에 근거→전망→행동을 섞어 말합니다. 그 결과:

  • 근거(입력)가 로그에 남지 않거나
  • “근거는 약한데 행동만 강한” 출력이 생기고
  • 같은 입력이어도 문장 스타일에 따라 결론이 달라집니다.

2) 근거 부재/출처 누락: 리플레이(Replay)가 불가능

운영에서 가장 중요한 질문은 “맞았냐?”가 아니라 “다시 돌리면 같은 결론이 나오냐?”입니다. 출처/필드가 고정되지 않으면 리플레이가 깨지고, 개선도 불가능해집니다.

3) 과신/환각 + 과매매: 실전 리스크가 ‘주문’으로 전이

LLM이 단정적으로 말할수록 위험합니다. 특히 변동성 급변 구간에서 “확신”이 포지션 과확대로 연결되면 시스템이 한 번에 망가집니다.

비교 항목단일 LLM(역할 미분리)역할 분리(MAS)공개 연구 수치(참고)
재현성텍스트 출력 흔들림, 같은 입력에도 결론 변동역할 경계 + JSON 계약으로 출력 안정sideways 임계: Nv≈30일, qL/qU=30%/70%, τhigh/τlow≈1.4/0.7
검증근거/출처 추적 어려움단계별 JSON 검증(필수 필드/허용 액션) + 로그/리플레이예측 호라이즌: T+1/T+5/T+20, 다기간 sideways: ε5=√5·θ, ε20=√20·θ
리스크과신이 주문으로 직결이산 액션 + 실행 검증 게이트MDD% Mean: -4.09 / -3.46 / -11.12. Worst(Min): -8.07 / -8.24 / -24.19
운영 난이도초기 구현 쉬움(단, 운영 불안정)초기 설계 필요(단, 운영 안정/감사 가능)거래비용 0.03%, 28개 펀드, 2024-10~2025-10, 초기자본 RMB 1,000,000
추천 대상아이디어 검증/프로토타입운영·자동화·백테스트·실거래 연결CR%: 15.50 / 13.75 / 10.69. Sharpe: 1.71 / 1.77 / 0.75

역할 분리의 핵심은 “무엇을 하지 말아야 하는가(금지 행동)”를 정하는 것

역할 분리는 ‘업무 분장’이 아닙니다. 출력의 범위를 좁히고, 금지행동을 강제하는 설계입니다.

원칙 1) 분석(Analysis)은 “사실/상태”만 — 주문/비중 언급 금지

해야 할 일: “무슨 일이 있었나?”, “현재 상태는 어떤가?”를 구조화

하지 말아야 할 일: “매수/매도/비중 확대” 같은 행동 지시

원칙 2) 예측(Prediction)은 “확률 분포”만 — 단정형 추천 금지

해야 할 일: T+1/T+5/T+20 등 기간별 Up/Down/Side 확률

하지 말아야 할 일: “무조건 오른다”, “지금 사라” 같은 단정

원칙 3) 의사결정(Decision)은 “포지션 조절”만 — 연속값·재량 확대 금지

해야 할 일: 허용된 이산 액션으로만 출력(예: +20%, -40%, hold)

하지 말아야 할 일: “올인”, “이번엔 73%로” 같은 연속값/임의값

원칙 4) 실행(Execution)은 LLM이 아니라 “규칙 엔진” — 검증 없이 주문 금지

해야 할 일: 계정상태(Account State) + 제약 검증 후 주문 발행

하지 말아야 할 일: LLM 텍스트를 그대로 주문으로 번역

분업(Agents)

분석(Analysis) = "사실/상태만"

  • 분석 에이전트 4종: Announcement / Event / Price Momentum / Market
  • 공시 입력: 최근 7일(자연일) + 가격 추세 5–20 거래일
계약(JSON)

예측(Prediction) = "확률/호라이즌만"

  • T+1 / T+5 / T+20
  • sideways 임계: Nv≈30일, qL/qU=30%/70%, τhigh/τlow≈1.4/0.7, ε5=√5·θ, ε20=√20·θ
제약(리스크)

결정(Decision) = "이산 액션만"

  • 허용 액션: close, -40, -20, hold, +20, +40, upper limit
게이트/리플레이

실행+로그(Execution & Logging) = "검증 후 주문"

  • 거래비용 0.03%(0.0003), 초기자본 RMB 1,000,000
  • 28개 펀드, 2024-10~2025-10

경계(금지행동) · 계약(JSON) · 제약(리스크)

역할 분리 4원칙과 핵심 메시지(경계·계약·제약).

(핵심) 1장으로 끝내는 역할 정의서: 책임(RACI) + 입력/출력 + 금지 행동

아래 표를 팀의 “설계 명세서(Definition of Done)”로 쓰면, 역할 분리가 무너지지 않습니다. 분석 에이전트 4종예측·결정·실행·로깅으로 나누어 보기 쉽게 정리했습니다.

분석 에이전트 4종

역할책임입력 → 출력금지로그
Announcement Agent공시·영향 구조화입력: 최근 7일 공시 + 5~20 거래일 가격 추세 → 출력: 유의미 공시 여부, 방향 영향, 횡보에서 증폭/흡수매수/매도/비중 지시doc_id, claim, confidence
Event Agent이벤트·리스크 알림입력: 고임팩트 뉴스 + 분기/운영 리포트 → 출력: 핵심 이벤트·리스크 알림단정형 추천event_id, impact, source
Price Momentum Agent가격·모멘텀 라벨입력: MA5/10/20/60, RSI, Bollinger, Volume, 20일 up/down 통계 → 출력: trend/momentum/volatility/volume, 지지저항 상태 라벨포지션 액션 출력indicators, labels
Market Agent거시·4분면 해석입력: 국채금리 20일 변화 구간, 주식 20일 수익률·RSI 규칙 → 출력: 4분면(Quadrant I~IV) + 거시 해석단일 종목 주문 지시quadrant, macro_label

예측·결정·실행·로깅

역할책임입력 → 출력금지로그
Prediction Agent확률 분포 출력입력: 4개 분석 에이전트 JSON 출력 → 출력: T+1/T+5/T+20 Up/Down/Side 확률(sideways: Nv≈30, qL/qU=30%/70%, τ≈1.4/0.7)주문/비중 지시horizon, probabilities, sum=1
Decision Agent이산 액션 선택입력: 예측 확률 + 제약 상태 → 출력: 허용 액션 7개(close, ±20, ±40, hold, upper limit)허용 집합 밖 액션action, constraints_applied, rationale
Execution Engine검증 후 주문입력: 거래비용 0.03%, 초기자본 RMB 1M → 출력: 검증 통과 시 주문 / 실패 시 HOLD+사유 로그검증 없이 주문gate_result, order_id, fail_reason
Logging/Replay입출력·검증 기록입력: 모든 단계 입출력/검증 → 출력: CR/Sharpe/MDD 등 성과지표 기록근거 없이 요약만 저장snapshot_id, metrics, timestamp

예시: 연구에서 사용된 ‘의사결정 이산 액션’(실제 값)

중국 공모 REITs를 대상으로 한 LLM 멀티에이전트 투자 시스템 연구에서는 의사결정 출력을 이산 포지션 조절 신호로 제한합니다. 예:

  • close position
  • reduce position by 40% / 20%
  • hold unchanged
  • increase position by 20% / 40%
  • increase position to the upper limit

이 방식의 요지는 단순합니다. 모델이 아무리 확신해도 한 번에 과격하게 못 움직이게 만드는 것입니다.

핸드오프(연결) 설계: 에이전트가 만나는 지점은 ‘데이터 계약(JSON)’이다

역할 분리가 실패하는 가장 흔한 이유는 “역할”이 아니라 출력 포맷입니다. 포맷이 흔들리면 검증이 깨지고, 검증이 깨지면 운영이 깨집니다.

최소 계약 3종(이거 없으면 운영 불가)

  • 분석 → 예측 계약: signals[], evidence, confidence, risk_flags
  • 예측 → 결정 계약: horizons(T+1/T+5/T+20), probabilities(sum=1)
  • 결정 → 실행 계약: action(허용 집합), constraints_applied, rationale

샘플(미니)로는 아래 정도만 있어도 충분합니다.

에이전트 출력을 표준화하려면 에이전트 출력 표준화(JSON 스키마) 설계 템플릿을 참고하세요.

단계필수 필드검증 규칙실패 예시
분석signals[], evidenceaction/비중 없음“매수 추천” 포함
예측up, down, side (sum=1)합=1, 0≤p≤1합≠1 또는 단정 문장
결정action, constraints_appliedaction ∈ 허용 집합73%, 올인 등 연속값
멀티에이전트 투자 시스템 단계별 구조화 출력 예시: 분석 JSON(에이전트 4종·공시·가격 윈도우·기술지표·sideways 파라미터), 예측 JSON(호라이즌·sideways 규칙·모델), 결정 JSON(허용 액션·거래비용·초기자본·펀드 수·백테스트 기간)
분석-예측-결정 단계별 JSON 출력 예시.

디버깅이 쉬워지는 구조: “문제는 어느 에이전트에서 생겼나?”를 5분 안에 찾는 법

역할 분리의 진짜 가치는 성능보다 원인 규명 속도입니다.

디버깅 루틴 5단계(리플레이 중심)

  1. 입력 스냅샷 고정(가격/문서/지표 동일)
  2. 분석만 재실행 → signals/evidence 품질 확인
  3. 예측만 재실행 → 확률 합=1, 과신 여부 확인
  4. 결정만 재실행 → action이 제약을 침범하는지 확인
  5. 실행 게이트 확인 → 왜 주문이 막혔는지(또는 왜 통과했는지) 확인

전략 운영에서 로그·리플레이(리뷰) 구조를 만들려면 전략 운영에서 로그/리플레이(리뷰) 구조 만들기를 참고하세요.

입력 스냅샷 고정

  • 공시: 최근 7일(자연일)
  • 가격 추세: 최근 5–20 거래일

분석만 재실행(4개 에이전트)

  • Price Momentum 지표: MA5/10/20/60, RSI(6/12/24), Bollinger(20,2σ)

예측만 재실행

  • 호라이즌: T+1/T+5/T+20
  • sideways 파라미터: Nv≈30, q=30%/70%, τ≈1.4/0.7, ε5=√5·θ, ε20=√20·θ

결정만 재실행

  • 허용 액션: close, -40, -20, hold, +20, +40, upper limit

실행 게이트 확인 + 로그 확인

  • 거래비용 0.03%(0.0003) 반영
  • 백테스트 설정: 28개 펀드, 2024-10~2025-10, 초기자본 RMB 1,000,000

입력 고정 · 단계별 재실행 · 게이트 확인

디버깅 플로우 5단계와 확인할 로그.

안전장치(리스크) 관점에서의 역할 분리: LLM은 ‘결정’해도 실행은 ‘허가’받아야 한다

역할 분리만 해도 좋아지지만, 마지막 안전장치는 실행 레이어 검증 게이트입니다.

권장 제약 5종(최소 세트)

  • 포지션 상한(position cap)
  • 스텝(step size)
  • 페이스(pace restriction)
  • 손실 트리거(일일/연속 손실 제한)
  • 거래 빈도 제한(과매매 방지)
실행 레이어 검증 게이트 흐름: Decision JSON(허용 액션 7종) → 스키마 검증 → 제약(리스크) 검증 → 계좌 상태 → 시장/거래 가능성 → 주문 생성·실행·로그. 실패 시 HOLD 및 실패 사유 로그.
실행 레이어 검증 게이트: 결정 출력이 규칙 검증을 통과해야만 주문이 나가는 흐름.
제약 종류걸리는 위치차단되는 사고
포지션 상한결정/실행과도한 비중·레버리지
스텝실행한 번에 대량 증감
페이스실행과매매·연속 주문
손실 트리거실행연패 시 추가 노출
거래 빈도실행과도한 회전율

운영 메모

어떤 게이트에서든 실패하면 기본값은 HOLD + 실패 사유 로그가 안전합니다. “불확실하면 하지 않는다”를 시스템에 박아두는 게 장기 생존에 유리합니다.

실증 사례: 역할 분리 + 이산결정이 성과·낙폭을 어떻게 바꿨나(공개 연구)

역할 분리(분석 4종 + 예측 + 이산 의사결정)를 포함한 멀티에이전트 프레임워크를 중국 공모 REITs에 적용한 공개 연구의 백테스트(2024-10~2025-10, 28개 펀드 평균)에서는, 에이전트 전략이 벤치마크(Buy&Hold) 대비 누적수익·샤프 개선 + 낙폭 축소를 보고합니다.

실증 수치 예시

28개 REITs 평균, 2024-10~2025-10
지표Agent-DeepSeek-R1Agent-Qwen3-8B-FTBuy&Hold
CR(%)15.5013.7510.69
Sharpe1.711.770.75
MDD(%)-4.09-3.46-11.12

※ 이 수치가 “수익 보장”을 의미하진 않습니다. 다만 역할 분리와 제약 설계가 운영 가능한 리스크 구조를 만드는 데 유리하다는 실증 사례로 참고할 만합니다. 출처: arXiv 2602.00082 Table 1.

자주 하는 오해 교정: 멀티에이전트 = 모델 여러 개? (꼭 그렇진 않다)

  • 같은 모델이어도 역할 프롬프트 + 스키마로 에이전트화할 수 있습니다.
  • 멀티에이전트의 목적은 “정확도”만이 아니라 감사 가능성(audit), 재현성, 안전장치입니다.
  • 다만 에이전트가 과도하게 늘면 비용/지연/조정 복잡도가 급증합니다.
구성장점단점
3개(최소)분석·예측·결정만 분리, 단순입력 다양성 제한
5개(표준)분석 4종+예측 등, 균형설계·로그 관리 필요
8개(복잡)세분화된 신호·검증비용·지연·조정 복잡도 급증

시스템 비용(대형 호출 vs 소형 파인튜닝) 비교는 대형 모델 호출 vs 소형 모델 파인튜닝에서 다룹니다.

바로 적용하는 체크리스트: 내 시스템은 ‘역할 분리’가 되어 있는가?

  • 경계 체크: 분석이 행동을 말하지 않는가? 예측이 단정하지 않는가? 결정이 연속값을 내지 않는가?
  • 계약 체크: JSON 스키마/필수 필드/검증 규칙/폴백(HOLD)이 있는가?
  • 운영 체크: 입력 스냅샷·출력·게이트 결과·주문 결과가 리플레이 가능한가?

LLM 환각을 줄이는 “프롬프트 제약(용어·근거·형식)”은 LLM 환각 줄이는 프롬프트 제약 체크리스트에서 정리했습니다.

FAQ

자주 묻는 질문

분석 에이전트가 "매수"까지 말하면 왜 위험하죠?
분석이 행동까지 말하면, 나중에 오류가 났을 때 근거(분석)가 틀린 건지, 행동 규칙이 틀린 건지 분리가 안 됩니다. 디버깅이 불가능해집니다.
예측은 왜 단정이 아니라 확률이어야 하나요?
확률은 의사결정/제약과 결합하기 쉽고, "과신"을 측정(캘리브레이션)할 수 있습니다. 단정형은 과매매와 리스크 전이에 취약합니다.
결정 에이전트가 리스크를 통제하면 실행 레이어가 꼭 필요할까요?
네. 결정이 아무리 보수적이어도 실행 단계에서 중복 주문/거래정지/상한 초과 같은 현실 변수로 사고가 납니다. 실행은 규칙 엔진이 맡아야 합니다.
최소 구성(가장 작은 역할 분리)은 어떻게 시작하나요?
(1) 분석 1개(가격 모멘텀) → (2) 예측 1개(T+5 확률) → (3) 결정 이산액션(±20/hold) → (4) 실행 게이트(상한/중복/시장상태) + 로그부터 시작하세요.

결론: 역할 분리는 “분업”이 아니라 “경계+계약+제약”이다

멀티에이전트 역할 분리의 핵심은 간단합니다. 경계(금지행동)로 섞임을 막고 → 계약(JSON)으로 흔들림을 막고 → 제약(리스크 룰)으로 실전 사고를 막으세요.

데이터 기준 시점
2026-02-21
계산 방식
LLM·멀티에이전트 역할 분리 설계 개념 정리. 투자 권유 아님.
한계점
실제 구현·API는 환경에 따라 다르며, 과장·보장 표현 없음.