Agents SDK 0.8.0
Agents SDK 0.8.0 がリリースされた。useAgent と AgentClient が現在のエージェント状態を state プロパティとして公開し、schedule() は Durable Object の再起動をまたいだ重複行の発生を抑えるための idempotent オプションを備えた。AgentClient の型推論強化や、関連パッケージの Zod 4 への移行も含まれる。
状態の直接参照は、onStateUpdate コールバックでの手動同期を前提にしない書き方を可能にする。
tsx
const agent = useAgent({
agent: "game-agent",
name: "room-123",
});
return <div>Score: {agent.state?.score}</div>;
agent.setState({ ...agent.state, score: (agent.state?.score ?? 0) + 10 });schedule() の idempotent は (type, callback, payload) で重複排除され、onStart() のように再起動ごとに実行される箇所からの呼び出しで、同一スケジュールの行が積み上がる問題を避けやすくなる。
ts
import { Agent } from "agents";
class MyAgent extends Agent {
async onStart() {
await this.schedule(60, "maintenance", undefined, { idempotent: true });
}
}変更点の要約は次のとおり。
useAgentとAgentClientがstateを公開し、状態の参照を簡略化したschedule()に idempotent オプションが追加され、重複行の発生を抑止できるようになった(cron は既定で idempotent)AgentClientがエージェント型パラメータに対応し、RPC 呼び出しの推論とstubプロキシが利用できるようになったagents/@cloudflare/ai-chat/@cloudflare/codemodeが Zod 4 に移行し、Zod 3 のサポートが終了したkeepAlive()/keepAliveWhile()の experimental 扱いが外れ、keepAlive()は schedule 行ではなくメモリ上の参照カウントを使うようになった