Foundry Agent Service 와 Content Safety (에이전트와 가드레일)
Foundry Agent Service 의 에이전트 종류(프롬프트, 음성, 2026-07 GA 가 된 호스티드 에이전트), 도구와 툴박스, 지식 연결, 인증과 네트워크, 그리고 Azure AI Content Safety 와 Foundry 가드레일(유해 콘텐츠, Prompt Shields, 근거성 검사, 작업 준수)로 에이전트를 안전하게 운영하는 방법을 정리합니다.
에이전트 종류
| 종류 | 만드는 방법 | 실행 |
|---|---|---|
| 프롬프트 에이전트 | 포털이나 SDK 에서 지침, 모델, 도구를 설정 (코드 없음) | Foundry 가 실행 |
| 음성 프롬프트 에이전트 | 프롬프트 에이전트 + Voice Live 실시간 음성 | Foundry 가 실행. 음성 관련 기능 다수가 Preview |
| 호스티드 에이전트 | Microsoft Agent Framework, LangGraph, OpenAI Agents SDK 등으로 직접 짠 코드를 컨테이너나 zip 으로 | Foundry 관리형 엔드포인트에서 실행 |
호스티드 에이전트는 Build 2026 에서 GA 예정이 발표되었고 2026-07 에 GA 가 되었습니다. 세션마다 VM 수준으로 격리된 샌드박스에서 돌고, 사용자 VNet 을 붙일 수 있습니다. 내 프레임워크의 코드를 그대로 가져가면서 배포, 확장, ID, 관측은 Foundry 에 맡기고 싶을 때 고릅니다.
새 Agent Service 는 Responses API 기반(v2)입니다. 예전 Assistants API 기반 에이전트(v1)는 새 포털에서 지원되지 않으므로 마이그레이션 가이드를 따라 옮깁니다.
도구
| 도구 | 설명 |
|---|---|
| 웹 검색, 파일 검색, 코드 인터프리터, 메모리 | 기본 제공 도구 (메모리는 2026-10 기준 Preview) |
| 함수 호출 | 내 코드의 함수를 모델이 호출하도록 스키마 제공 |
| OpenAPI | OpenAPI 명세로 기존 REST API 를 도구로 |
| MCP 서버 | 원격 MCP 서버, Azure Functions 로 만든 MCP 서버 연결 |
| 툴박스 (Toolbox) | 여러 도구를 하나의 MCP 호환 엔드포인트로 묶어 인증, 거버넌스, 버전을 중앙 관리 |
도구 연결의 인증은 키, Microsoft Entra(에이전트 또는 프로젝트의 관리 ID), 사용자 대신(OAuth On-Behalf-Of), 무인증 중에서 고릅니다. 에이전트 ID 에는 그 도구에 꼭 필요한 권한만 줍니다. 에이전트가 SQL 에 쓰기 권한을 가지고 있으면, 프롬프트 주입 한 번에 데이터를 지울 수 있습니다.
지식 연결
에이전트가 사내 문서를 근거로 답하게 하려면 Foundry IQ(Azure AI Search 의 지식 베이스)를 연결합니다. 원본(인덱스, Blob, OneLake, 웹 등)을 지식 베이스로 묶고 에이전트에 붙이면, 에이전트가 질의를 계획해 여러 원본을 검색합니다. 검색 품질과 비용은 결국 검색 서비스 설정에 달려 있으니 Azure AI Search 문서를 같이 봅니다.
# azure-ai-projects 2.x: 프로젝트 엔드포인트 하나로 프롬프트 에이전트 만들고 대화하기 (개념 예시)
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
project = AIProjectClient(endpoint="https://<resource>.services.ai.azure.com/api/projects/<project>",
credential=DefaultAzureCredential())
openai = project.get_openai_client()
resp = openai.responses.create(model="<배포 이름>", input="지난주 장애 보고서 요약해 줘")
print(resp.output_text)SDK 의 클래스 이름과 메서드는 버전마다 바뀌는 일이 잦으므로, 실제 코드는 설치한 버전의 Microsoft Learn 빠른 시작을 기준으로 씁니다.
네트워크와 운영
- 프롬프트 에이전트는 VNet 격리(사설 네트워크)를 지원하고, 호스티드 에이전트는 사용자 VNet 을 붙입니다. 호스티드 에이전트의 사설 Container Registry 는 2026-06-25 이후 만든 프로젝트에서만 지원된다고 문서에 적혀 있습니다.
- 대화 상태, 파일, 벡터 저장소를 내 리소스(스토리지, Cosmos DB, AI Search) 에 두는 구성을 고를 수 있습니다. 데이터 위치와 보존 정책을 직접 통제해야 할 때 씁니다.
- 트레이스와 평가로 에이전트가 어떤 도구를 어떤 순서로 불렀는지 기록합니다. 운영 전에 레드 팀(공격 시뮬레이션) 평가를 돌립니다.
Content Safety 와 가드레일
Foundry 의 모델 배포에는 기본 안전 정책(콘텐츠 필터)이 적용되고, 가드레일(guardrails) 로 조정합니다. 같은 기술을 독립 API 로 쓰는 것이 Azure AI Content Safety 입니다.
| 기능 | 하는 일 | 상태 (문서 표기) |
|---|---|---|
| 텍스트, 이미지 분석 | 성적, 폭력, 증오, 자해 네 범주를 심각도 수준으로 판정 | 미리 보기 표시 없음 |
| Prompt Shields | 사용자 입력의 탈옥 시도와 문서 속 간접 프롬프트 주입 탐지 | 미리 보기 표시 없음 |
| 보호 자료 탐지 | 가사, 기사 같은 알려진 저작물이 출력에 그대로 나오는지 | 미리 보기 표시 없음 |
| 근거성 검사 (Groundedness detection) | 답이 주어진 근거 자료에 기대고 있는지 | Preview |
| 작업 준수 (Task adherence) | 에이전트의 도구 호출이 사용자 의도에서 벗어났는지 | 미리 보기 표시 없음 |
| 사용자 지정 범주 | 조직 고유의 금지 주제를 학습, 정의 | Preview |
모델 수준 가드레일은 GA 이지만, 에이전트 수준 가드레일은 2026-10 기준 Preview 입니다. 에이전트는 모델 입출력 외에 도구 호출 결과(웹 페이지, 문서, 이메일)로도 공격 문장이 들어오므로, 간접 프롬프트 주입(XPIA) 방어를 켜는 것이 특히 중요합니다.
# Content Safety 로 텍스트 하나 검사 (Entra 토큰)
curl -s -X POST "https://<content-safety>.cognitiveservices.azure.com/contentsafety/text:analyze?api-version=2023-10-01" \
-H "Authorization: Bearer $(az account get-access-token --resource https://cognitiveservices.azure.com --query accessToken -o tsv)" \
-H "Content-Type: application/json" \
-d '{"text":"검사할 문장","categories":["Hate","Violence","Sexual","SelfHarm"]}'안전한 에이전트 체크리스트
- 도구는 최소로, 권한은 읽기 우선. 쓰기, 지우기, 송금 같은 작업은 사람 승인 단계를 둡니다.
- 외부 콘텐츠(웹, 메일, 업로드 파일)는 신뢰하지 않는 입력으로 다루고 Prompt Shields 를 켭니다.
- 에이전트마다 별도 ID(관리 ID 나 에이전트 ID)를 주어 감사 로그에서 구분합니다.
- 평가(정확성, 근거성, 안전)를 배포 파이프라인에 넣어 모델이나 프롬프트를 바꿀 때마다 돌립니다.
- 비용 상한: 최대 반복 횟수, 토큰 상한, 도구 호출 제한을 정합니다.