핵심 요약

Cloudflare가 AI 에이전트용 실행 환경인 @cloudflare/computer를 초기 프리뷰로 공개했습니다. 이 오픈소스 라이브러리는 에이전트에 내구성 있는 파일 시스템과 여러 실행 환경을 제공하고, 가벼운 작업에는 isolate를, Linux 환경이 필요한 작업에는 컨테이너를 활용할 수 있게 합니다.

중요한 점은 모든 에이전트에 항상 컨테이너를 할당하는 방식에서 벗어났다는 것입니다. 에이전트는 같은 파일을 대상으로 작업하면서 필요에 맞는 실행 환경을 선택할 수 있습니다. 개발자도 기본 셸 백엔드와 각 백엔드의 용도를 설정해 선택을 유도할 수 있습니다. 따라서 이 구조를 플랫폼이 모든 명령을 자동 분류하는 고정 라우터라기보다, 공통 작업공간 아래 여러 실행 백엔드를 조합하는 추상화로 이해하는 편이 정확합니다.

왜 컨테이너만 사용하지 않나

코딩 에이전트는 파일을 살펴보고 수정하며, 명령을 실행하고 결과를 검토하는 과정을 반복합니다. 완전한 Linux 사용자 공간을 제공하는 컨테이너는 패키지 관리자, 테스트 실행기, 네이티브 바이너리가 필요한 작업에 유용합니다. 그러나 Cloudflare는 모든 에이전트에 컨테이너를 하나씩 제공하는 방식만으로 대규모 동시 실행 수요를 감당하기 어렵다고 설명합니다.

Cloudflare가 대안으로 강조한 실행 단위가 isolate입니다. 발표에 따르면 isolate는 빠르게 시작하고 종료할 수 있으며, 에이전트가 유휴 상태일 때 최대 절전 상태로 전환하거나 자체 상태를 저장할 수 있습니다. Durable Object 안의 isolate에서 에이전트 실행 루프를 운영하고, 더 무거운 계산이 필요한 순간에 연결된 컨테이너를 도구처럼 호출하는 것이 기존 접근의 기반입니다.

@cloudflare/computer는 개발자가 isolate와 컨테이너를 각각 직접 결합해야 했던 과정을 더 단순한 작업공간 추상화로 묶으려는 실험입니다. Cloudflare가 제시한 목표는 컨테이너 사용 비율을 특정 수치로 제한하는 것이 아니라, 무거운 실행 환경을 필요할 때만 사용해 성능과 비용을 최적화하는 데 있습니다.

공유 파일 시스템이 중심인 이유

실행 백엔드가 달라져도 에이전트가 연속된 작업을 수행하려면 동일한 파일 상태를 볼 수 있어야 합니다. 이 패키지는 Git 저장소, 스토리지 버킷 또는 개발자가 선택한 파일을 담을 수 있는 내구성 파일 시스템을 제공합니다. isolate와 컨테이너는 원본 파일 시스템과 동기화되는 같은 파일을 대상으로 동작합니다.

예를 들어 파일 조작이나 데이터 처리, Git 저장소 관리처럼 isolate에서 수행할 수 있는 작업은 가벼운 환경을 활용할 수 있습니다. 반면 Linux, npm 또는 네이티브 바이너리가 필요한 명령은 컨테이너에서 실행할 수 있습니다. 다만 이는 가능한 작업의 예시이지, 모든 Git 명령이 반드시 isolate로 향한다는 고정 규칙은 아닙니다. 실제 선택은 제공된 백엔드, 개발자 설정, 에이전트에 전달한 도구 설명과 작업 요구에 따라 달라질 수 있습니다.

구성 요소와 역할

구성 요소 확인된 역할 활용 예
Workspace 가상 파일 시스템과 실행 런타임을 하나의 작업공간으로 제공 파일 준비, 저장소 복제, 실행 도구 연결
Durable Object Workspace를 생성할 수 있는 상태 보유 실행 기반 에이전트 실행 루프와 작업 상태 유지
내구성 파일 시스템 여러 실행 환경이 사용할 파일을 보관하고 동기화 파일 읽기·쓰기·편집, Git 저장소와 작업 산출물 관리
isolate 파일 조작이나 데이터 처리처럼 가벼운 작업을 실행 작업공간 탐색, 파일 변경, 가능한 범위의 저장소 관리
컨테이너 백엔드 완전한 Linux 사용자 공간이 필요한 명령을 실행 npm, 패키지 관리자, 테스트 실행기, 네이티브 바이너리

발표 예제에서는 Workspace를 Durable Object의 스토리지와 연결하고, CloudflareContainerBackend를 백엔드 목록에 추가합니다. 셸 도구를 만들 때는 컨테이너를 기본 백엔드로 지정하고, 어떤 경우에 그 백엔드를 사용해야 하는지 설명도 제공합니다. 이는 백엔드 선택에 개발자의 명시적 구성이 관여한다는 점을 보여 줍니다.

개발 흐름은 어떻게 달라지나

패키지는 파일, Git, 셸 도구를 에이전트 실행 루프에 노출할 수 있게 합니다. 모델이 도구를 직접 사용할 수도 있고, 개발자가 모델에 작업을 맡기기 전에 Workspace API로 환경을 미리 준비할 수도 있습니다.

공개된 버그 분류 예제는 이 두 방식을 함께 보여 줍니다. 먼저 작업공간 디렉터리를 만들고 버그 보고서를 파일로 저장한 뒤, 대상 저장소를 지정한 위치에 복제합니다. 이후 에이전트에는 버그 재현, 코드 조사, 안전한 범위의 수정, 검증 실행이라는 임무를 전달합니다. 최종 답변에 변경 내용과 실행한 명령, 검증 통과 여부를 포함하도록 지시하는 구조입니다.

이 방식의 실질적인 장점은 에이전트가 사용하는 파일과 실행 환경을 제품별 도구에 연결하기 쉽다는 데 있습니다. 저장소와 보고서를 먼저 준비하고 에이전트에는 제한된 도구만 제공하면, 작업 입력과 실행 결과를 하나의 작업공간을 중심으로 구성할 수 있습니다.

통제와 관찰 가능성

Cloudflare는 파일 읽기·쓰기·편집 작업을 Code Mode 또는 bash 명령으로 수행할 수 있으며, 모든 작업이 게이트를 거치고 감사 및 관찰된다고 설명합니다. 이를 통해 에이전트가 허용받은 변경 범위를 세밀하게 제어하고, 무엇을 수행했는지 확인할 기록을 남기는 것을 제품 방향으로 제시합니다.

다만 발표문만으로 구체적인 허용 규칙의 표현 방식, 로그 보존 기간, 네트워크 통제 범위, 자원 한도 등을 확정할 수는 없습니다. 보안 기능의 존재와 실제 운영 환경에 필요한 정책 완성도를 같은 것으로 간주해서는 안 됩니다.

초기 프리뷰에서 확인할 사항

@cloudflare/computer는 초기 프리뷰로 공개된 실험적 라이브러리입니다. 따라서 장기 실행 작업의 동작, 동시성 한도, 저장 공간, 네트워크 조건, 장애 후 복구와 같은 운영 특성은 이 발표만으로 판단하기 어렵습니다. 공개 예제가 작동한다는 사실도 프로덕션 수준의 서비스 보장이나 고정된 인터페이스를 의미하지 않습니다.

도입을 검토한다면 먼저 외부 비밀값이 필요 없는 제한된 작업으로 확인하는 것이 합리적입니다. 파일을 준비하고 저장소를 복제한 뒤, 수정과 테스트를 수행하면서 어떤 백엔드가 선택됐는지, 두 환경에서 파일 변경이 일관되게 보이는지, 허용되지 않은 작업을 통제할 수 있는지 살펴볼 수 있습니다. 이는 Cloudflare가 발표한 보장 사항이 아니라 초기 기술 검증을 위한 제안입니다.

운영 전에는 작업공간별 파일 격리, 자격 증명 취급, 실행 가능한 명령의 범위, 감사 기록의 내용과 보존, 실패 후 재시도 시 중복 변경 가능성도 별도로 점검할 필요가 있습니다. 특히 공유 작업공간의 편리함은 상태 수명과 정리 기준을 명확히 해야 한다는 책임을 함께 만듭니다.

어떤 워크로드에 주목할 만한가

파일 수정과 검증을 반복하는 코딩 에이전트, 많은 에이전트 실행을 다루면서 일부 단계에서만 Linux 도구가 필요한 서비스라면 이 구조를 살펴볼 가치가 있습니다. 핵심 평가지표는 새로운 실행 환경의 이름이 아니라, 실제 작업을 isolate에서 얼마나 처리할 수 있는지, 컨테이너가 필요한 경계가 명확한지, 공유 파일 상태와 실행 기록을 신뢰할 수 있는지입니다.

반대로 작업 대부분이 완전한 Linux 사용자 공간이나 네이티브 도구에 의존한다면 isolate를 함께 쓰는 이점이 제한될 수 있습니다. 프리뷰 단계에서는 실제 워크로드를 작은 범위로 재현하고, 개발자가 설정한 기본 백엔드와 에이전트의 선택이 기대한 방식으로 작동하는지 확인한 뒤 적용 범위를 넓히는 판단이 적절합니다.

출처와 검증

공식 원문: Cloudflare Blog — Your agent needs a computer, not a container

이 글은 공식 발표에서 확인되는 초기 프리뷰 상태, Durable Object에 생성하는 Workspace, 내구성 공유 파일 시스템, isolate와 컨테이너의 역할, 백엔드 설정 예제를 바탕으로 정리했습니다. 초기 프리뷰의 인터페이스와 운영 조건은 달라질 수 있으므로 적용 시 공식 원문과 최신 문서를 다시 확인해야 합니다.