385文字
2分
編集

Agents SDK 0.8.0

Agents SDK 0.8.0 がリリースされた。useAgentAgentClient が現在のエージェント状態を 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 });
  }
}

変更点の要約は次のとおり。

  • useAgentAgentClientstate を公開し、状態の参照を簡略化した
  • schedule() に idempotent オプションが追加され、重複行の発生を抑止できるようになった(cron は既定で idempotent)
  • AgentClient がエージェント型パラメータに対応し、RPC 呼び出しの推論と stub プロキシが利用できるようになった
  • agents / @cloudflare/ai-chat / @cloudflare/codemode が Zod 4 に移行し、Zod 3 のサポートが終了した
  • keepAlive() / keepAliveWhile() の experimental 扱いが外れ、keepAlive() は schedule 行ではなくメモリ上の参照カウントを使うようになった

#参考文献