더 나은 프롬프트를 작성하는 것 외에도, Claude의 출력을 제어하는 두 가지 강력한 기법이 있습니다: 사전 채움(prefilled) 어시스턴트 메시지와 중지 시퀀스(stop sequences)입니다. 이 방법들은 Claude가 응답하는 방식과 텍스트 생성을 멈추는 시점을 정밀하게 제어할 수 있게 해줍니다.
사전 채움 어시스턴트 메시지
메시지 사전 채움(prefilling)을 사용하면 Claude의 응답 시작 부분을 직접 제공할 수 있으며, 이는 답변의 방향에 강하게 영향을 미칩니다. Claude가 응답을 어떻게 시작할지 스스로 결정하게 하는 대신, 대화를 이끌어갈 특정한 시작 문구를 제공하는 것입니다.

작동 방식은 다음과 같습니다: 사용자의 질문이 포함된 일반적인 메시지 목록을 구성한 다음, 원하는 응답의 시작 부분을 담은 어시스턴트 메시지를 마지막에 추가합니다. Claude가 이를 처리할 때, 어시스턴트 메시지를 보고 "이 질문에 대한 응답을 이미 시작했으니, 멈춘 부분부터 계속해야겠다"라고 생각합니다.

예를 들어, "아침에는 차가 좋을까요, 커피가 좋을까요?"라고 질문하고 "커피가 더 좋은 이유는"이라는 문구로 사전 채움을 하면, Claude는 그 지점부터 이어서 커피를 지지하는 응답을 작성합니다. 핵심은 Claude가 사전 채움된 텍스트가 끝나는 지점부터 정확히 이어서 작성한다는 것입니다 - 이미 작성한 내용을 반복하지 않습니다.
실제로 살펴보겠습니다:
이는 "카페인이 더 많이 들어있기 때문입니다"와 같은 결과를 반환합니다. Claude가 사전 채움된 텍스트에서 바로 이어서 작성한다는 점에 주목하세요. 따라서 완전한 응답을 얻으려면 두 부분을 합쳐야 합니다: "커피가 더 좋은 이유는 카페인이 더 많이 들어있기 때문입니다."
사전 채움 텍스트를 변경하여 Claude를 원하는 방향으로 이끌 수 있습니다:
"차가 더 좋은 이유는"- 차 쪽으로 유도합니다"둘은 동일한 이유로"- 중립적인 응답을 만듭니다
중지 시퀀스
중지 시퀀스는 Claude가 특정 텍스트를 생성하는 즉시 응답을 종료하도록 강제합니다. 이는 특정 지점에서 출력을 잘라내거나 Claude가 특정 마커를 넘어서 계속 생성하지 못하도록 막고자 할 때 유용합니다.

개념은 간단합니다: 문자열 목록을 제공하면, Claude가 그 문자열 중 하나를 생성하는 즉시 멈추고 그때까지 생성한 내용을 반환합니다. 중지 시퀀스 자체는 응답에 포함되지 않습니다.
중지 시퀀스를 사용하려면, 채팅 함수를 수정하여 이를 매개변수로 받도록 해야 합니다:
실제 예시는 다음과 같습니다:
이는 "1, 2, 3, 4,"를 반환하고 "5"를 포함하기 전에 멈춥니다. 여러 개의 중지 시퀀스를 지정할 수 있으며, Claude는 먼저 만나는 시퀀스에서 멈춥니다:
중지 시퀀스는 특히 다음과 같은 경우에 유용합니다:
- 응답 길이 제어하기
- 구조화된 출력에서 자연스러운 중단점에서 멈추기
- Claude가 특정 마커나 구분자를 넘어서 계속 생성하지 못하도록 방지하기
두 기법 모두 Claude의 동작을 세밀하게 제어할 수 있게 해주며, 단순한 프롬프팅만으로는 달성할 수 없는 방식으로 응답을 형성할 수 있게 해줍니다.