【エンジニアの休息】状態を持つ AI エージェント?cloudflare/agents の仕組みと導入をやさしく解説
本日は、Cloudflare の最新技術 「cloudflare/agents」 について、心ゆくまでゆったりと解説させていただきます。AI、Cloudflare、Workflows という強力な 3 つのツボを刺激しながら、エンジニアにとっての「気持ちよさ」をお伝えしますね。
一言でいうと、「意思を持って動き続ける、死なないマイクロサーバー」 です。
これまでの「Workers AI」は、リクエストに対して答えを返すだけの「一問一答」でした。しかし、この cloudflare/agents は、Durable Objects という、状態(State)を保持できる特殊なサーバーの上で動きます。
何が凄いの?
自分で考え(AI)、必要なら外部の API を叩き(Tools)、結果をデータベースに保存し(SQL)、さらに数分・数時間後に自分で再起動して作業を再開する(Workflows)...そんな「自律した部下」を世界中のエッジにデプロイできるんです。
状態管理からの解放
データベースをわざわざ立てなくても、Agent クラス自体が SQL や Key-Value を持っています。
信頼性の確保
Workflows と連携することで、「もし失敗しても自動でリトライ」「承認されるまで数日待機」といった、泥臭いエラーハンドリングを Cloudflare が肩代わりしてくれます。
リアルタイム性
WebSocket が標準サポートされているので、AI の思考プロセスをリアルタイムにブラウザへストリーミングするのもお手の物です。
まずは、身軽な格好で始めてみましょう。公式のスターターを使うのが一番の近道です。
ターミナルで以下のコマンドを叩くだけで、エッジ上の AI 基地局が完成します。
# 最新のスターターをインストール
npm create cloudflare@latest -- --template cloudflare/agents-starter
Cloudflare の各サービスを繋ぎ合わせる「神経系」の設定です。
{
"name": "my-ai-agent",
"main": "src/server.ts",
"compatibility_date": "2026-02-20",
"ai": { "binding": "AI" }, // AIを使うためのバインディング
"durable_objects": {
"bindings": [{ "name": "MyAgent", "class_name": "MyAgent" }]
},
"migrations": [{ "tag": "v1", "new_sqlite_classes": ["MyAgent"] }] // SQL保存用
}
「自分で考えて SQL にメモを残すエージェント」の例です。
src/server.ts に、TypeScript のクラスとして定義します。
import { Agent, callable, routeAgentRequest } from "agents";
export class MyAgent extends Agent {
// 1. 最初の状態(カルテのようなものですね)
initialState = { taskCount: 0 };
// 2. 外部から呼び出せるメソッド(マッサージのメニューです)
@callable()
async processTask(instruction: string) {
// AIを使って思考する
const response = await this.env.AI.run("@cf/meta/llama-3-8b-instruct", {
prompt: `あなたは優秀な秘書です。以下の指示を解析してください: ${instruction}`
});
// 状態を更新(SQLに自動保存されます)
const newCount = this.state.taskCount + 1;
this.setState({ taskCount: newCount });
return { response, currentTotal: newCount };
}
}
export default {
async fetch(request: Request, env: Env) {
// リクエストを適切なエージェントにルーティング
return await routeAgentRequest(request, env);
},
};
エージェントが「あ、この作業は時間がかかるな」と思ったら、Cloudflare Workflows にバトンタッチできます。
Agent
「このデータの分析、30分かかるから Workflow くんにお願い!」
Workflow
重たい計算や外部 API 待ちを、確実に実行(失敗しても自動リトライ)。
Agent
「終わった?じゃあユーザーに通知(WebSocket)しとくね。」
この連携により、「サーバーレスなのに、長時間止まらず、状態を忘れない」 という、エンジニアの理想郷が手に入ります。
AI
考える脳。
Durable Objects
記憶を持つ体(エージェントの本体)。
Workflows
粘り強くやり遂げる忍耐力。
これらが一つになった cloudflare/agents は、まさに「次世代のバックエンド」です。
お客様、いかがでしたでしょうか?少しは技術的な凝りがほぐれましたか? もしよろしければ、「実際に特定のエージェント(例えば Slack ボットや自動調査ツール)を作るための具体的なコード」 をお作りしましょうか?