핵심 정리
다음 출력 계약을 지켜줘.
- 반환 섹션: 1. 핵심 결론 2. 근거 표 3. 남은 불확실성
- 섹션 순서는 바꾸지 말 것
- 각 섹션은 3문장 이내
- 형식은 Markdown만 사용
- 위 3개 섹션이 모두 채워질 때만 완료로 간주할 것완료 기준
출력 계약은 "표로 써줘" 수준을 넘어 구조 전체를 고정한다
단순히 형식을 지정하는 것과 출력 계약을 맺는 것은 다르다. 출력 계약은 어떤 섹션이 어떤 순서로 얼마나 길게 나와야 하는지를 사전에 합의하는 것이다. 이 약속이 없으면 모델이 섹션을 재배열하거나, 일부 항목을 빠뜨리거나, 한 섹션만 지나치게 길게 쓰는 경우가 생긴다. 출력 계약을 명시하면 이런 변동이 줄어들고 응답 구조가 예측 가능해진다.
출력 계약:
1. 핵심 결론 3줄
2. 근거 비교표 1개
3. 남은 불확실성 2개
규칙:
- 표의 열은 "쟁점 / 근거 / 추가 확인"만 사용
- 3개 섹션이 모두 있어야 완료완료 기준이 없으면 중간 결과가 최종 답으로 나온다
모델은 완료 기준이 명확하지 않으면 충분히 작성한 것처럼 보이는 시점에 멈춘다. 출력 계약에 명시된 모든 섹션이 채워졌을 때만 완료로 간주하도록 지정하면, 중간 점검 문장만 내고 끝나는 문제를 막을 수 있다. 완료 기준은 "섹션이 모두 있을 때"처럼 관찰 가능한 형태로 써야 효과가 있다.
길이 제한은 전체 답변이 아니라 특정 섹션에만 적용해야 한다
"3문장 이내"를 전체 답변에 적용하면 중요한 섹션이 잘릴 수 있다. 길이 제한은 섹션별로 다르게 설정하는 편이 좋다. "핵심 결론은 3문장, 근거 표는 5행 이내, 불확실성은 2개"처럼 섹션마다 분리해서 쓰면 핵심 정보가 잘리지 않으면서도 응답이 과도하게 길어지는 것을 막을 수 있다.
프리앰블을 최종 산출물과 혼동하지 않도록 규칙을 추가하면 좋다
모델이 작업 메모나 준비 과정 설명을 먼저 쓴 뒤 실제 출력 계약 결과를 낼 때, 사용자가 앞부분을 최종 결과로 착각하는 경우가 있다. "프리앰블은 허용하되 최종 출력 계약 결과와 구분해서 표시할 것"이라는 규칙을 추가하면 이 혼동을 줄일 수 있다.
형식 지정과 출력 계약을 나누는 기준
- 표나 bullet 하나만 정하면 될 때: 형식 지정
- 섹션 순서, 길이, 완료 판정까지 고정할 때: 출력 계약
- 중간 산출물을 막고 싶을 때: 완료 기준 포함언제 더 고정할까
| 상황 | 적합한 선택 |
|---|---|
| 응답 구조가 매번 달라질 때 | 반환 섹션 + 순서 고정 |
| 일부 섹션이 빠질 때 | 완료 기준 명시 |
| 중요한 섹션이 잘릴 때 | 섹션별 길이 제한 분리 |
| 형식이 흔들릴 때 | Markdown/JSON 등 형식 명시 |
주의할 점
조건을 너무 많이 넣으면 오히려 읽기 어려워집니다. 실제로 흔들리던 부분인 섹션, 길이, 형식, 완료 기준부터 먼저 고정하는 편이 가장 효과적입니다. 완료 기준은 "모든 섹션이 채워졌을 때"처럼 관찰 가능한 형태로 써야 모델이 올바른 시점에 멈춥니다.
실패 예시
- "표로 써줘"만 적고 어떤 섹션이 필요한지는 안 적음
- 결과: 표는 생기지만 결론이나 남은 불확실성 섹션이 빠진 채 종료될 수 있음
- 대응: 형식만이 아니라 반환 섹션과 완료 기준까지 같이 고정한다참고 링크
2 sources