AI 에이전트가 행동하기 전에: 의도, 출처(Provenance), 증거를 위한 공유 계약
요약
본 글은 AI 에이전트의 행동을 실행하기 전에 의도, 출처(Provenance), 증거를 검증하는 PIC Standard라는 프로토콜을 소개합니다. 이 표준은 에이전트가 수행하려는 모든 행동 제안에 대해 구조화된 계약을 요구하며, 검증기가 이를 확인하여 안전성을 확보합니다. 특히 높은 영향도의 행동은 신뢰할 수 있는 출처와 증거를 필요로 하며, 이는 시스템의 안정성과 책임성을 크게 높입니다.
핵심 포인트
- PIC Standard는 에이전트 행동 전 의도/출처/증거 검증을 위한 프로토콜이다.
- 행동 제안에는 선언된 의도, 영향 클래스, 출처(provenance), 증거가 포함되어야 한다.
- 검증기는 계약과 비교하여 안전성을 확인하고, 신뢰할 수 없는 입력은 차단한다.
- PIC는 여러 프레임워크에 걸쳐 통일된 행동 계약을 제공하는 공유 프로토콜이다.
저는 AI 에이전트의 행동이 발생하기 전에 검증 가능하도록 만드는 Apache-2.0 프로토콜인 PIC Standard (Provenance & Intent Contracts)를 유지하고 있습니다.
아이디어
에이전트가 결과(결제 송금, 개인 데이터 내보내기, 리소스 삭제 등)를 가져야 할 때, PIC는 에이전트에게 먼저 그 행동을 구조화된 형태로 제안하도록 요청합니다. 이 제안에는 선언된 의도(declared intent), 행동의 영향 클래스(impact class), 입력값이 어디서 왔는지(출처/provenance), 의존하는 주장(claims), 그리고 그 주장을 뒷받침하는 증거가 포함됩니다.
그러면 검증기(verifier)가 이 제안을 계약과 비교하여 확인합니다. 높은 영향도의 행동은 그 주장에 대한 신뢰할 수 있는 출처를 필요로 합니다. 구성된 체크에 따라, 검증기는 증거를 검증하고 제안을 예상되는 도구(tool)에 바인딩합니다. 결과는 허용(allow), 차단(block), 또는 추가 증거 요구(require-more-evidence)이며, 검증할 수 없는 모든 것은 폐쇄적으로 실패(fails closed)합니다. 가드 통합(LangGraph, MCP tool guarding, OpenClaw, Cordum)은 도구 실행 전에 결정을 강제하며; HTTP 브리지를 사용하는 애플리케이션은 반환된 결정을 반드시 강제해야 합니다. 모든 것이 로컬에서 실행되며, 신뢰 루트는 운영자(operator)의 통제 하에 있습니다.
암호학이 이 프로세스를 지원하지만, 그것이 핵심은 아닙니다. 중요한 것은 행동과 그 배후의 권한이 무언가가 발생하기 전에 기계가 확인할 수 있는 것이 된다는 점입니다.
공유 프로토콜이 필요한 이유
에이전트는 여러 언어와 프레임워크로 구축됩니다. 만약 각자가 자체적인 안전 체크를 발명한다면, 어느 누구도 그들이 동의하는지 말할 수 없습니다. PIC는 하나의 행동 계약과 공유된 준수 코퍼스(shared conformance corpus)를 정의합니다: 동일한 제안이 동일한 예상 결정과 함께 모든 구현에 대해 실행됩니다. 오늘날 Python 참조 구현체와 TypeScript 검증기 모두 해당 코퍼스를 통해 정규화(canonicalization), 핵심 검증, 신뢰 정제(trust sanitization)를 통과하며, 자문적 차분 CI(advisory differential CI)가 그 결과를 비교합니다.
구체적인 예시 하나
Slack 메시지가 에이전트에게 500달러짜리 청구서 지불을 지시합니다. 이 제안의 출처(provenance)는 신뢰할 수 없는 채팅 메시지이며, 청구서 주장을 뒷받침하는 검증 가능한 것은 아무것도 없습니다. PIC는 이 금전적 영향을 미치는 행동에 대해 차단(block)을 반환하고, 결제 도구가 PIC에 의해 보호될 때 지불은 실행되지 않습니다. 동일한 신뢰할 수 없는 입력을 사용한 읽기 전용 검색은 허용됩니다: 요구사항은 영향도 클래스(impact class)에 따라 다릅니다.
경계 (The boundary)
의도를 선언하는 것이 그 제안이 사용자가 원했던 것을 충실히 나타낸다는 것을 증명하지는 않습니다. PIC는 선언된 행동과 이를 뒷받침하는 권한을 검사 가능하게 만들고, 실제로 보호되는 도구 경로만 보호합니다.
현재 상황 및 기여할 수 있는 부분 (Where we are, and where you come in)
v0.9.0(2026-09-21)은 RFC-0001 사양과 서명된 릴리스를 갖춘 첫 번째 크로스 구현 마일스톤입니다. 외부 기여자들은 이미 일치성 벡터(conformance vectors), CLI 기능, CI 작업을 완료했으며, 현재 v1.0을 안정화하고 있습니다.
책임감 있는 에이전트 행동을 위한 이식 가능한 표준 구축에 도움을 주고 싶다면, 가장 좋은 첫 번째 기여는 문서 작업입니다:
- 초보자용 이슈 (Good first issues): 실제 예시(차단된 결제, 허용된 읽기 전용 쿼리)를 설명하거나, 예시 인덱스를 확장하거나, 초심자가 필요로 하는 설정 및 문제 해결 가이드를 작성해 보세요. 각 항목은 검사하기 위한 정확한 명령어가 포함된 단일 파일입니다: good first issues.
- 경험이 더 많은 경우: TypeScript 증거 모드(evidence mode), Go 또는 Rust 검증기(verifier), 또는 보안 검토를 진행할 수 있습니다. start-here 토론에서 어떤 부분이 흥미로운지 알려주시면, 안정적인 기준선에 대한 제한된 첫 단계를 합의하겠습니다.
Repo: https://github.com/pic-standard/pic-standard
TypeScript: https://github.com/pic-standard/pic-standard-ts
Start here: [https://github.com/pic-standard/pic-standard/discussions/117]
코드를 작성하는 것보다 무엇이 혼란스러운지 말씀해 주시는 것이 더 유용할 때도 있습니다.
본 게시물은 AI의 도움을 받아 초안을 작성했으며, 제가 검토하고 편집했습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기