DUOLABS AI 기능 탐구 9: 변수와 버전으로 프롬프트를 관리하는 라이브러리

DUOLABS AI 기능 탐구 아홉 번째 글은 반복해서 사용하는 프롬프트를 변수와 버전으로 관리하는 프롬프트 라이브러리입니다.

AI 기능을 처음 만들 때는 프롬프트 한 문장을 코드에 직접 적어도 충분합니다. 하지만 여러 업무와 담당자가 같은 프롬프트를 사용하기 시작하면 어떤 문장이 현재 기준인지, 누가 무엇을 바꿨는지, 이전 결과와 왜 달라졌는지 관리하기 어려워집니다.

기능 직접 보기: DUOLABS AI 프롬프트 라이브러리

이 화면은 여러 방문자가 같은 목록을 보는 공개 데모입니다. 내부 업무 규칙, 고객 데이터, 비공개 제품 정보나 보안 지침이 포함된 프롬프트를 저장하지 마세요. 다른 사용자가 내용을 보거나 삭제할 수 있다고 가정해야 합니다.

프롬프트도 관리해야 하는 업무 자산입니다

프롬프트는 AI 답변의 품질과 행동을 결정합니다. 문장 하나가 바뀌어도 답변 길이, 분류 기준, 출력 형식과 금지 사항이 달라질 수 있습니다.

예를 들어 고객 문의 답변 프롬프트를 코드 여러 곳에 복사해 두면 다음 문제가 생깁니다.

어느 파일의 프롬프트가 최신인지 알기 어렵습니다.

표현을 바꿀 때 모든 위치를 수정해야 합니다.

변경 전후 결과를 같은 조건에서 비교하기 어렵습니다.

담당자 이름이나 상품명을 매번 직접 고쳐야 합니다.

문제가 생겨도 어떤 문장을 사용했는지 추적하기 어렵습니다.

프롬프트 라이브러리는 이름, 설명, 태그, 본문과 버전 이력을 하나의 항목으로 관리합니다.

변수는 프롬프트의 고정 부분과 입력을 나눕니다

매번 달라지는 값을 본문에 직접 넣는 대신 중괄호 두 쌍으로 변수를 표시할 수 있습니다.

{{고객명}}님의 다음 문의에 답변하라.

문의:
{{문의내용}}

답변 원칙:
- 확인되지 않은 내용을 추측하지 않는다.
- 필요한 경우 담당자 확인이 필요하다고 안내한다.
- 5문장 이내의 한국어로 작성한다.

DUOLABS AI는 본문에서 {{고객명}}, {{문의내용}} 같은 변수 이름을 찾아 테스트 입력칸으로 만듭니다. 사용자는 프롬프트 구조를 고치지 않고 값만 바꿔 여러 상황을 시험할 수 있습니다.

변수에는 한글, 영문, 숫자, 밑줄, 점과 하이픈을 사용할 수 있습니다. 같은 변수가 여러 번 등장해도 하나의 입력값으로 관리됩니다.

DUOLABS AI에서는 어떻게 관리하나요?

1. 프롬프트를 하나의 항목으로 만듭니다

이름, 설명, 태그와 첫 번째 본문을 입력하면 버전 1이 만들어집니다. 이름은 “고객 문의 답변”보다 “배송 지연 문의 답변 초안”처럼 업무 범위가 드러나게 정하는 편이 좋습니다.

태그를 사용하면 고객지원, 영업, 요약, 분류처럼 프롬프트의 용도를 구분할 수 있습니다.

2. 본문에서 변수를 자동으로 찾습니다

본문에 {{변수}}를 작성하면 저장 전에 변수 목록을 확인할 수 있습니다. 변수를 많이 만들기보다 업무 결과에 실제로 영향을 주는 값만 분리하는 것이 좋습니다.

변수 이름에는 값의 의미가 드러나야 합니다. value1보다 product_name, 문의내용처럼 읽을 수 있는 이름이 관리하기 쉽습니다.

3. 수정할 때 새 버전을 추가합니다

기존 본문을 덮어쓰지 않고 새로운 버전으로 저장합니다. 버전 번호가 순서대로 올라가며 변경 메모를 남길 수 있습니다.

v1: 최초 작성
v2: 답변 길이를 5문장으로 제한
v3: 환불 약속 금지와 담당자 확인 문구 추가

과거 버전을 선택해 본문과 변수를 다시 볼 수 있고, 같은 모델과 입력으로 결과를 비교할 수 있습니다. 현재 데모는 버전별 실행을 지원하지만 자동 차이 비교나 운영 버전 승격 절차까지 제공하는 것은 아닙니다.

4. 변수를 채우고 모델별로 테스트합니다

선택한 버전의 변수 값을 입력하고 모델을 고르면 즉시 결과를 확인할 수 있습니다. 결과에는 사용 모델, 처리 시간과 토큰 수가 함께 표시됩니다.

현재 프롬프트 테스트는 도구를 호출하지 않는 순수 생성 실행입니다. 문장 품질과 지시 준수를 확인하는 용도이며, 주문 조회나 문서 검색이 필요한 프롬프트는 에이전트 또는 별도 파이프라인에서 시험해야 합니다.

버전을 나누면 무엇이 좋아질까요?

변경 원인을 추적할 수 있습니다

답변이 갑자기 길어지거나 특정 정보를 빠뜨릴 때 사용한 프롬프트 버전을 확인할 수 있습니다.

같은 입력으로 비교할 수 있습니다

대표 테스트 입력을 고정하고 v1과 v2를 실행하면 수정이 실제로 개선되었는지 살펴볼 수 있습니다.

여러 서비스가 같은 기준을 공유할 수 있습니다

웹 챗봇, 상담원 도우미와 이메일 답변 기능이 같은 프롬프트 항목을 참조하면 표현과 정책을 맞추기 쉽습니다. 실서비스에서는 어느 버전을 사용하는지 명시적으로 고정해야 합니다.

문제가 생겼을 때 이전 기준을 참고할 수 있습니다

기존 버전이 남아 있으면 급하게 문장을 기억해 복원할 필요가 없습니다. 다만 실제 롤백은 서비스 설정과 배포 절차가 함께 지원해야 합니다.

프롬프트 변경도 테스트가 필요합니다

문장이 더 자연스러워졌다는 느낌만으로 운영에 반영해서는 안 됩니다. 대표 사례와 실패 사례를 함께 준비해야 합니다.

정상 입력
경계가 모호한 입력
필수 정보가 빠진 입력
매우 긴 입력
금지된 요청
프롬프트를 무시하라는 문장이 포함된 입력

각 결과에서 정확성, 형식 준수, 금지 사항, 불필요한 추측과 사람 연결 여부를 확인합니다. 모델을 변경하면 같은 프롬프트도 다시 평가해야 합니다.

변수 값은 신뢰할 수 없는 입력으로 다뤄야 합니다

변수에 고객 문의나 외부 문서를 넣으면 그 안에 “이전 지시를 무시하라” 같은 문장이 포함될 수 있습니다. 문자열 치환만으로는 프롬프트 인젝션을 막을 수 없습니다.

지시문과 외부 데이터를 명확한 구분자로 나눕니다.

변수 길이와 허용 형식을 검사합니다.

출력 형식은 스키마와 후처리 코드로 다시 검증합니다.

중요한 동작은 프롬프트가 아니라 서버 권한으로 제한합니다.

실제 데이터가 필요한 테스트는 보호된 환경에서 수행합니다.

API 키나 비밀번호를 프롬프트 본문에 넣어서는 안 됩니다. 비밀정보는 전용 보관소에서 관리하고 필요한 도구가 서버에서 사용해야 합니다.

공개 샘플로 직접 확인해 보기

DUOLABS AI 프롬프트 라이브러리에서 공개된 샘플 프롬프트의 버전과 변수 목록을 살펴보세요. 테스트할 때는 가상의 고객명과 문의만 사용하고, 두 버전을 같은 입력으로 실행해 결과 차이를 비교할 수 있습니다.

실서비스에서는 작성·검토·승인 권한, 운영 버전 지정, 평가 결과와 변경 이력을 함께 관리해야 합니다. 프롬프트를 잘 쓰는 것만큼 어떤 버전이 어디에서 사용되는지 아는 것이 중요합니다.