LLM 환각 줄이는 프롬프트 제약 체크리스트: 용어·근거·형식 3가지만 고정하라

최종 수정: 작성자: Finyul

LLM 환각 줄이는 프롬프트의 핵심은 “더 길게 설명하기”가 아니라 제약(Constraints)을 먼저 박는 것입니다. 특히 트레이딩/리서치처럼 그럴듯하게 틀리면 치명적인 영역에서는, 용어·근거·형식 3가지를 고정하는 것만으로 출력 품질이 확 안정됩니다.

전체 폐루프(분석→예측→결정→실행) 설계가 궁금하다면 LLM 멀티에이전트 투자 시스템(MAS) 완전 가이드를 참고하세요.

제약 없음: 그럴듯하지만 검증 불가(근거 없음, 용어 흔들림, JSON 불일치) vs 제약 적용: 용어·근거·형식 고정(Strict JSON, evidence, 검증 실패 시 HOLD)
LLM 환각 줄이는 프롬프트 제약 적용 전후 비교.

환각이 왜 생기고, 트레이딩에서는 왜 더 위험한가

환각(Hallucination)의 정의

  • 환각: “모르는 걸 모른다고 말하지 못하고” 그럴듯한 답을 만들어내는 현상
  • 트레이딩에서는 이게 숫자/근거/규칙으로 포장되면서 더 위험해집니다.

트레이딩 맥락에서의 구체적 사례(근거·수치·형식 환각):

  • 존재하지 않는 공시/뉴스를 “봤다”고 말함
  • 확률 합이 1이 아닌데도 “정확하다”고 단정
  • 허용되지 않은 포지션 액션을 만들어냄(예: increase_30)

실전 설계에서 이미 답을 보여준 연구

중국 공모 REITs 대상 멀티에이전트 트레이딩 연구(arXiv:2602.00082)는 명시적 프레임워크 + 용어 제약 + 구조화 출력을 전제로 시스템을 설계합니다. 특히

  • 저변동 시장을 위해 동적 임계값 파라미터를 고정: Nv≈30일, qL/qU=30%/70%, τhigh≈1.4, τlow≈0.7
  • 해당 설정에서 약 33% 거래일이 sideways(횡보)로 분류(=횡보는 정상 범주)
  • 의사결정은 이산 액션 7개로 제한: close, reduce 40/20, hold, increase 20/40, upper limit

이게 바로 “용어·근거·형식”을 먼저 고정해야 하는 이유입니다.

체크리스트 핵심: 용어·근거·형식 3가지 제약만 고정하면 된다

1) 용어 고정(Glossary / Enum)

허용 라벨만 쓰게 해라(라벨 흔들림 차단)

실전 체크

  • horizon은 T1/T5/T20만
  • action은 7개 enum만

예시: action: close, reduce_40, reduce_20, hold, increase_20, increase_40, increase_upper_limit

2) 근거 강제(Evidence)

근거 없으면 말하지 말게 해라(내용 환각 차단)

실전 체크

  • claim마다 evidence 최소 1개
  • evidence.ref는 재조회 가능한 키

예시: evidence.ref: arXiv:2602.00082 (sideways 파라미터 근거)

3) 형식 강제(Strict JSON + Validation)

오직 JSON + 검증 실패 시 HOLD(운영 사고 차단)

실전 체크

  • 확률(up/down/side) 합 검증
  • enum 위반/필드 누락 시 HOLD

예시: 거래비용 0.03%(0.0003) 가정도 JSON으로 고정 기록

경계(금지행동) / 계약(JSON) / 검증(Validation)

프롬프트 제약 3단 구조.

1) 용어 제약: “허용 단어/라벨”을 미리 정의한다

환각의 많은 부분은 라벨 흔들림에서 시작합니다(같은 의미를 다른 말로 표현 → 파서/검증 붕괴).

용어 제약 체크

  • [ ] 라벨은 enum으로 고정했나? (예: claim=positive/neutral/negative)
  • [ ] 호라이즌을 고정했나? (예: T1/T5/T20)
  • [ ] 액션을 고정했나? (예: close, reduce_40/20, hold, increase_20/40, upper_limit)
  • [ ] 금지 단어를 명시했나? (예: “확실”, “무조건”, “100%”, “보장”)
필드허용값(enum/범위)정의(의미)비고(금지/주의)
horizonT1, T5, T20예측 기간(1/5/20 거래일)다른 키 금지
directionup, down, side방향 라벨side=횡보(정의 필요)
claimpositive, neutral, negative분석 결론 라벨근거 없으면 금지
actionclose, reduce_40, reduce_20, hold, increase_20, increase_40, increase_upper_limit의사결정 이산 액션enum 외 금지
Nv_days30(about)단기 변동성 윈도우출처 고정(arXiv)
qL/qU0.30 / 0.70분위 경계(30%, 70%)고정 값 기록
tau_high / tau_low1.4 / 0.7 (approx)변동성 레짐 임계고정 값 기록
sideways_rate~33%횡보 비중(설정 결과)“정상 범주”로 취급
transaction_cost_rate0.0003 (=0.03%)거래비용 가정로그에 항상 남김
confidence0~1신뢰도과신 금지(단정 표현 금지)

복붙 프롬프트(용어 제약)

너는 트레이딩 시스템의 에이전트다. 아래 '허용 라벨'만 사용하라.

[허용 라벨]
- horizon: T1, T5, T20
- direction: up, down, side
- action: close, reduce_40, reduce_20, hold, increase_20, increase_40, increase_upper_limit
- claim: positive, neutral, negative

[금지]
- 위 목록에 없는 라벨/액션을 만들어내지 마라.
- "확실/무조건/보장" 같은 단정 표현 금지.
- 근거 없는 숫자(가격/수익률/지표) 생성 금지.

2) 근거 제약: “근거 없으면 말하지 말라”를 룰로 박는다

트레이딩에서 환각은 대부분 근거가 비어 있는데 결론이 나오는 것입니다.

근거 제약 체크

  • [ ] 모든 claim에 evidence가 최소 1개 붙는가?
  • [ ] evidence는 “재조회 가능한 ref”인가? (문서ID/기사ID/데이터스냅샷키)
  • [ ] 근거가 부족하면 “insufficient_evidence”로 떨어지는가?
  • [ ] 추정/가정은 “assumption”으로 따로 표기하는가?
규칙최소 기준 — 좋은 예실패 시 처리(폴백/플래그)
근거 최소개수evidence ≥ 1evidence:[{source:"paper",ref:"arXiv:2602.00082"}]insufficient_evidence + HOLD
근거 재조회 가능ref는 문서/데이터 키ref:"Table1" 또는 "Section2.1"ref 없으면 재생성
숫자 포함 시 근거 필수수치 언급 시 evidence 필수"거래비용 0.03%(0.0003)" + ref근거 없으면 수치 삭제
추정/가정 분리assumption 필드로 분리assumption:["데이터 누락 가능"]사실처럼 단정 금지
출처 유형 제한paper/disclosure/news/price/macro만source:"disclosure"허용 source 외 금지

복붙 프롬프트(근거 제약)

[근거 규칙]
- 모든 결론(claim/rationale)은 evidence 배열(최소 1개)을 동반해야 한다.
- evidence.ref는 재조회 가능한 키여야 한다(예: disclosure_id, news_id, dataset_key).
- 근거가 없으면 claim을 만들지 말고 "insufficient_evidence"로 표시하라.
- 추정은 assumption 필드에만 쓰고, 사실처럼 단정하지 마라.

3) 형식 제약: “오직 JSON” + “스키마 검증 실패 시 폴백”을 강제한다

형식이 흔들리면, 좋은 내용도 운영에서 쓰레기가 됩니다. 가장 강력한 환각 방지책은 형식 강제입니다.

형식 제약 체크

  • [ ] 출력은 “오직 JSON”인가? (추가 문장 금지)
  • [ ] 필수 필드를 required로 고정했나?
  • [ ] 확률합/enum 등 도메인 검증 룰이 있는가?
  • [ ] 실패 시 기본값이 HOLD인가? + 사유 로그 남기는가?

LLM 에이전트 출력 표준화: JSON 스키마 템플릿으로 분석→예측→결정 연결하기를 참고하세요.

복붙 프롬프트(형식 제약: Strict JSON)

출력은 반드시 '오직 JSON'이어야 한다. 추가 텍스트 금지.
JSON 파싱이 불가능하면, 아래 에러 JSON만 출력하라:
{"status":"error","reason":"json_parse_failed"}

[필수 필드]
- schema_id, run_id, as_of, asset.code
- (예측) horizons.T1/T5/T20, up/down/side
- (결정) action(enum), rationale[], constraints_applied[]

[도메인 검증]
- up+down+side=1 (오차 ±0.001 허용)
- action은 enum 7개 중 하나
검증 실패 시:
{"status":"hold","reason":"validation_failed","failed_rule":"..."}

“검증 질문(Verification Prompts)” 3개만 추가하면 과신이 크게 줄어든다

모델이 답을 낸 뒤, 스스로 검증하게 만드는 질문을 한 번 더 거치면 과잉확신이 줄어듭니다.

  1. 근거 매핑 질문: “각 claim에 어떤 evidence가 붙었는지 1:1로 매핑해라”
  2. 불확실성 질문: “근거가 부족한 항목 3개를 찾아 null/unknown 처리해라”
  3. 형식 체크 질문: “확률 합=1, enum 위반 여부를 스스로 체크해라”
목적검증 질문(프롬프트)체크 항목실패 시 조치
근거 매핑(1:1)각 claim마다 evidence.ref를 1:1로 매핑해서 표로 출력해라. evidence 없는 claim은 삭제하라.evidence 누락 여부evidence 없으면 insufficient_evidence + HOLD
불확실성 표기확신할 수 없는 항목 3개를 찾아 unknown으로 표시하고, 단정 표현을 제거하라.‘확실/무조건/보장’ 제거과신 지속 시 모델 재시도
형식/규칙 점검확률 up/down/side의 합이 1인지, action이 enum 7개 중 하나인지 검증 결과를 JSON으로 출력해라.sum_to_one, enum_ok실패 시 {"status":"hold","reason":"validation_failed"}

이 체크리스트의 한계와 안전장치

  • 프롬프트 제약은 환각을 줄일 뿐 ‘0’으로 만들지 못합니다.
  • 데이터 자체가 틀리거나(뉴스 오보/지표 계산 오류) 입력이 부족하면, 모델은 “정직하게 모른다”를 말하도록 설계해야 합니다.
  • 트레이딩에 적용할 경우, 실행은 규칙 엔진(검증 게이트)가 맡아야 합니다(LLM 텍스트를 바로 주문으로 번역 금지).

참고

LLM 출력 검증 게이트 시스템: LLM Output(JSON) → Gate #1 Parse → Gate #2 Schema Validate → Gate #3 Domain Validate → Gate #4 Risk/Policy → Execute. 실패 시 HOLD + reason + failed_gate 기록.
LLM 출력이 검증을 통과해야만 실행되는 안전장치 흐름.

FAQ

자주 묻는 질문

프롬프트를 길게 쓰면 환각이 줄지 않나요?
길이보다 제약의 명확성이 중요합니다. "허용 라벨/근거 규칙/형식" 3개만 고정해도 체감이 큽니다.
function calling을 쓰면 환각이 없어지나요?
형식 환각은 크게 줄지만, 내용 환각(근거 없는 주장)은 남습니다. 그래서 근거 제약 + 검증 질문이 같이 필요합니다.
확률합=1을 스키마로 강제할 수 있나요?
JSON Schema만으로 완벽 강제는 어렵습니다. 도메인 검증(런타임 체크)를 별도로 두는 게 안전합니다.
트레이딩에서 가장 중요한 금지 규칙 1개만 꼽는다면?
"근거 없는 숫자 생성 금지"입니다. 근거(ref)가 없으면 null/insufficient로 떨어지게 하세요.

결론: 환각은 “더 똑똑한 모델”이 아니라 “제약 3개”로 줄인다

  • 용어 고정(enum/금지표현) → 라벨 흔들림 차단
  • 근거 강제(evidence 없으면 결론 금지) → 내용 환각 차단
  • 형식 강제(Strict JSON + 검증 실패 시 HOLD) → 운영 실패 차단

다음 단계(폐루프 전체 설계)가 필요하면 LLM 멀티에이전트 투자 시스템(MAS) 완전 가이드를 참고하세요.

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