자연어 문서를 Dogwood 정형 명세로 바꾸는 Policy Authoring

Amazon Bedrock AgentCore는 조직의 정책이나 규제 제약을 에이전트에게 강제하기 위해 Policy 기능을 도입했다. 자연어로 작성된 운영 절차서를 Dogwood(오픈소스 거버넌스 언어)라는 정형 명세로 자동 변환해 적용할 수 있다. 변환된 정책은 Bedrock AgentCore의 AgentCore Gateway에 내장된 Dogwood 모니터가 실시간으로 에이전트의 행동을 감시하고 제어하여 규정 위반을 차단한다.

핵심 도구인 Policy Authoring은 자연어 문서를 정형 코드로 바꾸는 번역기 역할을 수행한다. 사용자는 정책 리스트, 운영 절차서의 규칙 섹션, 혹은 허용 및 제한 행동이 명시된 문단을 입력값으로 제공한다. 규칙과 배경 설명, 논거가 섞여 있는 문서보다 순수하게 규칙만 남긴 정제된 문서일수록 변환 결과가 명확하며, 입력 문서의 정밀도가 곧 제어의 정밀도로 이어진다.

소규모의 제어 규칙은 Dogwood 언어로 직접 작성하는 것이 합리적이지만, 이미 텍스트로 정의된 방대한 규칙이 있는 경우에는 Policy Authoring을 통한 자동 변환이 효율적이다. 실무자는 복잡한 거버넌스 언어의 문법을 학습하지 않고도 기존의 텍스트 기반 지침을 에이전트의 실행 제약 조건으로 즉시 전환할 수 있다.

시간 제약과 누적 합계까지 제어하는 정밀한 거버넌스

환불 처리는 UTC 기준 오전 9시부터 오후 5시 사이의 영업시간 내에, 금액이 2,500달러 이하일 때만 실행되도록 강제한다. `context.input.amount` 식별자를 사용해 에이전트가 호출한 금액과 도구가 선언한 단위를 대조하며, 호출 결정 순간의 시계 값을 읽어 시간 제약을 적용한다.

특정 계정에 대해 15분 이내에 `verify_identity` 호출이 성공적으로 완료되었는지 확인하는 이력 기반 조건을 적용한다. 단순히 함수를 호출했는지가 아니라 결과값인 response에서 verified가 true로 반환되었는지를 검증한다. 과거 이벤트의 계정 필드와 현재 호출의 `context.input.account`를 일치시켜 동일 계정 여부를 판별하며, 현재 세션의 이력을 검토해 정밀하게 제어한다.

최근 12시간 동안의 총 송금액이 50,000달러를 초과하거나, 1시간 내 동일 계정의 환불 시도가 3회를 넘을 경우 실행을 차단한다. 이는 단일 호출의 입력값만 검사하는 방식을 넘어, 에이전트가 수행한 과거 행동의 궤적(trajectory)과 누적 합계를 계산하는 방식이다. 시간 흐름에 따른 상태 변화를 추적함으로써 단순 입력 제한으로 불가능한 시간 기반의 누적 제약 조건을 강제한다.

자유 형식의 텍스트 내에 포함된 주민등록번호(SSN) 같은 민감 정보는 Amazon Bedrock Guardrails 연동을 통해 탐지하고 차단한다. 텍스트의 단순 패턴 매칭이 아니라 의미론적 맥락을 분석하여 부적절한 콘텐츠가 포함되었는지 확인하며, 정형 데이터의 입력값 제한과 비정형 텍스트의 보안 필터링을 동시에 적용한다.

MCP 툴 매니페스트 기반의 컴플라이언스 자동 적용

앞서 언급한 정밀 제어는 MCP(Model Context Protocol) 툴 매니페스트를 통해 구현된다. 매니페스트에서 툴 이름과 인자, 반환값 스키마를 가져와 에이전트가 실제로 호출하는 이름과 정책상의 식별자를 일치시켜 매핑 오류를 방지한다. 실무자는 별도의 API 명세서를 다시 쓸 필요 없이 기존 매니페스트를 그대로 활용한다.

매핑 구조는 MCP 매니페스트의 인자명을 Dogwood 정책의 식별자로 직접 연결한다. 예를 들어 툴의 amount 인자는 정책 내에서 `context.input.amount`로 변환되어 구체적인 제어 기준으로 작동한다. 정책 작성 도구는 이 스키마와 더불어 Amazon Bedrock Guardrails 체크 항목과 신원 확인 정보를 함께 참조하여 자연어 문서의 비즈니스 규칙을 실제 코드의 변수와 맞물리게 한다.

Dogwood 정책은 기본적으로 모든 접근을 거부하는 Default-deny 방식을 채택하고 있다. 허용하는 permit 규칙보다 금지하는 forbid 규칙이 우선순위를 가지므로, 제한 사항을 먼저 정의하고 예외적으로 허용 범위를 설정한다. 운영팀이 작성한 자연어 규칙 중 한도를 제한하거나 금지하는 내용은 forbid로, 권한을 부여하는 내용은 permit로 변환되며, 규칙의 성격에 따라 우선순위가 자동 결정된다.

사람이 읽는 정책 문서를 설계 단계 없이 바로 전사하여 에이전트 제어 코드로 바꿀 수 있다는 점이 실무적 핵심이다. 자연어 규칙 문서와 MCP 툴 매니페스트를 준비하여 Dogwood 정책으로 변환하는 워크플로를 구축하면 도입 비용을 최소화할 수 있다.