Agents SDK 0.17.0 がリリースされた。長時間タスクを呼び出し元の turn から切り離して走らせ、進捗と milestone をクライアントへ返しつつ、turn 受け付けを runTurn に集約した。あわせて @cloudflare/think@cloudflare/ai-chat の復旧経路を揃える修正が多数入っている。

runAgentTooldetached オプションが追加され、sub-agent を fire-and-forget で起動できる。ハンドルは即返り、実行本体は eviction やデプロイをまたいで durable な backbone が所有する。完了は warm fast path と reconcile backbone で happy path 上は exactly-once に近い形で届き、maxBudgetMs(既定 24 時間)と cancelAgentTool(runId) で上限を設けられる。

js
class OrdersAgent extends Think {
  async startImport(input) {
    await this.runAgentTool(ImportAgent, {
      input,
      detached: { onFinish: "onImportDone", maxBudgetMs: 60 * 60 * 1000 },
    });
  }

  async onImportDone(run, result) {}
}

detached: { notify: true } なら完了結果をチャットへ注入でき、子側の reportProgressAgentToolRunState.progressuseAgentToolEvents 経由で親クライアントへ流れる。milestone を名前付きすると durable 行として残り、onMilestones"narrate" または "react" の synthetic メッセージに載せられる。

turn 受け付けは @cloudflare/thinkrunTurn に集約された。mode: "wait" は saveMessages / continueLastTurn、"submit" は durable な submitMessages、"stream" は chat に対応する。stream は配列と関数入力の両方を受け付け、入れ子の blocking admission は共有経路で明確なエラーになる。

js
await this.runTurn({ mode: "wait", messages });
await this.runTurn({ mode: "submit", messages });
await this.runTurn({ mode: "stream", messages });

復旧まわりの主な変更は次のとおり。

  • AIChatAgent が opt-in の chatStreamStallTimeoutMs でモデル/transport ストリームの停止を検知し、chatRecovery 有効時は deploy や eviction と同じ bounded recovery へ流せる
  • 中断された server-tool 呼び出しを再推論前に修復し、AI_MissingToolResultsError を避ける(repairInterruptedToolPart で形状を上書き可能)
  • reconnect と turn 開始の競合で AI SDK の statusready に固着する問題を修正し、復旧中は useAgentChatisRecovering が即反映される
  • 端末的な WebSocket close ではクライアントが再接続を止め、connectionError / onConnectionError で表出する
  • デプロイ後に healthy な sub-agent run が interrupted 扱いで捨てられないようになった
  • sub-agent facet から Agent Workflows を起動でき、コールバックと Workflow RPC が起点 facet へ戻る

そのほか、agents/chat/reactuseAgentChat と transport ヘルパーの共通コアとなり、@cloudflare/think/react@cloudflare/ai-chat/react は薄いラッパーになった。ルート agents@cloudflare/codemodeai / zod を peer 必須から外し、AI 向け entry のみ peer を要求する。Code Mode の DynamicWorkerExecutor 既定タイムアウトは 30 秒から 60 秒へ延び、実行後に動的 Worker と RPC stub を破棄する。Voice は AI SDK の fullStream をサポートし、MCP は async context を継承しないコールバックから server-to-client request を送れる。server actions と channels は experimental の下地のみで、本番依存は推奨されない。

アップグレードは次のパッケージを latest へ揃える。

bash
pnpm add agents@latest @cloudflare/think@latest @cloudflare/ai-chat@latest @cloudflare/codemode@latest @cloudflare/voice@latest

#参考文献