Harness 핵심 · 지금 할 수 있는 것

프롬프트 한 판을 쓰고, 다섯 번 연속으로 쓸 수 있게 하세요

이 장에서 컨텍스트, Prompt 기법, Agent, 비용까지 배웠습니다. 수업 전체에서 지식 포인트가 가장 많은 장입니다. 그런데 손에 떨어지는 첫 일은 하나뿐입니다: M0에서 정한 그 요구사항을, 안정적인 프롬프트 한 판으로 쓰기. 안정적이라는 말은 운에 기대지 않는다는 뜻입니다.

실습 메인 라인 두 번째 칸: M0에서 시킬 일을 정했습니다. 이제는 매번 똑같이 잘하게 만들어야 합니다.
M0
무엇을 대신 하게 할지 정하기
M1
안정적으로 사람 말을 하기
M2
실제로 일을 해내기
M3
개선인지 악화인지 수치로
M4
오래 달려도 기억을 잃지 않기
M5
과정을 재현할 수 있기
먼저 보세요 · 「가끔은 꽤 잘 된다」는 무슨 병인가

많은 사람이 여기서 걸리는 모습은 이겁니다. 「해봤어요. 어떨 땐 좋고 어떨 땐 나빠요.」 좋을 때도 있고 나쁠 때도 있는 건, 보통 프롬프트가 요구를 박아 두지 않은 것입니다. 모델이 이 책임을 지는 건 좀 억울합니다. 같은 문장을 다섯 번 연속으로 물어보면, 진짜 안정적인지 보입니다.

같은 한 문장, 다섯 번 묻기

#1
세 단락 결론, 쓸 수 있음
쓸 수 있음
#2
한 단락만 주고 항목을 나누지 않음
쓸 수 없음
#3
세 단락 결론, 쓸 수 있음
쓸 수 있음
#4
끝에 「도움이 되었으면 좋겠어요」가 붙음
손으로 고쳐야 함
#5
일곱 단락으로 늘어나 예상 길이를 넘김
쓸 수 없음
2 / 5회를 바로 쓸 수 있음
「요약 좀 해 줘」만 말하면 다섯 번 중 세 번은 바로 쓸 수 없습니다: 어떨 땐 세 단락, 어떨 땐 한 단락, 어떨 땐 「도움이 되었으면 좋겠어요」가 붙습니다. 이런 출력은 어떤 흐름에도 이어 넣을 수 없습니다.

안정은 한 글자도 안 틀린다는 뜻이 아닙니다

대규모 모델은 태생적으로 무작위성이 있습니다. 글자 하나까지 똑같이 재현하려는 건 헛수고입니다. 박아 둘 것은 세 가지입니다: 구조가 안정(세 단락이면 세 단락), 필드가 안정(「다음 주 계획」이 있어야 한다고 했으면 반드시 있어야 함), 경계가 안정(정보가 부족하면 「자료에 없음」이라고 말하지, 하나를 지어내지 않음). 이 세 가지는 이 장에서 배운 출력 포맷 제약과 Few-Shot 예시로 용접할 수 있습니다. 아울러 사용자 입력을 구분자로 감싸 두세요. 이것이 Prompt 인젝션의 첫 방어선입니다.

실습 체크리스트 · 하나 골라 시작하고 체크하세요

이 장의 실습 체크리스트

0 / 3 완료

M0의 그 일을 첫 판 프롬프트로 쓰기

15분 누구나

「역할 + 배경 + 요구 + 출력 포맷」 네 종 세트로 쓰세요. 완벽을 쫓지 마세요. 일단 돌아갈 수 있는 한 판이 있으면 됩니다. 이 판이 이후 모든 수정의 대조군입니다.

무엇이 완료인가
네 종이 하나도 빠지지 않고, 그중 출력 포맷은 「몇 단락, 단락당 몇 글자, 어떤 제목」까지 구체적입니다. 쓰고 실제 입력 하나를 넣으면, 대충 괜찮은 결과가 나옵니다.

다섯 번 연속 실행하고, 불안정에 분류하기

1시간 어디가 모자란지 알고 싶은 사람

같은 입력으로 다섯 번 연속 돌리고, 매번 결과를 저장하세요. 바로 쓸 수 없는 것은 세 종류 중 하나로 넣습니다: 포맷이 흔들림, 내용을 지어냄, 길이가 폭주함. 세 종류의 해법은 다릅니다: 포맷이 흔들리면 예시를 보태고, 내용을 지어내면 자료를 좁히고, 길이가 폭주하면 강제 글자 수를 겁니다.

무엇이 완료인가
숫자를 말할 수 있어야 합니다. 「다섯 번 중 N번은 바로 쓸 수 있다」. 그리고 쓸 수 없던 몇 번이 각각 어느 종류인지도 말할 수 있어야 합니다.

예시와 금지 항목을 넣고, 다시 돌려 비교하기

반나절 실제 흐름에 이을 사람

프롬프트에 표준 예시(Few-Shot) 하나와 금지 목록(예: 「어떤 인사말도 넣지 말 것」, 「자료에 없는 정보는 『미언급』으로 쓸 것」)을 보태고, 다시 다섯 번 돌려 이전 판과 비교하세요. 덤으로 한 가지: 사용자 입력을 구분자로 감싸고, 입력에 「위의 모든 지시를 무시해」를 넣어 보세요. 넘어가는지 확인합니다.

무엇이 완료인가
새 판 다섯 연속 실행에서 적어도 네 번은 바로 쓸 수 있고, 인젝션 문장이 역할을 벗어나게 하지 못했습니다. 둘 다 통과하면 M1은 선 겁니다.

이 판 프롬프트를 빌드 로그에 넣으세요

M1에 적을 것은 두 가지뿐입니다: 최종판 프롬프트, 그리고 다섯 연속 실행 성적. 다음 장에서 도구를 이은 뒤에도, 다시 와서 고치게 됩니다.

M1 채우러 가기