KAIST 연구진은 언어 모델 기반 트레이딩 봇이 5일마다 자신의 프롬프트를 스스로 재작성하게 함으로써, 50일간의 테스트 기간 동안 샤프 지수(Sharpe ratio)를 2.94에서 4.00으로 높이고 50bp(basis-point)의 초과 수익을 달성했음을 보여주었습니다. 이러한 성과는 모든 계산 과정을 산문 형태에서 실행 가능한 Python 코드로 전환하도록 봇을 강제함으로써 얻은 결과였습니다.

정적 프롬프트가 한계를 보이는 이유

코드를 실행하는 대부분의 LLM 에이전트는 모델의 행동 방식을 지시하는 텍스트 블록인 고정된 시스템 프롬프트로 시작합니다. 이러한 프롬프트는 종종 코드 도구를 선택적인 장식 정도로 취급합니다. 모델은 변동성이나 기대 수익률에 대해 여전히 "생각"할 수 있지만, 숫자를 일반 텍스트로 작성한 뒤 모호한 추측에 기반하여 투자 규모를 결정합니다. 그 결과 불일치가 발생합니다. 모델은 완벽하게 유효한 코드를 생성할 수 있음에도 불구하고, 최종 거래 규모는 코드 외부에서 결정되어 의사결정이 환각(hallucination) 현상에 취약해지게 됩니다.

EvolveTrade 방식

KAIST 팀은 정적 프롬프트를 5일 단위의 이동 창(rolling window)을 통해 봇의 성과를 검토하는 메타 에이전트(meta-agent)로 교체했습니다. 각 검토 후 메타 에이전트는 시스템 프롬프트를 재작성하여 언어 모델과 코드 인터프리터 사이의 계약(contract)을 더욱 공고히 합니다. 새로운 프롬프트는 다음 세 가지 구체적인 단계를 명령합니다:

  • Python을 사용하여 모든 자산에 대한 지표 테이블을 구축합니다.
  • 자산 점수를 매기기 위해 명시적인 수학 공식을 적용합니다.
  • 마크다운 텍스트가 아닌 코드 내부에서 목표 포트폴리오 비중을 도출합니다.

실제로 진화된 봇은 지표 계산, 리스크 한도 검증, 비중 조절을 위해 트레이딩 사이클당 11번 Python 도구를 호출한 반면, 베이스라인 에이전트는 도구를 단 한 번만 호출하고 나머지는 텍스트 기반의 휴리스틱(heuristics)에 의존했습니다.

중요한 수치들

표준 자산 유니버스를 대상으로 한 50일간의 백테스트(back-test) 동안, 진화된 에이전트는 다음과 같은 성과를 기록했습니다:

  • 샤프 지수(Sharpe ratio): 정적 에이전트의 2.94 대비 4.00.
  • 누적 수익률(Cumulative return): 정적 에이전트의 8.88% 대비 10.56%.

50bp의 초과 수익은 행동을 결정론적 수학(deterministic math)에 더 긴밀하게 결합시킨 결과에서 직접적으로 비롯되었습니다. 연구진은 모델의 의사결정 파이프라인을 완전히 관찰 가능하고 반복 가능하게 만듦으로써, 일반적으로 LLM 기반 트레이딩 전략의 성과를 저하시키는 "추측(guesswork)" 요소를 제거했습니다.

승자와 패자

금융 봇을 구축하는 개발자들에게 교훈은 명확합니다. 에이전트가 런타임 환경에 접근할 수 있다면, 프롬프트는 에이전트가 모든 실행 가능한 통찰력을 코드로 표현하도록 강제해야 합니다. 이 원칙을 무시하면 모델이 도구의 출력을 단순한 배경 잡음(background chatter)으로 취급하게 되어, 성과가 저하되고 리스크가 증가할 수 있습니다.

한계 및 반론

향후 주목할 점

핵심 요약: LLM이 자신의 지침 세트를 스스로 재작성하게 하면 모든 거래 결정이 검증 가능한 코드로 강제되어, 모호한 텍스트 기반 에이전트를 규율 있고 수익률이 높은 엔진으로 탈바꿈시킬 수 있습니다. 프롬프트와 도구 간의 계약을 무시하는 개발자는 수익 기회를 놓칠 위험이 있습니다.