에이전트 Level 200 · 35분
생성형 AI와 에이전트 시작하기
모델을 배포해 대화하고, 시스템 프롬프트로 역할을 지정한 뒤 웹 검색 도구와 지식(파일 검색)을 연결해 하나의 완성된 AI 에이전트로 저장합니다.
1. Foundry 프로젝트 준비하기
- Microsoft Foundry는 프로젝트 단위로 모델·리소스·데이터 등 AI 솔루션 개발에 필요한 자산을 정리합니다.
- 1번 모듈(Microsoft Foundry 시작하기)과 같은 방법으로 새 프로젝트를 만들거나 기존 프로젝트를 사용합니다. Foundry 리소스 이름·구독·리소스 그룹·리전을 지정하고 생성이 끝나면 안내 창을 닫습니다.

2. 모델 배포하기
- 모든 AI 에이전트의 핵심에는 대규모 언어 모델(LLM)이 있습니다. Foundry 모델 카탈로그에서 하나를 찾아 보겠습니다.
- Discover 페이지의 Models 탭에서 Microsoft Foundry 모델 카탈로그를 확인합니다.

3. gpt-5-mini 모델 배포
- gpt-5-mini 모델을 검색해 선택하고, 기능과 특징을 설명하는 모델 페이지를 확인합니다.

4. 배포 완료 확인
- Deploy 버튼으로 기본 설정을 사용해 배포합니다(1분 내외 소요).
- TIP: 이미 gpt 모델 배포가 있다면 새로 만들 필요 없이 그대로 사용해도 됩니다. 리전 할당량이 부족하면 gpt-5-nano, gpt-5.4-mini 같은 다른 채팅 지원 gpt 모델을 사용하거나 다른 리전에 새 프로젝트를 만들어 보세요.
- 배포가 끝나면 모델과 대화할 수 있는 모델 플레이그라운드가 열립니다.

5. 모델과 대화하기
- 왼쪽 내비게이션 패널 하단 버튼으로 패널을 접어 화면을 넓게 사용합니다.
- Chat 패널에 'Copilot Studio는 무엇인가요?'를 입력해 응답을 확인합니다.

6. 대화 맥락과 프롬프트의 힘
- '라이선스에 대해 더 안내해줘.'처럼 후속 질문을 이어가면, 이전 대화 맥락이 함께 전달되어 '라이선스'가 어떤 라이선스인지 모델이 이해합니다.
- TIP: 생성형 AI 채팅 앱은 대화 맥락을 유지하기 위해 프롬프트에 대화 기록을 함께 포함하는 경우가 많습니다.
- 모델 플레이그라운드 우측 상단의 New chat 버튼으로 대화를 초기화하고 기록을 지웁니다.
- 같은 주제를 더 구체적인 프롬프트로 물어봅니다: 'Agent를 생성하는 방법을 더 알려줘.' 응답은 프롬프트에 담긴 명시적 지시를 반영합니다.
- TIP: 이 차이는 LLM의 핵심 특징을 보여줍니다 - LLM의 응답은 정적인 데이터 소스에서 조회되는 것이 아니라 모델이 그때그때 동적으로 생성합니다. 이는 LLM을 유연하게 만들지만, 응답이 신뢰할 수 있는 사실에 근거하지 않을 수도 있다는 뜻이기도 합니다. (뒤에서 지식 소스를 추가해 응답의 근거를 보강하는 방법을 살펴봅니다.)
7. 지침(시스템 프롬프트)으로 역할 지정하기
- 특정 사용 사례를 지원하려면 시스템 프롬프트로 모델에 응답을 안내하는 지침을 제공해야 합니다. 시스템 프롬프트로 모델에 특정한 초점이나 역할을 부여하고, 형식·스타일·응답에 포함하거나 포함하지 말아야 할 내용에 대한 가이드라인을 제시할 수 있습니다.
- 모델 플레이그라운드 우측 상단의 New chat 버튼으로 대화를 초기화합니다.
- 왼쪽 패널의 Instructions 입력란에 다음 시스템 프롬프트를 입력합니다: ' 당신은 Microsoft Copilot Studio와 Microsoft Foundry를 전문적으로 지원하는 AI 전문가입니다. Micorosoft Learn의 공식 홈페이지와 사용자가 제공한 문서, 기사, 보고서 또는 텍스트를 분석하여 다음 작업을 수행합니다'
- 'Github Copilot에 대해 알려줘.' 같은 새 프롬프트를 입력해 응답을 확인합니다.
- '최신 Agent와 비교하면 어때?'처럼 대화를 이어갑니다.
- '스페인의 수도는 어디야?'처럼 주제와 무관한 질문도 시도해 응답을 확인합니다.

8. web_search 도구 추가하기
- 지금까지 모델은 학습된 데이터만으로 답했습니다. 유용하긴 하지만 웹의 방대한 최신 정보를 놓치게 됩니다. 도구(tool)를 사용하면 모델이 외부 데이터 소스에 접근하거나 맞춤 작업을 수행할 수 있습니다.
- 왼쪽 패널의 Instructions 아래 Tools 섹션을 펼칩니다.
- Add 드롭다운에서 Web search를 활성화하고, 도구에 대한 설명을 읽어봅니다.
- 모델 플레이그라운드 우측 상단의 New chat 버튼으로 대화를 초기화합니다.
- 왼쪽 패널에 web_search 도구가 표시된 상태에서, '시애틀 근처 빈티지 컴퓨터 매장을 찾아줘' (또는 자신이 사는 도시)라는 프롬프트를 입력합니다.
- 모델이 지정한 도시 인근의 빈티지 컴퓨터 매장을 웹에서 검색해 답해야 합니다.

9. 지식(파일 검색) 추가하기
- 모델의 학습 데이터와 웹 검색 도구의 조합만으로도 포괄적인 범용 채팅 에이전트에는 충분할 수 있습니다. 하지만 특정 비즈니스나 시나리오의 맥락에서는 모델이 참고해야 할 특화된 정보나 독점 정보가 필요한 경우가 많습니다.
- 이 실습에서는 빈티지 컴퓨터의 인쇄회로기판(PCB)에서 흔히 볼 수 있는 제조사 시리얼 넘버 정보를 담은 파일 검색 도구를 모델에 제공합니다.
- 새 브라우저 탭에서 vintage_computer_identifiers.docx 문서를 열어 내용을 확인한 뒤 로컬 컴퓨터로 내려받습니다.
- 에이전트 플레이그라운드 탭으로 돌아와 왼쪽 패널의 Tools 섹션에서 이 파일을 업로드해 기본 이름으로 새 인덱스를 만들고, 인덱스가 생성되면 에이전트에 연결합니다.
- 📝 파일 업로드 → 인덱싱 과정이 뒤에서 어떻게 진행되는지 메모 형태로 정리하면:
- 1) 파일 첨부 창에서 '새 인덱스 만들기'를 선택하고, 벡터 인덱스 이름(예: 인덱스_lemon_goat_rx2r651t85처럼 자동 생성된 이름)을 확인합니다.
- 2) 문서를 끌어다 놓거나 '파일 찾아보기'로 vintage_computer_identifiers.docx를 선택하면 목록에 파일이 추가되고, 상태가 '업로드 중'으로 표시됩니다.
- 3) 업로드가 끝나면 Foundry가 문서 내용을 잘게 나눠(청크로 분할) 각 조각을 벡터(숫자로 된 의미 표현)로 변환하는 임베딩 작업을 자동으로 수행합니다. 이 과정을 '인덱싱'이라고 부릅니다.
- 4) 인덱싱이 끝나면 상태가 완료로 바뀌고, '연결' 버튼을 눌러 이 인덱스를 에이전트의 지식(파일 검색) 소스로 연결할 수 있습니다.
- 5) 이후 사용자가 질문하면, 에이전트는 질문과 의미적으로 가까운 문서 조각을 인덱스에서 찾아(검색) 그 내용을 근거로 답을 생성합니다 - 이런 방식이 바로 RAG(검색 증강 생성)입니다.
- 모델 플레이그라운드 우측 상단의 New chat 버튼으로 대화를 초기화합니다.
- Chat 탭에 '"ASSY 250425"라고 적힌 인쇄회로기판이 있는데, 이것에 대해 무엇을 알려줄 수 있어?'라는 프롬프트를 입력해 응답을 확인합니다. 이번에는 응답이 업로드한 데이터 소스의 정보를 근거로 합니다.
- '"820-001A" 표시가 있는 PCB는 어떤 컴퓨터에서 나온 거야?' 또는 '"i386"은 뭐야?' 같은 프롬프트도 몇 가지 더 시도해 봅니다. 파일에 관련 정보가 있으면 모델이 이를 활용해 답하고, 없으면 모델 자체 지식이나 web_search 도구를 사용합니다.

10. 에이전트로 저장하기
- 독립형 모델로도 생성형 AI 앱을 구현할 수 있지만, 완전한 에이전틱 AI 경험을 만들려면 모델과 지침, 도구 구성을 하나의 에이전트로 캡슐화해야 합니다. 이렇게 하면 클라이언트 애플리케이션이 시스템 프롬프트를 따로 지정하거나 RAG(검색 증강 생성) 로직을 직접 구현할 필요 없이 에이전트의 엔드포인트에 연결하기만 하면 됩니다.
- 모델 플레이그라운드 우측 상단에서 Save as agent를 선택하고, 새 에이전트 이름으로 원하는 이름을 지정합니다.
- 에이전트가 생성되면 에이전트 전용 플레이그라운드가 새로 열립니다.

11. 에이전트 정의 확인하기
- 오른쪽 패널의 YAML 탭에서 에이전트 정의를 확인할 수 있습니다 - 여기에는 모델, 파라미터 설정, 앞서 지정한 지침과 도구 구성이 포함되어 있습니다.
- Chat 탭으로 돌아와 '너는 누구야?'라는 프롬프트를 입력합니다. 응답에는 에이전트가 자신이 컴퓨팅 역사가라는 역할을 '인식'하고 있음이 드러나야 합니다.
12. 에이전트 미리보기
- 채팅 패널 상단의 Publish 드롭다운에서 Preview web app을 선택합니다. 새 브라우저 탭에 미리보기 채팅 인터페이스가 열립니다.
- 'Altair 8800에 대해 알려줄래?' 같은 프롬프트를 입력해 에이전트의 응답을 확인합니다.

13. 프로젝트에서 에이전트를 호출하는 클라이언트 코드 확인하기
- 에이전트는 Foundry 프로젝트 내에 정의되며, 여기서 에이전트에 연결하는 앱을 편리하게 개발할 수 있습니다 - 에이전트와 클라이언트 앱을 함께 반복적으로 다듬어 원하는 솔루션을 만들 수 있습니다.
- 에이전트 플레이그라운드에서 채팅 탭 대신 '에이전트 호출' 탭을 선택하면, 에이전트 이름·프로젝트 엔드포인트와 함께 이 에이전트를 호출하는 샘플 코드를 확인할 수 있습니다.
- 언어 드롭다운에서 Python을 선택하면, azure-ai-projects 패키지의 AIProjectClient로 Foundry 프로젝트에 연결한 뒤, get_openai_client 메서드로 OpenAI 클라이언트를 가져오는 코드를 볼 수 있습니다.
- 코드 안의 my_agent·my_version 변수에는 화면 상단에 표시된 에이전트 이름과 현재 버전(예: 'AIFoundryFundamental', '2')이 그대로 들어가며, 이 값으로 프로젝트 안의 여러 에이전트 중 정확히 어떤 에이전트·버전을 호출할지 지정합니다.
- 참고: 프로젝트 연결은 권한이 있는 리소스를 포함할 수 있으므로 키 기반 인증은 지원되지 않으며, 애플리케이션은 Entra ID 자격 증명(DefaultAzureCredential)으로 인증해야 합니다.
- 화면 하단의 '웹용 VS Code 설치 건너뛰기'를 선택하면, 도구·자격 증명·종속성이 이미 설정된 상태로 바로 코딩을 시작할 수 있습니다.

14. 요약 및 정리
- 이 실습에서는 Microsoft Foundry 포털에서 생성형 AI 모델을 배포하고 대화하는 방법을 살펴봤습니다. 이후 지침과 도구를 갖춘 에이전트로 모델을 저장했습니다.
- 이 실습에서 살펴본 에이전트는 Microsoft Foundry로 생성형 AI 앱·에이전트 개발을 얼마나 빠르고 쉽게 시작할 수 있는지 보여주는 간단한 예시입니다. 이를 토대로 에이전트가 도구를 사용해 정보를 찾고 작업을 자동화하며, 복잡한 워크플로를 수행하기 위해 서로 협업하는 포괄적인 에이전틱 솔루션을 구축할 수 있습니다.
- 정리(Clean up): 실습을 마쳤다면 Azure 포털(portal.azure.com)에서 이 실습에 사용한 리소스 그룹을 열고, Delete resource group을 선택한 뒤 리소스 그룹 이름을 입력해 삭제합니다.