샌드박스 API: AI 에이전트를 위한 격리된 코드 실행

에이전트 워크플로우에는 종종 결정론적 실행이 필요합니다. 에이전트가 통계 분석을 수행하거나 차트를 생성하거나 계산을 검증하거나 데이터셋을 변환해야 할 때, 정확한 결과값을 도출하는 결정론적 실행이 요구됩니다. 에이전트는 무엇을 계산할지 추론하고, 샌드박스가 이를 계산합니다.

Perplexity를 위해 구축되었으며, 이제 서비스로 제공됩니다.

저희는 이러한 패턴을 내부적으로 지원하기 위해 샌드박스를 구축했습니다. Perplexity의 금융 에이전트인 Perplexity Computer와 심층 리서치 모두 샌드박스 환경 내에서 코드를 실행합니다. Computer는 분당 수천 개의 세션을 실행합니다. 금융 에이전트는 실시간 시장 데이터 계산을 위해 샌드박스를 사용합니다. 심층 리서치는 워크플로우 중간에 파일 생성, 데이터 처리 및 형식 변환을 위해 샌드박스를 활용합니다. 샌드박스 API를 통해 동일한 실행 환경을 독립형 서비스로 이용할 수 있습니다.

영구 파일 시스템을 갖춘 상태 유지 세션

각 세션은 자체적으로 격리된 Kubernetes 파드에서 실행됩니다. 개발자는 기반 인프라를 직접 관리할 필요가 없으며, 프로비저닝, 네트워킹 및 정리는 저희가 처리합니다. 지원되는 언어는 Python, JavaScript, SQL이며, 세션별로 런타임 패키지를 설치할 수 있습니다.

세션은 상태를 유지합니다. FUSE를 통해 영구 파일 시스템이 마운트됩니다. FUSE 데몬은 파일 작업을 가로채어 에이전트가 읽기, 쓰기, 파일 목록 확인 및 세션 생성 이후의 수정 사항을 추적할 수 있도록 변환합니다. 한 단계에서 생성된 파일은 이후 단계에서도 사용할 수 있습니다. 장기 실행 워크플로우는 일시 중지되었다가 몇 시간 후에 다시 시작되어도 전체 상태가 그대로 유지됩니다. 각 세션은 최대 5개의 백그라운드 프로세스를 지원합니다.

기본적으로 제로 트러스트

보안 아키텍처는 기본적으로 신뢰할 수 없는 코드를 전제로 합니다. 샌드박스는 네트워크에 직접 액세스할 수 없습니다. 아웃바운드 연결이 필요한 경우 트래픽은 샌드박스 외부에서 실행되는 이그레스 프록시를 통과합니다. 프록시는 대상 도메인을 기반으로 아웃바운드 요청을 일치시키고 적절한 자격 증명을 주입합니다. 샌드박스 내부에서 실행되는 코드는 원시 API 키나 비밀 정보에 결코 액세스할 수 없습니다. 내장된 타임아웃 및 리소스 제한을 통해 실행 범위를 엄격히 제한합니다.

오케스트레이션 계층으로서의 에이전트 API

샌드박스 API는 에이전트 API 내의 도구로 제공될 예정이며, 이를 통해 오케스트레이션 런타임이 워크플로우 중간에 결정론적 코드 실행을 위임할 수 있게 됩니다. 에이전트는 무엇을 계산할지 결정하고, 샌드박스로 전송하며, 결과값을 관찰하고, 추론 루프를 계속합니다. 동일한 API 키와 동일한 크레딧 세트가 사용됩니다.

샌드박스 API가 곧 출시됩니다. 곧 비공개 베타를 시작할 예정이며, 문서는 docs.perplexity.ai에서 확인하실 수 있습니다.