Cloudflare / database-design

32 개의 포스트

cloudflare

Introducing Dynamic Workflows: durable execution that follows the tenant (새 탭에서 열림)

Cloudflare는 멀티테넌트 SaaS나 AI 에이전트처럼 런타임에 코드가 생성되는 환경을 지원하기 위해 'Dynamic Workflows'를 도입했습니다. 이는 기존의 정적 배포 방식에서 벗어나, 각 테넌트가 작성한 고유한 워크플로우 코드를 동적으로 로드하고 실행할 수 있게 해주는 내구성 있는 실행(Durable Execution) 솔루션입니다. 개발자는 이를 통해 개별 테넌트나 세션마다 서로 다른 비즈니스 로직을 가진 워크플로우를 격리된 샌드박스 환경에서 안전하고 신속하게 구동할 수 있습니다. ### 정적 워크플로우 배포의 한계 * 기존 Cloudflare Workflows는 `wrangler.jsonc` 설정 파일에 워크플로우 클래스를 미리 정의해야 하는 정적 바인딩 구조를 가졌습니다. * AI가 사용자별로 코드를 생성하거나, 각 저장소마다 고유한 파이프라인을 갖는 CI/CD 서비스와 같은 현대적인 플랫폼에서는 모든 테넌트의 로직을 미리 정의하는 것이 불가능합니다. * 컴퓨트(Dynamic Workers)와 스토리지(Durable Object Facets)는 이미 동적 배포가 가능해졌으나, 장기 실행이 필요한 워크플로우 영역은 여전히 테넌트별 맞춤화가 어려운 공백으로 남아 있었습니다. ### 동적 워크플로우의 구조와 작동 방식 * `@cloudflare/dynamic-workflows` 라이브러리는 약 300줄의 TypeScript 코드로 구성되며, 'Worker Loader'가 각 테넌트의 코드로 호출을 라우팅하는 역할을 수행합니다. * 워크플로우 엔진이 `run(event, step)` 함수를 호출할 때, 라이브러리는 수 시간 또는 수일 후에도 해당 워크플로우를 생성했던 정확한 테넌트의 코드를 찾아 실행을 재개합니다. * 테넌트는 표준 `WorkflowEntrypoint`를 사용하여 평범한 워크플로우 코드를 작성하며, 자신이 동적으로 관리되는 환경에 있다는 사실을 인지할 필요 없이 독립적인 실행 환경을 보장받습니다. ### 주요 기능 및 기술적 이점 * **기존 기능 완전 계승**: 워크플로우 상태 확인(`.status()`), 일시 중지(`.pause()`), 재시도, 동적 단계 실행, `step.sleep()`을 이용한 장기 대기, `step.waitForEvent()` 등의 모든 기능을 그대로 사용할 수 있습니다. * **고성능 격리 환경**: 싱글 디지트 밀리초(단위 수 밀리초) 내에 격리된 샌드박스 Worker가 생성되어 보안성과 속도를 동시에 확보합니다. * **확장성**: Workflows V2 아키텍처를 기반으로 설계되어, 계정당 초당 300개의 새로운 인스턴스 생성과 최대 50,000개의 동시 인스턴스 처리를 지원하여 에이전트 중심의 서비스 확장에 최적화되어 있습니다. AI 에이전트가 스스로 도구를 작성하고 실행하거나, 고객마다 고유한 비즈니스 자동화 로직을 부여해야 하는 SaaS 플랫폼을 구축 중이라면 Dynamic Workflows가 최적의 대안이 될 것입니다. 이 시스템을 통해 인프라 관리의 부담 없이 테넌트별로 특화된 내구성 있는 워크플로우를 무한히 확장할 수 있습니다.

cloudflare

Agents can now create Cloudflare accounts, buy domains, and deploy (새 탭에서 열림)

이제 AI 에이전트는 사람이 직접 대시보드에 접속하거나 신용카드 정보를 입력할 필요 없이, 스스로 클라우드플레어 계정을 생성하고 도메인을 구매하여 서비스를 배포할 수 있게 되었습니다. 클라우드플레어는 스트라이프(Stripe)와의 협업을 통해 '스트라이프 프로젝트(Stripe Projects)' 내에서 작동하는 새로운 프로토콜을 도입했으며, 이를 통해 에이전트가 소프트웨어 개발을 넘어 프로덕션 환경 구축까지 원스톱으로 처리할 수 있는 환경을 마련했습니다. 사용자는 최초의 권한 승인과 이용 약관 동의 외에는 복잡한 설정 과정에 개입할 필요가 없어 서비스 배포의 마찰력이 획기적으로 줄어들었습니다. **에이전트의 완전 자동화된 배포 흐름** * 사용자가 스트라이프 CLI를 통해 프로젝트를 초기화하면, AI 에이전트는 사용자의 스트라이프 계정 정보를 바탕으로 클라우드플레어 계정을 자동 생성하거나 기존 계정을 연결합니다. * 에이전트는 API 토큰을 발급받고, 도메인을 등록하며, 코드를 즉시 프로덕션 환경에 배포하는 모든 과정을 스스로 수행합니다. * 이 모든 과정은 사람이 대시보드에 들어가 API 토큰을 복사하거나 결제 수단을 수동으로 등록하는 단계 없이 하나의 흐름으로 진행됩니다. **상호운용성을 위한 세 가지 핵심 구성 요소** * **발견(Discovery):** 에이전트는 REST API 형태의 카탈로그를 조회하여 클라우드플레어의 도메인 등록과 같은 사용 가능한 서비스를 스스로 파악하고 선택할 수 있습니다. * **인증(Authorization):** 스트라이프가 신원 제공자(Identity Provider) 역할을 수행하여 사용자를 증명하면, 클라우드플레어는 즉시 계정을 프로비저닝하고 보안이 유지되는 자격 증명을 에이전트에게 반환합니다. * **결제(Payment):** 에이전트에게 실제 카드 번호를 공유하지 않고 스트라이프의 결제 토큰을 사용하며, 기본적으로 월 100달러의 지출 한도를 설정하여 예기치 못한 비용 발생을 방지합니다. **플랫폼 확정성 및 스타트업 지원** * 이 프로토콜은 스트라이프뿐만 아니라 로그인된 사용자를 보유한 어떤 플랫폼이든 '오케스트레이터' 역할을 맡아 클라우드플레어와 통합할 수 있도록 설계되었습니다. * 클라우드플레어는 이번 협업을 기념하여 스트라이프 아틀라스(Stripe Atlas)를 통해 법인을 설립하는 신규 스타트업에게 10만 달러 상당의 클라우드플레어 크레딧을 제공합니다. * 이를 통해 개발자들은 인프라 설정이라는 번거로운 작업에서 벗어나 AI 에이전트와 함께 아이디어를 프로덕션 수준의 서비스로 더욱 빠르게 전환할 수 있습니다. 에이전트 중심의 개발 환경을 구축하려는 개발자나 플랫폼 운영자라면 클라우드플레어의 'Code Mode MCP 서버'와 'Agent Skills'를 활용해 보시기 바랍니다. 인프라 구축의 모든 단계가 API화되어 있으므로, 사용자의 개입을 최소화하면서도 안전하고 확장 가능한 배포 자동화 시스템을 구현할 수 있습니다.

cloudflare

Making Rust Workers reliable: panic and abort recovery in wasm‑bindgen (새 탭에서 열림)

Cloudflare Workers 환경에서 Rust로 작성된 WebAssembly(Wasm)는 예기치 못한 패닉(Panic)이나 중단(Abort)이 발생할 경우 런타임이 정의되지 않은 상태로 남아 동일한 인스턴스의 다른 요청까지 실패하게 만드는 '샌드박스 오염' 문제를 안고 있었습니다. 이를 해결하기 위해 Cloudflare는 `wasm-bindgen` 메인 프로젝트와 협력하여 Wasm 예외 처리 기능을 활용한 `panic=unwind` 지원과 중단 복구 메커니즘을 도입했습니다. 결과적으로 단일 요청의 실패가 전체 서비스 중단으로 이어지는 것을 방지하고, 상태 유지가 필요한 애플리케이션에서도 안정적인 오류 복구가 가능해졌습니다. ### 초기 대응 및 완화 전략 본격적인 기능 개선에 앞서, Cloudflare는 운영 환경에서의 피해를 최소화하기 위해 사용자 정의 패닉 핸들러와 JavaScript 프록시를 활용한 초기 완화책을 적용했습니다. * **패닉 핸들러 도입:** Rust 내부에 상태를 추적하는 패닉 핸들러를 설치하여 실패가 발생하면 전체 애플리케이션을 다시 초기화하도록 설정했습니다. * **Proxy 기반 간접 참조:** JavaScript 영역에서 Rust 호출 경계를 `Proxy`로 감싸 모든 진입점을 캡슐화하고, 실패 시 안전하게 Wasm 모듈을 재로드했습니다. * **한계점:** 이 방식은 서비스 가용성은 높였으나, 전체 애플리케이션을 재시작해야 하므로 메모리에 상태를 보관하는 Durable Objects 같은 서비스에서는 데이터 손실이 발생하는 단점이 있었습니다. ### Wasm 예외 처리를 통한 panic=unwind 구현 상태를 보존하면서 오류를 복구하기 위해 Wasm의 최신 표준인 예외 처리(Exception Handling) 제안을 활용하여 Rust의 패닉 언와인딩(Unwinding)을 구현했습니다. * **컴파일 옵션 변경:** `RUSTFLAGS='-Cpanic=unwind'`와 `-Zbuild-std`를 사용하여 표준 라이브러리가 언와인딩을 지원하도록 다시 빌드했습니다. * **wasm-bindgen 툴체인 업데이트:** Wasm 파서인 Walrus가 `try`, `catch`, `rethrow` 명령어를 인식하도록 수정하고, JavaScript와 Rust 경계에서 예외가 올바르게 전달되도록 개선했습니다. * **Boundary 처리:** Rust에서 발생한 패닉이 JavaScript의 `PanicError`로 변환되도록 했으며, `extern "C-unwind"`를 통해 함수 호출 경계를 넘나드는 언와인딩을 허용했습니다. * **클로저 안전성:** `MaybeUnwindSafe` 트레잇을 도입하여 언와인딩 시 안전하지 않은 참조를 캡처하는 클로저를 체크하고, 필요한 경우 패닉 시 즉시 중단되는 `Closure::new_aborting` 변형을 제공합니다. ### 중단(Abort) 복구 및 포이즌 필(Poison Pill) 메커니즘 메모리 부족(OOM)과 같이 언와인딩이 불가능한 '중단' 상황에서는 메모리 상태가 오염될 가능성이 높기 때문에, 해당 인스턴스의 재실행을 원천 봉쇄하는 전략을 사용합니다. * **포이즌 필 플래그:** `wasm-bindgen`은 이제 모든 Wasm 모듈에 내부 상태 플래그를 주입합니다. 만약 Rust 코드에서 중단이 발생하면 이 플래그가 즉시 설정됩니다. * **재실행 방지:** 이후 JavaScript에서 해당 Wasm 인스턴스의 어떤 함수라도 호출하려고 하면, Rust 코드를 실행하기 전에 플래그를 먼저 확인하여 즉시 JavaScript 에러를 발생시킵니다. * **안전성 보장:** 이를 통해 오염된 메모리 상태에서 코드가 다시 실행되어 발생할 수 있는 보안 취약점이나 예측 불가능한 동작을 완전히 차단합니다. Wasm 기반의 Rust 서비스를 운영한다면 최신 버전의 `wasm-bindgen`과 `workers` 라이브러리를 사용하고, 특히 Durable Objects와 같이 상태 보존이 중요한 경우 `panic=unwind` 설정을 활성화할 것을 권장합니다. 이는 단순한 안정성 향상을 넘어, Wasm이 네이티브 환경과 동등한 수준의 오류 복구 능력을 갖추게 되었음을 의미합니다.

cloudflare

Orchestrating AI Code Review at scale (새 탭에서 열림)

Cloudflare는 기존 AI 코드 리뷰 도구의 유연성 부족과 단순 요약 방식의 한계를 극복하기 위해 오픈소스 에이전트인 OpenCode 기반의 CI 네이티브 오케스트레이션 시스템을 구축했습니다. 이 시스템은 보안, 성능 등 각 분야에 특화된 다수의 전문 에이전트를 코디네이터가 관리하여 노이즈를 줄이고 정확도 높은 리뷰 결과를 제공합니다. 현재 수만 개의 머지 리퀘스트를 처리하며 실제 버그와 보안 취약점을 효과적으로 차단하는 등 엔지니어링 생산성을 획기적으로 개선하고 있습니다. **기존 접근 방식의 한계와 다중 에이전트 전략** * 단순히 Git Diff를 LLM에 입력하는 방식은 환각(Hallucination) 현상과 무의미한 수정 제안 등 노이즈가 많아 실질적인 코드 품질 향상에 한계가 있었음. * Cloudflare는 하나의 거대한 모델 대신 보안, 성능, 코드 품질, 문서화, 릴리스 관리, 내부 규정 준수 등 최대 7개의 전문 에이전트를 동시에 실행하는 구조를 선택함. * '코디네이터 에이전트'가 개별 에이전트의 발견 사항을 취합하여 중복을 제거하고, 문제의 실제 심각도를 판단한 뒤 하나의 구조화된 리뷰 코멘트로 통합함. **플러그인 기반의 유연한 아키텍처** * 다양한 버전 관리 시스템(VCS)과 AI 프로바이더를 지원하기 위해 `ReviewPlugin` 인터페이스 기반의 컴포저블 아키텍처를 채택함. * 리뷰 실행 주기는 세 단계로 나먐: 병렬로 실행되는 `Bootstrap`(비동기 준비), 순차적으로 실행되며 실패 시 중단되는 `Configure`(필수 설정), 그리고 원격 설정 로드 등을 처리하는 `postConfigure` 단계임. * `ConfigureContext` API를 통해 각 플러그인은 독립적으로 에이전트 등록, 프롬프트 주입, 환경 변수 설정을 수행하며, 최종적으로 `opencode.json` 설정 파일로 병합됨. * 이러한 격리 구조 덕분에 GitLab 플러그인이 AI Gateway 설정을 알 필요가 없는 등 컴포넌트 간 결합도를 최소화함. **OpenCode와 Bun을 활용한 기술적 구현** * OpenCode는 오픈소스이며 서버 중심 구조를 가지고 있어 프로그래밍 방식으로 세션을 생성하고 SDK를 통해 결과를 수집하기에 적합함. * 대규모 머지 리퀘스트 처리 시 발생하는 Linux 커널의 `ARG_MAX` 제한(E2BIG 에러)을 해결하기 위해, Bun의 `stdin` 스트림을 통해 대용량 프롬프트를 전달함. * 오케스트레이터는 OpenCode를 자식 프로세스(`Bun.spawn`)로 실행하며, 모든 출력은 JSONL 형식의 `stdout` 이벤트를 통해 실시간으로 모니터링 및 수집됨. Cloudflare의 사례는 단순한 AI 도입을 넘어, 대규모 조직의 복잡한 표준과 요구사항을 충족하기 위해 다중 에이전트와 플러그인 시스템이 왜 필요한지 잘 보여줍니다. 특히 CI/CD 파이프라인의 핵심 경로에 AI를 배치할 때 발생하는 인자 크기 제한이나 도구 간 결합도 문제를 해결한 아키텍처는 대규모 엔지니어링 팀에 실질적인 가이드라인이 될 것입니다.

cloudflare

The AI engineering stack we built internally — on the platform we ship (새 탭에서 열림)

Cloudflare는 자사 플랫폼의 기술력을 집약한 내부 AI 엔지니어링 스택을 구축하여 전체 R&D 인력의 93%가 AI 도구를 일상적으로 사용하는 환경을 조성했으며, 그 결과 주간 머지 리퀘스트(Merge Request) 수를 약 두 배 가까이 증가시키는 생산성 혁신을 이뤄냈습니다. 이들은 단순한 도구 도입을 넘어 MCP(Model Context Protocol), AI Gateway, Workers AI 등을 결합한 포괄적인 아키텍처를 통해 보안과 운영 효율성을 동시에 확보했습니다. 특히 이번 프로젝트는 실제 고객에게 제공되는 상용 제품들을 내부 워크플로우에 직접 적용하여 그 실효성을 검증했다는 점에서 중요한 기술적 이정표를 제시합니다. ### 통합 플랫폼 및 보안 계층 * **보안 및 인증 관리**: Cloudflare Access를 통한 제로 트러스트 인증으로 보안을 강화하고, 모든 LLM 요청을 AI Gateway로 라우팅하여 중앙 집중식 키 관리, 비용 추적 및 데이터 보존 정책을 적용합니다. * **Workers AI 활용**: 프론티어 모델(OpenAI, Anthropic 등)뿐만 아니라 Workers AI를 통해 Kimi K2.5와 같은 오픈 소스 모델을 병행 운용하며, 특히 보안 에이전트 등의 작업에서 상용 모델 대비 약 77%의 비용 절감 효과를 거두고 있습니다. * **프록시 워커 패턴**: 모든 클라이언트 요청을 단일 프록시 워커를 통해 처리함으로써 클라이언트 설정 변경 없이도 사용자별 권한 부여 및 모델 카탈로그 관리가 가능한 제어 평면(Control Plane)을 구축했습니다. ### 에이전트 기반 인프라와 MCP * **원스톱 온보딩**: `opencode auth login` 명령 하나로 MCP 서버, 에이전트, 명령 및 권한 설정을 자동으로 구성하여 엔지니어가 설정 파일에 손대지 않고도 즉시 AI 도구를 사용할 수 있게 했습니다. * **상태 유지 및 격리 실행**: Durable Objects 기반의 Agents SDK를 사용해 장기 실행되는 에이전트 세션을 관리하며, Sandbox SDK를 통해 에이전트가 생성한 코드를 안전한 격리 환경에서 빌드하고 테스트합니다. * **워크플로우 자동화**: 복잡한 다단계 엔지니어링 작업은 Workflows 기능을 통해 자동화하며, 이는 대규모 리포지토리 전반에 걸친 변경 사항 전파를 효율적으로 지원합니다. ### 지식 체계와 품질 관리 * **기술 지식 그래프**: 오픈소스인 Backstage를 활용해 16,000개 이상의 엔티티를 포함한 지식 그래프를 구축함으로써 에이전트가 조직 내 복잡한 시스템 구조를 정확히 이해할 수 있도록 지원합니다. * **AGENTS.md와 코드 리뷰**: 각 저장소의 컨텍스트를 담은 `AGENTS.md` 파일을 생성하여 에이전트의 정확도를 높이고, CI 파이프라인에 통합된 AI 코드 리뷰어를 통해 급증하는 코드 생산량 속에서도 품질을 유지합니다. Cloudflare의 사례는 AI 도입을 고민하는 기업들에게 '플랫폼 중심 접근법'의 중요성을 시사합니다. 단순한 챗봇 도입이 아니라, 중앙 집중식 게이트웨이를 통한 가시성 확보, 격리된 샌드박스 실행 환경 구축, 그리고 내부 지식 시스템(Backstage 등)과의 결합이 뒷받침될 때 비로소 실제적인 엔지니어링 생산성 향상을 기대할 수 있습니다.

cloudflare

Introducing the Agent Readiness score. Check to see if your site is agent-ready (새 탭에서 열림)

웹 환경이 브라우저와 검색 엔진을 넘어 AI 에이전트 중심으로 진화함에 따라, 사이트가 AI 모델에 얼마나 최적화되어 있는지를 평가하는 새로운 기준이 필요해졌습니다. Cloudflare는 웹사이트의 AI 에이전트 대응 수준을 측정하고 개선 가이드를 제공하는 도구인 'isitagentready.com'과 관련 데이터셋을 공개했습니다. 이를 통해 사이트 소유자는 에이전트 전용 콘텐츠 제공 및 권한 제어 표준을 도입함으로써 AI 도구가 더 빠르고 저렴하게 정보를 처리할 수 있도록 최적화할 수 있습니다. **웹 사이트의 AI 에이전트 표준 도입 현황** * 전 세계 상위 20만 개 도메인을 분석한 결과, 대다수의 사이트가 여전히 전통적인 검색 엔진 크롤러 방식에 머물러 있어 에이전트 준비도가 낮은 것으로 나타났습니다. * `robots.txt`는 78%의 사이트가 보유하고 있으나, AI 에이전트 전용 규칙이나 AI 사용 선호도(Content Signals)를 명시한 곳은 4%에 불과합니다. * 에이전트가 HTML 대신 효율적인 마크다운 형식을 요청하는 '마크다운 콘텐츠 협상(Markdown content negotiation)' 도입률은 3.9% 수준입니다. * MCP(Model Context Protocol) 서버 카드나 API 카탈로그(RFC 9727)와 같은 최신 에이전트 상호작용 표준은 현재 도입 초기 단계로, 이를 선제적으로 도입하면 AI 에이전트 생태계에서 두각을 나타낼 수 있습니다. **에이전트 준비도 점수 측정 항목** * **발견 가능성(Discoverability):** `robots.txt`와 `sitemap.xml`은 물론, 에이전트가 HTML을 파싱하지 않고도 리소스를 즉시 찾을 수 있도록 HTTP 응답 헤더의 `Link` 헤더(RFC 8288) 활용 여부를 평가합니다. * **콘텐츠 접근성(Content Accessibility):** LLM이 읽기 쉬운 구조로 사이트 맵을 제공하는 `llms.txt`와 텍스트 기반의 마크다운 제공 여부를 확인합니다. 마크다운은 HTML 대비 토큰 사용량을 최대 80%까지 줄여 비용 절감과 응답 속도 향상에 기여합니다. * **봇 제어 및 권한(Bot Access Control):** AI 봇 전용 접근 규칙과 웹 봇 인증 방식이 올바르게 설정되어 있는지 체크합니다. * **에이전트 역량(Capabilities):** API 카탈로그, OAuth 서버 검색(RFC 8414), MCP 서버 카드 등 에이전트가 사이트의 기능을 직접 수행하는 데 필요한 기술 표준 준수 여부를 측정합니다. **실무적인 최적화 지원 및 도구 활용** * `isitagentready.com`은 구글 라이트하우스(Lighthouse)처럼 동작하며, 진단 결과에서 통과하지 못한 항목에 대해 코딩 에이전트에게 바로 입력할 수 있는 구현용 프롬프트를 제공합니다. * 이 도구 자체도 MCP 서버를 노출하고 있어, 사용자는 웹 인터페이스 없이도 에이전트를 통해 프로그래밍 방식으로 사이트 스캔을 수행할 수 있습니다. * Cloudflare는 자사 개발자 문서를 에이전트 친화적으로 개편하여 AI 도구가 문서를 참조할 때 발생하는 비용을 대폭 절감하고 답변의 정확도를 높이는 사례를 직접 증명하고 있습니다. 웹 사이트 운영자는 `isitagentready.com`을 통해 현재 사이트의 상태를 점검하고, 특히 토큰 비용 효율성이 높은 **마크다운 콘텐츠 협상**과 **API 카탈로그** 표준을 우선적으로 도입하는 것을 권장합니다. 이는 AI 에이전트가 사이트 정보를 더 정확하게 이해하고 사용자에게 전달하도록 만드는 가장 효과적인 방법입니다.

cloudflare

Unweight: how we compressed an LLM 22% without sacrificing quality (새 탭에서 열림)

Cloudflare는 LLM의 가중치를 15~22% 압축하면서도 출력 결과의 정확도를 비트 단위로 완벽하게 보존하는 무손실 압축 시스템인 'Unweight'를 공개했습니다. 이 시스템은 NVIDIA H100 GPU의 연산 능력에 비해 현저히 느린 메모리 대역폭 병목 현상을 해결하기 위해 설계되었으며, 추론 시 가중치를 고속 온칩 메모리(Shared Memory)에서 직접 해제하여 처리 효율을 극대화합니다. 결과적으로 Llama-3.1-8B 모델 기준 약 3GB의 VRAM을 절약함으로써, 품질 저하 없이 더 적은 자원으로 더 빠른 추론 서비스를 제공할 수 있게 되었습니다. ### 메모리 대역폭 병목 현상과 무손실 압축의 필요성 * **컴퓨팅-메모리 불균형:** NVIDIA H100의 텐서 코어는 메모리가 데이터를 전달하는 속도보다 약 600배 빠르게 데이터를 처리할 수 있어, 추론 속도의 핵심은 '메모리 버스를 통과하는 데이터양'을 줄이는 데 있습니다. * **양자화의 한계:** 4비트나 8비트 정수로 변환하는 기존 양자화 방식은 손실 압축(Lossy)이므로 모델의 응답 품질을 예측할 수 없게 만듭니다. * **무손실 아키텍처:** Unweight는 비트 단위로 동일한(Bit-exact) 출력을 보장하면서도 가중치 크기를 줄여, 서비스 품질을 타협하지 않고 하드웨어 효율성만 높였습니다. ### BF16 지수(Exponent) 데이터의 중복성 활용 * **데이터 구조 분석:** BF16 가중치는 부호(1비트), 지수(8비트), 가수(7비트)로 구성되는데, 이 중 부호와 가수는 무작위성이 강해 압축이 어렵지만 지수 부분은 매우 높은 중복성을 보입니다. * **지수 분포의 편향성:** 일반적인 LLM 레이어에서 가장 빈번하게 등장하는 상위 16개의 지수 값이 전체 가중치의 99% 이상을 차지한다는 점에 착안했습니다. * **허프만 코딩(Huffman Coding) 적용:** 정보 이론에 따라 빈도가 높은 지수에는 짧은 코드를, 낮은 지수에는 긴 코드를 할당하는 허프만 코딩을 통해 지수 스트림에서 약 30%의 압축률을 달성했습니다. ### GPU 온칩 메모리를 활용한 효율적 압축 해제 * **SMEM 직접 해제:** 압축된 가중치를 느린 메인 메모리(HBM)로 다시 돌려보내지 않고, 텐서 코어 바로 옆의 빠른 공유 메모리(SMEM)에서 즉시 해제하여 연산에 투입함으로써 추가적인 지연 시간을 방지합니다. * **선택적 적용:** 모델 파라미터의 약 2/3를 차지하며 메모리 트래픽의 주원인인 MLP(Multi-Layer Perceptron) 가중치 행렬에 집중적으로 적용하여 효율을 높였습니다. * **행 단위(Row-based) 최적화:** 64개 가중치로 구성된 한 행에 희귀 지수가 하나라도 포함되면 해당 행 전체를 무압축 상태로 저장하여, 커널 실행 시 복잡한 분기 처리를 줄이고 처리 속도를 최적화했습니다. ### 실용적인 결론 및 권장사항 Unweight는 모델의 정확도를 1%도 포기할 수 없으면서 VRAM 부족 문제를 해결해야 하는 고성능 추론 환경에 최적화된 솔루션입니다. 특히 NVIDIA Hopper 아키텍처(H100 등)를 사용하는 환경에서 Llama-3.1-8B와 같은 모델을 운용할 때 약 3GB의 메모리 여유 공간을 확보할 수 있어, 더 큰 배치 사이즈를 운용하거나 더 많은 모델을 하나의 GPU에 올리는 데 유용합니다. Cloudflare는 이 기술의 확산을 위해 기술 논문과 함께 GPU 커널을 오픈소스로 공개하였습니다.

cloudflare

Introducing Flagship: feature flags built for the age of AI (새 탭에서 열림)

Cloudflare가 발표한 'Flagship'은 AI가 코드를 직접 작성하고 배포하는 시대에 대응하기 위해 설계된 네이티브 피처 플래그(Feature Flag) 서비스입니다. 이 서비스는 배포와 출시를 분리함으로써 AI 에이전트가 안전하게 기능을 테스트하고 롤아웃할 수 있는 환경을 제공하며, Cloudflare의 에지(Edge) 인프라를 활용해 지연 시간 없는 성능을 보장합니다. 결과적으로 Flagship은 개발자와 AI가 속도와 안전성을 동시에 확보하며 프로덕션 환경에 기여할 수 있도록 돕는 핵심 인프라 역할을 합니다. ### AI 자율 코딩 시대의 안전장치 * AI 에이전트가 코드를 작성, 검토, 병합, 배포하는 자동화된 워크플로우에서 피처 플래그는 필수적인 '안전 그물' 역할을 수행합니다. * AI가 작성한 신규 코드를 플래그 뒤에 숨겨 배포한 뒤, 에이전트가 프로덕션 환경에서 직접 기능을 테스트하고 지표에 따라 노출 범위를 조절하거나 즉시 비활성화할 수 있습니다. * 이를 통해 인간의 개입을 줄이면서도 배포로 인한 장애의 영향 범위를 최소화(Blast Radius Control)할 수 있습니다. ### 기존 방식의 성능 및 관리 문제 * **하드코딩의 한계:** 코드 내에 플래그 로직을 직접 작성하면 초기에는 빠르지만, 플래그 개수가 늘어날수록 중앙 집중적인 가시성이 사라지고 감사 추적(Audit Trail)이 어려워집니다. * **외부 서비스 호출의 지연:** 외부 피처 플래그 서비스를 API로 호출할 경우, 에지에서 동작하는 애플리케이션의 응답 속도가 외부 네트워크 지연 시간에 종속되는 문제가 발생합니다. * **서버리스 환경의 제약:** 기존의 '로컬 평가' SDK는 메모리에 규칙을 상주시켜야 하지만, Cloudflare Workers와 같은 서버리스 환경은 프로세스가 짧게 유지되므로 매번 SDK를 초기화해야 하는 비효율이 있습니다. ### Flagship의 동작 원리 및 아키텍처 * **네이티브 인프라 활용:** 외부 데이터베이스 없이 Cloudflare의 Durable Objects와 KV(Key-Value)를 기반으로 구축되었습니다. * **데이터 동기화:** 플래그 설정 변경 시 Durable Object에 원자적으로 기록되며, 수 초 이내에 전 세계 Cloudflare 에지의 KV 스토리지로 복제됩니다. * **에지 로컬 평가:** 플래그 평가 로직이 사용자의 요청을 처리하는 동일한 에지 위치(Worker Isolate)에서 실행되므로 외부 네트워크 호출이 발생하지 않습니다. ### 구현 및 표준 준수 * **Worker 바인딩:** `wrangler.jsonc`에 설정을 추가하면 HTTP 라운드트립 없이 Workers 런타임 내부에서 직접 플래그 값을 읽어올 수 있습니다. * **OpenFeature 표준 지원:** CNCF의 오픈 표준인 OpenFeature를 준수하여 Node.js, Bun, Deno 및 브라우저 환경에서도 일관된 방식으로 사용할 수 있으며 벤더 종속성을 줄였습니다. * **타입 안정성:** Boolean, String, Number, Object 등 다양한 타입의 접근자를 제공하며, 평가 결과와 함께 선택 이유(Reason) 등의 상세 정보도 함께 확인할 수 있습니다. 현재 Flagship은 클로즈 베타로 제공되고 있으며, Cloudflare Workers 생태계를 사용하는 팀에게 네트워크 지연 없는 고성능 피처 플래그 솔루션으로서 강력한 선택지가 될 것으로 보입니다. 특히 AI 기반의 자동화된 배포 파이프라인을 구축하려는 조직이라면 Flagship의 에지 기반 평가 모델이 제공하는 속도와 안정성을 적극적으로 검토해 볼 가치가 있습니다.

cloudflare

AI Search: the search primitive for your agents (새 탭에서 열림)

Cloudflare가 출시한 **AI Search**(구 AutoRAG)는 AI 에이전트가 방대한 데이터에서 필요한 정보를 제때 찾을 수 있도록 돕는 플러그 앤 플레이 방식의 검색 기본 요소(primitive)입니다. 개발자가 벡터 인덱스 구축, 데이터 파싱, 청킹, 동기화 로직을 직접 구현할 필요 없이 에이전트별로 독립적인 검색 인스턴스를 동적으로 생성하고 관리할 수 있게 해줍니다. 이 서비스는 하이브리드 검색과 관리형 스토리지를 결합하여 복잡한 인프라 설정 없이도 고성능 RAG(검색 증강 생성) 시스템을 구축할 수 있는 환경을 제공합니다. ### 하이브리드 검색과 결과 통합 * 단일 쿼리로 시맨틱 매칭(벡터 검색)과 키워드 매칭(BM25)을 동시에 수행합니다. * 벡터 검색과 키워드 검색이 병렬로 실행되며, 두 결과를 지능적으로 결합하여 최적의 검색 순위를 도출합니다. * 현재 Cloudflare의 공식 블로그 검색 엔진에도 이 기술이 적용되어 실질적인 성능을 증명하고 있습니다. ### 관리형 스토리지와 동적 인스턴스 관리 * 각 검색 인스턴스는 R2 기반의 자체 스토리지와 Vectorize 인덱스를 내장하고 있어, 외부 데이터 소스 연결이나 버킷 설정 없이 API를 통해 파일을 직접 업로드하고 인덱싱할 수 있습니다. * `ai_search_namespaces` 바인딩을 통해 Worker 실행 중에 런타임에서 인스턴스를 동적으로 생성하거나 삭제할 수 있습니다. * 이를 통해 고객별, 언어별, 또는 에이전트별로 개별 검색 컨텍스트를 즉시 할당할 수 있어 멀티테넌시(Multi-tenancy) 환경 구축이 용이합니다. * 문서에 메타데이터를 첨부하여 쿼리 시 특정 필드(예: 타임스탬프)를 기준으로 가중치를 조절(Boosting)하거나, 한 번의 호출로 여러 인스턴스를 동시에 검색하는 기능을 지원합니다. ### 고객 지원 에이전트에서의 실전 활용 * 공통 제품 문서(Shared Docs)와 개별 고객의 과거 상담 이력(Per-customer History)을 분리하여 관리할 수 있습니다. * 새로운 고객이 유입될 때 `env.SUPPORT_KB.create()` 메서드를 호출하여 해당 고객 전용의 검색 인스턴스를 즉석에서 생성합니다. * 상담이 종료될 때마다 해결책 요약본을 해당 인스턴스에 저장함으로써, 에이전트가 과거의 실패한 해결책을 반복하지 않고 맥락에 맞는 답변을 하도록 유도합니다. * Agents SDK와 결합하여 LLM이 `search_knowledge_base` 같은 도구를 사용해 공통 지식과 개인화된 이력을 동시에 조회하고 판단할 수 있는 지능형 워크플로우를 구현합니다. 복잡한 검색 파이프라인 구축에 시간을 쏟는 대신 AI Search를 활용하면 에이전트의 핵심 로직과 사용자 경험에 더 집중할 수 있습니다. 특히 멀티테넌트 SaaS 환경이나 사용자별 장기 기억(Memory)이 필요한 에이전트를 개발 중이라면, Cloudflare의 AI Search와 Agents SDK를 결합하여 인프라 부담 없이 확장 가능한 시스템을 구축해 보기를 권장합니다.

cloudflare

Deploy Postgres and MySQL databases with PlanetScale + Workers (새 탭에서 열림)

Cloudflare와 PlanetScale의 파트너십 강화를 통해 이제 Cloudflare Workers 사용자는 Postgres 및 MySQL 데이터베이스를 Cloudflare 대시보드 내에서 직접 생성하고 관리할 수 있게 되었습니다. 데이터베이스 사용료는 Cloudflare 계정으로 통합 청구되며, Cloudflare 스타트업 프로그램 크레딧이나 약정된 지불액(Committed Spend) 또한 PlanetScale 데이터베이스 결제에 활용 가능합니다. 이를 통해 개발자들은 별도의 인프라 관리 부담 없이 강력한 관계형 데이터베이스를 Cloudflare 생태계 안에서 완벽하게 통합하여 사용할 수 있습니다. **Cloudflare 대시보드를 통한 데이터베이스 통합 관리** - 사용자는 Cloudflare 대시보드 및 API를 통해 PlanetScale의 Postgres와 MySQL 데이터베이스를 즉시 배포할 수 있습니다. - 데이터베이스 사용 비용이 Cloudflare 청구서에 통합되어 단일한 결제 시스템으로 관리되므로, 셀프 서비스 및 엔터프라이즈 고객의 운영 효율성이 높아집니다. - pgvector와 같은 확장 기능을 지원하는 Postgres와 대규모 확장성을 제공하는 Vitess 기반 MySQL을 선택하여 애플리케이션 요구사항에 맞게 구성할 수 있습니다. **Hyperdrive를 활용한 고성능 연결 환경** - Cloudflare의 데이터베이스 연결 서비스인 Hyperdrive가 기본 통합되어 PlanetScale 데이터베이스와 Workers를 효율적으로 연결합니다. - Hyperdrive는 데이터베이스 커넥션 풀링(Connection Pooling)과 쿼리 캐싱을 자동으로 수행하여 쿼리 성능과 안정성을 대폭 향상합니다. - 개발자는 `wrangler.jsonc` 설정 파일에 간단한 바인딩 정보를 추가하고, 표준 Postgres 클라이언트(예: `pg` 라이브러리)를 사용하여 즉시 SQL 쿼리를 실행할 수 있습니다. **Smart Placement를 이용한 네트워크 지연 시간 단축** - Workers의 'Placement' 힌트 기능을 사용하여, Worker가 PlanetScale 데이터베이스와 가장 가까운 Cloudflare 데이터 센터에서 실행되도록 설정할 수 있습니다. - 기본적으로 Workers는 사용자 위치에서 실행되지만, 중앙 집중식 데이터베이스를 사용할 때는 DB 서버 근처에서 실행되도록 조정함으로써 네트워크 레이턴시를 획기적으로 줄일 수 있습니다. - 향후에는 데이터베이스 위치에 따라 자동으로 실행 위치를 최적화하여 지연 시간을 한 자릿수 밀리초(ms) 단위로 단축하는 기능이 제공될 예정입니다. 현재 Cloudflare 대시보드에서 PlanetScale 데이터베이스를 바로 연결하여 사용할 수 있으며, 다음 달부터는 Cloudflare를 통한 통합 결제가 정식으로 시작됩니다. 고성능 풀스택 애플리케이션 구축을 고려 중이라면, 전 세계 어디서나 빠른 응답 속도를 보장하는 Cloudflare Workers와 PlanetScale의 결합을 적극 활용해 보시기 바랍니다.

cloudflare

Artifacts: versioned storage that speaks Git (새 탭에서 열림)

AI 에이전트가 생성하는 코드와 데이터의 양이 기하급수적으로 증가함에 따라, 기존의 소스 제어 플랫폼은 인간의 작업 속도를 상회하는 대규모 수요를 감당하기 어려워지고 있습니다. Cloudflare는 이러한 문제를 해결하기 위해 AI 에이전트 중심의 분산 버전 관리 파일 시스템인 'Artifacts'를 출시했습니다. Artifacts는 익숙한 Git 프로토콜을 기반으로 하면서도 API를 통해 수백만 개의 리포지토리를 프로그래밍 방식으로 즉시 생성하고 제어할 수 있는 새로운 저장소 프리미티브를 제공합니다. ### AI 에이전트에 최적화된 Git 인터페이스 * AI 모델들이 이미 학습 데이터로 익숙하게 습득한 Git 프로토콜을 그대로 사용하여, 별도의 CLI나 기술 전파 없이도 에이전트가 즉시 소스 제어를 수행할 수 있습니다. * 에이전트 세션마다 독립적인 리포지토리를 할당하거나, 특정 시점에서 수만 개의 포크(Fork)를 생성하여 병렬적으로 작업을 수행하는 것이 가능합니다. * 서버리스 환경과 같이 표준 Git 클라이언트를 사용하기 어려운 곳을 위해 REST API와 네이티브 Workers API를 별도로 제공하여 커밋과 자격 증명 관리를 단순화합니다. ### 단순 소스 제어를 넘어선 상태 관리 도구 * Git의 데이터 모델을 코드 저장뿐만 아니라 세션 프롬프트 히스토리, 샌드박스 상태, 사용자별 설정(Config) 등 시간 흐름에 따른 상태 추적이 필요한 모든 곳에 활용합니다. * Cloudflare 내부적으로는 에이전트 세션마다 Artifacts 리포지토리를 할당하여, 블록 스토리지 없이도 파일 시스템 상태를 영구 저장하고 특정 시점으로의 타임트래블(복구) 기능을 구현하고 있습니다. * 세션 자체를 포크(Fork)하여 동료와 공유하거나, 특정 실험 단계에서부터 다시 작업을 시작하는 등의 협업 워크플로우를 데이터 계층에서 지원합니다. ### Durable Objects와 Zig 기반의 고성능 아키텍처 * Cloudflare의 Durable Objects를 기반으로 설계되어 수천만 개의 독립적인 상태 저장 인스턴스를 확장성 있게 관리할 수 있습니다. * 런타임 효율성을 극대화하기 위해 Git 구현체를 Zig 언어로 작성한 뒤 WebAssembly(Wasm)로 컴파일하여 Cloudflare Workers 환경에서 가볍고 빠르게 동작하도록 구축했습니다. * 기존 외부 Git 저장소(예: GitHub)에서 데이터를 가져오는 `.import()` 기능과 읽기 전용 포크 생성 기능을 통해 복잡한 코드 베이스 위에서도 에이전트가 안전하게 독립적인 작업을 수행할 수 있도록 돕습니다. AI 에이전트가 주도하는 소프트웨어 개발 환경을 구축하고 있다면, Artifacts는 대규모 상태 관리와 버전 제어를 위한 가장 강력한 인프라가 될 것입니다. 현재 유료 Workers 플랜 사용자를 대상으로 프라이빗 베타를 진행 중이며, 5월 초 공개 베타 전환이 예정되어 있으므로 에이전트 세션 관리나 동적 환경 구축이 필요한 팀은 도입을 적극 검토해 보시기 바랍니다.

cloudflare

Introducing Agent Lee - a new interface to the Cloudflare stack (새 탭에서 열림)

Cloudflare가 발표한 'Agent Lee'는 복잡한 대시보드 인터페이스를 자연어 중심의 지능형 에이전트로 전환하려는 시도의 결과물입니다. 이 에이전트는 사용자의 Cloudflare 계정 리소스를 깊이 있게 이해하며, 단순한 질의응답을 넘어 문제 해결(Troubleshooting)과 실제 인프라 설정 변경 및 배포까지 직접 수행할 수 있습니다. 결과적으로 개발자는 수많은 탭을 오가며 설정과 로그를 대조하는 번거로움 없이 단일 프롬프트만으로 전체 플랫폼을 제어할 수 있게 됩니다. ### Agent Lee의 주요 역량과 활용 * **문제 진단 및 즉각적인 해결**: Worker에서 발생하는 503 에러나 DNS 설정 오류 등 복잡한 장애 상황을 파악하고, 원인 분석뿐만 아니라 실제 수정 조치까지 제안하고 실행합니다. * **통합 리소스 관리**: R2 버킷 생성, Worker 연결, 도메인 Access 활성화 등 서로 다른 제품군에 걸친 작업을 명령 한 번으로 수행할 수 있습니다. * **맥락 기반의 정보 통합**: DNS, Workers, SSL/TLS, Cache 등 계정 내 모든 데이터를 통합적으로 이해하여 "내 Worker에서 발생하는 주요 에러 5개를 보여줘"와 같은 계정 특화 질문에 답변합니다. ### 기술적 구현: Codemode와 성능 최적화 * **TypeScript API 활용**: MCP(Model Context Protocol) 도구 정의를 모델에 직접 전달하는 대신, 이를 TypeScript API로 변환하는 'Codemode'를 채택했습니다. 이는 LLM이 코드 작성에 더 능숙하다는 점을 활용해 정확도를 높이기 위함입니다. * **라운드트립 최적화**: 다단계 작업이 필요한 경우 모델이 여러 도구 호출을 하나의 스크립트로 체이닝(Chaining)하여 실행함으로써 불필요한 통신 횟수를 줄입니다. * **샌드박스 실행**: 생성된 코드는 업스트림 MCP 서버에서 격리된 상태로 실행되며, Durable Objects를 통해 안전하게 프록시 처리됩니다. ### 보안 및 권한 관리 아키텍처 * **읽기/쓰기 권한 분류**: Durable Objects가 생성된 코드를 분석하여 단순 조회(Read)와 변경(Write) 작업을 구분합니다. * **명시적 승인 게이트(Elicitation Gate)**: 모든 '쓰기' 작업은 사용자의 명시적인 승인 없이는 실행될 수 없도록 설계되었습니다. 이는 UX 차원의 확인 창이 아닌, 아키텍처 수준에서 강제되는 보안 경계입니다. * **자격 증명 보호**: API 키는 코드 내에 포함되지 않으며, 서버 측 Durable Object 내부에 보관되었다가 호출 시점에만 주입되어 모델에 노출되지 않습니다. ### 생성형 UI(Generative UI)와 시각화 * **동적 컴포넌트 생성**: 텍스트 답변에 그치지 않고 대화 맥락에 따라 차트, 아키텍처 맵, 테이블 등 대화형 UI 요소를 실시간으로 렌더링합니다. * **적응형 그리드 시스템**: 사용자는 캔버스 위의 그리드를 드래그하여 새로운 UI 블록 공간을 만들고, 에이전트에게 필요한 시각화 자료를 요청하여 자신만의 대시보드를 구성할 수 있습니다. * **데이터 시각화**: 트래픽 추이를 물으면 분석 페이지로 이동하는 대신 대화창 내에 직접 인터랙티브한 선 그래프를 그려줍니다. Agent Lee는 현재 베타 단계로, Cloudflare의 Agents SDK와 Workers AI 등 실제 고객이 사용하는 것과 동일한 기술 스택으로 구축되었습니다. 복잡한 클라우드 인프라 관리를 자동화하고자 하는 개발자들에게 매우 유용하며, 특히 야간 장애 대응이나 복합적인 리소스 배포 시 작업 시간을 획기적으로 단축할 수 있는 도구가 될 것으로 보입니다. 다만 베타 버전인 만큼 중요 설정을 변경할 때는 에이전트가 제시하는 변경 내역을 꼼꼼히 확인하는 과정이 필요합니다.

cloudflare

Rearchitecting the Workflows control plane for the agentic era (새 탭에서 열림)

Cloudflare의 워크플로우(Workflows) 컨트롤 플레인 재설계 과정을 다룬 이 글은, 인간 중심의 트리거에서 AI 에이전트 중심의 고속 트리거로 변화하는 기술 환경에 대응하기 위한 아키텍처 전환을 설명합니다. 기존의 중앙 집중식 구조에서 발생하는 병목 현상을 해결하기 위해 수평적 확장이 가능한 새로운 컴포넌트를 도입하였으며, 이를 통해 동시 실행 인스턴스 수를 기존 대비 10배 이상인 50,000개까지 확장하는 데 성공했습니다. 결과적으로 에이전트가 생성하는 방대한 양의 워크로드를 안정적이고 탄력적으로 처리할 수 있는 기반을 마련했습니다. ### 에이전트 시대의 워크로드 변화와 새로운 요구사항 * **트리거 주체의 변화:** 과거에는 사용자의 회원가입이나 주문 등 인간의 행동에 의해 워크플로우가 시작되었으나, 현재는 자율적인 AI 에이전트가 기계적인 속도로 워크플로우를 생성합니다. * **지속성 및 내구성의 중요성:** 에이전트가 며칠 동안 작업을 수행하거나 인간의 승인을 기다리는 동안, 워크플로우는 각 단계를 독립적으로 재시도하고 실패 시에도 진행 상황을 유지하는 내구성이 필요합니다. * **폭발적인 인스턴스 생성:** 단일 에이전트 세션이 수십 개의 워크플로우를 생성하고 수천 개의 인스턴스가 동시에 실행되는 환경에 대응하기 위해 더 높은 처리량이 요구됩니다. ### V1 아키텍처의 한계: 중앙 집중형 구조의 병목 * **단일 Durable Object(DO) 의존:** 모든 계정 레벨의 정보와 인스턴스 관리를 'Account'라는 단일 Durable Object가 담당하여 병목 현상이 발생했습니다. * **확장성 제약:** 인스턴스 생성, 업데이트, 조회 등의 모든 작업이 하나의 DO를 거쳐야 했으므로, 동시 실행 4,500개 및 10초당 100개의 생성 제한이라는 물리적인 한계에 부딪혔습니다. * **상태 불일치 가능성:** 워크플로우를 큐에 넣기 전 실제 실행 엔진(Engine)의 생성 여부를 확인하는 로직이 부족하여 비정상적인 상태가 발생할 가능성이 있었습니다. ### V2 아키텍처: 수평적 확장을 위한 재설계 원칙 * **엔진 중심의 진실 공급원(Source of Truth):** 특정 인스턴스의 존재 여부에 대한 권한을 해당 인스턴스의 실행 엔진(Engine)에만 부여하여 의존성을 분산했습니다. * **메타데이터의 최소화:** 계정 수준의 싱글톤(Singleton) 객체는 최소한의 메타데이터만 저장하고, 요청 수에 관계없이 일정한 성능을 유지하도록 설계했습니다. * **새로운 컴포넌트 도입:** 'Account' DO의 부하를 분산하기 위해 메타데이터와 생명주기 관리를 보조하는 **SousChef**와 동시성 제어 및 액세스를 담당하는 **Gatekeeper**를 새롭게 구축했습니다. ### 향상된 성능 지표 및 확장된 한계치 * **동시 실행 인스턴스:** 기존 4,500개에서 **50,000개**로 대폭 상향되었습니다. * **인스턴스 생성 속도:** 계정당 초당 100개에서 **초당 300개**로 향상되었습니다. * **대기열 용량:** 워크플로우당 대기 중인 인스턴스 수가 100만 개에서 **200만 개**로 두 배 늘어났습니다. AI 에이전트가 주도하는 애플리케이션을 구축하는 개발자라면, 이제 인프라의 한계에 구애받지 않고 고도로 병렬화된 워크플로우를 설계할 수 있습니다. Cloudflare Workflows의 V2 컨트롤 플레인은 대규모 자동화 인프라를 위한 강력하고 탄력적인 토대를 제공합니다.

cloudflare

Project Think: building the next generation of AI agents on Cloudflare (새 탭에서 열림)

Cloudflare는 차세대 AI 에이전트 구축을 위한 새로운 프레임워크인 'Project Think'를 공개했습니다. 이 프로젝트는 단순한 도구 모음을 넘어 내구성 있는 실행(Durable execution), 하위 에이전트 관리, 샌드박스 코드 실행 등을 포함한 강력한 프리미티브(Primitives)를 제공하여 에이전트가 중단 없이 장시간 작업을 수행할 수 있도록 돕습니다. 이를 통해 기존 에이전트의 높은 유지 비용과 확장성 문제를 해결하고, 인프라 수준에서 스스로 사고하고 동작하는 에이전트 환경을 구축하는 것을 목표로 합니다. ### 기존 에이전트 모델의 한계와 확장성 문제 * **로컬 및 고비용 환경의 제약:** 현재의 코딩 에이전트들은 주로 개인 노트북이나 비싼 VPS에서 실행되어 기기 간 협업이나 상태 공유가 어렵고, 사용하지 않을 때도 고정적인 비용이 발생합니다. * **1대1 서비스 구조의 비효율성:** 일반적인 앱은 하나의 인스턴스가 다수의 사용자를 처리하지만, 에이전트는 사용자 한 명당 하나의 인스턴스가 할당되는 '개인 셰프'와 같은 구조를 가집니다. 이는 수천만 명의 사용자를 대응할 때 기존 컨테이너 기반 방식으로는 비용 감당이 불가능함을 의미합니다. * **관리의 복잡성:** 의존성 설치, 업데이트 관리, 비밀번호 및 아이디 설정 등 수동으로 관리해야 할 요소가 많아 대규모 배포에 걸림돌이 됩니다. ### Durable Objects 기반의 지속성 아키텍처 * **액터 모델(Actor Model) 채택:** Cloudflare의 Durable Objects를 기반으로 각 에이전트에 고유한 식별자와 자체 SQLite 데이터베이스를 부여합니다. * **비용 최적화:** 에이전트가 활동하지 않을 때는 휴면(Hibernation) 상태로 전환되어 컴퓨팅 비용이 발생하지 않으며, 이벤트(HTTP, 이메일, 알람 등)가 발생할 때만 즉시 깨어나 상태를 로드합니다. * **자동 확장성:** 별도의 용량 관리 없이 수만 개의 에이전트를 동시에 운영할 수 있으며, 각 에이전트는 독립적인 상태와 로직을 유지합니다. ### Project Think의 핵심 기술 프리미티브 * **Fibers를 이용한 내구성 있는 실행:** `runFiber()` 함수를 통해 실행 중인 작업을 SQLite에 등록하고, `stash()`로 체크포인트를 설정하여 시스템 충돌이나 재시작 후에도 중단된 지점부터 작업을 재개할 수 있습니다. * **샌드박스 및 동적 실행:** Dynamic Workers를 활용해 에이전트가 안전한 격리 환경 내에서 직접 코드를 작성하고 실행할 수 있도록 지원하며, 런타임에 필요한 npm 패키지를 직접 해결합니다. * **계층 구조의 에이전트:** 하위 에이전트(Sub-agents)를 생성하여 복잡한 작업을 분담할 수 있으며, 이들은 각자의 SQLite 데이터베이스와 타입화된 RPC를 통해 부모 에이전트와 통신합니다. * **지능형 세션 관리:** 트리 구조의 메시지 기록, 포킹(forking), 컴팩션 및 전문 검색 기능을 제공하여 에이전트가 과거의 맥락을 정확하게 파악하고 활용할 수 있게 합니다. 프로젝트 Think는 에이전트를 단순히 '실행되는 프로그램'이 아니라 '지속되는 인프라'로 격상시킵니다. 대규모 사용자에게 맞춤형 AI 비서를 저렴한 비용으로 제공하고자 하는 개발자라면, Cloudflare Agents SDK의 내구성 있는 실행 모델과 액터 기반 아키텍처를 도입하여 복구 가능하고 확장성 있는 에이전트 서비스를 설계해 보시기 바랍니다.

cloudflare

Add voice to your agent (새 탭에서 열림)

Cloudflare는 기존 Agents SDK에 실시간 음성 기능을 통합할 수 있는 실험적 라이브러리인 `@cloudflare/voice`를 공개했습니다. 이 도구를 사용하면 별도의 음성 전용 프레임워크로 옮길 필요 없이, 기존의 Durable Object 아키텍처와 WebSocket 연결 모델을 그대로 유지하면서 에이전트에 음성 인터페이스를 추가할 수 있습니다. 이를 통해 개발자는 텍스트와 음성 입력을 동일한 상태 공간에서 처리하고 SQLite를 통해 대화 이력을 영속적으로 관리하는 고도화된 음성 에이전트를 구축할 수 있게 됩니다. **@cloudflare/voice의 주요 구성 요소 및 기능** * **고차 에이전트 함수**: 전체 음성 대화를 지원하는 `withVoice(Agent)`와 음성을 텍스트로 변환하는 기능만 제공하는 `withVoiceInput(Agent)`을 통해 용도에 맞는 에이전트를 설계할 수 있습니다. * **React 및 클라이언트 지원**: React 앱에서 음성 상태와 전사 내용을 쉽게 관리할 수 있는 `useVoiceAgent`, `useVoiceInput` 훅과 프레임워크에 구애받지 않는 `VoiceClient`를 제공합니다. * **내장 Workers AI 제공자**: 외부 API 키 설정 없이도 즉시 시작할 수 있도록 Deepgram Flux 및 Nova 3(실시간 STT), Deepgram Aura(TTS) 등 Cloudflare Workers AI 기반의 엔진을 기본 지원합니다. * **개방형 인터페이스**: 특정 기술 스택에 종속되지 않도록 인터페이스를 작게 설계하여, 개발자가 필요에 따라 다양한 음성, 통신, 전송 계층 제공자를 선택하고 조합할 수 있습니다. **서버 및 클라이언트 구현 방식** * **서버 측 로직**: `Agent` 클래스를 `withVoice`로 감싸고, `onTurn()` 메서드 내에서 사용자 발화에 대한 응답 로직을 작성합니다. 이때 전사기(Transcriber)와 TTS 인스턴스를 설정에 추가하는 것만으로 음성 에이전트 서버가 완성됩니다. * **클라이언트 측 연결**: 단일 WebSocket을 통해 16kHz 모노 PCM 오디오 데이터를 스트리밍하며, 클라이언트 라이브러리는 통화 상태(status), 실시간 전사(transcript), 음소거(mute) 기능 등을 자동으로 관리합니다. * **통합 아키텍처**: 음성 기능이 추가되어도 동일한 Durable Object 인스턴스와 SQLite 기반의 대화 기록을 공유하므로, 기존 텍스트 기반 에이전트의 지식과 맥락을 그대로 활용할 수 있습니다. **실시간 음성 파이프라인의 작동 원리** * **지속적 전사 및 턴 감지**: 통화가 시작되면 에이전트는 지속적인 전사 세션을 생성하며, STT 모델이 사용자의 발화 종료 시점을 스스로 판단하여 안정적인 텍스트 결과(Turn)를 앱 로직에 전달합니다. * **문장 단위 스트리밍**: `onTurn()` 메서드가 텍스트 스트림을 반환하면, 파이프라인이 이를 문장 단위로 분할(Chunking)하여 각 문장이 준비되는 즉시 실시간으로 음성을 합성해 클라이언트로 전송합니다. * **데이터 영속성**: 모든 사용자 메시지와 에이전트의 응답은 SQLite 데이터베이스에 자동으로 기록되어, 네트워크 연결이 끊기거나 서버가 재배포되어도 끊김 없는 대화 경험을 보장합니다. 이 라이브러리는 음성 기능을 복잡한 별도의 서비스로 분리하지 않고 에이전트의 라이프사이클 내에 자연스럽게 통합했다는 점에서 매우 실용적입니다. 기존 Cloudflare Agents SDK를 사용 중인 개발자라면 추가적인 인프라 구축 없이 Workers AI의 성능을 활용해 지연 시간이 낮은 실시간 대화형 AI를 구축할 수 있으므로, 단순 텍스트 인터페이스를 넘어선 다중 모달(Multi-modal) 환경으로의 확장을 적극 고려해 보길 추천합니다.