Azure-Samples/azure-ai-travel-agents
요약
Azure-Samples에서 공개한 AI Travel Agents는 LangChain.js, LlamaIndex.TS, Microsoft Agent Framework를 활용하여 다중 AI 에이전트를 오케스트레이션하는 모듈형 참조 애플리케이션입니다. MCP(Model Context Protocol)를 통해 다양한 도구를 통합하며, Docker와 Azure Container Apps를 통한 손쉬운 배포를 지원합니다.
핵심 포인트
- LangChain.js, LlamaIndex.TS, Microsoft Agent Framework를 활용한 멀티 에이전트 오케스트레이션 구현
- MCP(Model Context Protocol) 서버를 통한 Python, Node.js, Java, .NET 기반 도구 통합
- Docker 컨테이너 기반의 모듈식 아키텍처 및 Azure Container Apps 배포 지원
- 고객 문의 이해, 목적지 추천, 일정 계획 등 특화된 에이전트 구성

⭐ 최신 업데이트를 유지하고 변경 사항을 알림 받으려면 GitHub에서 이 저장소(repo)에 star를 눌러주세요!
개요 (Overview) • 아키텍처 (Architecture) • 기능 (Features) • 로컬에서 무료로 미리 보기 (Preview locally FOR FREE) • 비용 추정 (Cost estimation) • 커뮤니티 참여 (Join the Community)
AI Travel Agents는 여행사 운영을 강화하기 위해 여러 **AI 에이전트 (AI agents)**를 활용하는 **모듈형 참조 애플리케이션 (modular reference application)**입니다. 이 애플리케이션은 LangChain.js, LlamaIndex.TS, 그리고 Microsoft Agent Framework가 어떻게 **다중 AI 에이전트 (multiple AI agents)**를 오케스트레이션하여 직원이 고객 문의를 처리하고, 목적지를 추천하며, 여행 일정을 계획하는 것을 도울 수 있는지 보여줍니다. Python, Node.js, Java, .NET으로 구축된 여러 MCP (Model Context Protocol) 서버가 에이전트에게 다양한 도구와 서비스를 제공하여, 에이전트들이 원활하게 협업할 수 있도록 합니다.
| 에이전트 이름 (Agent Name) | 목적 (Purpose) |
|---|---|
| 고객 문의 이해 (Customer Query Understanding) | 고객 문의에서 주요 선호도를 추출합니다. |
| 목적지 추천 (Destination Recommendation) | 고객의 선호도를 기반으로 목적지를 제안합니다. |
| 일정 계획 (Itinerary Planning) | 상세한 일정과 여행 계획을 생성합니다. |
| 에코 핑 (Echo Ping) | 수신된 모든 입력을 그대로 다시 보냅니다 (MCP 서버 예시로 사용됨). |
AI Travel Agents 애플리케이션의 아키텍처는 모듈식이며 확장 가능하도록 설계되었습니다:
-
모든 구성 요소는 Docker를 사용하여 컨테이너화되어 있으므로 Azure Container Apps를 통해 쉽게 배포하고 관리할 수 있습니다. - 모든 에이전트 도구는 MCP (Model Context Protocol) 서버로 제공되며 MCP 클라이언트에 의해 호출됩니다.
-
MCP 서버는 Python, Node.js, Java, .NET과 같은 다양한 기술을 사용하여 독립적으로 구현됩니다. - 세 가지 오케스트레이션 (Orchestration) 옵션이 독립형 서비스로 제공됩니다: LangChain.js (TypeScript/Node.js), LlamaIndex.TS (TypeScript/Node.js), 그리고 Microsoft Agent Framework (Python). - 각 오케스트레이터는 에이전트와 MCP 클라이언트 간의 상호작용을 조정하여 이들이 원활하게 협업할 수 있도록 합니다.
-
Aspire Dashboard는 애플리케이션을 모니터링하는 데 사용되며, (OpenTelemetry 통합을 통해) 에이전트의 성능과 동작에 대한 통찰력을 제공합니다.
-
다중 AI 에이전트 (각기 고유한 전문 분야 보유)
-
세 가지 오케스트레이션 옵션: LangChain.js, LlamaIndex.TS, Microsoft Agent Framework
-
MCP를 통한 성능 강화
-
Azure Container Apps를 통한 서버리스 (Serverless) 배포
-
추론 (Inference) 시점에 LLM이 이 프로젝트를 사용하는 데 도움이 되는 정보를 제공하기 위한 llms.txt 파일 포함 (자세히 알아보기)
-
재미있는 방식으로 학습할 수 있도록 돕는 adventure.config.json 파일 포함 (더 읽어보기)
-
Aspire Dashboard를 통한 모니터링을 위한 OpenTelemetry 계측 (Instrumentation)
-
다양한 언어로 작성된 MCP 서버 샘플 코드: Python, Node.js, Java, .NET
-
새로운 에이전트 및 도구로 쉽게 확장 가능
-
VitePress를 사용한 포괄적인 문서
애플리케이션을 로컬에서 실행하고 미리 보려면 Docker Model Runner를 사용합니다.
중요
Phi4 14B 모델을 효율적으로 실행하려면 상당한 리소스 (최소 16GB RAM 및 최신 CPU 또는 GPU)가 필요합니다.
GPU 가속은 macOS Apple Silicon 및 Windows의 NVIDIA GPU에서만 지원됩니다.
머신에 LLM을 로컬에서 실행할 충분한 리소스가 없는 경우, Microsoft Foundry를 사용하여 애플리케이션을 실행할 수 있습니다. 자세한 내용은 고급 설정 (Advanced Setup) 문서를 참조하십시오.
스크립트는 다음 작업을 수행합니다:
-
필요한 도구 및 종속성 (dependencies) 확인
-
현재 저장소 (repository)를 로컬 머신으로 클론 (Clone)
-
API 및 웹 앱을 위한 npm 종속성 (dependencies) 설치
-
Phi4 14B 모델 다운로드
-
모델 크기가 크기 때문에 (약 7.80 GB) 시간이 다소 소요될 수 있습니다.
-
모든 MCP 서버를 위한 Docker 이미지 빌드
-
로컬 AX를 위한 올바른 설정으로 모든 .env 파일 구성
애플리케이션을 로컬에서 실행하려면, 프리뷰 스크립트를 실행하기 전에 다음 항목들이 설치되어 있는지 확인하십시오:
Git (저장소 클론용)
Node.js (UI 및 API 서비스용)
Docker (MCP 서버 및 DMR - Docker Model Runner 사용용) - Docker Desktop 설정에서 DMR이 활성화되어 있는지 확인하십시오.
- Powershell 7+ (pwsh) 활성화 확인 - Windows 사용자 전용. 중요: PowerShell 터미널에서
pwsh.exe를 실행할 수 있는지 확인하십시오. 만약 실패한다면, PowerShell을 업그레이드해야 할 가능성이 높습니다.
Linux 및 macOS 사용자를 위한 방법
/bin/bash <(curl -fsSL https://aka.ms/azure-ai-travel-agents-preview)
Windows 사용자를 위한 방법
iex "& { $(irm https://aka.ms/azure-ai-travel-agents-preview-win) }"
Azure에서 리소스를 프로비저닝 (provisioning)할 때는 애플리케이션 실행과 관련된 비용을 고려하는 것이 중요합니다. AI Travel Agents 샘플은 여러 Azure 서비스를 사용하며, 비용은 사용량 및 구성에 따라 달라질 수 있습니다.
가격은 지역 및 사용량에 따라 다르므로, 귀하의 사용량에 대한 정확한 비용을 예측하는 것은 불가능합니다. 하지만 아래 리소스들에 대해 Azure 가격 계산기 (Azure pricing calculator)를 사용하여 예상 비용을 산출할 수 있습니다.
- Azure Container Apps: 소비 플랜 (Consumption plan), 처음 200만 회 실행까지 무료. 실행당 및 사용된 메모리당 가격 책정. [가격 정보]
- Azure Container Registry: 처음 2GB 저장 용량까지 무료. 저장된 GB당 및 전송된 GB당 가격 책정. [가격 정보]
- Azure OpenAI: 표준 계층 (Standard tier), GPT 모델. 사용된 100만 토큰당 가격 책정 (쿼리당 최소 1,000토큰 사용 기준). [가격 정보]
- Azure Monitor: 처음 5GB 데이터 수집까지 무료. 그 이후 수집된 GB당 가격 책정. [가격 정보]
중요
불필요한 비용을 방지하려면, 앱을 더 이상 사용하지 않을 경우 Portal에서 리소스 그룹 (Resource group)을 삭제하거나 azd down --purge를 실행하여 앱을 정리해야 함을 기억하세요.
(정리 (Clean up) 섹션 참조).
-
터미널을 열고 프로젝트의 루트 디렉토리로 이동합니다.
-
azd auth login을 실행하여 Azure 인증을 수행합니다. -
azd up을 실행하여 애플리케이션을 Azure에 배포합니다. 이 과정에서 Azure 리소스가 프로비저닝되고, 모든 컨테이너와 함께 이 샘플이 배포되며, 필요한 구성이 설정됩니다. -
리소스의 기본 위치 (Base location)를 선택하라는 메시지가 표시됩니다. 어떤 위치를 선택해야 할지 모르겠다면
swedencentral을 선택하세요. -
기본적으로 OpenAI 리소스는
swedencentral에 배포됩니다.azd env set AZURE_LOCATION <location>명령어를 사용하여 다른 위치를 설정할 수 있습니다. 현재는 제한된 목록의 위치만 허용됩니다. 해당 위치 목록은 OpenAI 모델 가용성 표를 기반으로 하며, 가용성 변화에 따라 최신 정보가 아닐 수 있습니다. -
리소스의 기본 위치를 선택하라는 메시지가 표시됩니다. 어떤 위치를 선택해야 할지 모르겠다면
swedencentral을 선택하세요.
배포 프로세스는 몇 분 정도 소요됩니다. 완료되면 터미널에 웹 앱 (Web app)의 URL이 표시됩니다.
이제 브라우저에서 웹 앱을 열고 봇과 대화를 시작할 수 있습니다.
이 샘플에 의해 생성된 모든 Azure 리소스를 정리하려면:
azd down --purge를 실행합니다.- 계속 진행할 것인지 묻는 질문이 나오면
y를 입력합니다.
리소스 그룹과 모든 리소스가 삭제됩니다.
더욱 고급스러운 로컬 설정에서 애플리케이션을 실행하거나 Azure에 배포하려면, 고급 설정 (Advanced Setup) 문서의 문제 해결 가이드를 참조하십시오. 여기에는 Azure Container Apps 환경 설정, 로컬 LLM (Large Language Model) 제공업체 사용, 서비스 구성 및 Azure로의 애플리케이션 배포가 포함됩니다.
AI Travel Agents 프로젝트에 대한 기여를 환영합니다! 제안 사항, 버그 수정 또는 새로운 기능이 있다면 언제든지 풀 리퀘스트 (Pull Request)를 제출해 주세요. 기여에 대한 자세한 내용은 CONTRIBUTING.md 파일을 참조하십시오.
경험을 공유하고, 질문을 하며, 지원을 받기 위해 Microsoft Foundry 개발자 커뮤니티에 참여하시기를 권장합니다:
- aka.ms/foundry/discord - 실시간 토론 및 지원을 위해 Discord 커뮤니티에 참여하세요.
- aka.ms/foundry/forum - Microsoft Foundry 개발자 포럼을 방문하여 질문을 하고 지식을 공유하세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기