암묵적 신뢰의 종말: LlamaIndex 에이전트에 암호학적 정체성 도입
Source: Dev.to
프로덕션 환경—특히 금융, 의료, 혹은 기업 데이터 분야—에서 LLM이 다른 에이전트의 컨텍스트를 무조건 받아들이게 하는 것은 보안 취약점이 됩니다. “암묵적 신뢰”(에이전트 A가 런타임을 공유한다는 이유만으로 에이전트 B가 친절하다고 가정하는 것)는 더 이상 충분하지 않습니다.
오늘 우리는 Agent Mesh 통합 (llama-index-agent-agentmesh)을 발표합니다. 이는 에이전시 스택을 “실험적 스웜”에서 거버넌스와 신원 기반 메쉬로 근본적으로 강화하는 작업입니다.
핵심 변화: 신원 vs. 자격 증명
대부분의 에이전트 프레임워크는 신원을 정적인 문자열로 취급합니다. 우리는 당신이 누구인지와 행동할 권리를 분리하는 다른 접근 방식을 취합니다.
- 영구 신원 –
CMVKIdentity는 에이전트의 영구적인 암호화 “영혼” 역할을 합니다. 변하지 않습니다. - 일시적 자격 증명 – 기본 Agent Mesh 코어가 수명 주기를 관리합니다. 신원은 정적이지만, 요청 서명에 사용되는 자격 증명은 기본적으로 15분의 엄격한 TTL을 가집니다.
이는 에이전트의 키가 이론적으로 유출되더라도 몇 분 안에 무용지물이 된다는 뜻입니다. 시스템은 무중단 회전을 자동으로 처리합니다—예전에는 고급 마이크로서비스에만 제공되던 표준이 이제 AI 에이전트에도 적용됩니다.
프로토콜: 검증 후 신뢰
통합은 TrustedAgentWorker와 TrustGatedQueryEngine을 사용하여 “검증 후 신뢰” 워크플로를 강제합니다.
- 핸드셰이크 – 데이터 교환 전, 에이전트들은 암호화 핸드셰이크를 수행합니다.
TrustHandshake프로토콜은AgentRegistry(신뢰된 DID를 위한 “옐로우 페이지”)와 피어의 서명을 검증합니다. - 스폰서 책임 – 모든 행동은 위임 체인을 통해
sponsor_email에 추적됩니다. 아직 어떤 사용자가 에이전트를 트리거했는지는 모를 수 있지만, 누가 배포했으며 누가 그 행동에 책임이 있는지는 항상 알 수 있습니다.
작동 방식
코드는 깔끔하게 유지되지만 보안 태세는 확실히 바뀝니다. 아래는 표준 쿼리 엔진을 신뢰 레이어로 감싸는 예시입니다:
from llama_index.agent.agentmesh import (
CMVKIdentity,
TrustedAgentWorker,
TrustGatedQueryEngine,
)
# 1. 검증 가능한 신원 생성
# 통합이 영구 신원을 처리하고;
# 메쉬 코어가 15분 자격 증명 회전을 관리합니다.
identity = CMVKIdentity.generate('research-agent', capabilities=['search'])
# 2. 이 신원을 요구하는 에이전트 생성
worker = TrustedAgentWorker.from_tools(
tools=[search_tool],
llm=llm,
identity=identity,
)
# 3. 데이터 접근을 게이트
# 엔진은 이제 유효하고 만료되지 않은 자격 증명이 없는 에이전트의 쿼리를 거부합니다.
trusted_engine = TrustGatedQueryEngine(
query_engine=base_engine,
identity=identity,
)
다음 단계: OBO 로의 길
이번 릴리스는 에이전트‑간 신뢰와 스폰서 책임을 해결하지만, 우리는 이미 다음을 내다보고 있습니다. 현재 아키텍처는 파이프라인을 보호하지만, 다음 단계는 On‑Behalf‑Of (OBO) 흐름—엔드 유저의 컨텍스트를 메쉬를 통해 전달하여 세밀한 사용자별 접근 제어를 구현하는 것입니다.
우선, 이 통합을 통해 여러분의 에이전트는 더 이상 어두운 곳에서 실행되는 익명 스크립트가 아닙니다. 검증 가능하고, 책임이 명확한 서비스로서 프로덕션에 바로 투입할 수 있게 됩니다.
Pull Request #20644의 코드를 확인해 보세요.