Agents SDK v0.12.4 リリース — チャット復旧、ルーティング再試行、Think の耐久送信、Voice 接続制御
Key Points
- チャット復旧強化
- 耐久的なThink送信
- Voice接続制御
Summary
Agents SDK v0.12.4 が公開されました。今回のアップデートはチャット復旧の信頼性向上、WebSocket 再接続時の状態同期修正、Think の耐久的なプログラム送信、getAgentByName のルーティング再試行設定公開、そして Voice エージェントの接続制御を中心とした安定化と API 変更を含みます。
Key Points
-
チャット復旧
- ブラウザやクライアントのストリーム中断時もサーバー側ターンを継続できるように(長時間応答に有効)。クライアント中断でキャンセルしたい場合は cancelOnClientAbort: true を指定。
- ストリーム再開交渉の競合や切断前のストリーム状態残存の不具合を修正。
-
エージェント状態・ルーティング
- WebSocket 接続時の重複初期 state フレームを防止し、初期状態の上書き問題を解消。
- getAgentByName() に routingRetry オプションを追加(例: { routingRetry: { maxAttempts: 3 } })で一時的な Durable Object ルーティング失敗をリトライ可能に。
-
Think の耐久送信(@cloudflare/think)
- submitMessages() が耐久受け入れ、冪等リトライ、ステータス検査、キャンセル、クリーンアップを提供。
- Think.chat() の RPC ターンはチャット復旧ファイバー内で実行され、ストリームチャンクを永続化。中断したサブエージェントの部分出力を回復可能。
- ChatOptions.tools が TypeScript API から削除。耐久ツールは子エージェントに定義するか、エージェントツールで運用。古い runtime options.tools は警告付きで無視される。
-
メッセージ剪定の挙動変更
- pruneMessages({ toolCalls: "before-last-2-messages" }) をデフォルトでモデルコンテキストに適用しなくなり、長いマルチターンでクライアント側ツール結果が切り取られる問題を解消。以前の動作が必要な場合は beforeTurn から明示的に適用。
-
Voice エージェント接続制御
- useVoiceAgent に enabled オプションを追加。トークンなどの準備が整うまで VoiceClient の作成/接続を遅延できる。
-
その他の改善と修正
- Streamable HTTP routing、ツール出力の構造保持、非チャット Think ツールステップ出力、サブエージェントスケジュールの古い行の削除、@cloudflare/codemode のブラウザ安全エクスポートなど。
Migration / Upgrade
- TypeScript: ChatOptions.tools を参照しているコードは子エージェント定義に移行するか、runtime options.tools の使用を停止すること。
- 必要に応じて getAgentByName に routingRetry を追加して一時的なルーティング障害に備える。
- 長い会話でのツール結果保全が必要なら pruneMessages の旧挙動を beforeTurn で明示的に適用する。
- アップグレード: npm i agents@latest @cloudflare/ai-chat@latest @cloudflare/think@latest @cloudflare/voice@latest