Cloudflare Agents SDK 0.14, 중단된 작업을 되살리는 복구 기능
Cloudflare Agents SDK 0.14가 Agent Skills, Telegram messenger, scheduled tasks, ThinkWorkflow, durable recovery를 추가했습니다.
- 무슨 일: Cloudflare가 2026년 6월 2일
Agents SDK v0.14.0을 공개했습니다.- 추가 항목은 Agent Skills, Telegram messenger, scheduled tasks,
ThinkWorkflow, durable chat recovery입니다.
- 추가 항목은 Agent Skills, Telegram messenger, scheduled tasks,
- 개발자 영향: 에이전트 기능이 prompt glue가 아니라 Workers와 Durable Objects 위의 runtime primitive로 이동합니다.
- 주의점: Skill script execution은 experimental이고, V8 isolate 기반 Workers는 container형 MCP server와 다른 제약을 갖습니다.
- GitHub release는 deploy, eviction, stalled stream 중 work loss와 중복 tool 실행을 줄이는 변경을 자세히 적었습니다.
Cloudflare가 2026년 6월 2일 Agents SDK v0.14.0을 공개했습니다. 발표 문서의 첫 문장은 @cloudflare/think로 빌드할 수 있는 새 기능 네 가지를 나열합니다. on-demand Agent Skills, Telegram으로 시작하는 chat messengers, declarative scheduled tasks, Cloudflare Workflows 안에서 실행되는 durable reasoning step입니다. 같은 릴리스는 deploy, Durable Object eviction, stalled model stream 중에도 chat turn을 잃지 않도록 recovery path를 고쳤다고 설명합니다. 새 모델이나 benchmark가 아니라, 에이전트가 오래 실행될 때 깨지는 지점을 runtime 기능으로 줄이는 릴리스입니다.
Cloudflare Agents SDK의 기본 전제는 agent를 stateless HTTP handler가 아니라 Durable Object 위의 TypeScript class로 본다는 점입니다. 공식 Agents 문서는 각 agent가 자체 SQL database, WebSocket connections, scheduling을 가진 stateful micro-server로 실행된다고 설명합니다. stable name을 가진 instance가 event를 받으면 durable state를 읽고, 작업을 수행하고, idle 상태로 돌아갑니다. 이번 0.14.0은 그 위에 "무엇을 할 수 있나"보다 "실패했을 때 어떻게 이어가나"를 더 강하게 붙였습니다.

이번 릴리스에서 가장 눈에 띄는 항목은 Agent Skills입니다. Cloudflare는 skill source가 catalog를 system prompt에 추가하고, 모델이 task와 맞을 때만 skill을 활성화한다고 설명합니다. local ./skills directory는 Agents Vite plugin을 통해 agents:skills import로 bundle될 수 있고, R2 bucket이나 manifest에서도 skill을 읽을 수 있습니다. skill이 활성화되면 Think는 activate_skill, read_skill_resource, 선택적 run_skill_script tool을 노출합니다. 큰 skill library를 매 turn prompt에 모두 넣지 않고 catalog와 activation으로 나누는 구조입니다.
이 구조는 OpenAI Codex, Anthropic Claude, Vercel AI SDK 주변에서 이미 익숙해진 "skill" 개념을 Cloudflare runtime에 넣는 시도입니다. 차이는 저장 위치와 실행 경계입니다. Cloudflare 예시는 bundled local skills와 R2-backed skills를 함께 둡니다. R2는 Cloudflare의 object storage입니다. 즉 skill distribution을 npm package나 local repository에만 묶지 않고 Cloudflare account의 storage primitive와 연결할 수 있습니다. 다만 발표문은 Agent Skills가 experimental이고, script execution은 특히 초기 단계라 API가 바뀔 수 있다고 선을 그었습니다.
릴리스의 두 번째 축은 messenger입니다. Cloudflare는 Think agent를 chat platform에 직접 연결하고, webhook route, conversation routing, durable reply fiber, streamed delivery를 Think가 맡는다고 설명합니다. 첫 provider는 Telegram입니다. group chat과 direct message는 기본적으로 각각 다른 Think sub-agent에 mapping되어 memory를 공유하지 않습니다. 이 항목은 작은 기능처럼 보이지만, agent product에서 흔한 "Slack bot 또는 Telegram bot을 붙인 뒤 대화 상태를 따로 보관하는 glue code"를 SDK primitive로 당기는 변화입니다.
세 번째 축은 scheduled tasks입니다. Cloudflare 예시는 every week on monday at 09:00, every day at 08:00 in Europe/London 같은 schedule string을 제시합니다. Think는 startup 때 선언을 reconcile하고, 각 실행 뒤 다음 occurrence를 다시 arm하며, durable idempotent submissions로 backing한다고 설명합니다. agent가 사용자 메시지에만 반응하는 chat UI에서 벗어나려면 schedule이 필요합니다. 매주 commit report를 만들거나, 매일 특정 시간에 workspace를 점검하거나, 사용자 부재 중 support queue를 정리하는 작업이 여기에 들어갑니다.
네 번째 축은 ThinkWorkflow입니다. Cloudflare는 model-driven reasoning step을 Cloudflare Workflow 안에서 step.prompt()로 실행할 수 있다고 설명합니다. 예시는 issue triage workflow입니다. zod schema로 title, summary, labels를 정의하고, step.prompt("triage-issue", { output: draftSchema, timeout: "3 days" })로 structured output을 받습니다. 그 다음 step.do("apply-labels")에서 agent method를 호출합니다. 모델 호출이 workflow step으로 들어가면 retry, long wait, approval gate, typed output을 agent loop 바깥 orchestration과 묶을 수 있습니다.
| 기능 | 0.14.0에서 추가된 표면 | 실무 영향 |
|---|---|---|
| Agent Skills | agents:skills, R2 source, manifest source | 반복 작업 지침과 resource를 prompt 전체가 아니라 catalog로 관리 |
| Messengers | Telegram provider, conversation별 Think sub-agent | chat bot의 route, stream, memory 분리를 SDK가 처리 |
| Scheduled tasks | timezone-aware schedule DSL과 durable submissions | 사용자 메시지 없이 recurring prompt와 handler 실행 |
| Think Workflows | ThinkWorkflow, step.prompt(), typed output | LLM reasoning을 장기 workflow, approval, retry와 결합 |
| Recovery | isRecovering, stream stall watchdog, sub-agent reattach | deploy와 eviction 중 작업 손실과 중복 실행을 줄임 |
release note의 긴 부분은 recovery입니다. Cloudflare는 durable chat turn이 mid-turn deploy나 Durable Object eviction을 견디도록 설계되어 있었지만, 이번 릴리스가 production hardening pass라고 설명합니다. useAgentChat은 새 isRecovering flag를 노출합니다. recovery 중인 turn이 token을 생성하지 않아도 UI가 멈춘 것처럼 보이지 않게 하기 위한 신호입니다. stalled stream도 chatStreamStallTimeoutMs로 recovery path에 태울 수 있습니다. parent recovery 중 실행 중이던 agentTool() child는 abandon과 재실행 대신 기존 result에 re-attach됩니다.
GitHub release agents@0.14.0은 이 문제를 더 구체적으로 적습니다. 이전에는 sub-agent run이 deploy나 parent recovery로 끊겼을 때 genuine failure, intentional cancellation, transient interruption이 모두 비슷한 error string으로 보일 수 있었습니다. 0.14.0은 AgentToolFailure에 status: "error" | "aborted" | "interrupted"와 retryable을 추가했습니다. interrupted는 retryable true입니다. parent agent가 일시 중단을 최종 실패처럼 사용자에게 말하지 않고 다시 dispatch할 수 있게 하는 정보입니다.
sub-agent reattach 변경도 중요한 운영 항목입니다. GitHub release는 parent agent가 child agentTool() run을 기다리는 동안 deploy나 Durable Object eviction을 맞으면, 이전 경로가 child work를 abandoned 또는 interrupted로 seal하고 task를 다시 실행할 수 있었다고 설명합니다. 0.14.0은 tool call id에서 stable child runId를 만들고, 같은 child facet에 다시 붙어 실제 terminal result를 수집합니다. long-running child가 이미 파일을 만들었는데 parent가 처음부터 다시 시키는 상황을 줄이는 변경입니다.
MCP transport 개선도 같은 방향입니다. changelog는 in-flight tool call over SSE가 dropped connection을 만나도 client가 Last-Event-ID로 reconnect하고 missed event를 replay할 수 있다고 설명합니다. addMcpServer는 optional id를 받아 tool_github_create_pull_request처럼 readable tool key를 만들 수 있습니다. overlapping JSON-RPC requests는 HTTP와 RPC transport에서 response correlation이 개선됐습니다. agent가 여러 tool과 MCP server를 오래 물고 있을수록 "연결이 끊겼을 때 어느 요청의 결과인가"가 실제 장애가 됩니다.
이 릴리스가 말하는 경쟁 지점은 모델 품질이 아닙니다. Agent platform이 맡아야 하는 운영 primitive입니다. skill activation, chat platform connector, schedule, workflow, stream recovery, sub-agent recovery, MCP resumability가 한 SDK release에 묶였습니다. agent product는 prompt와 tool list만으로 끝나지 않습니다. 장기 실행 agent는 deploy, model stream stall, child task, approval, webhook, recurring job, reconnect를 모두 겪습니다.
Cloudflare의 장점은 Workers와 Durable Objects에 이미 있는 stateful edge runtime입니다. 공식 Agents 문서는 agent마다 SQL database와 key-value state가 있고, WebSocket hibernation과 scheduling을 활용한다고 설명합니다. agent가 idle일 때 hibernate하고, event가 오면 같은 named instance가 깨어나는 구조입니다. 이것은 container session을 오래 붙잡는 방식과 다릅니다. Cloudflare는 "session을 외부화하지 않아도 되는 agent"를 주장할 수 있습니다.
그 대신 제약도 있습니다. Reddit r/LLMDevs의 2026년 6월 2일 agent platform 비교 글은 Cloudflare Agents를 open-source TypeScript SDK로 평가했습니다. 같은 글은 Workers가 V8 isolates라 기존 Go, Python, Rust MCP servers를 그대로 isolated server로 실행하기 어렵다고 지적했습니다. Durable Objects에는 on-prem equivalent가 없기 때문에 self-hosting도 직접적인 선택지가 아닙니다. Cloudflare에서 agent를 만들면 Cloudflare primitive에 깊게 결합됩니다. 이 결합은 운영 편의를 주지만 portability 비용을 만듭니다.
비용도 따로 봐야 합니다. Cloudflare Agents는 Durable Objects, Workflows, R2, Workers AI, AI Gateway 같은 platform resource를 연결합니다. agent recovery가 좋아져도, 잘못 설계된 long-running chat이나 반복 write가 storage와 invocation 비용을 키울 수 있습니다. 2026년 봄 Cloudflare 관련 Reddit 토론에는 Durable Object write 폭증과 MCP transport hang 같은 실무 불만이 반복적으로 등장했습니다. 이번 0.14.0의 recovery hardening은 그 불만을 줄이는 방향이지만, 비용 모델 자체를 없애지는 않습니다.
개발자가 이번 릴리스를 검토할 때 먼저 확인할 항목은 workload입니다. support bot처럼 Telegram이나 future messenger가 중요한 제품이라면 messenger primitive가 glue code를 줄입니다. recurring research, monitoring, digest를 돌리는 agent라면 scheduled tasks가 필요합니다. issue triage, approval, multi-day wait, label application 같은 흐름은 ThinkWorkflow가 맞습니다. MCP server를 많이 붙이는 agent라면 SSE resumability와 readable server id가 더 직접적인 이득입니다.
두 번째 확인 항목은 failure test입니다. Cloudflare release note가 강조한 deploy, Durable Object eviction, stalled stream, sub-agent recovery는 문서로만 읽을 주제가 아닙니다. 실제 agent project는 staging에서 deploy churn을 만들고, model stream stall을 흉내 내고, child agentTool()이 긴 작업을 하는 중 parent를 recover시키는 test를 가져야 합니다. 0.14.0은 이런 test를 통과하기 쉬운 primitive를 제공하지만, 각 제품의 tool side effect와 idempotency는 개발자가 설계해야 합니다.
세 번째 확인 항목은 Agent Skills의 보안입니다. skill은 반복 작업을 줄이는 편의 기능이지만, resource와 script execution을 다룹니다. Cloudflare가 script execution을 experimental이라고 표시한 이유도 여기에 있습니다. skill catalog가 prompt에 들어가고 run_skill_script가 선택적으로 노출되면, malicious skill, stale instruction, credential exposure, over-broad permission 문제가 생깁니다. R2에서 skill을 읽는 구조라면 bucket policy, versioning, approval workflow를 함께 설계해야 합니다.
이 지점에서 최근 agent skill ecosystem 연구와도 연결됩니다. 2026년 5월 27일 공개된 Exploring the Emerging Threats of the Agent Skill Ecosystem 논문은 주요 marketplace의 agent skills 3984개를 분석해 76개의 confirmed malicious payload를 찾았다고 보고했습니다. Cloudflare 발표가 이 논문을 직접 언급하지는 않지만, skill을 runtime primitive로 넣는 모든 platform이 같은 문제를 만납니다. skill loading은 developer experience이면서 supply-chain surface입니다.
Cloudflare Agents SDK 0.14.0의 뉴스 가치는 기능 목록보다 조합에 있습니다. Cloudflare는 agent가 기억하고, 대화하고, schedule에 맞춰 깨어나고, workflow에서 reasoning하고, MCP tool을 부르고, deploy 중 끊긴 turn을 복구하는 흐름을 하나의 Workers 기반 SDK로 묶고 있습니다. agent 시장에서 "어떤 모델을 쓰나"만큼 "어떤 runtime이 실패를 흡수하나"가 중요해졌다는 신호입니다.
이번 릴리스는 Cloudflare가 OpenAI나 Anthropic처럼 frontier model을 내놓는 회사가 아니어도 agent 개발 경쟁에서 자리를 만들 수 있음을 드러냅니다. Cloudflare의 무기는 model benchmark가 아니라 edge deployment, Durable Object state, WebSocket/SSE transport, Workflows, R2, MCP integration입니다. AI team이 Cloudflare를 고르는 이유도 모델 품질보다 state, latency, recovery, chat transport, cost boundary가 될 수 있습니다.
다만 "runtime이 알아서 agent를 완성한다"는 식의 해석은 피해야 합니다. 0.14.0은 failure recovery와 orchestration primitive를 강화하지만, tool permission, skill vetting, retry side effect, data retention, user approval, cost guardrail은 application layer에 남습니다. Cloudflare가 해결한 것은 agent가 deploy나 stream stall 때문에 멈춘 것처럼 보이는 문제와 중복 실행 위험의 일부입니다. 개발자가 해결해야 하는 것은 그 recovery 뒤에 어떤 작업을 다시 실행해도 안전한지입니다.
결론적으로 Cloudflare Agents SDK 0.14.0은 agent framework가 library에서 runtime으로 이동하는 장면입니다. skill은 prompt folder가 아니라 activatable catalog가 되고, schedule은 cron glue가 아니라 durable submission이 되고, model reasoning은 workflow step이 되고, recovery는 UI flag와 sub-agent reattach로 보입니다. 이 릴리스는 새 모델 성능표보다 덜 화려하지만, production agent를 만들 때 더 자주 부딪히는 지점을 건드립니다. 중단된 작업을 되살리는 기능이 headline이 되는 이유입니다.