본문으로 건너뛰기
r/LLMDevs조회 1

LLM 판정을 정책 함수로 분리한 Canonopylabs

Canonopylabs가 LLM은 사실만 추출하고 정책 함수가 근거와 함께 결정을 내리는 구조를 제안했습니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

에이전트의 정책 검토가 지연되는 문제를 모델의 확률적 판정 대신 실행 가능한 정책 함수로 분리하는 접근이 제시됐습니다. LLM은 대화에서 사실만 추출하고, 함수가 허용 행동과 적용 조항을 결정하며 누락 사실은 undetermined로 에스컬레이션합니다. 규칙 인용을 원문 일치로 강제하고 충돌 규칙을 보고해 정책의 모순을 드러내며, 공개 benchmark에서 167건 일치와 12,000개 적대적 사례 무위반을 기록했다고 합니다. 다만 사실 추출 오류와 사건 간 집계는 보장 범위 밖에 있습니다.

실용적 조언

  • 정책 문서를 규칙으로 변환할 때 각 조건의 인용문이 원문에 그대로 존재하는지 규칙 생성 단계에서 검사해야 합니다. 누락된 사실은 false로 치환하지 말고 undetermined로 보류해 사람에게 넘겨야 합니다. 판정 영수증에는 적용된 사실과 조항을 함께 기록해야 추출 오류와 정책 실행 오류를 분리할 수 있습니다.
  • 정책에 서로 다른 기한이나 결과가 겹치는지 적대적 사례와 문서 내부 규칙 쌍으로 점검해야 합니다. 충돌을 발견하면 사람이 우선순위를 정하고 그 결정을 이후 실행에서 재검사하도록 저장해야 합니다. 시간 창이나 사건 간 집계처럼 아직 지원하지 않는 조건은 자동 승인 대신 에스컬레이션해야 합니다.

섹션별 상세

01
작성자는 에이전트 검토가 막히는 핵심 원인을 모델 품질보다 금지 행위를 보장할 수 없는 정책 실행 구조에서 찾았습니다. LLM은 대화에서 사실을 추출하지만 최종 판정은 하지 않고, 정책 문서에서 만든 함수가 입력된 사실을 받아 허용 행동과 판정 근거 문장을 반환합니다. 이 구조는 같은 입력을 반복 실행할 수 있고 결정마다 적용 조항과 판정 사실을 영수증처럼 남긴다는 점에서 감사와 승인에 필요한 재현성을 높입니다.
02
정책 초안 작성은 LLM이 맡되 인용 검사는 입력 단계에서 강제해야 한다는 경험이 제시됐습니다. 각 규칙의 인용문이 원문 정책의 verbatim substring이 아니면 해당 규칙을 거부해, 모델이 정책에 없는 그럴듯한 문장을 덧붙이는 문제를 차단합니다. 인용을 나중에 문서화하는 방식보다 규칙 생성 과정에서 원문 일치 여부를 검사하는 편이 정책과 실행 규칙의 연결을 유지합니다.
03
실제 실패의 주요 원인은 틀린 사실보다 누락된 사실이었습니다. 조건에 필요한 값이 없을 때 첫 구현은 이를 false로 간주해 조용히 승인을 냈지만, 수정된 방식은 undetermined 상태로 전환한 뒤 사람에게 에스컬레이션합니다. 따라서 판정 결과에는 모델이 판단한 사실이 함께 기록되고, 사실 추출 단계의 오류와 정책 판정 단계의 보장을 구분합니다.
04
공개 대학 경비 정책을 그대로 처리한 결과 60일 동안 카드에 보류하라는 규칙과 120일 뒤 과세 보상으로 처리하라는 규칙이 우선순위 없이 겹쳤습니다. 시스템은 충돌하는 규칙 쌍과 각각을 뒷받침하는 문장을 인증 보고서에 남기고, 사람이 한 번 내린 우선순위 결정을 이후 실행에서 다시 확인하도록 저장합니다. 이 사례는 정책 집행기가 문서 내부의 모순을 숨기지 않고 승인 전에 드러내야 한다는 점을 보여줍니다.
bash
claude mcp add --transport http warranty https://api.canonopylabs.com/mcp --header "X-API-Key: <key>"

Claude에 HTTP 방식의 MCP 서버를 warranty라는 이름으로 등록하고 API 키를 헤더에 넣어 Canonopylabs 엔드포인트에 연결합니다.

05
보장은 주어진 사실을 기준으로 한 결정에만 적용되며, 사실 추출 자체는 여전히 LLM의 책임으로 남습니다. 여러 사건을 합산하거나 시간 창을 계산하는 조건은 아직 처리하지 않고 에스컬레이션하며, 작성자는 이 방식이 OPA나 Cedar의 대체재가 아니라고 선을 그었습니다. 공개 support-agent benchmark에서는 자체 실행 환경과 167건 모두 일치했고, 12,000개 적대적 사례에서 위반이 없었으며, 답안 키에서 8개 오류를 찾았다고 밝혔습니다.

용어 해설

실행 가능한 정책(Executable Policy)
정책 문서를 사람이 읽는 규칙에 머물게 하지 않고, 입력된 사실을 조건식으로 평가해 허용된 행동과 적용 조항을 반환하는 함수로 바꾼 방식입니다. 동일한 입력에는 동일한 판정이 나와 반복 실행과 인증이 가능합니다.
미결정 상태(Undetermined)
정책 조건에 필요한 사실이 입력에 없을 때 참이나 거짓으로 임의 판정하지 않고 결론을 보류하는 상태입니다. 이후 사람에게 에스컬레이션해 누락된 사실을 확인하도록 하므로, 정보 부족을 자동 승인으로 처리하는 오류를 막습니다.
적대적 테스트 사례(Adversarial Cases)
정책 판정기가 예상치 못한 입력이나 규칙 우회 상황에서도 잘못된 허용을 내리지 않는지 확인하는 테스트 사례입니다. 원문에서는 12,000개 사례를 사용해 위반 발생 여부를 측정했습니다.
코드로 표현한 정책(Policy as Code)
자연어 정책을 조건과 결과를 가진 실행 규칙으로 변환해 소프트웨어처럼 반복 평가하는 접근입니다. 규칙마다 원문 인용을 연결하고 판정 결과에 적용 조항을 남기면 정책 근거와 실행 결과를 함께 재검증할 수 있습니다.

언급된 도구

Canonopylabs중립링크

정책 문서를 실행 가능한 규칙으로 변환하고, 허용 행동과 적용 조항을 반환하며, 인증 보고서와 결정 영수증을 생성하는 연구용 서비스입니다.

MCP중립링크

Claude에서 Canonopylabs의 정책 판정 기능을 호출하기 위한 연결 방식으로 사용됩니다.

REST중립

작성자가 Canonopylabs가 제공하는 연결 방식 중 하나로 언급했습니다.

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 26.수집 2026. 08. 26.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.