Hosted Agent
실전 구축 · 배포 · 활용 가이드
Azure Developer CLI를 사용하여 Hosted Agent를 처음부터 끝까지 구축하고, 로컬에서 테스트한 후, Microsoft Foundry에 배포하여 플레이그라운드에서 대화하는 과정을 단계별로 실습합니다.
실습 개요
이 실습을 완료하면 다음을 수행할 수 있게 됩니다:
샘플 프로젝트 설정
azd CLI로 Hosted Agent 프로젝트를 초기화합니다.
로컬 테스트
배포 전에 에이전트를 로컬에서 실행하고 검증합니다.
Azure 배포
Foundry Agent Service에 컨테이너를 배포합니다.
플레이그라운드 테스트
Foundry 포털에서 에이전트와 대화합니다.
사전 요구사항
실습을 시작하기 전에 아래 항목이 준비되어 있는지 확인하세요.
azd down 명령으로 모든 리소스를 삭제할 수 있습니다.
환경 확인 명령어
아키텍처 이해
Hosted Agent의 배포 아키텍처를 먼저 이해하면 실습을 더 효과적으로 진행할 수 있습니다.
배포 시 생성되는 Azure 리소스
| 리소스 | 역할 | 비용 |
|---|---|---|
| Resource Group | 관련 리소스를 하나로 그룹화 | 무료 |
| Model Deployment | 에이전트가 사용하는 AI 모델 | Foundry 가격 |
| Foundry Project | 에이전트 호스팅 및 AI 기능 제공 | 사용량 기반 |
| Azure Container Registry | 에이전트 컨테이너 이미지 저장 | Basic 티어 |
| Application Insights | 에이전트 성능 모니터링 및 로그 | 종량제 |
| Log Analytics Workspace | 로그 데이터 통합 관리 | 무료 |
| Managed Identity | Azure 서비스 인증 | 무료 |
샘플 프로젝트 설정
Azure Developer CLI의 ai agent 확장을 설치하고 Hosted Agent 프로젝트를 초기화합니다.
ai agent 확장 설치
프로젝트 초기화
azd ai agent init 실행 시 아래 항목을 순서대로 입력하게 됩니다:
- 템플릿 선택 → "Start new from a template" 선택
- 환경 이름 → 리소스 그룹명으로 사용됩니다 (예:
my-hosted-agent→rg-my-hosted-agent) - Azure 구독 → 리소스를 생성할 구독 선택
- 위치(리전) → 가까운 리전 선택 (예: Korea Central)
- 모델 SKU → 리전에서 사용 가능한 SKU 선택
- 배포 이름 → 모델 배포 이름 입력
- 컨테이너 크기 → CPU/메모리 할당 (기본값 권장)
agent.yaml 파일에서 아래 줄을 주석 처리하거나 삭제하세요:
Azure 리소스 프로비저닝
생성된 프로젝트 구조
로컬에서 에이전트 테스트
Azure에 배포하기 전에 에이전트가 로컬 환경에서 정상 동작하는지 검증합니다.
에이전트 로컬 실행
localhost:8088에서 REST API로 노출합니다. 대화 관리, 메시지 직렬화, 스트리밍, OpenTelemetry 관찰 가능성을 모두 자동 처리합니다.
테스트 메시지 전송
새 터미널 창을 열고 아래 명령어를 실행합니다:
또는 curl이나 REST 클라이언트로 직접 호출할 수 있습니다:
로컬 실행 오류 해결
| 오류 증상 | 원인 | 해결 방법 |
|---|---|---|
AuthenticationError |
Azure 인증 만료 | azd auth login 재실행 |
ResourceNotFound |
엔드포인트 URL 불일치 | Foundry 포털에서 URL 확인 |
DeploymentNotFound |
모델 배포명 불일치 | Build > Deployments에서 이름 확인 |
Connection refused |
포트 8088 사용 중 | 다른 프로세스 종료 또는 포트 변경 |
Foundry Agent Service에 배포
Step 1에서 프로비저닝한 인프라에 에이전트 코드를 배포합니다. 컨테이너 이미지는 원격에서 빌드되므로 로컬에 Docker Desktop이 필요하지 않습니다.
- Agent playground — Foundry 포털에서 에이전트를 바로 테스트할 수 있는 URL
- Agent endpoint — 프로그래밍 방식으로 에이전트를 호출할 수 있는 REST API 엔드포인트
azd up 명령어 하나로 azd provision과 azd deploy를 한 번에 실행할 수도 있습니다. 처음부터 하나의 명령으로 모든 것을 설정하고 배포하려면 azd up을 사용하세요.
배포 검증 및 테스트
에이전트가 Azure에서 정상 실행되는지 여러 방법으로 확인합니다.
4-1. 에이전트 상태 확인
4-2. CLI로 배포된 에이전트 테스트
4-3. 실시간 로그 모니터링
4-4. Foundry 플레이그라운드에서 테스트
웹 기반 플레이그라운드에서 에이전트와 직접 대화할 수 있습니다. 아래 단계를 따라 진행하세요:
에이전트 생명주기 관리
배포된 에이전트의 시작, 중지, 업데이트, 스케일링 등 관리 작업을 수행합니다.
에이전트 시작
에이전트 중지
스케일링 업데이트 (비버전형)
--min-replicas 0으로 설정하면 유휴 시 Scale-to-Zero로 비용을 절감할 수 있습니다. 단, 첫 요청 시 Cold Start가 발생하므로 지연 시간에 민감하다면 --min-replicas 1로 유지하세요.
에이전트 조회
[심화] SDK로 직접 배포하기
azd CLI 대신 Python SDK를 사용하여 에이전트를 직접 빌드·배포하는 방법입니다. CI/CD 파이프라인 통합이나 더 세밀한 제어가 필요할 때 활용합니다.
SDK 설치 및 Docker 이미지 빌드
--platform linux/amd64를 생략하면 컨테이너가 시작되지 않습니다.
SDK로 에이전트 버전 생성
SDK로 에이전트 호출
트러블슈팅
실습 중 발생할 수 있는 일반적인 문제와 해결 방법입니다.
| 문제 | 코드 | 해결 방법 |
|---|---|---|
SubscriptionNotRegistered |
400 | Azure 공급자 등록: az provider register --namespace Microsoft.CognitiveServices |
AuthorizationFailed |
403 | 구독 또는 리소스 그룹에 Contributor 역할을 요청하세요. |
AcrPullUnauthorized |
403 | 프로젝트 관리 ID에 Container Registry Repository Reader 역할 부여 |
AcrImageNotFound |
404 | 이미지 이름/태그 확인. 이미지가 ACR에 푸시되었는지 확인 |
RegistryNotFound |
400/404 | Registry DNS 또는 네트워크 연결 확인 |
azd ai agent init 실패 |
— | azd version으로 1.23.0 이상인지 확인. macOS: brew upgrade azd |
| 모델을 찾을 수 없음 | — | agent.yaml에서 모델을 구독에서 사용 가능한 것(예: gpt-4.1)으로 변경 |
리소스 정리
실습이 끝나면 과금을 방지하기 위해 생성된 리소스를 삭제합니다.
azd down은 리소스 그룹 내의 모든 Azure 리소스를 영구 삭제합니다. Foundry 프로젝트, 모델 배포, Container Registry, Application Insights, Hosted Agent가 모두 포함됩니다.
삭제 대상 미리보기 (권장)
리소스 삭제 실행
삭제 확인
Azure Portal에서 해당 리소스 그룹으로 이동하여 리소스가 더 이상 표시되지 않는지 확인합니다. 빈 리소스 그룹은 추가로 삭제할 수 있습니다.
project.agents.delete_version(agent_name="my-agent", agent_version="1")으로 특정 에이전트 버전만 삭제할 수도 있습니다.
다음 단계
실습을 성공적으로 완료했습니다! 다음으로 에이전트를 더 발전시킬 수 있는 방법을 알아보세요.