복잡한 작업을 위한 프롬프트 정의하기
복잡한 작업을 위한 프롬프트 정의하기 (Define prompts for complex tasks)
복잡한 작업은 프롬프트가 한 단계 의도(one-step intent)를 가정할 때 실패해요. 명시적인 다단계 동작, 명확한 맥락 가정, 그리고 명시적인 출력 계약(output contract)으로 설계하세요. 이 페이지에서는 맥락의 세 층, 복잡한 작업 구조, 사실·미지·가정의 구분, 그리고 복잡한 작업을 위한 출력 계약을 다루는 프롬프트 패턴 템플릿까지 살펴볼게요.
출처: 문서
본문
복잡한 작업은 프롬프트가 한 단계 의도를 가정할 때 실패해요. 그것들을 명시적인 다단계 동작, 명확한 맥락 가정, 명시적인 출력 계약으로 설계하세요.
복잡한 작업에서는 문구만큼 구조가 중요해요. 순서가 있는 단계, 맥락 레이어, 그리고 미지(unknowns)에 대한 명확한 처리가 필요해요.
맥락의 세 층 (Three context layers)
복잡한 프롬프트는 세 층의 맥락을 고려해야 해요. 이 층들은 좋은 출력이 어떤 모습인지를 바꿔요.
| 층 | 포함하는 것 | 왜 중요한가 |
|---|---|---|
| 내적 (Internal) | 의도, 역할, 선호, 감정 상태, 경험 수준 | 필요한 스캐폴딩 수준과 어조를 바꿈 |
| 지금 여기 (Here and now) | 시간 압박, 제약, 이전 턴, 이용 가능한 리소스 | 그 순간에 실용적인 것을 바꿈 |
| 밖 (Out there) | 청중, 이해관계자, 이해관계, 위험 프로필, 조직 규범 | 잘못되거나 불완전한 답변의 결과를 바꿈 |
이 층들을 제거해도 점수가 바뀌지 않는다면, 당신의 프롬프트가 문구를 테스트하고 있는 것이지 시나리오 품질을 테스트하고 있는 것이 아니에요.
복잡한 작업 구조
같은 역할(Role) → 작업(Task) → 규칙(Rules) → 예시 출력(Example output) 프레임을 사용한 다음, 작업과 규칙 안에 명시적인 단계 구조를 추가하세요.
- 복잡한 작업에 대한 하나의 트리거를 정의하세요.
- 작업을 순서가 있는 하위 단계로 쪼개세요.
- 각 단계가 무엇을 생산해야 하는지 정의하세요.
- 언제 멈추고 명확화를 요청할지 명시하세요.
- 요구되는 형식과 일치하는 예시 출력 하나를 포함하세요.
- 서로 관련 없는 여러 워크플로를 하나의 패턴에 결합하지 마세요. 트리거가 바뀌면 패턴을 분할하세요.
사실, 미지, 가정
모델이 답변을 제안하기 전에 알려진 것과 누락된 것을 분리하세요.
| 범주 | 처리 방법 |
|---|---|
| 알려진 사실 | 응답에서 직접 사용 |
| 미지 (Unknowns) | 명시적으로 이름 붙이고 누락된 디테일을 요청 |
| 가정 (Assumptions) | 가정을 사실이 아니라 가정으로 표시 |
이 분리는 자신감을 증거와 정렬하고, 지어낸 디테일을 줄여요.
복잡한 작업을 위한 출력 계약
복잡한 출력은 실행 간에 안정적인 모양을 가져야 해요.
- 대상 형식을 직접 명명하세요.
- 각 단계에 필요한 섹션을 정의하세요.
- 길이 제한을 정의하세요.
- 정보가 누락되어 섹션을 완료할 수 없을 때 무엇을 할지 정의하세요.
프롬프트 패턴 템플릿
이 패턴을 사용해 복잡한 작업 프롬프트를 초안하세요.
Task
- If
, perform the following steps in order.
Steps
1. Identify known facts from the input.
2. List missing or ambiguous information.
3. Ask one clarifying question if a required input is missing.
4. Produce the requested output using only confirmed facts.
5. Label any assumptions separately.
Output contract
- Format:
- Required sections:
- Length:
Rules
- Do not present assumptions as confirmed facts.
- If context is missing, state what is missing before continuing.
- If request is out of scope, state the boundary and provide one next step.
검토 과정 (Review pass)
복잡한 작업 프롬프트를 출시하기 전에 다음을 확인하세요.
- 맥락 층이 명시적이고 시나리오와 관련 있는가.
- 단계가 순서 있고 관찰 가능한가.
- 알려진 사실, 미지, 가정이 분리되어 있는가.
- 출력 형식과 필수 섹션이 명시적인가.
- 모호함과 누락된 맥락에 대한 실패 동작이 정의되어 있는가.
같은 맥락에 다른 문구를 쓴 것은 하나의 프롬프트 유형이에요. 다른 맥락은 다른 시나리오예요. 프롬프트 수가 아니라 구별되는 맥락 조합을 세세요.
출처 문서 (Source documents)
- https://github.com/x3-design/language-system/blob/main/plugins/content-foundations/knowledge/content-engineering/scenario-context-layers.md
- https://github.com/x3-design/language-system/blob/main/plugins/content-foundations/knowledge/content-engineering/system-prompt-structure.md
- https://github.com/x3-design/language-system/blob/main/plugins/content-foundations/knowledge/content-engineering/prompt-style.md
이 페이지는 복잡한 작업 프롬프트 지침을 Fluent 콘텐츠 엔지니어링 워크플로에 맞게 이 출처 문서들에서 적용한 것이에요.