# 待機中は 0 円！Cloudflare の Project Think がエージェント作りを変えちゃう！

やっほー、しぃちゃんだよ！今日は AI エージェントの作り方がまるっと変わっちゃいそうな、わくわくする発表を見つけたの。さっそくいっしょに読んでいこう！

## なにが発表されたの？

Cloudflare の Blog が「Project Think」を発表したよ。これは長い時間ずっと動きつづける AI エージェントを作るための、次世代の Agents SDK なの。

今までのエージェントは手元のノート PC でちょっと動かすイメージだったけど、Project Think はそれを Cloudflare の上でずっと生きつづける仕組みに置きかえちゃうんだって。しかも「お客さん 1 人につきエージェント 1 個」を配っても、待機中のコストは 0 円っていう考え方なの。これは [Agents Week の記事](https://blog.cloudflare.com/welcome-to-agents-week/) から続くお話だよ。

## 今までどうだったの？

これまで AI エージェントを長く動かそうとすると、VM やコンテナをずっと起動しっぱなしにするしかなくて、動いてない時間もお金がかかってたの。

Project Think は [Durable Objects](https://developers.cloudflare.com/durable-objects/) を土台にしていて、使っていない間はハイバネーション(冬眠)して、起きて仕事するときだけ課金されるの。原文にはこんな例が載ってたよ。1 万個のエージェントがそれぞれ 1 % の時間だけ動くなら、Durable Objects なら同時に動くのは約 100 個で済むけど、常時起動のコンテナだと 1 万個ぜんぶ立てっぱなしになっちゃう、って。差はとっても大きいね！

## これで何が変わるの？

いちばん大きいのは、エージェントが「落ちても続きから復活できる」「子エージェントを持てる」「会話をずっと覚えていられる」「自分でコードを安全に実行できる」ようになること。

これまで自前で頑張って組んでいた土台の部分を、Cloudflare のインフラがまるごと引き受けてくれるから、開発する人は「エージェントに何をさせたいか」に集中できるようになるんだよ。

## 深く潜ってみよう

原文から拾える具体的な仕組みを、しぃちゃんなりに整理してみたよ。

**Fibers(耐久実行)**：`runFiber()` で始めた処理は SQLite に登録されて、途中でクラッシュしても `onFiberRecovered` で続きから復活できるの。長い処理はジョブ ID を保存して冬眠しながら待てるよ。くわしくは [耐久実行の API リファレンス](https://developers.cloudflare.com/agents/api-reference/durable-execution/) にあるの。

**サブエージェント(Facets)**：親エージェントが、独立した SQLite を持つ子エージェントを生やせるの。親子は型つきの RPC でやりとりして、同じ場所に配置されるから低遅延なんだって。この土台には [Facets](https://blog.cloudflare.com/durable-object-facets-dynamic-workers/) が使われているよ。

**永続セッション([Session API](https://developers.cloudflare.com/agents/api-reference/sessions/))**：メッセージが `parent_id` でつながった木構造になっていて、会話を分岐(フォーク)しても元の道が消えないの。SQLite の FTS5 で全文検索もできるし、履歴を消さずに要約してまとめる非破壊コンパクションもあるよ。

**サンドボックスでのコード実行**：LLM が書いたコードを、隔離された環境で安全に動かせるの。ミリ秒で立ち上がる [Dynamic Workers](https://blog.cloudflare.com/dynamic-workers/) の上で、[@cloudflare/codemode](https://github.com/cloudflare/agents/tree/main/packages/codemode) を使って実行するよ。権限は明示的に渡したものだけっていう「ケイパビリティモデル」だから安心だね。

しかも実行環境は 5 段階の「はしご」になってるの。

- Tier 0 ワークスペース：SQLite と R2 で作った仮想ファイルシステム
- Tier 1 Dynamic Worker：サンドボックスされた JavaScript
- Tier 2 npm ランタイム：esbuild で依存を解決
- Tier 3 ヘッドレスブラウザ：[Browser Run](https://developers.cloudflare.com/browser-rendering/) でページを操作
- Tier 4 [Sandbox](https://developers.cloudflare.com/sandbox/)：git やコンパイラ、テストランナーまで使えるフル OS

必要な分だけ上のはしごに登っていく感じで、無駄がないんだよ。

**Think ベースクラス**：エージェントのループやストリーミング、メッセージ保存、ツール実行、エラー処理をぜんぶ面倒みてくれる、いたれりつくせりの土台クラスなの。`getModel()` `getSystemPrompt()` `getTools()` `maxSteps` `configureSession()` あたりを上書きするだけで、自分のエージェントが作れるよ。永続メモリは、システムプロンプトの一部を「コンテキストブロック」として冬眠をまたいで覚えておける仕組みなの。

はじめかたはこんな感じ。

```bash
npm install @cloudflare/think agents ai @cloudflare/shell zod workers-ai-provider
```

モデルは [Workers AI](https://developers.cloudflare.com/workers-ai/) を通して呼べて、原文では `@cf/moonshotai/kimi-k2.5` を例にしてたよ。モデルへのアクセスは [AI Gateway](https://developers.cloudflare.com/ai-gateway/) 経由でも扱えるんだって。もっと知りたい人向けに [ドキュメント](https://github.com/cloudflare/agents/blob/main/docs/think/index.md) も公開されてるよ。

なお Project Think は今は実験的なプレビュー段階で、API の形はだいたい固まってるけど、これから進化していくとのこと。すでに Cloudflare 社内のエージェント基盤を動かしているみたい。

## まとめ

- Cloudflare が次世代の Agents SDK「Project Think」を発表
- Durable Objects を土台に、待機中は 0 円・起きたときだけ課金
- 耐久実行(Fibers)・サブエージェント(Facets)・永続セッション・サンドボックス実行がそろってる
- 実行環境は 5 段階のはしごで、ファイルシステムからフル OS まで
- Think クラスを継承すれば、面倒な土台はおまかせで書ける

長時間動くエージェントを本気で作りたい、サーバーレス好きのエンジニアさんにいちばん刺さる発表だと思うな！
