OpenSource-Hub

agent-governance-toolkit

라이브러리

microsoft/agent-governance-toolkit

자율 AI 에이전트를 위한 정책 시행 및 보안 툴킷.

개요

AI 에이전트를 위한 결정적 정책 실행, 제로 트러스트 신원 및 실행 샌드박스를 제공하며, 모든 OWASP Agentic Top 10 위험을 커버하고, 어떤 프레임워크와도 통합 가능하며 감사 로그를 포함합니다.

README 미리보기

🌍 [English](/README.md) | [日本語](./docs/i18n/README.ja.md) | [简体中文](./docs/i18n/README.zh-CN.md) | [한국어](./docs/i18n/README.ko.md)\n\n\n\n# Agent Governance Toolkit\n\n### Ship agents to production without losing sleep\n\n\n  \n    \n  \n\n\n\n  \n    🚀 Quick Start ·\n    📋 Specifications ·\n    📦 PyPI ·\n    📝 Changelog\n  \n\n\n[](https://github.com/microsoft/agent-governance-toolkit/actions/workflows/ci.yml)\n[](LICENSE)\n[](https://pypi.org/project/agent-governance-toolkit/)\n[](https://www.npmjs.com/package/@microsoft/agent-governance-sdk)\n[](https://www.nuget.org/packages/Microsoft.AgentGovernance)\n[](https://scorecard.dev/viewer/?uri=github.com/microsoft/agent-governance-toolkit)\n[](https://www.bestpractices.dev/projects/12085)\n[](docs/compliance/owasp-agentic-top10-architecture.md)\n\n> [!IMPORTANT]\n> **Public Preview** -- production-quality, Microsoft-signed releases. May have breaking changes before GA.\n\nPolicy enforcement, identity, sandboxing, and SRE for autonomous AI agents. One `pip install`, any framework.\n\n---\n\n## The Problem\n\nYour AI agents call tools, browse the web, query databases, and delegate to other agents. Once deployed, they make decisions autonomously. You need answers to three questions:\n\n**1. Is this action allowed?** An agent with access to `send_email` and `query_database` should not be able to `drop_table`. OAuth scopes and IAM roles control which services an agent can reach, not what it does once connected.\n\n**2. Which agent did this?** In a multi-agent system, five agents might share a single API key. When something goes wrong, "an agent did it" is not an incident response.\n\n**3. Can you prove what happened?** Auditors and regulators need tamper-evident records of every decision: what policy was active, what the agent requested, and why it was allowed or denied.\n\nPrompt-level safety ("please follow the rules") is not a control surface. It is a polite request to a stochastic system. [OWASP LLM01:2025](https:

FAQ (3)

문제 해결
CI에서 에이전트-os 거버넌스 패리티와 어댑터 계약 테스트가 소프트 실패에 가려지지 않고 하드 실패되도록 만드는 방법은?

GitHub Actions 워크플로우(.github/workflows/ci.yml)에 agent-os 매트릭스 패키지를 위한 전용 적합성 검증 단계를 추가합니다. 기존의 소프트 실패 테스트 단계(pytest tests/ ... || true) 앞에 배치하고 if: matrix.package == 'agent-os'로 보호합니다. || true 없이 pytest tests/test_governance_parity.py tests/test_spec_adapter_contract_conformance.py만 실행합니다. 이는 다른 광범위한 테스트 스위트를 변경하지 않고 이러한 특정 검사를 적용합니다. 브랜치 보호가 이 단계를 요구하도록 합니다.

원본 Issue #2695
문제 해결
왜 agent-hypervisor RingEnforcer check_command는 변수 할당이나 env, nohup, exec와 같은 래퍼가 접두사로 붙은 거부된 명령어(예: FOO=x curl)를 허용하나요?

근본 원인: RingEnforcer.check_command가 명령어 문자열의 첫 번째 단어만 DENIED_COMMANDS와 비교 검사하므로, 선행 NAME=value 할당이나 래퍼(env, exec, nohup, nice, timeout, stdbuf, time, command, builtin)가 실행 파일로 오인되어 실제 거부 대상 명령어(예: curl)가 allowed=True로 보고됩니다. 수정: issue #4331에 대한 후속 패치가 포함된 빌드로 agent-hypervisor를 업데이트하십시오. 이 패치는 (1) 선행 NAME=value 할당을 따옴표 인식 방식으로 건너뛰고, (2) 래퍼 명령어의 옵션을 파싱하여 이를 벗겨내며, (3) 래퍼의 옵션을 파싱할 수 없는 경우 — 알 수 없는 옵션, 옵션 인자 누락, 또는 env -S — 실패 시 차단(fail closed) 방식으로 명령어를 거부합니다. 패치가 적용되기 전까지 호출자는 check_command에만 의존해서는 안 됩니다: 호출하기 전에 할당 접두사/래퍼가 포함된 명령어를 정규화하거나 거부하십시오. 참고: 줄 연속(line-continuation) 난독화(cu\<newline>rl)는 여전히 알려진 별도의 공백으로 남아 있습니다.

원본 Issue #4331
문제 해결
예제 정책 매니페스트를 사용할 때 제 에이전트가 첫 번째 도구 호출에서 'runtime_error:intervention_point_unknown' 오류로 실패하는 이유는 무엇인가요?

매니페스트의 intervention_points 블록이 pre_tool_call을 바인딩하지 않는데, 19개의 내장 어댑터 중 16개(a2a, guardrails, llamaindex를 제외한 전부)가 이를 평가합니다. 엔진은 바인딩되지 않은 인터벤션 포인트를 runtime_error:intervention_point_unknown으로 의도적으로 거부하므로, 에이전트는 첫 번째 도구 호출에서 차단됩니다. 이는 examples/policies/african-regulatory/*(15개 파일), examples/policies/india-regulatory/*(5개), examples/policies/production/*(5개), examples/policies/lotl_prevention_policy.yaml 및 examples/policy-templates/* 대부분의 매니페스트에 영향을 미칩니다. 이들이 input/output만 바인딩하기 때문입니다. 해결 방법: 어댑터가 평가하는 모든 인터벤션 포인트를 명시적으로 바인딩하세요. 정책 팩의 의도에 부합하는 deny/allow 시맨틱으로 매니페스트의 intervention_points에 pre_tool_call(및 post_tool_call) 항목을 추가하세요(도구 호출 지점에 규제 패턴 규칙을 적용하는 것이 더 안전한 방향이기도 합니다). PR #3528에서 수정된 매니페스트(crewai, maf, openai-agents, smolagents 예제)에서 바인딩 패턴을 복사할 수 있습니다.

원본 Issue #3540