AI 에이전트는 권한을 갖지 않습니다 — 런타임(Runtime)이 갖습니다
요약
많은 멀티 에이전트 시스템이 프롬프트 내에 권한을 구현하는 아키텍처적 실수를 범하고 있으나, 프롬프트는 보안 경계가 될 수 없습니다. 보안은 확률적 추론 엔진인 LLM에 의존하는 대신, 결정론적인 런타임(Runtime) 계층에서 강제되어야 합니다.
핵심 포인트
- 프롬프트는 보안 경계가 아니며, LLM은 확률적 추론 엔진일 뿐 결정론적 권한 시스템이 아니다.
- 프롬프트 기반 권한 부여는 지침 무시, 환각, 컨텍스트 드리프트, 감사 불가능 등의 문제를 야기한다.
- 멀티 에이전트 환경에서는 에이전트 간 권한 해석 차이나 핸드오프 과정에서의 보안 지침 유실 위험이 크다.
- 안전한 아키텍처를 위해서는 추론을 담당하는 '인지 계층'과 권한을 강제하는 '결정론적 계층'을 분리해야 한다.
현재 많은 멀티 에이전트 시스템(Multi-Agent Systems)이 프롬프트(Prompt) 내부에 권한을 구현하고 있습니다. "당신은 CRM에 접근할 수 있습니다." "당신은 이메일을 보낼 수 있습니다." "결제 기록을 수정하지 마십시오." 이것은 현대 AI 시스템에서 가장 큰 아키텍처적 실수 중 하나가 되고 있습니다. 프롬프트는 보안 경계(Security boundary)가 아닙니다. 언어 모델(Language models)은 확률적 추론 엔진(Probabilistic reasoning engines)입니다. 이들은 계획, 요약, 추론 및 문맥 해석에 매우 뛰어납니다. 하지만 이들은 결정론적 권한 부여 시스템(Deterministic authorization systems)이 아닙니다. 만약 귀하의 애플리케이션 보안 모델이 LLM이 자연어 지침을 일관되게 준수하는지에 의존한다면, 귀하의 시스템은 실제로 런타임 거버넌스(Runtime governance)를 갖춘 것이 아닙니다. 그것은 단지 확률적 행동 형성(Probabilistic behavior shaping)일 뿐입니다.
문제점
제가 계속해서 보고 있는 것은 에이전트 자체가 특정 행동이 허용되는지 결정해야 하는 아키텍처입니다:
const prompt = 당신은 AI 에이전트입니다. 사용자가 고객 기록을 삭제하려고 합니다. 사용자의 권한은 다음과 같습니다: ${ permissions } . 이 행동을 허용해야 합니까? ;
const decision = await llm . generate ( prompt );
이것은 유연해 보입니다. 하지만 동시에 다음과 같은 몇 가지 주요 문제를 즉각적으로 발생시킵니다:
- 프롬프트 간의 충돌이 발생할 수 있음
- 컨텍스트 윈도우(Context windows)의 드리프트(Drift) 현상
- 지침이 무시될 수 있음
- 추론 과정에서 환각(Hallucinate)이 발생할 수 있음
- 모델에 따라 행동이 변함
- 권한 부여(Authorization)를 감사(Audit)할 수 없음
그리고 멀티 에이전트 시스템(Multi-agent systems)으로 넘어가면 상황은 더욱 악화됩니다. 한 에이전트가 다른 에이전트와 권한을 다르게 해석할 수 있습니다. 핸드오프(Handoffs) 과정에서 제약 조건이 유실될 수 있습니다. 컨텍스트 요약(Context summarization) 과정에서 중요한 보안 지침이 완전히 제거될 수도 있습니다. 이제 귀하의 거버넌스 모델은 확률적 에이전트가 여러 추론 단계에 걸쳐 자연어 정책을 올바르게 보존하는지 여부에 달려 있게 됩니다. 그것은 엔터프라이즈 아키텍처(Enterprise architecture)가 아닙니다.
런타임이 경계를 강제해야 합니다
AI는 무엇이 일어나야 하는지에 대해 추론해야 합니다. 런타임은 그것이 일어나는 것이 허용되는지를 결정해야 합니다. 이 구분은 매우 중요합니다. 거버넌스가 적용된 아키텍처는 다음과 같은 모습이어야 합니다:
if ( ! runtime . permissions .
verify ({ agent : agentId , action : " delete_customer " , resource : customerId })) { throw new UnauthorizedError (); } const result = await executor . deleteCustomer ( customerId ); LLM (Large Language Model)은 해당 동작을 요청할 수 있습니다. 결정론적 런타임 (Deterministic Runtime)은 실행이 허용되는지 여부를 결정합니다. 그것이 진정한 보안 경계 (Security Boundary)입니다.
인지 계층 (Cognitive Layer) vs 결정론적 계층 (Deterministic Layer)
현재 AI 생태계에서 발생하는 많은 혼란은 이 두 가지 책임을 하나로 섞어버리는 데서 기인한다고 생각합니다.
인지 계층 (Cognitive Layer):
- 추론 (Reasoning)
- 계획 (Planning)
- 해석 (Interpretation)
- 요약 (Summarization)
- 의사결정 지원 (Decision Support)
결정론적 계층 (Deterministic Layer):
- 권한 (Permissions)
- 스키마 검증 (Schema Validation)
- 실행 워크플로우 (Execution Workflows)
- 재시도 (Retries)
- 상태 전이 (State Transitions)
- 감사 로그 (Audit Logs)
- 정책 강제 (Policy Enforcement)
AI는 스스로를 통제해서는 안 됩니다. 프레임워크가 AI를 통제해야 합니다.
멀티 에이전트 시스템 (Multi-Agent Systems)에서 이것이 더 중요한 이유
단일 에이전트 시스템도 이미 디버깅하기 어렵습니다. 멀티 에이전트 시스템은 이 문제를 극적으로 증폭시킵니다:
- 컨텍스트 드리프트 (Context Drift)가 심화됨
- 핸드오프 (Handoff) 실패가 발생함
- 책임 소재가 모호해짐
- 상태를 추적하기가 더 어려워짐
- 에이전트 간에 권한 부여 가정이 유출됨
결정론적 런타임의 강제 (Deterministic Runtime Enforcement) 없이는, 운영 측면에서 거버넌스를 논리적으로 파악하는 것이 거의 불가능해집니다. 그리고 시스템이 실패했을 때, 사고 보고서는 다음과 같이 작성될 것입니다: "모델이 지침을 무시했습니다." 어떤 진지한 인프라 팀도 이를 보안 아키텍처로 받아들이지 않을 것입니다.
조직적 AI 시스템에는 런타임 권한이 필요합니다
AI 시스템이 실제 조직으로 도입됨에 따라, 거버넌스는 선택 사항이 아닌 필수 사항이 됩니다. 기업에는 다음과 같은 요소가 필요합니다:
- 감사 가능성 (Auditability)
- 추적 가능성 (Traceability)
- 결정론적 강제 (Deterministic Enforcement)
- 런타임 증거 (Runtime Evidence)
- 정책 검증 (Policy Validation)
- 관찰 가능성 (Observability)
자연어 지침만으로는 이러한 보장을 제공할 수 없습니다. 조직적 AI 시스템의 미래는 확률적 추론 (Probabilistic Reasoning)과 결정론적 거버넌스 (Deterministic Governance)를 분리하는 것에 달려 있을 것입니다.
AI 에이전트는 추론해야 합니다. 런타임은 통제해야 합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기