최적화 실험에 Git 기반 워크플로 적용
팁 (조언)
자세한 내용은 텍스트 및 이미지 탭을 참조하세요.
최적화 실험을 수행하려면 조직에서 테스트된 변경 내용과 생성된 결과를 추적해야 합니다. Git 기반 워크플로를 사용하면 에이전트 변형을 안전하게 테스트하고, 평가 결과를 문서화하고, 실험을 비교하여 가장 적합한 구성을 식별할 수 있습니다.
- 분기 만들기: 각 변형에 대한 실험 분기 만들기
- 테스트 프롬프트 추가: 실험 폴더에 테스트 프롬프트 저장
- 평가 스크립트 실행: 에이전트 버전 배포, 테스트 프롬프트 실행, 응답 캡처
- 응답 점수 매기기: 품질 메트릭에 대한 응답을 수동으로 평가
- 비교 및 결정: 분기 간 결과 검토, 성공적인 실험 병합
실험 분기 만들기
각 최적화 실험은 별도의 브랜치에서 진행되며, 실험적인 변경 사항이 프로덕션 에이전트와 분리되도록 합니다. 실험 변형당 하나의 분기를 만들어 변경된 내용을 격리합니다. 즉, 새 프롬프트, 다른 모델 또는 구성 조정을 한 번에 하나씩 테스트합니다. 이 제어된 접근 방식을 사용하면 한 분기에서 여러 변경 내용을 혼합하지 않고 특정 수정에 대한 성능 변경의 특성을 지정할 수 있습니다.
Adventure Works Trail 가이드 에이전트를 사용하여 다양한 변형을 테스트하는 실험 분기를 만듭니다.
main # Production baseline (prompt v1)
experiment/prompt-v2-concise # Test shorter, more focused prompt
experiment/prompt-v2-detailed # Test enhanced prompt with examples
experiment/gpt4o-mini-model # Test GPT-4o-mini model
experiment/token-optimization # Reduce token usage
평가를 통해 실험이 성공적임을 증명하면 주 실험에 병합합니다. 실패한 실험의 경우, 나중에 팀이 실패했던 접근 방법을 반복하지 않도록 하기 위해 분기를 그대로 두거나, 또는 평가 결과가 이미 커밋되고 문서화된 경우에는 지저분함을 정리하기 위해 분기를 삭제할 수 있습니다.
테스트 프롬프트 저장 및 평가 스크립트 실행
각 실험 분기는 코드, 프롬프트 및 평가 데이터를 구분하는 일관된 구조로 파일을 구성합니다.
adventure-works-agent/
├── agent.py # Agent creation script
├── run-agent.py # Script to run agent with test prompts
├── prompts/
│ ├── system-prompt-v1.txt # Production prompt
│ └── system-prompt-v2-concise.txt # Experimental variant
├── test-prompts/
│ ├── scottish-highlands-march.txt # Digital nomad weekend hike
│ ├── family-london-trails.txt # Family with teenagers
│ ├── five-day-backpacking.txt # Experienced hiker extended trip
│ ├── ambiguous-hiking-gear.txt # Edge case: vague request
│ └── incomplete-scotland-trip.txt # Edge case: missing details
└── experiments/
├── prompt-v2-concise/
│ ├── agent-responses.json # Raw agent outputs
│ └── evaluation.csv # Manual quality scores and observations
├── gpt4o-mini-model/
│ ├── agent-responses.json
│ └── evaluation.csv
└── token-optimization/
├── agent-responses.json
└── evaluation.csv
prompts/ 폴더는 에이전트 버전을 생성할 때 .txt가 로드하는 다양한 프롬프트 버전을 agent.py 파일로 저장합니다. 이 test-prompts/ 폴더에는 각 테스트 시나리오에 대한 개별 .txt 파일이 들어 있으며, 파일 이름은 사용자 요구 사항을 나타내는 설명적인 이름으로 되어 있습니다. 스크립트는 run-agent.py 이러한 테스트 프롬프트 파일을 로드하고, 각각에 대한 에이전트를 호출하고, 응답을 캡처합니다. 각 실험에는 결과만 포함된 자체 폴더 experiments/ 가 있습니다.
테스트 프롬프트 파일에는 2단원의 5-10 테스트 시나리오가 포함되어 있습니다. 스크립트는 run-agent.py 테스트 워크플로를 자동화합니다.
- 실험 브랜치를 체크아웃합니다.
git checkout experiment/prompt-v2-concise - 에이전트 버전 배포:
python agent.py(Microsoft Foundry에서 에이전트 버전 생성) - 평가 실행:
python run-agent.py(테스트 프롬프트 로드, 각 프롬프트에 대한 에이전트 호출, 응답 캡처, 저장agent-responses.json)
스크립트는 API에서 에이전트 응답을 캡처하고 저장합니다 agent-responses.json. 그런 다음 Microsoft Foundry 포털에서 평가 내보내기에서 사용하는 것과 동일한 형식을 사용하여 각 응답의 점수를 수동으로 매기는 파일을 만듭니 evaluation.csv 다.
수동으로 응답 점수 매기기
에 캡처된 에이전트 응답을 검토합니다 agent-responses.json. 빠른 수동 테스트의 경우 사용 사례에 가장 중요한 3~5개의 평가 기준과 추가 설명을 위한 선택적 열린 필드를 선택하는 것이 가장 좋습니다. 포털의 evaluation.csv 내보내기 형식과 일치하도록 다음 열이 있는 파일을 만듭니다.
| 테스트 프롬프트 | 에이전트 응답 | 의도 확인 | 연관성 | Groundedness | 코멘트 |
|---|---|---|---|---|---|
| 스코틀랜드 고원 행진 | 3 월에 스코틀랜드 고원에서 하이킹을 위해 ... | 5 | 5 | 4 | 훌륭한 장비 추천 사항 |
| 런던 가족 산책로 | 청소년들과 함께 런던 근처의 쉬운 트레일을 위해 ... | 4 | 4 | 5 | 좋은 초보자 조언 |
| 5일 배낭 여행 | 5일간의 배낭 여행... | 5 | 5 | 5 | 포괄적인 목록 |
| 애매한 하이킹 장비 | 어떤 종류의 하이킹을 계획하고 있습니까? | 3 | 3 | 4 | 명확히 하기 위한 질문을 했다 |
| 불완전한 스코틀랜드 여행 | 스코틀랜드 하이킹을 위해, 나는 추천하고 싶습니다 ... | 4 | 4 | 4 | 합리적인 가정 |
테스트 프롬프트의 파일 이름, 에이전트의 응답 발췌 부분, 1에서 5까지의 품질 점수 및 응답 품질에 대한 평가 의견을 포함합니다.
팁 (조언)
평가 형식을 Microsoft Foundry 포털 및 자동 평가를 통해 평가할 수 있는 항목에 맞춥니다. 수동 테스트, 포털 평가 및 자동화된 테스트에서 일관된 평가 조건 및 파일 형식을 사용하는 경우 다양한 팀 구성원 및 평가 방법의 테스트 결과를 쉽게 통합할 수 있습니다.
실험 비교 및 결정
여러 실험 분기에서 평가를 완료한 후 CSV 데이터를 사용하여 성능을 비교하고 증거 기반 결정을 내립니다. 각 실험 브랜치를 체크아웃하고 evaluation.csv을 검토하여 수행 결과를 확인합니다. 각 분기의 주요 결과를 확인한 다음, 성공 조건을 충족하는 변형을 식별하는 비교를 만듭니다.
Adventure Works 실험의 경우 비교를 문서화할 수 있습니다.
| 실험 분기 | 주요 관찰 | 조건을 충족합니까? |
|---|---|---|
| 메인(초기 계획) | 견고한 응답, 약간의 장황함 | 예(평균 4.2개) |
| prompt-v2-concise | 품질 유지, 더 집중 | 예(평균 4.4개) |
| gpt4o-mini-model | 복잡한 프롬프트의 품질 저하 | 아니요(평균 4.1, 임계값 4.2 미만) |
품질 임계값을 충족하고 간결성을 향상하는 경우 prompt-v2-concise Git을 사용하여 성공한 실험을 병합합니다.
git checkout main
git merge experiment/prompt-v2-concise
git tag promoted-to-prod-2026-02-17
git push origin main --tags
기준을 충족하지 않는 실험들이 있을 경우, 브랜치를 유지할지 아니면 삭제할지 결정하기 전에 그 이유를 기록합니다: "gpt4o-mini-model: 복잡한 여행 계획 프롬프트에서 품질이 4.2 임계값 아래로 떨어졌습니다. 프로덕션에 권장되지 않습니다."
실험을 구성하기 위해 설정된 Git 워크플로를 사용하면 테스트 프롬프트에 대해 에이전트를 실행하고 결과를 체계적으로 채점하여 실제 평가를 실행할 준비가 되었습니다.