이 가이드에서는 Microsoft Discovery에서 도구가 작동하는 방식과 모델을 에이전트 워크플로에 통합하는 방법을 설명합니다. 도구 유형, 통합 패턴 및 시작 방법에 대해 설명합니다.
도구란?
도구를 사용하면 에이전트가 반복 가능하고 일관되며 효율적인 방식으로 특정 작업을 수행할 수 있습니다. 많은 작업이 이미 SDK(소프트웨어 개발 키트) 또는 API(애플리케이션 프로그래밍 인터페이스) 형식으로 안정적으로 구현되어 있습니다. 예를 들어 데이터베이스에 대한 읽기 및 쓰기는 일반적으로 잘 문서화되고 최적화된 공급업체 API를 통해 수행됩니다. 도구를 사용할 수 있는 다른 예로는 확률을 허용할 수 없는 복잡하거나 성능 기반 알고리즘 또는 시뮬레이션이 있습니다. 도구를 사용하면 AI 모델과 에이전트가 워크플로를 안정적이고 효율적으로 전달하여 기존 시스템과 상호 작용할 수 있습니다. 도구 사용의 예는 다음과 같습니다.
계산 도구 는 복잡한 수학 문제를 해결하고, 물리적 현상 또는 엔지니어링 시스템을 시뮬레이션하고, 대규모 과학 데이터 세트를 분석하는 데 필요한 알고리즘을 제공합니다.
데이터 처리 도구 는 다양한 원본에서 수집된 데이터를 관리하고 구체화합니다. 사용자는 관련 정보를 추출하고, 노이즈를 제거하고, 검색 플랫폼 내에서 추가 분석을 위해 데이터를 전처리할 수 있습니다.
시뮬레이션 도구는 플랫폼의 슈퍼컴퓨터 리소스를 사용하여 물리적, 화학적 또는 생물학적 프로세스 및 복잡한 엔지니어링 시스템을 모델링하고 시뮬레이션할 수 있습니다. 이러한 도구는 시간, 비용 또는 안전 문제와 같은 제약 조건으로 인해 실제로 수행할 수 없는 실험에 매우 중요합니다.
시각화 도구는 과학 데이터 또는 엔지니어링 디자인 데이터를 해석하고 결과를 그래픽으로 전달합니다. 이러한 도구는 데이터를 차트, 그래프 및 3D 모델과 같은 그래픽 표현으로 변환하여 모델을 보다 쉽게 탐색하고, 패턴을 식별하고, 추세 및 변칙을 파악할 수 있습니다.
도구 유형
Microsoft 검색은 두 가지 유형의 도구인 action 및 code-environment based 도구를 지원합니다.
작업 기반 도구
소프트웨어에 상용, 독점 또는 오픈 소스 패키지와 같은 운영 체제가 필요한 경우 작업 기반 도구가 사용됩니다. 이러한 패키지는 일반적으로 이진 파일로 배포되거나 복잡한 설치 요구 사항이 있습니다. 예를 들어 시뮬레이터, 에뮬레이터, 컴파일러, 시각화 도우미, linter, 디자인 자동화 도구, 모델링 패키지 및 유사한 복잡한 소프트웨어 패키지가 있습니다.
도구는 Docker 이미지에 설치되고 컨테이너 레지스트리에 저장됩니다. 도구에서 수행해야 하는 각 작업의 실행 프로필과 인수, 필수 입력 및 예상 출력은 도구의 프로필에 주석이 추가됩니다. 도구 정의의 주석은 호출을 효과적으로 계획할 수 있도록 에이전트에 실행 및 목적의 컨텍스트를 제공합니다.
코드 환경 기반 도구
코드 환경 기반 도구를 사용하면 Microsoft 검색 에이전트가 사용자 지정 코드를 실행하거나 주문형 도구를 생성할 수 있습니다. 제어 에이전트가 생성할 수 있고 소프트웨어 개발 키트에 액세스할 수 있는 모든 언어를 사용할 수 있습니다. 코드 환경 기반 도구를 사용하면 에이전트가 신속하게 코드를 작성하고 실행할 수 있습니다. 새 알고리즘 또는 모델에서 생성한 동적으로 만든 도구는 코드 환경 기반 도구에 대한 가장 가능성이 큰 대상 시나리오입니다.
하이브리드 도구
코드 환경 및 작업 기반 도구를 결합하여 하이브리드 도구를 만들 수 있습니다. 하이브리드 도구는 플랫폼의 AI 기능에 의해 동적으로 생성된 코드 환경 도구와 컨테이너 이미지의 작업 기반 도구를 결합합니다. 하이브리드 도구는 AI 모델이 동작 기반 도구의 구조화된 환경에서 실행되는 코드를 생성할 수 있도록 하는 동적 실행 환경을 만듭니다.
작성 도구에 대한 요구 사항
작업 기반 도구는 Docker 컨테이너에 패키지되고 Microsoft 검색 슈퍼컴퓨터가 액세스할 수 있는 레지스트리에 저장되어야 합니다. 필요한 사양을 가진 도구 정의를 작성해야 합니다. 코드 환경 기반 도구에는 도구 정의도 필요합니다. 그러나 연결된 작업은 생성된 코드를 직접 실행하고 다른 작업은 거의 실행하지 않습니다.
카디널리티 및 실행 프로필
도구 정의는 고유한 인스턴스화가 아니므로 전체 구독에서 도구 정의를 공유할 수 있습니다. 도구는 호출될 때만 인스턴스화됩니다. 여러 에이전트는 각각 격리된 상태로 인스턴스화되므로 충돌 없이 동일한 도구를 모두 참조할 수 있습니다. 따라서 도구에 프로필 또는 실행 프로필에 하드 코딩된 값이나 데이터가 없도록 주의해야 합니다.
모델 통합 패턴
Microsoft Discovery는 과학 기계 학습 모델을 워크플로에 통합하기 위한 여러 유연한 패턴을 제공합니다. 높은 수준에서는 각각 다른 수준의 복잡성, 제어 및 외부 시스템과의 통합을 지원하도록 설계된 네 가지 기본 접근 방식이 있습니다.
| 패턴 | 작동 방식 | 모델이 실행되는 위치 | 적합한 대상 |
|---|---|---|---|
| 컨테이너 기반 클라이언트 도구(Python) | 컨테이너 내에서 사용자 지정 코드 실행 | Foundry 또는 외부 엔드포인트 | 사용자 지정 논리 및 오케스트레이션 |
| 컨테이너 기반 모델(슈퍼컴퓨터) | HPC 환경에서 컨테이너 실행 | 디스커버리 슈퍼컴퓨터 | 대규모 학습/유추 |
| OpenAPI 기반 | 스키마와 함께 REST API 사용 | 파운드리 또는 외부 서비스 | 기존 API 및 서비스 |
| MCP 기반 | 구조화된 컨텍스트 교환 | Foundry 또는 외부 엔드포인트 | 상태 저장, 다단계 작업 흐름 |
컨테이너 기반 클라이언트 도구(Python)
이 패턴에서 에이전트는 이미 배포된 모델의 클라이언트 역할을 하는 컨테이너화된 도구를 호출합니다. 컨테이너는 모델 자체를 호스트하지 않습니다. 대신 모델 서비스와의 통신을 처리하고, 필요한 논리를 적용하고, 에이전트에 최종 출력을 반환합니다. 이 방법은 전처리, 후처리 또는 여러 단계가 오케스트레이션되는 방식을 정확하게 제어해야 하는 경우에 가장 적합합니다.
작동 방식
- 에이전트가 도구를 선택합니다.
- 입력을 사용해 컨테이너를 실행합니다.
- Python 스크립트:
- 입력 유효성 검사 및 준비
- 배포된 모델 엔드포인트에 요청을 보냅니다.
- 사용자 지정 전처리 또는 후처리 논리를 적용합니다.
- 필요에 따라 여러 호출 또는 추가 단계를 오케스트레이션합니다.
- 결과가 에이전트에 반환됩니다.
설정하는 방법
- 모델 배포(예: Foundry 또는 다른 엔드포인트)
- Python 코드를 사용하여 Docker 이미지를 빌드하고 ACR(Azure Container Registry)에 푸시합니다.
- 보안 액세스 구성(관리 ID 권장)
- Microsoft 검색에서 컨테이너를 도구로 등록
컨테이너 기반 모델(슈퍼컴퓨터)
과학적 모델을 컨테이너에 패키지하고 확장 가능한 서비스로 배포합니다. 이 방법은 종속성, 런타임 및 사용자 지정 논리를 완전히 제어해야 하는 경우에 적합합니다. 모델에 대규모 학습 또는 무거운 유추와 같은 HPC(고성능 컴퓨팅)가 필요할 때 이를 선택합니다.
주요 아이디어
- 모델은 검색 슈퍼컴퓨터의 컨테이너 내에서 실행됩니다.
- 에이전트는 직접 호출하지 않으며 도구 또는 서비스 계층을 통해 액세스합니다.
설정하는 방법
- 모델과 종속성을 컨테이너에 패키지화하세요.
- Azure 컨테이너 레지스트리(ACR)에 이미지를 푸시하세요.
- 등록은 Microsoft 검색의 도구로 사용됩니다.
OpenAPI 기반
표준화된 API 인터페이스를 통해 모델을 노출하고 OpenAPI 사양을 사용하여 Discovery에 연결합니다. 이는 모델이 이미 서비스로 호스트되어 있고 표준 스키마 기반 통합을 원하는 경우에 유용합니다.
작동 방식
- 모델/서비스는 HTTP 엔드포인트를 통해 노출됩니다.
- OpenAPI(Swagger) 사양을 정의합니다.
- 에이전트는 사양을 사용하여 작업을 검색하고 호출합니다.
설정하는 방법
- API 엔드포인트 뒤에 모델 배포
- OpenAPI 사양 작성(요청, 응답, 인증)
- Foundry에서 API를 도구로 등록
MCP 기반
다양한 다단계 컨텍스트 인식 상호 작용이 필요한 고급 시나리오에 대해 이를 선택합니다.
작동 방식
- 도구에서 MCP(모델 컨텍스트 프로토콜)를 구현합니다.
- 에이전트는 구조화된 컨텍스트를 보내고 받습니다.
- 상태를 유지하는 다중 턴 워크플로우 지원
설정하는 방법
- 엔드포인트를 통해 모델 배포
- MCP 서버 사용 또는 빌드
- Foundry에서 MCP 도구 등록
올바른 패턴을 선택하는 방법
다음 빠른 지침을 사용합니다.
- 모델에 대한 사용자 지정 논리가 필요한 경우 컨테이너 기반 도구 → 사용
- 컴퓨팅 크기 조정이 주 제약 조건인 경우 HPC(슈퍼컴퓨터) → 사용
- REST API가 이미 있는 경우 OpenAPI 도구 → 사용
- 워크플로에 단계 간 메모리 및 컨텍스트가 필요한 경우 MCP 도구 → 사용
메모
단일 워크플로에서 여러 패턴을 결합할 수 있습니다.
보안 모범 사례
어떤 패턴을 선택하든 다음을 수행합니다.
- 관리 ID 및 RBAC 사용(자격 증명 하드 코딩 방지)
- 변경할 수 없는 컨테이너 이미지 사용(버전 및 검사)
- 암호화 사용(HTTPS + 암호화된 스토리지)
- 모든 도구 및 모델 호출에 대한 로깅 및 모니터링 사용