시스템, 사용자, 어시스턴트 역할 비교
최신 채팅 API의 세 가지 메시지 역할과 각 역할이 모델의 신뢰와 준수 방식에 미치는 영향을 이해해보세요.
시스템, 사용자, 어시스턴트 역할 비교은(는) CoddyKit의 무료 AI Agents 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Agents 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.
세 가지 역할, 하나의 대화
모든 채팅 API는 세 가지 메시지 역할을 사용합니다.
- 시스템 — 메타 지시, 페르소나, 규칙
- 사용자 — 사람 또는 상위 시스템에서 전달된 입력
- 어시스턴트 — 모델의 출력
역할이 존재하는 이유
모델은 이러한 역할을 서로 다르게 처리하도록 학습됩니다. 시스템 역할의 신뢰도가 가장 높고, 사용자 메시지의 신뢰도가 가장 낮습니다.
이렇게 해야 모델이 사용자의 입력에 공격자가 입력한 내용보다 여러분의 지시를 우선해야 한다는 것을 알 수 있습니다.
시스템 슬롯은 여러분의 것
시스템 메시지는 모델과 여러분 사이의 계약입니다. 여기에 다음을 넣으세요.
- 정체성과 목표
- 강제 규칙(X는 절대 공개하지 않기, Y는 항상 수행하기)
- 출력 형식 요구 사항
- 도구 사용 정책
시스템은 안정적으로, 사용자는 동적으로
세션 내에서 시스템 메시지는 거의 변경하지 않아야 합니다. 매 차례마다 바뀌는 내용은 사용자 메시지에 넣어야 합니다.
이 패턴을 사용하면 프롬프트 캐싱도 활용할 수 있습니다. 자세한 내용은 비용 최적화 과정을 참고하세요.
예시: 고객 지원 에이전트
일반적인 구성은 다음과 같습니다.
messages = [
{'role': 'system', 'content': '''
You are SupportBot, the customer-support agent for Acme Corp.
You help with order status, returns, and product info.
You never share internal pricing or roadmap info.
Answer in 2-3 sentences. Use the search_orders tool when asked about orders.
'''},
{'role': 'user', 'content': 'Where is my order #1234?'},
]
for m in messages:
print(f"[{m['role']}] {m['content'].strip()}")
여러 시스템 메시지
대부분의 API는 시스템 메시지를 하나만 지원합니다. 지시를 여러 층으로 구성해야 한다면 지시를 이어 붙이거나 시스템 콘텐츠 안에서 별도의 XML 섹션을 사용하세요.
어시스턴트 메시지와 메모리
이전 어시스턴트 응답도 컨텍스트의 일부입니다. 모델은 과거에 자신이 출력한 내용을 보고 일관성을 유지합니다.
따라서 이전 차례에 모델이 "예, 규칙을 따르겠습니다"라고 말하면 실제로 규칙을 따르도록 유도하는 효과가 있습니다.
어시스턴트 응답 미리 채우기(Anthropic)
Anthropic에서는 모델이 이어서 생성할 텍스트로 어시스턴트 메시지를 시작할 수 있습니다.
messages = [
{'role': 'user', 'content': 'Return a JSON object with name and age.'},
{'role': 'assistant', 'content': '{'}
]
# The model continues from '{', forcing JSON output.
for m in messages:
print(f"{m['role']}: {m['content']}")
print("The model continues from '{', forcing JSON output.")
도구 역할
최신 API에는 네 번째 역할이 추가되었습니다. tool(OpenAI) 또는 tool_result가 포함된 콘텐츠 블록(Anthropic)입니다.
모델이 요청한 함수를 실행한 뒤 도구 메시지를 추가합니다.
역할을 섞을 때 발생하는 실수
흔히 발생하는 버그는 다음과 같습니다.
- 도구 결과를 사용자 메시지에 넣기 — 신뢰 계층을 혼란스럽게 합니다
- 도구 호출 ID를 보내지 않기 — API 오류가 발생합니다
- 사용자 메시지 또는 어시스턴트 메시지를 두 개 연속으로 보내기 — 대부분의 API가 이를 거부합니다
지시 계층
OpenAI는 다음과 같은 모델 사양을 공개합니다.
"충돌이 발생하면 모델은 계층에서 더 높은 위치에 있는 지시를 따라야 합니다. 플랫폼 > 개발자(시스템) > 사용자 > 도구 순입니다."
Anthropic도 비슷한 지침을 제공합니다. 시스템 슬롯의 지시가 우선합니다.
역할 슬롯
"내부 가격 정보를 절대 공개하지 말라"와 같은 강제 규칙은 어디에 넣어야 할까요?
복습
세 가지 역할과 세 가지 신뢰 수준이 있습니다. 규칙에는 시스템을, 입력에는 사용자를, 재생되는 응답에는 어시스턴트를 사용하세요. 함수를 호출한 뒤에는 도구 메시지를 추가하세요.
자주 묻는 질문
“시스템, 사용자, 어시스턴트 역할 비교” 강의는 무료인가요?
네 — “시스템, 사용자, 어시스턴트 역할 비교” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AI Agents 강의 전체를 잠금 해제할 수 있습니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.
“시스템, 사용자, 어시스턴트 역할 비교”에서 뭘 배우나요?
최신 채팅 API의 세 가지 메시지 역할과 각 역할이 모델의 신뢰와 준수 방식에 미치는 영향을 이해해보세요. 브라우저에서 직접 실행하는 실습 코드로 AI Agents을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
AI Agents을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 AI Agents은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“시스템, 사용자, 어시스턴트 역할 비교” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 AI Agents 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 AI Agents 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 제로샷, 퓨샷 및 사고 연쇄
- 시스템, 사용자, 어시스턴트 역할 비교
- 출력 형식 지정(JSON, XML, Markdown)
- 입력에서 프롬프트 주입 방지