Cloudflare Workers 위에서 터미널 AI 코딩 에이전트를 통째로 돌리는 프로젝트
요약
기사 전체 정리
Cloudflare Workers 위에서 터미널 기반 AI 코딩 에이전트를 통째로 돌리는 프로젝트가 나왔음. 브라우저에서 ghostty-web 터미널 UI를 띄우고, 뒤에서는 Durable Object + SQLite로 세션과 파일을 영속적으로 관리하는 구조임
핵심 아키텍처가 꽤 흥미로운데, 세션 하나가 SQLite 기반 Durable Object 하나에 매핑됨. 메시지 히스토리, 에이전트 세션 상태, 파일시스템, 배포된 Worker 메타데이터, cron job까지 전부 여기 저장됨
에이전트가 세션 안에서 할 수 있는 것들이 꽤 많음:
- 파일 CRUD + 리스트
- 격리된 Worker 샌드박스에서 JavaScript 실행
esm.sh를 통한 패키지 import- 파일을 Worker 엔드포인트로 퍼블리시 (
/w/<session>/<name>) - Durable Object alarm 기반 cron job 생성 (최소 10분 간격)
코드 실행은 Cloudflare의 Dynamic Worker Loader를 사용해서 유저 코드를 격리된 Worker에서 돌림. 로컬 파일 상대 import, esm.sh 패키지 import, 같은 Worker 내 loopback을 통한
fetch()아웃바운드까지 지원됨퍼블리시된 Worker는 의존성 버전 기준으로 캐시돼서 매 요청마다 리빌드하지 않음. cron job은 실행할 때마다 저장된 프롬프트를 같은 세션에 다시 보내고, 다음 실행 시간 계산해서 알람을 재설정하는 방식임
참고
> 이 프로젝트는 CF_GATEWAY_TOKEN 시크릿이 필요하고, 아직 실험 단계라고 명시하고 있음. 하지만 실제로 배포 가능하고 https://pi.camelai.dev 에서 라이브로 돌아가고 있음
라우팅 구조도 깔끔함:
/→ 새 세션 생성 후 리다이렉트,/s/<id>→ 터미널 UI,/ws/<id>→ WebSocket I/O,/w/<session>/<name>→ 퍼블리시된 Worker 엔드포인트Cloudflare Workers의 한계 안에서 "풀스택 AI 에이전트 런타임"을 구현한 게 인상적임. Durable Object를 세션 스토리지 + 스케줄러로 쓰고, Dynamic Worker Loader로 샌드박스 실행 환경까지 만든 건 Workers 플랫폼 활용의 좋은 레퍼런스임
댓글
댓글
댓글을 불러오는 중...