GPT-5.6 Sol 프롬프팅 가이드
GPT-5.6 Sol 프롬프팅 가이드 (Prompting guidance for GPT-5.6 Sol)
프롬프트, 도구 설명, 에이전트 지시, 프롬프트 스택을 GPT-5.6 Sol 또는 GPT-5.6 계열에 맞게 조정할 때 이 가이드를 사용해요. API 세부사항·한계·가격·기능 지원은 현재 GPT-5.6 모델 가이드와 함께 봐요.
출처: 문서
본문
GPT-5.6은 프롬프트가 결과, 중요한 제약, 사용할 수 있는 증거, 완료 기준을 정의하고, 모델이 효율적인 경로를 고를 여지를 남겨줄 때 가장 잘 작동해요.
반복된 지시와 예시를 제거하고 도구 설명을 단순화하면 과업 성능과 토큰 효율이 좋아질 수 있어요. 내부 코딩 에이전트 eval 실행 샘플에서, 더 린(lean)한 system prompt 설정이 평가 점수를 약 1015% 높이면서 총 토큰을 4166%, 비용을 33~67% 줄였어요. 결과는 워크로드에 따라 달라지므로 이 범위는 방향성 지표로 보고, 자신의 앱 대표 과업으로 변경 사항을 검증하세요.
먼저 프롬프트 단순화하기
이미 잘 작동하는 프롬프트와 도구 집합에서 시작해요. 지시·예시·도구를 한 그룹씩 제거한 뒤 같은 evals를 다시 실행해요.
줄일 것:
- 같은 규칙을 반복해서 말한 부분
- 동작을 바꾸지 않는 반복된 스타일·절차 지시
- 동작을 바꾸지 않는 예시
- 모델이 이미 확실히 수행하는 동작에 대한 절차 지시
- 과업과 무관한 도구와 도구 설명
지킬 것:
- 사용자에게 보이는 결과
- 성공 기준과 중단 조건
- 안전·비즈니스·증거·권한 제약
- 경로가 컨텍스트에 따라 달라지는 도구 라우팅 규칙
- 필요한 출력 형태와 검증 요구사항
남은 지시에 모순이 없는지 검토하세요. GPT-5급 모델은 프롬프트 계약을 밀접하게 따르므로, 상충하는 규칙은 세부사항이 빠진 것보다 더 큰 불안정성을 만들 수 있어요.
결과 우선 프롬프트와 중단 조건
모든 단계를 규정하기보다 목적지를 설명해요. GPT-5.6은 프롬프트가 "좋은 것이 무엇인지"를 말해주면 보통 효율적인 검색·도구·reasoning 경로를 스스로 골라요.
Resolve the customer's issue end to end.
Success means:
- make the eligibility decision from available policy and account evidence
- complete any allowed action before responding
- return completed_actions, customer_message, and blockers
- if required evidence is missing, ask for the smallest missing field
불필요한 절대 규칙은 피하세요. ALWAYS, NEVER, must, only는 안전 규칙·필수 필드·절대 일어나면 안 되는 동작 같은 진짜 불변 조건에만 쓰세요. 언제 검색·질문·도구 사용·반복을 이어갈지 같은 판단이 필요한 경우에는 결정 규칙을 권장해요.
명시적인 사용자 값을 보존하세요. 올바른 값이 암시적일 때는 결정 기준을 제공하고 모델이 컨텍스트나 스키마에서 추론하게 하세요. 보편적인 기본값, 키워드 맵, 광범위한 의미론적 지름길은 피하세요.
중단 조건을 추가하세요.
Resolve the request in the fewest useful tool loops, but do not let loop
minimization outrank correctness, required evidence, calculations, or
required citations.
After each result, ask whether the core request can now be answered with
useful evidence. If yes, answer. If required evidence is still missing,
name the missing fact and use the smallest useful fallback.
성격, 협업, 응답 길이
GPT-5.6은 기본적으로 GPT-5.5보다 더 간결해지는 경향이 있어요. 마이그레이션할 때 "Be concise"나 "Keep it short" 같은 광범위한 간결성 지시가 여전히 유용한지 확인하세요. 어떤 과업에는 불필요할 수 있고 때로 응답을 너무 짧게 만들 수도 있어요. 앱이 필요로 하는 출력을 안정적으로 만들어낼 때는 유지하세요.
요청 간 일관된 제어를 원하면 text.verbosity로 기본 상세 수준을 설정하고, 프롬프트로는 과업별 요구사항을 지정하세요. 요청의 기본 상세 수준으로 low, medium, high 중 선택하고, 과업별 길이·구조·필요 콘텐츠는 프롬프트에 명시해요. API 예시는 text.verbosity 설정을 참고하세요.
고객 대면 어시스턴트와 협업 제품에서는 성격과 협업 스타일을 둘 다 정의하세요.
- 성격(Personality) 은 톤, 따뜻함, 직설성, 격식, 유머, 공감, 매끄러움을 조절해요.
- 협업 스타일(Collaboration style) 은 언제 질문하고, 가정하고, 주도권을 쥐고, 트레이드오프를 설명하고, 작업을 점검하고, 불확실성을 처리할지를 조절해요.
둘 다 짧게 유지하세요. 성격은 사용자 경험을, 협업 지시는 과업 동작을 만들어야 해요. 둘 다 명확한 목표·성공 기준·도구 규칙·중단 조건을 대체하지 않아요.
더 짧은 답변이 필요한 과업에서는, 모델이 보존해야 할 정보와 생략할 수 있는 세부사항을 식별하세요. 예를 들어:
Lead with the conclusion. Include the evidence needed to support it, any material
caveat, and the next action. Omit secondary detail and repetition.
Keep all required facts, decisions, caveats, and next steps. Trim introductions,
repetition, generic reassurance, and optional background first.
이렇게 하면 모델에 명확한 우선순위가 생겨요. 과업 완수에 필요한 내용을 보존하고, 그 다음 낮은 가치의 세부사항을 제거하는 식이에요.
"friendly"나 "empathetic" 같은 광범위한 라벨은 모호할 수 있어요. 제품의 톤을 정의하는 글쓰기 선택을 설명하세요. 답을 얼마나 직접적으로 말할지, 문제를 언제 인정할지, 안심(또는 마무리 인사)을 쓸지처럼요.
State the answer directly. If the user reports a problem, acknowledge the
specific issue before giving the next step. Use reassurance only when it is
relevant. Omit generic praise and unnecessary sign-offs.
"항상 사용자 언어로 응답" 같은 포괄적인 언어 규칙은 정말 제품 요구사항일 때만 쓰세요. 의도한 출력 언어와 언제 바뀌어야 하는지 명시하세요.
편집·리라이팅·요약·고객 대면 초안에서는 모델이 무엇을 보존해야 하는지 알려주세요.
Preserve the requested artifact, length, structure, genre, and factual claims
first. Improve clarity, flow, and correctness without adding new claims,
sections, or a more promotional tone unless requested.
자율성과 승인 경계 정의하기
GPT-5.6은 다단계 과업에서 적극적이고 끈기 있게 행동할 수 있어요. 각 요청이 승인하는 행동 수준을 정의해서, 모델이 안전하고 범위 안의 작업을 불필요한 멈춤 없이 계속하고, 외부·파괴적·비용이 큰·범위를 확장하는 행동은 하기 전에 멈추게 해요.
컴팩트한 정책이면 보통 충분해요.
For requests to answer, explain, review, diagnose, or plan, inspect the
relevant materials and report the result. Do not implement changes unless
the request also asks for them.
For requests to change, build, or fix, make the requested in-scope local
changes and run relevant non-destructive validation without asking first.
Require confirmation for external writes, destructive actions, purchases,
or a material expansion of scope.
안전한 로컬 행동(파일 읽기, 로그 검사, 범위 내 코드 편집, 테스트 실행)을 명시적으로 이름 붙이세요. 정책은 한 곳에 두고 각 규칙을 한 번만 말하세요. "ask first", "do not mutate", "wait for approval" 같은 지시를 반복하면 안전하고 당연한 행동에 대해 불필요한 승인 요청이 생길 수 있어요.
장기 실행 작업에서는 현재 작업 계층을 정의하세요. 연구·설계·구현·리뷰·외부 조정을 구분해서, 모델이 조용히 한 계층에서 다른 계층으로 넘어가지 않게 해요.
도구 라우팅
과업 관련 도구만 노출하세요. 도구 설명은 도구가 무엇을 하는지, 언제 쓸지, 중요한 반환 필드, 오류 동작을 담아야 해요.
정확성이 전제 검색이나 조회에 달려 있을 때는 그렇게 말하세요.
Before taking an action, resolve required discovery, retrieval, and
validation steps. Do not skip a prerequisite because the intended final
state seems obvious.
여러 읽기가 독립적이면 병렬화하고, 한 결과가 다음 행동을 결정하면 직렬로 유지하세요. 병렬 검색 후에는 행동하기 전에 종합(synthesize)하세요. 도구가 빈 값, 부분적이거나 의심스러울 정도로 좁은 결과를 반환하면, 결과가 없다고 결론 내기 전에 의미 있는 폴백을 한두 번 시도하세요.
Programmatic Tool Calling
Programmatic Tool Calling(PTC)은 코드가 여러 도구 결과나 큰 중간 출력을 처리해 훨씬 작은 구조화 결과를 반환하는 경계가 있는(bounded) 워크플로에 가장 잘 맞아요. 여러·병렬·의존 호출만으로는 PTC를 정당화하지 못해요.
쓸 때:
- 필터링, 조인, 정렬, 랭킹, 중복 제거, 집계
- 많은 유사 레코드에 걸친 일괄 처리
- 반복되는 결정적 검증
- 컴팩트 스키마로 줄일 수 있는 큰 구조화 결과
직접 도구 호출을 선호할 때:
- 한 번의 호출로 충분할 때
- 중간 출력이 이미 작을 때
- 각 결과가 다음 결정을 바꿀 때
- 행동에 승인이 필요할 때
- 최종 답변이 인용이나 네이티브 아티팩트를 보존해야 할 때
- 호출 사이에 의미론적 판단이 필요할 때
"Programmatic Tool Calling을 효율적으로 쓰라" 같은 일반 지시에 의존하지 마세요. 경계가 있는 단계, 사용 가능한 도구, 출력 스키마, 재시도 한계, 중단 조건, 직접 모델 판단으로의 핸드오프를 명시하세요.
Use Programmatic Tool Calling only for the bounded record-reduction stage.
Call only the documented read-only tools. Filter and deduplicate the
intermediate results, then emit exactly the required compact schema with
evidence fields. Retry transient failures at most twice. Use direct tool
calls for approval, semantic judgment, citations, and final validation.
두 경로가 모두 필요하면 명확한 핸드오프를 하나 정의하고, 모델이 경로를 바꾸거나 완료한 작업을 반복하지 않게 하세요. program_output 항목과 최종 assistant message는 별개 출력이므로 둘 다 테스트하세요. 이론상 프로그램은 올바른 레코드를 반환하면서 메시지가 필수 필드·인용·주의사항을 빠뜨릴 수 있어요.
같은 대표 과업에서 직접 호출과 프로그래매틱 호출을 비교하세요. 최종 응답이 올바르고 완전하며 필요한 증거를 포함하는지 확인하고, 그다음 총 토큰·지연·비용·호출·턴·재시도를 비교하세요. 응답이 기존 evals를 통과할 때만 자원 사용 감소를 개선으로 간주하세요.
Grounding, 인용, 검색 예산
근거 있는 답변에서는 인용 동작이 프롬프트의 일부가 되어야 해요. 무엇이 지원이 필요한지, 무엇이 충분한 증거인지, 증거가 없을 때 어떻게 행동할지 정의하세요. 증거가 없다고 자동으로 사실상의 "아니요"가 되어서는 안 돼요.
For ordinary Q&A, start with one broad search using short, discriminative
keywords. If the top results contain enough support for the core request,
answer from those results.
Make another retrieval call only when a required fact, owner, date, ID, or
source is missing; the user asked for exhaustive coverage or comparison; a
specific artifact must be read; or an important claim would otherwise be
unsupported.
Do not search again only to improve phrasing, add examples, or support
nonessential detail.
연구와 종합에서는:
- 검색한 출처만 인용하세요.
- 인용을 그 인용이 뒷받침하는 주장에 붙이세요.
- 추론은 직접 뒷받침되는 사실과 별도로 표시하세요.
- 출처 간 충돌을 명시하세요.
- 추측 대신 답을 좁히거나 누락된 증거를 보고하세요.
창작 초안에서는 출처 뒷받침 사실과 창의적 표현을 구분하세요. 초안을 더 그럴듯하게 만들려고 이름·지표·날짜·로드맵 상태·고객 성과·제품 기능을 지어내지 마세요.
장기 실행 워크플로와 상태
다단계나 도구 중심 과업에서는 첫 도구 호출 전에 짧은 사용자 가시 preamble을, 주요 단계 전환 시 희박한 결과 기반 업데이트를 요구하세요. 일상적인 도구 호출을 나레이션하라고 하지 마세요.
Before tool calls for a multi-step task, send a one- or two-sentence
user-visible update that states the first step. During the task, update only
when a major phase begins or a finding changes the plan. Each update should
state one concrete outcome and the next step.
히스토리를 리플레이할 때는 assistant 단계 값을 보존해서 모델이 코멘트와 최종 답변을 구분하게 해요. previous_response_id를 쓰면 이전 assistant 상태가 자동 보존되고, 수동으로 히스토리를 리플레이한다면 각 원래 단계 값을 그대로 보존하세요.
모든 턴이 아니라 주요 이정표 후에 컴팩트(compact)하세요. 컴팩트 후에도 프롬프트를 기능적으로 일관되게 유지하고, 컴팩트된 항목을 불투명한 상태로 취급하세요.
persisted reasoning은 목표·가정·우선순위가 턴을 넘어 안정적일 때 유용해요. 이전 reasoning이 더 이상 관련 없으면 현재 턴 동작을 사용하세요. persisted reasoning을 항상 켜야 하는 최적화로 취급하지 마세요. 낡은 reasoning은 토큰을 추가하고 지연을 높이며 모델을 낡은 접근 방식에 고정시킬 수 있어요.
프롬프트 캐싱도 프롬프트 구성에 영향을 줘요. 재사용 가능한 prefix를 안정적으로 유지하고 큰 system prompt의 불필요한 변동을 피하세요. 명시적 캐시 중단점은 측정된 캐시 동작과 비용을 개선할 때만 쓰세요.
Reasoning effort
변경하기 전에 현재 reasoning effort로 기준선을 세우세요.
- 현재 GPT-5.5 또는 GPT-5.4 reasoning effort를 기준선으로 보존하세요.
- 같은 설정과 한 단계 낮은 설정을 대표 과업에서 테스트하세요.
- 품질이 유지되면서 지연에 민감한 작업에는
low를 쓰세요. - 균형 잡힌 시작점으로
medium을 쓰세요. - evals가 의미 있는 이득을 보여줄 때만
high나xhigh를 쓰세요. - 가장 어려운 품질 우선 워크로드에
max를 남겨 두고, 전역으로 권장하지 마세요.
reasoning effort를 높이기 전에 프롬프트에 성공 기준·의존 규칙·도구 라우팅 규칙·검증 루프가 빠졌는지 확인하세요.
프론트엔드와 시각 과업
GPT-5.6은 레이아웃·시각적 계층·디자인 판단이 더 강해요. 그래도 제품 컨텍스트를 제공하고, 기존 디자인 시스템을 보존하며, 중요한 상태와 제약을 이름 붙여 주세요.
증분 프론트엔드 변경에서는:
- 기존 디자인 토큰·컴포넌트·패턴을 검사하고 보존하세요.
- 요청하지 않으면 추가 기능이나 장식적 UI를 넣지 마세요.
- 반응형 동작과 기대 상태를 보존하세요.
- 확정 전에 결과를 렌더링하고 검사하세요.
공간 정밀도가 중요한 비전·컴퓨터 사용·로컬라이제이션·OCR 과업에서는 이미지 상세를 의도적으로 선택하세요. 추가 입력 비용·지연이 정당화될 때 큰·밀집·좌표 민감 이미지에는 원본 상세를 쓰세요.
끝내기 전에 작업 점검하기
GPT-5.6에 출력을 검증할 수 있는 도구 접근을 주고, 어떤 검증이 중요한지 명시하세요.
코딩:
After making changes, run the most relevant validation available:
- targeted tests for changed behavior
- type checks or lint checks when applicable
- build checks for affected packages
- a minimal smoke test when full validation is too expensive
If validation cannot be run, explain why and describe the next best check.
시각 아티팩트:
Render the artifact before finalizing. Inspect layout, clipping, spacing,
missing content, and visual consistency. Revise until the rendered output
matches the requirements.
구현 계획에는 요구사항, 명명된 자원/파일, 상태 전이·데이터 흐름, 검증 체크, 실패 동작, 프라이버시·보안 고려사항, 구현에 실질적으로 영향을 주는 열린 질문을 포함하세요.
제안되는 프롬프트 구조
복잡한 프롬프트의 시작점으로 이 구조를 쓰세요. 각 섹션을 짧게 유지하고, 동작을 바꾸는 곳에만 세부사항을 추가하세요.
Role: [the model's function and context]
Personality: [tone and collaboration style]
Goal: [user-visible outcome]
Success criteria: [what must be true before the final answer]
Constraints: [policy, safety, business, evidence, and side-effect limits]
Tools: [which tools to use, when, and what not to use]
Output: [sections, length, format, and tone]
Stop rules: [when to retry, fallback, abstain, ask, or stop]
프롬프트 마이그레이션 워크플로
기존 앱을 GPT-5.6으로 옮길 때:
- 모델을 바꾸고 현재 reasoning effort를 보존하세요.
- 프롬프트를 바꾸기 전에 대표 evals를 실행하세요.
- 오래된 스캐폴딩, 반복 지시, 무관한 도구를 제거하세요.
- 측정된 회귀를 고치는 가장 작은 목표 지시만 추가하세요.
- 프롬프트나 reasoning 변경 후마다 evals를 다시 실행하세요.
잘 작동하는 프롬프트 스택을 한 번에 모두 다시 쓰지 마세요. 그렇게 하면 동작 변화가 모델·reasoning 설정·프롬프트·도구 집합·런타임 중 무엇에서 왔는지 알 수 없어요. 프롬프트가 회귀하면 소수의 실제 트레이스로 디버그하세요. 실패 모드를 식별하고, 원인이 될 지시·모순을 찾아 외과적으로 편집하고, 같은 케이스를 다시 실행하세요.