메타데이터가 중요한 이유
ChatGPT와 Codex는 개발자가 제공한 메타데이터를 바탕으로 언제 도구를 호출할지 결정합니다. 도구 이름과 설명, 매개변수 문서를 명확하게 작성하면 관련 프롬프트에서 재현율이 높아지고 불필요한 호출이 줄어듭니다. 제품 문구를 다듬듯 메타데이터도 테스트하고 결과를 분석하면서 꾸준히 개선하세요.
평가용 기준 프롬프트 세트 만들기
메타데이터를 조정하기 전에 프롬프트를 모아 다음 유형별로 라벨을 붙이세요.
- 직접 프롬프트: 사용자가 제품이나 데이터 소스의 이름을 명시합니다.
- 간접 프롬프트: 사용자가 도구 이름을 언급하지 않고 원하는 결과를 설명합니다.
- 부정 프롬프트: 내장 도구나 다른 도구가 요청을 처리해야 하는 경우입니다.
각 프롬프트에서 기대하는 동작을 기록하세요. 개발한 도구를 호출해야 하는지, 아무 작업도 하지 않아야 하는지, 다른 도구를 사용해야 하는지 명시하세요. 이 세트는 회귀 테스트에서도 사용합니다.
모델의 도구 선택을 돕는 메타데이터 작성하기
각 도구의 메타데이터를 다음과 같이 작성하세요.
- 이름: 도메인과 동작을 조합하세요(
calendar.create_event). - 설명: “다음과 같은 경우에 사용하세요”로 시작하고, “알림에는 사용하지 마세요”처럼 사용하면 안 되는 경우도 명시하세요.
- 매개변수 문서: 각 인수를 설명하고 예시를 포함하세요. 입력값에 제약이 있으면 허용된 값을 사용하세요.
- 읽기 전용 힌트: 정보 조회나 계산만 수행하고 데이터를 생성, 수정, 삭제하거나 대화 외부로 전송하는 일이 없는 도구에는
readOnlyHint: true를 지정하세요. - 파괴적 작업 힌트: 사용자 데이터를 삭제하거나 덮어쓰지 않는 도구에는
destructiveHint: false를 지정하세요. - 외부 접근 범위 힌트: 공개 인터넷에 접근하거나 접근할 수 있는 외부 대상이 한정되지 않은 도구에는
openWorldHint: true를 지정하세요. 웹 검색처럼 읽기 전용인 도구도 여기에 해당합니다. 접근 범위가 특정 비공개 계정이나 워크스페이스로 제한된 도구에는 해당 서비스를 외부에서 호스팅하더라도false를 지정하세요.
사용자 지정 MCP 서버 평가하기
- ChatGPT에서 사용자 지정 MCP 서버를 연결하고 생성된 플러그인을 설치하세요.
- 기준 세트의 프롬프트를 하나씩 실행하고 결과를 기록하세요. 어떤 도구가 선택되었는지, 어떤 인수가 전달되었는지, 컴포넌트가 렌더링되었는지 확인하세요.
- 각 프롬프트에서 정밀도(올바른 도구가 실행되었는지)와 재현율(도구가 실행되어야 할 때 실행되었는지)을 추적하세요.
모델이 잘못된 도구를 선택하면 설명을 수정해 의도한 사용 상황을 더 분명히 드러내거나 도구의 범위를 좁히세요.
체계적으로 개선하기
- 어떤 변경으로 개선되었는지 알 수 있도록 메타데이터 필드를 한 번에 하나씩 변경하세요.
- 수정할 때마다 변경 내용과 시각, 테스트 결과를 기록하세요.
- 배포 전에 모호한 표현을 찾아낼 수 있도록 변경 전후의 차이를 검토자와 공유하세요.
수정할 때마다 평가를 반복하세요. 재현율을 조금 더 높이는 데 집중하기 전에 부정 프롬프트에서 높은 정밀도를 확보하세요.
프로덕션 모니터링
MCP 서버 운영을 시작하면 다음 작업을 수행하세요.
- 매주 도구 호출 통계를 검토하세요. 잘못된 도구가 선택된 것으로 확인된 사례가 급증하면 대개 메타데이터가 실제 사용 상황과 어긋나고 있다는 신호입니다.
- 사용자 피드백을 수집하고 자주 발생하는 오해를 해소하도록 설명을 수정하세요.
- 프롬프트를 정기적으로 다시 실행하도록 일정을 잡으세요. 특히 새 도구를 추가하거나 구조화된 필드를 변경한 뒤에는 프롬프트를 다시 실행하세요.
메타데이터는 지속적으로 관리해야 합니다. 표현을 신중하게 고르고 평가를 꼼꼼히 할수록 모델이 적절한 도구를 찾아 호출하기 쉬워집니다.