AI 에이전트(Agent) 개발, 이제 클라우드플레어(Cloudflare) 샌드박스(Sandbox)에서!

by DD
1개월 전
조회수 14

클라우드플레어(Cloudflare)는 AI 에이전트(Agent)를 위한 안전하고 확장 가능한 개발 환경인 샌드박스(Sandbox)클라우드플레어 컨테이너(Cloudflare Containers)를 정식 출시함

PTY 지원(PTY Support), 지속적인 코드 인터프리터(Persistent Code Interpreter), 파일 시스템 감시(Filesystem Watching) 등 다양한 기능을 통해 에이전트(Agent)의 개발 생산성 향상

안전한 자격 증명 주입(Secure Credential Injection), 스냅샷(Snapshots), 액티브 CPU 가격 책정(Active CPU Pricing) 등을 통해 보안, 성능, 비용 효율성을 확보

스냅샷(Snapshots) 기능은 아직 출시 전이며, R2를 활용한 백업 및 복구 기능으로 세션 상태 복원 가능

샌드박스(Sandbox)는 개발 환경을 제공하여 에이전트(Agent)가 실제 엔지니어링 작업을 수행하도록 지원하며, SDK 0.8.9 버전으로 제공됨

샌드박스(Sandbox) 아키텍처: 격리된 개발 환경

클라우드플레어(Cloudflare) 샌드박스(Sandbox)는 클라우드플레어 컨테이너(Cloudflare Containers)를 기반으로 하는 격리된 환경을 제공한다. 각 샌드박스(Sandbox)는 고유한 파일 시스템, 프로세스 공간, 네트워크 설정을 가지며, 외부 환경으로부터 완벽하게 분리된다.

온디맨드(On-demand) 시작: 요청 시 자동으로 시작되고, 유휴 상태에서는 자동으로 종료되어 자원 효율성(Resource Efficiency)을 높임

프로그래밍 가능한 인터페이스(Programmable Interface): `exec`, `gitClone`, `writeFile` 등 다양한 API를 통해 샌드박스(Sandbox)를 제어

안전한 자격 증명 주입(Secure Credential Injection): 데이터 격리 아키텍처(Data Isolation Architecture)를 통해 에이전트(Agent)가 자격 증명에 직접 접근하는 것을 방지하고, 안전하게 외부 서비스에 접근할 수 있도록 지원

PTY 지원(PTY Support)과 터미널(Terminal) 환경

샌드박스(Sandbox)는 PTY(Pseudo-Terminal) 지원을 통해 에이전트(Agent)와 개발자에게 실제 터미널과 유사한 환경을 제공한다. 이는 기존의 요청-응답 방식의 셸(Shell) 접근 방식의 한계를 극복하고, 실시간 스트리밍(Real-time Streaming)과 상호 작용을 가능하게 한다.

xterm.js(xterm.js) 기반 터미널: 웹 소켓(WebSocket)을 통해 연결되어, 실시간 입출력(Real-time I/O)을 지원

세션 지속성(Session Persistence): 터미널 세션은 샌드박스(Sandbox) 내에서 독립적으로 유지되며, 재접속 시 이전 상태를 복원

디버깅 편의성(Debugging Convenience): 에이전트(Agent)와 개발자는 터미널을 통해 실시간으로 디버깅하고, 개발 서버(Development Server)의 로그를 확인 가능

지속적인 코드 인터프리터(Persistent Code Interpreter)의 활용

샌드박스(Sandbox)는 지속적인 코드 실행 컨텍스트(Persistent Code Execution Context)를 제공하여, 데이터 분석, 스크립팅, 탐색적 워크플로우(Exploratory Workflows)를 지원한다. 이는 각 코드 조각을 독립적으로 실행하는 기존 방식의 한계를 극복하고, 상태를 유지하며 상호 작용하는 환경을 제공한다.

상태 유지(State Persistence): 변수(Variable)와 임포트(Import)가 여러 호출(Call) 간에 유지되어, Jupyter Notebook과 유사한 경험 제공

다양한 언어 지원: Python, JavaScript, TypeScript 등 다양한 언어를 지원하여, 에이전트(Agent)의 활용성을 극대화

결과 활용(Result Utilization): 실행 결과는 HTML, JSON 등 다양한 형식으로 제공되며, 시각화 도구(Visualization Tool)와의 연동을 지원

스냅샷(Snapshots)을 통한 빠른 복구

샌드박스(Sandbox)는 스냅샷(Snapshots) 기능을 통해 개발 환경의 빠른 복구와 재사용을 지원한다. 이는 개발자가 작업을 중단하고 재개하는 과정을 효율적으로 만들어, 에이전트(Agent)의 생산성을 향상시킨다.

디스크 상태 보존(Disk State Preservation): 컨테이너(Container)의 전체 디스크 상태, OS 설정, 의존성, 파일 등을 보존

빠른 복원(Fast Restoration): 스냅샷(Snapshot)을 통해 샌드박스(Sandbox)를 빠르게 복원하여, 초기화 시간을 단축

R2 기반 저장(R2-based Storage): 스냅샷(Snapshot)은 R2에 저장되어, 내구성과 위치 독립성을 보장하며, 액티브 CPU 가격 책정(Active CPU Pricing)을 통해 비용 효율성을 높임

스냅샷(Snapshots)은 아직 출시 전이며, R2를 활용한 백업 및 복구 기능으로 세션 상태 복원 가능

개발 환경 개선을 위한 기능

샌드박스(Sandbox)는 에이전트(Agent)의 개발 환경을 개선하기 위해 다양한 기능을 제공한다. 이는 개발자가 실제 개발 환경과 유사한 환경에서 작업할 수 있도록 지원하며, 생산성을 향상시킨다.

파일 시스템 감시(Filesystem Watching): 파일 시스템 변경을 실시간으로 감지하여, 자동 빌드 및 테스트 실행 지원

백그라운드 프로세스(Background Processes) 및 라이브 프리뷰 URL(Live Preview URLs): 개발 서버(Development Server)를 실행하고, 실시간으로 변경 사항을 확인 가능

액티브 CPU 가격 책정(Active CPU Pricing): 사용하지 않는 CPU 사이클에 대한 비용을 지불하지 않아, 비용 효율성을 높임

이러한 기능들은 에이전트(Agent)가 실제 엔지니어링 작업을 수행하고, 개발 프로세스에 참여할 수 있도록 지원한다.

Agents have their own computers with Sandboxes GA