Cloudflare、AIエージェント向け「Project Think」発表:耐久性のあるランタイム
本文の状態
日本語全文を表示中
詳細モードで約3分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
InfoQ
CloudflareはAIエージェント向け「Project Think」を発表した。同社は耐久性のあるアクター基盤とカーネル風ランタイムを提供し、エージェントの効率性と回復力を向上する。
Continue in AI NEW LAB
このニュースを、実務の判断につなげる
AI NEW LABで、試したことや先に確認したい条件を共有できます。まずはログインなしで読めます。
AI NEW LABで論点を見るSource Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
Cloudflareは、そのAgents SDK向けのプリミティブ(基本機能)スイートであるProject Thinkのプレビューを発表しました。これは、ステートレスなオーケストレーションから耐久性のあるアクターベースのインフラストラクチャへとAIエージェントを移行させるために設計されています。今回のリリースでは、プラットフォームの再起動後もエージェントが生存し、関係型メモリツリーを管理し、制限されたサンドボックス内で自己作成コードを実行できる、カーネルのようなランタイムが導入されました。このカーネルプリミティブは、OpenClawなどの新しいパーソナルエージェントフレームワークの成功をモデルとして採用しています。
既存のエンタープライズフレームワーク、例えばGoogleのAgent Development Kit(ADK)やAWS Bedrock AgentCoreは、主にリクエストレスポンスモデルを利用しています。これらのサービスはセッション状態の再構築(リハイドレーション)を管理しますが、実質的にはスナップショット上で動作します。これらのアーキテクチャでは、エージェントのメモリは外部化されたKVマップまたはJSONブロックであり、ターン開始時にリモートストアからフェッチされます。このパターンの限界は長時間実行されるタスクにおいて顕著になります。複雑な推論サイクル中に基盤となるサーバーレスコンピューティングがプリエンプト(割り込み)されると、実行コンテキストが消滅し、ロジックの実際の進捗が失われます。フレームワークは最後に保存されたスナップショットを再構築できますが、その実行ウィンドウ中に達成された具体的な進捗は失われるため、システムは最後の成功した保存状態から全体の操作を再起動せざるを得なくなります。
Project Thinkの中核的な革新は、Fibers(ファイバー)の導入です。標準的なサーバーレス関数呼び出しとは異なり、ファイバーは自身の命令ポインタ(インストラクションポインター)をチェックポイントできる耐久性のある呼び出しです。runFiberプリミティブとctx.stash()を活用することで、開発者はエージェントの進捗を内部の共置(コロケーション)SQLiteデータベースに直接保存できます。
これにより、エージェントは従来のサーバーレスタイムアウトを超える非確定的で長時間実行されるワークロードを処理できるようになります。エージェントがループの途中でプラットフォーム再起動が発生した場合、ランタイムはファイバーを復元しonFiberRecoveredフックを発動させ、エージェントが最後のチェックポイントから実行を再開できるようにします。
// 例:複数ステップの調査ループのチェックポイント
export class ResearchAgent extends Agent {
async startResearch(topic: string) {
void this.runFiber("research", async (ctx) => {
const findings = [];
for (let i = 0; i < 10; i++) {
const result = await this.callLLM(`Step ${i}: ${topic}`);
findings.push(result);
// チェックポイント:退去(eviction)された場合、ここから再開
ctx.stash({ findings, step: i, topic });
}
return { findings };
});
}
async onFiberRecovered(ctx) {
if (ctx.name === "research" && ctx.snapshot) {
const { topic, step } = ctx.snapshot;
// 保存された進捗に基づいて再開ロジックを実行
await this.continueResearch(topic, step);
}
}
}原文を表示
Cloudflare has announced the preview of Project Think, a suite of primitives for its Agents SDK designed to transition AI agents from stateless orchestration into a durable, actor-based infrastructure. The release introduces a kernel-like runtime where agents survive platform restarts, manage relational memory trees, and execute self-authored code within restricted sandboxes. The kernel primitives are modelled after the success of new personal agent frameworks such as OpenClaw.
Existing enterprise frameworks, for example, Google’s Agent Development Kit (ADK) and AWS Bedrock AgentCore, primarily utilize a request-response model. While these services manage the rehydration of session state they effectively operate on snapshots. In these architectures, the agent’s memory is an externalized KV map or JSON blob fetched from a remote store at the start of a turn. The limitation of this pattern appears during long-running tasks. If the underlying serverless compute is preempted during a complex reasoning cycle, the execution context vanishes, losing the actual progress of the logic. The framework can rehydrate the last saved snapshot, but the specific progress made during that execution window is lost, forcing the system to restart the entire operation from the last successful save.
Project Think's central innovation is the introduction of Fibers. Unlike a standard serverless function call, a fiber is a durable invocation that can checkpoint its own instruction pointer. By leveraging the runFiber primitive and ctx.stash(), developers can preserve the agent’s progress directly in an internal, co-located SQLite database.
This allows agents to handle non-deterministic, long-lived workloads that exceed traditional serverless timeouts. If a platform restart occurs while an agent is mid-loop, the runtime recovers the fiber and triggers the onFiberRecovered hook, allowing the agent to resume execution from the last checkpoint.
TypeScript
// Example: Checkpointing a multi-step research loop
export class ResearchAgent extends Agent {
async startResearch(topic: string) {
void this.runFiber("research", async (ctx) => {
const findings = [];
for (let i = 0; i < 10; i++) {
const result = await this.callLLM(Step ${i}: ${topic});
findings.push(result);
// Checkpoint: if evicted, the fiber resumes from here
ctx.stash({ findings, step: i, topic });
}
return { findings };
});
}
async onFiberRecovered(ctx) {
if (ctx.name === "research" && ctx.snapshot) {
const { topic, step } = ctx.snapshot;
// Resume logic based on stashed progress
await this.continueResearch(topic, step);
}
}
}
To address the security and latency challenges of tool-calling, Think allows agents to generate code and introduces graduated execution security environments. These tools run in Dynamic Workers, restricted V8 isolates spun up in milliseconds without access priveleges. This allows an agent to generate a custom extension and execute complex logic locally within the sandbox. This reduces token consumption significantly, as the model no longer needs to process raw data through the context window for every intermediate step.
Think also reimagines session persistence. While many frameworks utilize a linear history, Think’s Session API stores conversations as a relational tree. Messages are indexed with a parent_id, allowing the agent to branch and fork conversations, enabling the exploration of alternative solutions in parallel without "polluting" the primary reasoning path.
The system also provides editable Context Blocks: structured, persistent sections of the system prompt that the model can query and update. This allows the agent to proactively manage its own "learned facts" and perform non-destructive compaction of older dialogue branches.
Project Think is currently available in experimental preview for Cloudflare Workers users.
About the Author
Patrick Farry
I am a software engineer and architect, and have been one for almost 30 years. Grew up in Australia but now reside in Santa Clara, California. I have been working in fintech and logistics, and am now working on a IoT and Vision Language Model project. I have always liked writing and always wanted to contribute to the community, and I see InfoQ as a great way to do this. As a younger engineer I heavily used InfoQ as a trusted source for information on new technology and am now particularly proud to be a part of the editorial team. Outside of work I ride a bike, go to the gym, and have recently started rowing. I am married with two daughters who have left home and have two dogs who would never leave.
Show moreShow less
関連記事
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み