Agent Governance Toolkit: Microsoft가 공개한 AI 에이전트 거버넌스 도구

Agent Governance Toolkit 소개

AI 에이전트는 도구를 호출하고, 웹을 탐색하고, 데이터베이스를 조회하고, 다른 에이전트에게 작업을 위임합니다. 일단 배포되면 이 에이전트들은 스스로 결정을 내립니다. Agent Governance Toolkit(AGT)은 이렇게 자율적으로 움직이는 AI 에이전트에 대해 정책 시행(policy enforcement), 신원(identity), 샌드박싱, SRE 를 제공하는 Microsoft 의 거버넌스 도구입니다. pip install 한 번으로 설치되며 특정 프레임워크에 묶이지 않습니다.

AGT 의 핵심 발상은 "프롬프트로 부탁하지 말고 코드로 막는다" 입니다. "규칙을 지켜줘" 같은 프롬프트 수준의 안전장치는 통제 표면(control surface)이 아니라, 확률적으로 동작하는 시스템에 대한 정중한 요청일 뿐입니다. AGT 는 모든 도구 호출·메시지 전송·위임을 모델의 의도가 외부로 나가기 전에 결정적(deterministic) 애플리케이션 코드에서 가로챕니다. 커널이 거부한 행동은 "가능성이 낮은" 것이 아니라 구조적으로 불가능 합니다.

AGT 는 Microsoft 가 서명한 퍼블릭 프리뷰(Public Preview) 상태로, 공개 시점 기준 최신 버전은 v3.7.0 입니다. Python·TypeScript·.NET·Rust·Go 다섯 개 언어 SDK 와 함께, GitHub Copilot CLI·Claude Code 용 개발자 표면도 제공합니다.

Agent Governance Toolkit가 풀려는 문제

AGT 는 배포된 에이전트에 대해 세 가지 질문에 답할 수 있어야 한다고 봅니다. 첫째, 이 행동이 허용되는가? send_emailquery_database 권한을 가진 에이전트가 drop_table 까지 할 수 있어서는 안 됩니다. OAuth 범위나 IAM 역할은 에이전트가 어떤 서비스에 닿을 수 있는지 를 통제할 뿐, 연결된 뒤 무엇을 하는지 는 통제하지 못합니다. 둘째, 어떤 에이전트가 그 일을 했는가? 다섯 개의 에이전트가 하나의 API 키를 공유하는 멀티 에이전트 시스템에서 "어떤 에이전트가 그랬다" 는 사고 대응이 될 수 없습니다. 셋째, 무슨 일이 있었는지 증명할 수 있는가? 감사자와 규제 기관은 어떤 정책이 활성화되어 있었고, 에이전트가 무엇을 요청했으며, 왜 허용 또는 거부되었는지에 대한 변조 방지(tamper-evident) 기록을 요구합니다.

AGT 팀은 프롬프트 계층에서 이 싸움을 이기려 하지 않습니다. 그 근거로 OWASP LLM01:2025가 프롬프트 인젝션에 대한 "확실한 예방 방법이 있는지 불분명하다" 고 명시한 점, 그리고 JailbreakBench(Chao et al., NeurIPS 2024)에서 적응형 공격이 안전 정렬된 프런티어 모델에 대해 거의 100% 에 가까운 공격 성공률(Attack Success Rate, ASR)에 도달한다는 점을 듭니다. AGT 는 대신 거부된 행동을 구조적으로 불가능하게 만드는 쪽을 택합니다.

Agent Governance Toolkit의 동작 방식

에이전트의 행동은 정책 엔진(YAML/OPA/Cedar) → 신원(SPIFFE/DID/mTLS) → 감사 로그(변조 방지)를 차례로 거칩니다. 정책이 허용하면 도구가 실행되고, 거부하면 GovernanceDenied 예외가 발생하며, 모든 결정은 결정 기록(Decision Record)으로 남습니다. 각 계층은 선택적이라, 대부분의 팀은 정책 시행과 감사 로깅만으로 시작하고 위험 수준이 커질 때 계층을 추가합니다.

가장 간단한 사용법은 임의의 도구 함수를 govern() 으로 감싸는 것입니다. 단 두 줄이면 모든 호출이 YAML 정책으로 검사·기록되고, 차단된 행동에는 GovernanceDenied 가 발생합니다.

from agentmesh.governance import govern

safe_tool = govern(my_tool, policy="policy.yaml")   # 모든 호출이 검사·기록·시행됨

정책은 YAML 로 선언합니다. 아래 예시는 파괴적 작업을 차단하고, 이메일 전송에는 사람의 승인을 요구합니다.

# policy.yaml
apiVersion: governance.toolkit/v1
name: production-policy
default_action: allow
rules:
  - name: block-destructive
    condition: "action.type in ['drop', 'delete', 'truncate']"
    action: deny
    description: "Destructive operations require human approval"

  - name: require-approval-for-send
    condition: "action.type == 'send_email'"
    action: require_approval
    approvers: ["security-team"]

이렇게 감싼 도구는 정책에 따라 동작합니다.

>>> safe_tool(action="read", table="users")
{'table': 'users', 'rows': 42}

>>> safe_tool(action="drop", table="users")
GovernanceDenied: Action denied by policy rule 'block-destructive':
  Destructive operations require human approval

설치 상태 점검, OWASP 준수 검사, 프롬프트 인젝션 감사 등은 agt CLI 로 수행합니다.

agt doctor                                   # 설치 상태 점검
agt verify                                   # OWASP 준수 검사
agt red-team scan ./prompts/ --min-grade B   # 프롬프트 인젝션 감사
agt lint-policy policies/                    # 정책 파일 검증

Agent Governance Toolkit의 구성과 언어 지원

AGT 는 여러 패키지로 나뉩니다. 정책 엔진과 거버넌스 게이트를 담당하는 Agent OS, 에이전트 탐색·라우팅·신뢰 메시를 담당하는 Agent Mesh, 네 단계 권한 링(privilege ring)으로 실행을 샌드박싱하는 Agent Runtime, 킬 스위치·SLO 모니터링·카오스 테스트를 담당하는 Agent SRE, 그리고 OWASP 검증·정책 린팅을 담당하는 Agent Compliance 등이 있습니다.

다섯 개 언어 SDK 모두 정책·신원·신뢰·감사라는 핵심 거버넌스를 구현하며, 전체 스택(full stack)은 Python 에 있습니다. Microsoft Agent Framework·Semantic Kernel 은 네이티브로, AutoGen·LangGraph/LangChain·CrewAI·Google ADK·LlamaIndex 등은 어댑터나 미들웨어로 연동됩니다.

AGT 는 표준 준수도 강조합니다. OWASP Agentic AI Top 10의 모든 위험 범주를 결정적 통제로 매핑했고, NIST AI RMF 1.0·EU AI Act·SOC 2 매핑을 제공합니다. 10개의 공식 명세(specification)에 대해 992개의 적합성 테스트(conformance test)와 25개의 아키텍처 결정 기록(ADR)으로 코드가 명세에 맞게 유지되도록 합니다.

한 가지 유의할 점은, AGT 가 거버넌스를 OS 커널 수준이 아니라 애플리케이션 미들웨어 계층에서 시행한다는 것입니다. 정책 엔진과 에이전트가 같은 프로세스 경계를 공유하므로, 저자들은 OS 수준 격리를 위해 각 에이전트를 별도 컨테이너에서 실행할 것을 권고합니다.

Agent Governance Toolkit의 라이선스

Agent Governance Toolkit 은 MIT 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.

:house: Agent Governance Toolkit 공식 문서

:github: Agent Governance Toolkit 프로젝트 GitHub 저장소

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: