CloudflareがProject Thinkのプレビューを発表した。これは同社のAgents SDK向けのプリミティブ群で、AIエージェントをステートレスなオーケストレーションから、永続的なアクターベースのインフラストラクチャへ移行させるために設計されている。本リリースではエージェントがプラットフォーム再起動後も存続し、リレーショナルメモリツリーを管理し、制限付きサンドボックス内で自ら作成したコードを実行できるカーネルライクなランタイムが導入されている。これらのカーネルプリミティブはOpenClawのような新しいパーソナルエージェントフレームワークの成功を踏まえて設計されている。
既存のエンタープライズ向けフレームワーク、たとえばGoogleのAgent Development Kit (ADK)やAWS Bedrock AgentCoreは、主にリクエスト・レスポンスモデルを採用している。これらのサービスはセッション状態のリハイドレーションを管理するが、実質的にはスナップショットに基づいて動作する。このアーキテクチャでは、エージェントのメモリは外部化されたKVマップまたはJSONブロブとして扱われ、ターン開始時にリモートストアから取得される。このパターンの制約は、長時間実行タスクにおいて顕在化する。複雑な推論サイクルの途中で基盤となるサーバーレスコンピュートがプリエンプトされた場合、実行コンテキストは消失し、ロジックの実際の進捗状況が失われる。フレームワークは最後に保存されたスナップショットをリハイドレーションできるが、その実行ウィンドウ中の具体的進捗状況は失われるため、システムは最後に成功した保存ポイントから操作全体を再開始せざるを得ない。
Project Thinkの中核的なイノベーションはファイバーの導入である。標準的なサーバーレス関数呼び出しとは異なり、ファイバーはインストラクションポインタを自らチェックポイントできる永続的な実行単位である。runFiberプリミティブおよびctx.stash()を活用することで、開発者はエージェントの進捗状況を内部の同一ロケーションに配置されたSQLiteデータベースに直接保存できる。
これによりエージェントは従来のサーバーレスタイムアウトを超える非決定的かつ長時間実行ワークロードを処理できるようになる。エージェントがループの途中でプラットフォーム再起動に遭遇した場合、ランタイムはファイバーを回復し、onFiberRecoveredフックをトリガーすることで、エージェントが最後のチェックポイントから実行を再開できるようにする。
// 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); } } } ツール呼び出しに伴うセキュリティおよびレイテンシの課題に対処するため、Thinkはエージェントがコードを生成することを可能にし、段階的な実行セキュリティ環境を導入している。これらのツールはアクセス権限を持たずミリ秒単位で起動される制限付きV8 isolatesであるDynamic Workers上で実行される。これによりエージェントはカスタム拡張を生成し、サンドボックス内で複雑なロジックをローカルに実行できる。これによりモデルが各中間ステップでコンテキストウィンドウを通して生データを処理する必要がなくなるため、トークン消費を大幅に削減できる。
Thinkはセッション永続化も再定義している。多くのフレームワークが線形履歴を採用しているのに対しThinkのSession APIは会話をリレーショナルツリーとして保存する。メッセージはparent_idでインデックス付けされ、エージェントは会話を分岐およびフォークできるため、主要な推論経路を「汚染」することなく代替解決策を並列に探索できる。
本システムは編集可能なContext Blocksも提供する:モデルが照会および更新できるシステムプロンプト内の構造化された永続セクション。これによりエージェントは自らの「学習済み事実」を能動的に管理し、古い対話ブランチの非破壊的コンパクションを実行できる。
Project Thinkは現在、Cloudflare Workersユーザー向けに実験的プレビューとして提供されている。