AI 에이전트를 위한 로컬 우선 액션 게이팅 (pic-standard)
요약
PIC(Proposed Local-first Action Gating)는 AI 에이전트가 고위험 액션을 실행하기 전, 의도, 출처, 증거를 검증하는 로컬 우선 프로토콜입니다. 이 시스템은 모든 중요한 도구 호출에 대해 입증 책임을 강제하며, 검증 실패 시 안전하게 작동을 중단(fails closed)합니다. TypeScript 구현이 공개되었으며, Go와 Rust가 다음 주요 개발 트랙으로 예정되어 있습니다.
핵심 포인트
- AI 에이전트의 고위험 액션 실행 전 의도/출처/증거 검증 강제
- 검증 실패 시 안전하게 작동을 중단(fails closed)하는 로컬 우선 프로토콜
- TypeScript 구현체(`pic-standard-ts`)가 공개되어 개발 접근성 향상
- 프롬프트 주입 및 무분별한 도구 호출 공격 방어에 효과적
AI 에이전트를 위한 로컬 우선 액션 게이팅. 모든 고영향 도구 호출 실행 전에 의도(intent), 출처(provenance), 증거(evidence)를 검증합니다.
기여자(Contributors) 모집 중입니다. PIC는 첫 외부 기여자 및 공동 유지보수자를 모집하고 있습니다. 기여 방법은 'call for contributors'와 고정된 good-first 이슈부터 시작하세요. TypeScript는 이제 pic-standard-ts에서 공개 구현이 가능합니다.
; Go와 Rust가 다음 고가치 구현 트랙입니다.
v0.9.0 (2026-09-21): 안정적인 크로스-구현 마일스톤. PIC는 더 이상 Python 참조 구현에만 머무르지 않습니다: 공개 TypeScript 검증기인 pic-standard-ts가
canonicalization, core, 그리고 trust_sanitization의 공유된 적합성 코퍼스(conformance corpus)를 통과합니다. 이 릴리스는 또한 독립적인 프로토콜 스트레스 테스트 작업 및 내부 크로스-구현 검사에서 강화되었으며, 여기에는 더 엄격한 호스트 언어 canonicalization 규칙과 규범적 차분 적합성 계약(normative differential-conformance contract)이 포함됩니다. 자문 차분 CI는 이제 main을 대상으로 하는 PR에서 Python 및 TypeScript 엔벨로프를 비교합니다.
증거 모드 TypeScript 패리티(Evidence-mode TypeScript parity)는 여전히 v0.9.x 완료 항목입니다. 전체 v0.9.0 스토리는 CHANGELOG를 참고하세요.
PIC는 AI 에이전트가 중요한 모든 액션을 실행하기 전에 입증하도록 강제하는 가볍고, 로컬 우선의 프로토콜입니다. 에이전트는 의도(intent), 영향(impact), 출처(provenance), 증거(evidence)를 선언해야 하며; PIC는 모든 것을 검증하고 무언가 잘못되면 닫힘 실패(fails closed) 합니다.
PIC는 에이전트의 신원이나 위임 인프라가 아닙니다. PIC는 고영향 도구 호출을 지금 실행할 자격이 되는지 결정하는 액션 기반 검증 계약입니다.
더 이상 환각(hallucinations)이 계좌 이체로 변하지 않습니다. 더 이상 프롬프트 주입(prompt injections)이 데이터 내보내기를 유발하지 않습니다.
예시 — PIC가 차단할 때: 슬랙 메시지가 LLM 에이전트에게 500달러 결제를 요청합니다. PIC는 에이전트가 다음을 입증하도록 요구합니다: 이 지침은 어디에서 왔는가? 출처는 신뢰할 수 있는가? 인보이스가 진짜라는 증거가 있는가? 슬랙 메시지에는 신뢰할 수 있는 출처(provenance)가 없으며, 주장에 대한 뒷받침 증거도 없습니다 — PIC는 block을 반환합니다.
. 결제 도구는 절대 실행되지 않습니다.
- 왜 PIC인가?
- 빠른 시작(Quickstart)
- PIC 계약(The PIC Contract)
- 작동 방식(How It Works)
- 증거 검증(Evidence Verification)
- 키링(Keyring) (신뢰할 수 있는 서명자/Trusted Signers)
- 구현 사례(Implementations)
- 통합(Integrations)
- RFC 및 선행 기술(RFC & Prior Art)
- 로드맵(Roadmap)
- 프로젝트 정보(Project info)
- 기여하기(Contributing)
가드레일(Guardrails)은 모델이 말하는 것을 제한합니다. PIC는 검증 가능한 출처(verifiable provenance)와 증거를 기반으로 에이전트가 수행할 수 있는 행동을 제한합니다.
PIC는 고위험 액션(high-impact actions)의 경우 실행 전에 정당화되어야 하는 에이전트 프레임워크, 내부 도구 게이트웨이 및 프로덕션 시스템에 구축되었습니다.
프롬프트 주입 공격 및 무분별한 도구 호출을 차단합니다.
액션 경계(action boundary)에서 작동합니다.
100% 로컬로 작동: 클라우드 제로, 데이터가 기기를 벗어나지 않습니다.
몇 분 만에 스택에 플러그인: LangGraph, MCP, OpenClaw, Cordum
오픈 소스 (Apache 2.0): 감사하고(audit) 포크하고(fork), 소유하세요(own it).
1분 이내에 샘플 고위험 제안서(high-impact proposal)를 대상으로 로컬에서 검증기(verifier)를 사용해 보세요.
pip install pic-standard
# 예시 제안서를 검증합니다
pic-cli verify examples/financial_irreversible.json
...
해시 예제에 키링이 필요한 이유는 무엇인가요? v0.8.3 증거 의미론(evidence semantics) 하에서, 일치하는 해시는 참조된 파일 바이트의 콘텐츠 무결성(content-integrity)을 증명하지만, 그 자체만으로는 출처 신뢰도(provenance trust)를 향상시키지 못합니다. 서명 증거(signature evidence)는 PIC_KEYS_PATH에 대해 검증되어 돈과 관련된 액션에 권한 기반의 신뢰도 향상을 제공합니다. 자세한 내용은 docs/spec-evidence.md §8 및 이슈 #133을 참조하세요.
선택적 추가 기능:
pip install
| 필드 | 목적 |
|---|---|
`intent` | 에이전트가 하려는 것 |
`impact` | 위험 등급: `money`, `privacy`, `irreversible`, `compute`, ... |
`provenance` | 결정을 내리는 데 영향을 준 입력 (신뢰 수준 포함) |
`claims` + `evidence` | 에이전트가 주장하는 내용과 이를 뒷받침하는 증거 |
`action` | 실제 도구 호출 (도구 바인딩) |
**규칙:** 높은 영향도의 제안에 대해서는 최소한 하나의 주장이 **신뢰할 수 있는(trusted)** 출처의 증거를 참조해야 합니다. 실패 시 차단(Fail-closed).
graph TD
A[사용자 입력 / 외부 컨텍스트] --> B[AI 에이전트 / 플래너]
C[내부 데이터 / 시스템 컨텍스트] --> B
...
PIC는 **실행 전 액션 검증 계약(pre-execution action-verification contract)**입니다. 이는 에이전트 안전 스택 내의 병렬 표면이며, 공유 기반 구조의 원시 요소가 아닙니다. PIC는 액션 경계에서 높은 영향도의 도구 호출을 *지금* 실행할 자격이 있는지 결정합니다. 실행 후 시스템(post-execution systems) — 양자 영수증(bilateral receipts), 서명된 감사 로그(signed audit logs), 신뢰/평판 점수(trust/reputation scores) — 은 이미 발생한 것을 기록하며 구조적으로 구별됩니다.
| 우려 사항 | PIC (실행 전) | 영수증 / 감사 / 평판 시스템 (실행 후) |
|---|---|---|
| 작동 시점 | 액션 실행 전 — 실패 차단 게이트(fail-closed gate) | 액션 실행 후 - 서명된 기록 |
| 결정 출력 | `allow` / `block` / `require-more-evidence` | 서명된 영수증, 로그 항목, 평판 변화량 (reputation delta) |
| 송금 차단 여부? | 예(Yes) | 아니요 — 발생했다는 것을 기록함 |
| 신뢰 모델 | 로컬 키링(Local keyring), 운영자 소유 루트(operator-owned roots), 주입 가능 리졸버(injectable resolver) | 종종 공유 신뢰 네트워크 또는 교차 조직 연합에 의존 |
| 위협 초점 | 프롬프트 인젝션, 환각(hallucination), 맹목적 도구 호출 | 감사 가능성(Auditability), 책임 소재(accountability), 사후 규정 준수(ex-post compliance) |
| 종속 표면 | 외부 전송 없음 — 완전히 로컬에서 실행 | 종종 공유 표준화 기반 구조, 평판 집계기 또는 외부 검증자 네트워크에 의존 |
PIC의 사전 실행 표면(pre-execution surface)은 의사 결정 측면에서 Article 12 스타일의 추적성(traceability)에 기여할 수 있습니다. 검증된 액션 제안(Action Proposal)은 구조화된 의사 결정 아티팩트이며, 고위험 AI 시스템의 기록 보관 및 로깅 아키텍처에 통합될 수 있습니다. PIC 자체만으로는 Article 12 준수를 의미하지 않으며, Article 12와 Article 19에서 요구하는 광범위한 시스템 수준의 로깅 및 보존 의무를 보완합니다. 동일한 기본 요소(primitives)에 바인딩된 사후 실행 증명 표면(post-execution attestation surface)은 `docs/attestation-object-draft.md`에 작성되어 있습니다.
또한, 설계상 로컬 우선(local-first)이며 운영자 통제(operator-controlled)를 유지합니다.
**간단한 규칙:** 시스템이 “이 액션을 실행해도 될까요?”라고 묻는 것이 PIC의 표면입니다. 만약 시스템이 “이 액션이 실행되었나요, 그리고 에이전트의 평판은 어떤가요?”라고 묻는다면, 이는 보완적인 사후 실행 표면이며, PIC가 그 안에 위치하는 계층(layer)은 아닙니다.
PIC는 결정론적 증거 검증을 지원합니다. 권한을 지닌 서명 증거(Authority-bearing signature evidence)는 구성된 키링(keyring)을 통해 검증되며, 일치하는 경우 `provenance[].trust`를 인메모리에서 업그레이드할 수 있습니다. 해시 증거(Hash evidence)는 참조된 바이트의 내용 무결성만을 확립하며, 그 자체만으로는 신뢰도를 업그레이드하지 않습니다. 자세한 내용은 `docs/spec-evidence.md` 섹션 8을 참조하십시오.
| 유형 | 설명 |
|---|---|
`hash` | 파일 아티팩트(`file://...`)에 대한 SHA-256 검증 |
`sig` | 신뢰 키링을 통한 Ed25519 서명 검증 |
Ed25519 서명 검증에는 `pip install "pic-standard[crypto]"`가 필요합니다.
해시 증거 검증
pic-cli verify examples/financial_hash_ok.json --verify-evidence
서명 증거 검증 (키링 필요)
...
전체 가이드: docs/evidence.md
**정규화(Canonicalization) (v0.8.0+):** PIC Canonical JSON v1 (PIC-CJSON/1.0)은 PIC가 JSON 값을 해시하거나 서명할 때 사용되는 바이트 단위의 직렬화 규칙을 정의합니다. 규범적 사양(normative spec)은 `docs/canonicalization.md`입니다.
; 순수 표준 라이브러리 참조 구현체는 `pic_standard.canonical`에 있습니다.
(`canonicalize()`,
`sha256_hex()`,
`intent_digest_hex()`
)). v0.8.0에서는 이는 추가적인 기능입니다. 기존의 서명 검증 경로는 v0.7.x와 마찬가지로 계속 작동하며, 어테스테이션 객체 기반 서명에 와이어링 캐노니컬라이제이션(wiring canonicalization)은 추후 릴리스가 예정되어 있습니다. Conformance vectors는 `conformance/canonicalization/` 아래에 위치합니다.
그리고 `PIC Conformance` CI 작업에서 모든 PR을 통해 실행됩니다.
서명 증거에는 만료 및 폐기 지원이 가능한 신뢰할 수 있는 공개 키들의 키링(keyring)이 필요합니다.
pic-cli keys # 현재 키링 검사
pic-cli keys --write-example # 시작 키링 생성
**사용자 정의 리졸버 (Custom resolvers) (v0.7+):** v0.7부터 신뢰 해상도(trust resolution)는 주입 가능하고 로컬 우선 방식입니다. PIC는 더 이상 서명당 기본 키링을 다시 로드하지 않으며, 사용자 정의 리졸버가 검증기(verifier)와 파이프라인에 직접 연결될 수 있습니다. 자체 신뢰 백엔드 또는 사전 로드된 신뢰 소스(HSM 기반 서비스, Vault 관리 키, 캐시된 원격 키링 등)를 사용하려면 `KeyResolver` 프로토콜을 구현하십시오:
`from pic_standard import KeyResolver, StaticKeyRingResolver`
**신뢰 제어 (Trust controls) (v0.9.0a2+):** `strict_trust=True`는 안전한 기본값입니다. 모든 인바운드 출처(provenance) 신뢰는 `untrusted`로 정리되며, 현재 서명 증거와 같이 권위가 있는 증거 검증만이 일치하는 출처 신뢰를 업그레이드할 수 있습니다. 레거시 호환 모드 (`strict_trust=False`)는 여전히 호출 가능하며 구성 시 `PICLegacyTrustModeWarning`을 방출합니다. 마이그레이션 가이드에 대해서는 docs/migration-trust-sanitization.md를 참조하십시오.
전체 가이드: docs/keyring.md
**Python 레퍼런스 구현:** 이 저장소는 PyPI에서 `pic-standard`로 게시되었습니다.**TypeScript 구현:** `pic-standard/pic-standard-ts`이며, `canonicalization`, `core`, 및 `trust_sanitization` 모드에 대한 공유 컨포먼스 코퍼스를 전달합니다. 이 저장소의 권고적 차분 CI는 `main`을 대상으로 하는 모든 PR에서 Python과 TypeScript 엔벨로프를 비교합니다.**다음 고가치 트랙:** Go와 Rust 구현입니다. 하나를 소유하고 싶다면 기여자 호출(call for contributors)을 참조하십시오.
graph TD
A[Shared conformance corpus] --> B[Python reference verifier]
A --> C[TypeScript verifier]
...
Guard any tool node with `PICToolNode`
:
`pip install "pic-standard[langgraph]"`
`PICToolNode`
이제 `verify_evidence`, `strict_trust`, `policy`, 그리고 `key_resolver`를 수락하여 전체 파이프라인 구성을 지원합니다 (v0.7.5+).
실패 시 닫힘(fail-closed) 기본값, 요청 상관관계(request correlation), DoS 제한, 증거 격리(evidence sandboxing) 기능을 갖춘 엔터프라이즈 도구 보호:
`pip install "pic-standard[mcp]"`
전체 가이드: docs/mcp-integration.md
OpenClaw AI 에이전트를 위한 TypeScript 플러그인 (`pic-gate`, `pic-init`, `pic-audit` 훅):
pic-cli serve --port 7580
cd integrations/openclaw && npm install && npm run build
전체 가이드: docs/openclaw-integration.md
PIC 검증을 실패 시 닫힘 방식의 세 방향 라우팅(three-way routing)으로 Cordum 워크플로우 게이트 단계로 제공하는 Go Pack.
전체 가이드: docs/cordum-integration.md
Python 외 통합을 위해 PIC는 HTTP 브리지를 노출합니다:
pic-cli serve --port 3100
POST /verify — 액션 제안 검증
GET /health — 활성 상태 확인
...
범위, 위협 모델(threat model), 보안 속성(security properties), 적합성 수준(conformance levels), 그리고 선행 기술 차별화를 다루는 공식 명세서. SHA-256 지문 매니페스트를 가진 방어적 간행물로 발행되었습니다: `docs/RFC-0001.SHA256`
.
로컬에서 검증하기: `sha256sum -c docs/RFC-0001.SHA256`
**표준 어휘(Canonical Vocabulary)** — 외부 교차 참조 및 레지스트리에서 인용하는 PIC 용어의 권위 있는 용어집.
- Core verifier, CLI, schema, policy system
- 증거 검증 (Evidence verification) (SHA-256 해시 + Ed25519 서명)
- 앵커 통합(Anchor integrations) (LangGraph, MCP, OpenClaw, Cordum)
- 주입 가능한 키 해결 및 핫 패스 수정 (Injectable key resolution + hot path fix) (v0.7)
- 신뢰성 강화 및 증명 객체 초안 (Trust hardening + attestation object draft) (v0.7.5)
- 표준화 명세(Canonicalization spec) (PIC Canonical JSON v1) + 참조 구현 (reference implementation) (v0.8.0)
- 초기 적합성 스위트 (Initial conformance suite) (표준화 + 핵심 모드)와 CI 러너 (CI runner) (v0.8.0)
- `canonicalization`, `core`, 및 `trust_sanitization`을 위한 TypeScript 로컬 검증기
- Cross-implementation differential CI (Python 대 TypeScript 의미론적 래퍼)
- Evidence 모드 TypeScript 일치성
- Go/Rust 검증기 일치성
- 규범적 의미론 (MUST/SHOULD 사양 문서)
- OpenAPI 사양 + 가드 강화 (구조화된 감사 로그, 요청 상관관계)
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기