# Agents SDK が進化！ブラウザ操作もコード実行も「落ちても大丈夫」になったよ！

こんにちは、しぃちゃんだよ！今日は Cloudflare の Agents SDK が大きくパワーアップしたニュースだよ。エージェントが実際のシステムに安全に触りにいって、しかも落ちても復活できるようになったんだって。わくわくが止まらないから、さっそく紹介するね！

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

Cloudflare の Changelog によると、Agents SDK の最新版 v0.16.1 では、エージェントが「実システムに安全に触れて、しかも中断されても動き続けられる」ようにするための機能がまとめて入ったよ。目玉は大きく 4 つ。

- **Browser Run** — エージェントがブラウザでウェブサイトを操作できるようになったよ
- **Code Mode** — 外部ツールに対してコードを書いて実行できるようになったよ
- **Think のサブエージェント改善** — 委譲先のサブエージェントがクライアント側から渡されたツールを使えるようになったよ
- **復旧力アップ** — デプロイや Durable Object の退避、コネクションの途切れからちゃんと復帰できるようになったよ

今回はこの 4 つに加えて、音声エージェント向けの出力デバイス選択機能も一緒にリリースされたよ。

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

今まではエージェントに「ブラウザを操作させる」「外部ツールに対してコードを書かせる」「サブエージェントに柔軟なツールを持たせる」といった作業をやろうとすると、承認待ちの一時停止や再開のロジック、接続が切れたときの復旧処理を開発者が自前で書く必要があったの。特に Durable Object がデプロイやスケジュールで退避される瞬間や、WebSocket が切れる瞬間にエージェントの状態がどうなるかは、地味だけど厄介な悩みどころだったんだよ。

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

今回のアップデートで、エージェント開発者は「安全に外の世界と関わる」部分と「壊れても復旧する」部分を、SDK 側の仕組みに任せられるようになったよ。ブラウザ操作もコード実行も、承認が必要な操作の手前でちゃんと止まって、人間の判断を挟んでから続きを再開できる。しかもデプロイやコネクション切断があっても、エージェントの実行がなかったことにならずに続きから復帰できるようになったんだって。これは自前で耐障害性を組んでいたチームにとってはうれしい話だよね。

## 深く潜ってみよう

それぞれの機能をもう少し詳しく見てみるね。

**Browser Run**

耐久性のある `browser_execute` ツールが追加されて、Chrome DevTools Protocol(CDP)に対してコードを書けるようになったよ。これでページの中身を調べたり、スクリーンショットを撮ったり、レンダリング後のコンテンツを読んだり、フロントエンドの挙動をデバッグしたりできる。セッションは 3 つのモードに対応しているよ。

- 一度きりのセッション
- 使い回すセッション
- ログインや MFA、承認などで人間の介入が必要になったときに、動的に永続セッションへ昇格するモード

ほかにも、Markdown 抽出・リンク検出・スクレイピングといったクイックアクション用のツールも用意されているみたい。

**Code Mode**

`createCodemodeRuntime` を使うと、コネクタと耐久性のある実行ログを組み合わせたコード実行ランタイムが作れるよ。承認が必要な操作にたどり着くと実行を一時停止して保留中の承認を返し、承認が済んだら耐久ログから完了済みの呼び出しをリプレイしてから続きを実行してくれる。つまり副作用のある処理のための一時停止・再開ロジックを自分で書かなくてよくなったってこと。

**Think のサブエージェント改善**

サブエージェントが RPC の `chat()` 経路を通じて、クライアント側で定義したツールにアクセスできるようになったよ。`clientTools` と `onClientToolCall` というパラメータで指定する仕組み。さらに `step.prompt()` メソッドは、構造化された出力を返す前にエージェント的なやり取りを一通り実行できるようになっていて、耐久性のあるトリアージ・リサーチ・承認フローを組みやすくなったんだって。

**音声出力デバイスの選択**

`useVoiceAgent` フックが `outputDeviceId` を受け取れるようになって、音声の出力先スピーカーを指定できるようになったよ。対応していない環境では、ちゃんとデフォルトの出力にフォールバックしてくれる。

**復旧力まわり**

信頼性に関わる改善もいろいろ入っているよ。

- WebSocket の再接続処理
- チャットストリームのリプレイによる耐障害性
- バックオフ付きの複数回にわたるファイバー復旧
- リクエストがキャンセルされても、後片付け(teardown)処理は継続する
- セッション履歴の読み込みをバイト単位で予算管理する仕組み

インストールは npm・yarn・pnpm・bun のいずれからも可能で、`agents` 本体に加えて `@cloudflare/think`、`@cloudflare/codemode`、`@cloudflare/ai-chat`、`@cloudflare/voice` の各パッケージも更新されているよ。

## まとめ

今回の Agents SDK v0.16.1 のポイントをまとめるね。

- ブラウザ操作の Browser Run が追加され、CDP でページ操作・スクリーンショット・デバッグができる
- Code Mode で承認待ちを挟みながら安全にコードを実行できるようになった
- Think のサブエージェントがクライアント側のツールを使えるようになった
- デプロイや Durable Object の退避、接続切れからの復旧力が大きく向上した
- 音声エージェント向けに出力デバイス選択もついでに追加された

Cloudflare 上でエージェントを作っているエンジニアさんにとっては、地味だけどありがたい「壊れない・止まらない」アップデートって感じだね！
