Talorys – A self-hosted personal AI agent on Cloudflare's free tier
Talorys — Cloudflare 무료 요금제에서 실행하는 개인 AI 에이전트
Talorys는 채팅과 기억, 작업 관리, 예약 알림을 제공하는 오픈소스 개인 AI 에이전트입니다. Cloudflare 계정에 한 번의 명령으로 배포하며 데이터와 실행 환경을 직접 관리하지만, Cloudflare 인프라와 무료 요금제 한도에 의존합니다.
- 주제
AI 요약
Talorys는 개인용 AI 비서와 작업 관리 도구를 하나로 묶은 오픈소스 프로젝트입니다. 대화 기록과 개인 정보, 할 일·메모·프로젝트를 관리하고, 일회성 알림이나 반복 작업을 예약합니다. 별도 서버나 데이터베이스를 마련하지 않고 npx create-talorys@latest 명령으로 사용자의 Cloudflare 계정에 배포합니다. 가입이나 팀 기능은 없으며, 설치 과정에서 정한 소유자 비밀번호로 접근합니다.
구성과 데이터 흐름
브라우저는 Cloudflare Pages에 배포한 React 앱에 접속합니다. /api/* 요청은 Pages Function을 거쳐 service binding으로 비공개 Worker에 전달됩니다. Worker는 외부 공개 URL을 만들지 않으며, Hono 라우터가 Cloudflare Agents SDK의 Durable Object 에이전트를 호출합니다. 인증과 권한 확인도 Worker에서 처리합니다. 대화 응답은 Server-Sent Events로 브라우저까지 스트리밍합니다.
에이전트 데이터는 SQLite를 사용하는 단일 Durable Object에 저장합니다. 대화, 기억, 작업, 메모, 프로젝트, 자동화, 세션, 설정, 사용량 정보가 여기에 들어갑니다. 예약 알림과 반복 일정은 Durable Object alarm으로 실행하므로 상시 켜 둔 서버가 필요하지 않습니다. 채팅은 Workers AI의 @cf/zai-org/glm-4.7-flash 모델을 사용하며 스트리밍과 도구 호출을 지원합니다. 매 대화마다 저장한 기억 전체를 보내는 대신 관련성이 높은 기억만 모델 프롬프트에 포함합니다.
설치와 운영
설치 프로그램은 Node.js 20.18 이상을 확인하고 Cloudflare 로그인 또는 인증을 안내합니다. 계정과 에이전트 이름을 고른 뒤 소유자 비밀번호를 입력하면 비밀번호를 로컬에서 PBKDF2-SHA256으로 해시해 Cloudflare secret으로 저장합니다. 256비트 세션 비밀값과 리소스 이름을 만들고 Worker, SQLite 기반 Durable Object, Pages 프로젝트를 배포합니다. 마지막으로 프런트엔드, 인증, 비인증 요청 거부, 저장소 상태를 검사합니다. 이 확인 과정에서는 AI 추론을 실행하지 않습니다.
설치 파일은 계정 ID와 리소스 이름, 배포 URL을 담은 talorys.json을 작성합니다. 비밀값은 이 파일에 기록하지 않습니다. 같은 위치에서 설치 명령을 다시 실행하면 기존 리소스를 확인해 이어서 진행하며, 중복 리소스를 만들거나 데이터를 삭제하지 않습니다. 업데이트 명령은 같은 리소스에 Worker와 프런트엔드를 다시 배포합니다. Durable Object 네임스페이스는 재생성하지 않고, 스키마 변경은 첫 요청에서 트랜잭션으로 적용합니다. 비밀번호를 잊으면 CLI로 새 비밀번호를 설정할 수 있으며, 이때 모든 기기 세션에서 로그아웃됩니다.
무료 요금제와 제한
프로젝트는 Cloudflare Pages, Workers, SQLite 기반 Durable Objects, Workers AI의 무료 요금제 범위에 맞춰 설계했습니다. R2, D1, KV, Vectorize, AI Search, Workflows나 유료 서비스를 자동으로 만들지 않습니다. 다만 무료 사용이 무제한이라는 뜻은 아닙니다. Cloudflare 계정의 요청·Durable Objects 사용량과 일일 Workers AI Neuron 할당량을 따르며, 한도를 넘으면 채팅은 일일 초기화까지 멈춥니다. 이때도 작업, 메모, 기억, 알림 기능은 계속 작동합니다. 계정이 유료 요금제라면 포함량을 초과한 사용량은 Cloudflare가 청구합니다.
설정에서 출력 토큰과 문맥 토큰, 요청당 도구 호출 및 추론 단계 수, 하루 AI 요청 수와 예약 AI 실행 수를 제한합니다. 단순 알림과 작업 요약에는 AI를 쓰지 않습니다. 사용량 화면에는 로컬 추정치를 표시하고 정확한 Neuron 사용량을 확인할 Cloudflare 대시보드로 연결합니다. 데이터는 사용자의 Cloudflare 계정에 저장되며 Talorys 개발자는 텔레메트리나 광고 코드를 포함하지 않는다고 설명합니다. 다만 Cloudflare는 서비스 제공 과정에서 데이터를 처리하며, 채팅 메시지와 프롬프트에 포함한 관련 기억은 Workers AI 추론에 전달됩니다.
Hacker News 반응
- @rociiu — 월 구독료를 내거나 다른 업체의 호스팅 서비스에 의존하지 않고 직접 통제하는 개인 비서를 만들고 싶어 프로젝트를 시작했습니다. 아키텍처와 보안, 실제로 쓸 만한 개인 AI 에이전트에 필요한 기능에 관한 의견을 듣고 싶습니다.
- @onionisafruit — 좋은 아이디어지만, 다른 업체의 호스팅 서비스에 의존하지 않는다고 말하기는 어렵습니다. Cloudflare는 아직 공공 인프라가 아닙니다.
- @muvlon — 누군가의 호스팅 서비스에 의존하는 대신, 네 가지 호스팅 서비스에 의존하는 셈 아닌가요?
- @tln — 설정과 실행은 아주 쉬웠습니다. 웹페이지 접근이나 검색 기능이 있으면 좋겠습니다. 무료 1만 Neuron이면 가벼운 사용에 충분할 것 같지만, 몇 분간 대화하며 500을 썼습니다. 여러분은 사용량을 얼마나 자주 소진하나요?
- @deanc — Cloudflare Workers AI가 있다는 사실을 처음 알았습니다. 무료 요금제에서 하루 1만 Neuron을 준다는데, 이게 대체 뭔가요?
- @martheen — 1만 Neuron은 해당 사용량 기준으로 대략 0.11달러입니다.
- @flufluflufluffy — 저는 ‘셀프 호스팅’을 제가 직접 호스팅하는 경우라고 정의합니다.
- @loveparade — 기준은 분명하다고 생각합니다. SaaS 플랫폼을 쓰는 건 편리한 선택일 뿐이며, 셀프 호스팅에 필수 조건은 아닙니다.
- @ajnin — 셀프 호스팅은 직접 소프트웨어를 실행하는 일입니다. 집의 하드웨어에서 실행하는 것도 해당하고, 데이터센터의 VPS에서 실행하는 것도 해당합니다. 클라우드 플랫폼에서 실행하는 경우는 경계가 모호하지만, 소프트웨어를 직접 통제하는지가 중요합니다.
- @StrLght — 모든 것을 Cloudflare에 의존하는데 셀프 호스팅이라고 할 부분은 전혀 없습니다.
- @hung — 유료 Workers를 쓴다면 Cloudflare의 ‘무료’ AI 요금제를 조심하세요. 무료 한도에 포함돼야 할 사용량 때문에 청구된 이유를 물었지만 답변을 받지 못했습니다. 고객 지원은 문의를 무시했고, 지원 Discord의 논의를 보면 알려진 문제처럼 보입니다.
- @scosman — Cloudflare Workers AI는 사용자와 실시간으로 상호작용하는 용도로는 아주 느립니다. 백그라운드 작업이나 평가에는 괜찮습니다.
- @ttul — Durable Objects는 최근 본 것 중 가장 멋진 기술입니다. 코드와 데이터를 한데 묶고, 사용하지 않을 때는 멈춰 있다가 요청이 오면 몇 밀리초 안에 준비됩니다. 정말 유용합니다.
- @subscribed — Durable Objects로 3만 4천 달러, 또 다른 사례로 1만 7천 달러 청구서를 받았다는 글을 어제 읽었습니다. 꽤 멋지긴 하지만 위험 부담도 큽니다.
- @andrewdb — 의미 기반 기억 검색이 필요합니다. ‘저는 채식주의자입니다’라는 기억을 추가하고 저녁 메뉴를 물었더니 닭고기와 연어를 포함한 선택지를 제안했습니다. 의미 검색 기능을 추가하는 제안서를 작성했습니다.
- @vlovich123 — 셀프 호스팅이 아니라고 지적하는 사람들에게 말하자면, 오픈소스입니다. AI 호출을 로컬 모델 서버로 바꾸는 일은 비교적 간단하고 나머지는 Wrangler로 로컬에서 실행됩니다. 직접 손보면 20분, AI에게 요청하면 1분도 걸리지 않습니다.
- @jambutters — 거슬리는 부분은 표현입니다. 셀프 호스팅이 가능한 제품이라면 그 점을 먼저 내세우고, 유료 선택지는 그다음에 언급하는 경우가 많습니다.
원문: Hacker News / 번역·요약: Trawling