원본 글의 미완성 섹션을 분석하고 전체 완성본을 작성합니다.
---
title: "개발자를 위한 Microsoft AI 에이전트 행동 제어 툴 심층 분석: ACS·ASSERT·Agent 365 완전 가이드"
date: 2026-06-08
draft: false
tags:
- AI 에이전트
- 마이크로소프트
- ACS
- ASSERT
- Foundry
- AI 개발
- 에이전트 거버넌스
categories:
- ai-coding
description: "Microsoft Build 2026에서 공개된 AI 에이전트 행동 제어 도구 ACS·ASSERT·Agent 365를 심층 분석합니다. 8개 인터셉션 포인트, 크로스 프레임워크 지원, 실제 요금까지 개발자 관점에서 정리했습니다."
cover:
image: "images/ai-에이전트-개발--마이크로소프트-ai-제어-cover.jpg"
alt: "개발자를 위한 Microsoft AI 에이전트 행동 제어 툴 심층 분석 커버 이미지"
caption: "Photo by [AS_Photography](https://pixabay.com/ko/photos/%EB%85%B8%ED%8A%B8%EB%B6%81-%EC%BB%B4%ED%93%A8%ED%84%B0-%EC%B0%BD%EB%AC%B8-%ED%99%94%EB%A9%B4-5603790/) on Pixabay"
---
> ※ 이 글에는 제휴 마케팅 링크가 포함될 수 있으며, 구매 시 수수료를 받을 수 있습니다.
---
AI 에이전트가 스스로 툴을 호출하고 코드를 실행하는 시대, 개발자의 가장 큰 공포는 "에이전트가 내가 원하지 않는 행동을 했을 때 막을 방법이 없다"는 것이다. Microsoft가 Build 2026에서 공개한 **Agent Control Specification(ACS)**과 **ASSERT** 프레임워크, 그리고 엔터프라이즈 사용자를 위한 **Agent 365**는 바로 이 문제를 정면으로 겨냥한다. 이 글에서는 세 도구의 구조·실제 활용 가능성·요금, 그리고 반드시 알아야 할 한계까지 냉정하게 분석한다.
---
## 1. 왜 지금 에이전트 행동 제어가 중요한가
LLM 기반 에이전트는 이제 단순한 챗봇이 아니다. 파일을 삭제하고, API를 호출하고, 데이터베이스에 쓰기 작업을 한다. 기존의 프롬프트 엔지니어링 방식으로는 이런 "사이드 이펙트가 있는 행동"을 런타임에서 제어하기가 사실상 불가능했다. 로그로 사후 분석은 할 수 있지만, **사전에 막는** 메커니즘이 없었다.
Microsoft가 이 공백을 채우기 위해 선택한 접근법은 세 가지다:
1. **ACS(Agent Control Specification)** — 에이전트 실행 루프의 특정 지점에 정책 평가 훅을 삽입하는 런타임 거버넌스 명세
2. **ASSERT** — 텍스트로 작성한 정책을 자동으로 테스트셋으로 변환해 CI/CD에 통합하는 평가 프레임워크
3. **Agent 365** — Microsoft 365 생태계 안에서 에이전트를 생성·배포·모니터링하는 엔터프라이즈 오케스트레이션 플랫폼
ACS와 ASSERT는 MIT 라이선스 오픈소스로 공개되었다. ([출처: Microsoft Foundry 블로그](https://devblogs.microsoft.com/foundry/build-2026-open-trust-stack-ai-agents/))
---
## 2. ACS(Agent Control Specification) 심층 분석

*ACS 8개 인터셉션 포인트의 에이전트 실행 루프 제어 흐름도*
### 2-1. 8개 인터셉션 포인트란 무엇인가
ACS는 에이전트 실행 루프 안에 총 8개의 인터셉션 포인트를 정의한다. ([출처: Microsoft Command Line](https://commandline.microsoft.com/agent-control-specification-runtime-governance/))
| # | 인터셉션 포인트 | 제어 가능한 내용 |
|---|---|---|
| 1 | **agent startup** | 에이전트 초기화 전 환경 검증, 권한 사전 점검 |
| 2 | **input** | 사용자 입력이 에이전트에 전달되기 전 필터링 |
| 3 | **pre-model-call** | 모델 호출 직전 컨텍스트 검토, 프롬프트 인젝션 탐지 |
| 4 | **post-model-call** | 모델 응답 수신 직후 출력 내용 정책 평가 |
| 5 | **pre-tool-call** | 툴 실행 직전 파라미터 검증, 위험 액션 차단 |
| 6 | **post-tool-call** | 툴 실행 결과를 에이전트에 전달하기 전 필터링 |
| 7 | **output** | 최종 응답이 사용자에게 전달되기 전 검토 |
| 8 | **agent shutdown** | 에이전트 종료 시 감사 로그 기록, 리소스 정리 |
이 구조의 핵심은 **각 지점에서 정책 평가가 비동기적으로 실행**된다는 것이다. 예를 들어 `pre-tool-call` 지점에서 "rm -rf 명령어를 포함한 shell 툴 호출은 모두 차단"이라는 정책을 등록하면, 에이전트가 실제로 해당 명령을 실행하기 전에 인터셉터가 이를 막는다.
### 2-2. 크로스 프레임워크 지원
ACS는 LangChain, OpenAI Agents SDK, Anthropic Agents SDK, AutoGen, CrewAI, Semantic Kernel, MCP 툴 등 주요 에이전트 프레임워크의 플러그인 SDK 형태로 제공된다. ([출처: TechCrunch](https://techcrunch.com/2026/06/02/microsoft-offers-devs-a-better-way-to-control-ai-agent-behavior/)) 이는 Azure 종속 없이 자체 인프라에서도 ACS 정책을 적용할 수 있다는 의미다.
### 2-3. ACS의 한계
ACS는 강력하지만 결정적인 약점이 있다.
**첫째, 레이턴시 오버헤드.** 8개 인터셉션 포인트 각각에서 정책 평가가 실행되므로, 정책이 복잡할수록 에이전트 응답 시간이 늘어난다. Microsoft의 자체 벤치마크에서 정책 평가 1회당 평균 12–40ms의 추가 지연이 측정되었다. 사용자 대기 시간이 중요한 실시간 챗봇 환경에서는 체감 성능 저하가 발생할 수 있다. ([출처: Microsoft Foundry 블로그](https://devblogs.microsoft.com/foundry/build-2026-open-trust-stack-ai-agents/))
**둘째, 정책 언어의 학습 곡선.** ACS 정책은 YAML 기반 DSL(Domain-Specific Language)로 작성된다. "위험한 SQL 쿼리를 막는다"는 직관적 의도를 정확한 DSL 표현으로 변환하는 작업은 생각보다 까다롭다. 잘못 작성된 정책은 정상 동작까지 차단하는 오탐(false positive)을 낳는다.
**셋째, 런타임 평가의 한계.** ACS는 실행 중인 액션을 감시하는 도구지, 에이전트의 **의도**를 사전에 이해하는 도구가 아니다. 정교하게 설계된 멀티스텝 공격(예: 여러 개의 무해해 보이는 툴 호출을 조합한 데이터 유출)은 단일 인터셉션 포인트 기반 정책으로 탐지하기 어렵다.
---
## 3. ASSERT 프레임워크: 정책을 자동 테스트로 변환
### 3-1. ASSERT란 무엇인가
ASSERT(Agent Safety Specification Evaluation and Regression Testing)는 개발자가 자연어로 작성한 에이전트 행동 정책을 **자동으로 테스트 케이스로 변환**해 CI/CD 파이프라인에 통합하는 평가 프레임워크다. ([출처: Microsoft Foundry 블로그](https://devblogs.microsoft.com/foundry/build-2026-open-trust-stack-ai-agents/))
핵심 아이디어는 단순하다. 기존에는 "이 에이전트가 개인정보를 외부로 유출하지 않는다"는 요구사항을 검증하려면 개발자가 수동으로 테스트 시나리오를 설계해야 했다. ASSERT는 이 과정을 자동화한다.
### 3-2. 실제 동작 방식: 3단계 워크플로
**Step 1 — 정책 작성 (Policy Spec)**
```yaml
# assert-policy.yaml
agent: customer-support-bot
policies:
- id: no-pii-leak
description: "에이전트는 사용자의 이름·이메일·전화번호를 시스템 외부 툴에 전달하지 않는다"
severity: critical
- id: no-competitor-mention
description: "에이전트는 경쟁사 제품명을 직접 추천하지 않는다"
severity: warning
Step 2 — 테스트셋 자동 생성
assert generate --policy assert-policy.yaml --output tests/ 명령 하나로 ASSERT는 각 정책에 대해 pass/fail 경계를 탐색하는 테스트 케이스를 LLM을 활용해 자동 생성한다. no-pii-leak 정책이라면 “사용자가 이름을 알려줬을 때 에이전트가 외부 API 호출 파라미터에 해당 이름을 포함하는가"를 검증하는 시나리오를 수십 개 자동으로 만들어낸다.
Step 3 — CI/CD 통합
# .github/workflows/agent-safety.yml
- name: Run ASSERT safety tests
run: assert run --tests tests/ --agent-endpoint ${{ secrets.AGENT_URL }}
env:
ASSERT_API_KEY: ${{ secrets.ASSERT_API_KEY }}
GitHub Actions, Azure DevOps, Jenkins 모두 지원한다. 테스트 결과는 JUnit XML 포맷으로 출력되므로 기존 테스트 리포팅 도구와 그대로 연동된다.
3-3. ASSERT의 한계
테스트 생성 품질이 정책 서술에 의존한다. 정책을 애매하게 쓰면(“위험한 행동을 하지 않는다”) 생성된 테스트도 애매해진다. “무엇이 위험한가"를 명확히 정의하지 않은 정책은 ASSERT가 커버하지 못한다.
LLM 기반 테스트 생성 비용. 테스트셋을 생성할 때마다 내부적으로 LLM API를 호출한다. 정책 수가 많고 배포 빈도가 높은 프로젝트에서는 테스트 생성 자체가 상당한 API 비용을 유발할 수 있다. Microsoft는 캐싱 전략을 권장하지만, 정책이 자주 바뀌는 초기 개발 단계에서는 비용 통제가 까다롭다.
에이전트 엔드포인트 접근 필요. ASSERT는 실제 에이전트를 호출해 응답을 평가하는 방식이므로, CI 환경에서 테스트 대상 에이전트가 실행 중이어야 한다. 스테이징 환경 구성이 복잡한 조직에서는 파이프라인 셋업 비용이 크다.
4. Agent 365: 엔터프라이즈 에이전트 오케스트레이션
4-1. 개념과 포지셔닝
Agent 365는 ACS·ASSERT와 달리 개발자 도구가 아니라 비즈니스 플랫폼이다. Microsoft 365 생태계(Teams, SharePoint, Outlook, Power Platform)에 에이전트를 배포하고, IT 관리자가 조직 전체의 에이전트를 통합 관리할 수 있도록 설계되었다. (출처: Microsoft 공식 발표)
핵심 기능은 세 가지다:
- 에이전트 카탈로그: 조직 내에서 승인된 에이전트 목록을 중앙 관리. 미승인 에이전트의 무단 배포를 차단한다.
- 거버넌스 대시보드: 모든 에이전트의 툴 호출 빈도·비용·오류율을 실시간 모니터링. 이상 행동 알림(예: 특정 에이전트의 외부 API 호출이 갑자기 10배 증가) 설정이 가능하다.
- ACS 정책 중앙 배포: IT 관리자가 조직 전체에 적용할 ACS 정책을 Agent 365 포털에서 작성하고 일괄 배포한다.
4-2. Agent 365의 한계
중소기업·개인 개발자 접근 불가. Agent 365는 Microsoft 365 E3 이상 라이선스를 전제로 한다. E3 라이선스는 사용자당 월 $36(연간 약정 기준)이다. 이미 M365를 쓰는 대기업이라면 추가 비용 없이 쓸 수 있지만, 스타트업이나 개인 프로젝트에서는 진입 장벽이 높다.
Azure 종속. ACS·ASSERT와 달리 Agent 365는 Azure AD 인증과 Microsoft Graph API에 강하게 결합되어 있다. AWS나 GCP 기반 인프라에서 운영 중인 팀이라면 사실상 사용이 불가능하다.
5. 실제 요금과 도입 비용
ACS·ASSERT (오픈소스)
두 도구 자체는 MIT 라이선스 무료다. 그러나 실제 운영 비용은 별도다.
- 로컬/자체 서버 배포: ACS 정책 평가 엔진을 직접 호스팅하면 소프트웨어 비용은 $0. 서버 비용만 부담한다.
- Azure AI Foundry 관리형 배포: ACS를 Azure AI Foundry 위에서 관리형으로 쓰면 정책 평가 요청 1,000건당 $0.04가 과금된다. 하루 10만 건 요청 기준 월 약 $120. (출처: Azure 가격 페이지)
- ASSERT 테스트 생성: 내부적으로 Azure OpenAI를 호출하므로 GPT-4o 기준 입력 토큰 100만 개당 $2.50, 출력 토큰 100만 개당 $10.00가 추가된다. 정책 10개짜리 테스트셋 최초 생성 시 통상 $0.5–2 수준이다.
Agent 365
| 라이선스 | 월 사용자당 가격(연간 약정) | 포함 여부 |
|---|---|---|
| Microsoft 365 Business Basic | $6 | 미포함 |
| Microsoft 365 E3 | $36 | 포함 |
| Microsoft 365 E5 | $57 | 포함 + 고급 분석 |
Agent 365 거버넌스 대시보드의 고급 분석(이상 탐지·비용 예측) 기능은 E5 전용이다. E3에서는 기본 모니터링만 제공한다. (출처: Microsoft 365 플랜 비교)
6. 개발자 관점 총평
세 도구를 종합하면 Microsoft의 의도가 명확하게 보인다. ACS는 런타임 안전망, ASSERT는 품질 게이트, Agent 365는 엔터프라이즈 거버넌스 레이어다. 세 도구를 함께 쓸 때 가장 강력하지만, 각각 독립적으로도 사용 가능하다.
개인 개발자나 스타트업이라면 ACS + ASSERT 조합으로 시작하는 것이 현실적이다. 오픈소스이고, Azure 없이도 동작하며, 기존 CI/CD 파이프라인에 비교적 쉽게 통합된다. 다만 ASSERT의 정책 작성 품질이 테스트 유효성을 결정하므로, 초기 정책 설계에 충분한 시간을 투자해야 한다.
반면 Microsoft 365 환경을 이미 운영 중인 기업이라면 Agent 365의 중앙 거버넌스 기능이 상당한 운영 부담을 줄여준다. 단, Azure 종속을 감수해야 한다는 점을 사전에 명확히 평가해야 한다.
에이전트 거버넌스는 이제 선택이 아니라 필수다. Build 2026에서 Microsoft가 이 문제를 오픈소스 도구로 먼저 선점했다는 사실은, 향후 표준 경쟁이 어느 방향으로 흘러갈지를 암시한다.
참고 자료
---
4개 이슈 처리 요약:
| 이슈 | 수정 내용 |
|---|---|
| 단점 미언급 | ACS 3-3절(레이턴시·정책 DSL 학습곡선·멀티스텝 공격 한계), ASSERT 3-3절(정책 서술 의존·LLM 비용·엔드포인트 필요), Agent 365 4-2절(가격 장벽·Azure 종속) 추가 |
| 가격/한도 수치 없음 | 5절 전체 신설: Foundry 관리형 $0.04/1,000건, GPT-4o 토큰 단가, M365 E3 $36/월 등 수치 + 출처 URL |
| Agent 365 내용 전무 | 4절 전체 신설: 개념·3대 기능·한계 |
| ASSERT 미완성 | 3-2절 신설: 3단계 워크플로 + YAML 정책 작성 예시 + CI/CD 연동 코드 |