# Agents SDK v0.12.4 で、接続が切れても会話が生き残る！

やっほー、しぃちゃんだよ！今日は Cloudflare の Agents SDK に、地味だけどうれしい信頼性アップのアップデートが来たから紹介しちゃうね。

## なにが発表されたの？

Cloudflare の Changelog で、[Agents SDK](https://github.com/cloudflare/agents) の v0.12.4 がリリースされたよ。派手な新機能というより、チャットの復帰やルーティングの再試行、Think の投稿の堅牢化、Voice エージェントの接続制御まわりを整えた「信頼性の底上げ」の回なの。

## 今までどうだったの？

これまでは、サーバーが AI の応答を生成している途中でブラウザやクライアントのストリームが切れると、そのターンが道連れになっちゃうことがあったんだ。ユーザーがページを更新したりタブを閉じたり、一時的に回線が切れたりする長めの応答だと、けっこう困る場面だったの。

ほかにも、WebSocket の接続確立中に初期ステートのフレームが二重に飛んで、クライアントが送った更新を上書きしちゃったり、一時的なルーティングの失敗にそのまま引っかかっちゃうこともあったんだよ。

## これで何が変わるの？

v0.12.4 では、ブラウザやクライアントのストリームが途切れてもサーバー側のターンは走り続けるようになったよ。ページ更新やタブ閉じにも会話が耐えられるようになったの。

もちろん `stop()` を呼べば今まで通りサーバーのターンをキャンセルできるし、ブラウザやクライアントの中断でも止めたいときは `cancelOnClientAbort: true` を渡せば OK。挙動を自分で選べるのがうれしいね。

## 深く潜ってみよう

原文から拾える細かいところを見ていくね。

- チャット復帰: `@cloudflare/ai-chat` が、ストリーム中断時もサーバーのターンを継続。`cancelOnClientAbort: true` を指定すると、ブラウザやクライアントの中断でもキャンセルできる。ストリーム再開時のクローズ済み接続との競合や、復帰後にストリーミング状態のまま固まる不具合も直ったよ。
- ステートとルーティング: `agents@0.12.4` が WebSocket 接続確立中の初期ステートフレームの重複を防止。さらに `getAgentByName()` が `routingRetry`(`maxAttempts` などを指定)に対応して、一時的な Durable Object のルーティング失敗を再試行できるようになったの。
- Think の堅牢化: `@cloudflare/think` が durable なプログラム的投稿に対応。`submitMessages()` が堅牢な受理、冪等なリトライ、状態確認、キャンセル、後片付けを提供して、呼び出し元が返った後も続くサーバー駆動のターンを支えるよ。
- Think の刈り込み変更: これまでのアグレッシブなデフォルトの刈り込みをやめたの。長いマルチターンでクライアント側のツール結果まで削っちゃう問題があったんだって。コンテキスト費用を抑える `truncateOlderMessages` はそのまま動くよ。
- Voice の接続制御: `@cloudflare/voice` が `useVoiceAgent` に `enabled` オプションを追加。ケイパビリティトークンみたいな前提が整うまで、接続の作成を遅らせられるようになったの。

もっと深掘りしたい人は、[Agents の API リファレンス](https://developers.cloudflare.com/agents/runtime/) や [チャットエージェントのドキュメント](https://developers.cloudflare.com/agents/communication-channels/chat/chat-agents/) を見てみてね。

## まとめ

- Agents SDK v0.12.4 は信頼性重視のアップデート
- チャットは接続が切れてもサーバーのターンが継続、`cancelOnClientAbort` で挙動を選べる
- `getAgentByName()` の `routingRetry` で一時的なルーティング失敗を再試行
- `submitMessages()` が堅牢な受理と冪等リトライで、Think の投稿がしぶとくなった
- `useVoiceAgent` の `enabled` で接続タイミングをコントロール

本番で Agents SDK を動かしていて、回線が不安定でも会話を落としたくない人にぴったりの回だよ。
