대화 맥락에 따라 AI의 행동을 다르게 만든 방법 (Multi-Role Prompt Engineering)

발행: (2026년 5월 9일 PM 05:35 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

단순 역할 프롬프트의 문제점

AI에게 “당신은 캐릭터 A다”와 “당신은 캐릭터 B다”를 별개의 프롬프트로만 알려주면, 결국 모두 같은 느낌이 됩니다: 일반적이고, 도움이 되며, 지루한. 구별된 행동을 만들려면 형용사만으로는 부족합니다.

잘못된 예시

You are a friendly witness who is helpful.

개선된 예시

You are a witness being questioned. Rules:
- Only answer what is directly asked.
- If the question is vague, ask for clarification.
- Never volunteer extra information.
- If pressed on a contradiction, become defensive.

제약조건은 단순한 성격 묘사보다 일관된 행동을 만들어냅니다.

모드 파라미터로 행동 전환하기

같은 캐릭터라도 대화 상대에 따라 다르게 행동해야 할 때가 있습니다. 저는 시스템 프롬프트에 mode 파라미터를 전달하는 방식으로 이를 처리합니다.

function buildPrompt(
  character: Character,
  mode: 'friendly' | 'hostile'
) {
  const base = `You are ${character.name}. Background: ${character.bio}`;

  if (mode === 'friendly') {
    return `${base}\n\nBehavior: Be cooperative. Give detailed answers. Expand on your responses when appropriate.`;
  } else {
    return `${base}\n\nBehavior: Be defensive. Give minimal answers. Only confirm what you cannot deny. Redirect when possible.`;
  }
}

이 작은 스위치만으로도 응답이 자연스러워지는 정도가 크게 달라집니다.

턴마다 컨텍스트 유지하기

가장 어려운 부분은 캐릭터가 이전에 일어난 일을 기억하고 그에 맞게 조정하도록 하는 것입니다. 저는 간소화된 상태 객체를 유지하고, 각 AI 호출 전에 요약을 삽입합니다.

interface ConversationState {
  currentSpeaker: string;
  previousStatements: string[];
  contradictions: string[];
  mood: 'neutral' | 'defensive' | 'confident';
}

지금까지의 대화를 요약해서 전달하면, 토큰 수를 과도하게 늘리지 않으면서도 응답이 상황을 인식하게 됩니다.

모델의 기본 “도움이 되는 어시스턴트” 모드 무시하기

LLM은 기본적으로 도움이 되도록 훈련됩니다. 캐릭터가 회피하거나 비협조적이어야 할 때는 이 훈련에 맞서야 합니다.

효과적인 방법

  • 캐릭터가 질문자에게 도움을 주고 싶어하지 않는다는 것을 명시적으로 말한다.
  • 캐릭터가 까다롭게 행동할 동기를 부여한다.
  • 프롬프트에 회피 예시를 추가한다.
You are being questioned about something you want to hide.
Your goal is to answer without revealing [specific fact].
Techniques you use: giving technically true but misleading answers,
answering a different question than what was asked, saying "I don't recall."

다양한 전형에 맞는 온도 설정

  • 권위적인 캐릭터(판사, 전문가): 일관성과 결단력을 위해 낮은 온도(0.3–0.5).
  • 감정적이거나 예측 불가능한 캐릭터: 무작위성과 인간적인 느낌을 위해 높은 온도(0.7–0.9).

요약

멀티‑롤 AI는 더 나은 캐릭터 설명을 쓰는 것이 아니라 다음을 구현하는 것입니다:

  1. 명확한 행동 규칙 정의.
  2. 매 턴마다 올바른 컨텍스트 주입.
  3. 모델의 기본 친절함을 적극적으로 상쇄.

이것을 깨달은 뒤 모든 것이 연결되었습니다.


다른 분들도 멀티‑에이전트 작업을 하고 있다면, 어떤 패턴을 사용하고 계신가요?

0 조회
Back to Blog

관련 글

더 보기 »

LLM RPG 테스트 2026

프롬프트: 역할‑플레이 게임 스토리텔러처럼 행동하고, 스타일은 약간 비꼬는 듯 해야 합니다. 모험 뒤에는 도전과 음모가 있어야 합니다, don'