OpenAICloudflare Developer Platform2026/02/25 0:00

Agents, Workers - Agents SDK v0.6.0: RPC transport for MCP, optional OAuth, hardened schema conversion, and @cloudflare/ai-chat fixes

要点だけを先に読めるように短く再構成したセクションです。

元記事

Quick Digest

要約

要点だけを先に読めるように短く再構成したセクションです。

openaijamodel: gpt-5-mini-2025-08-07

Agents SDK v0.6.0:MCP向けRPC(同一Worker内)、OAuthオプトイン、スキーマ変換の強化、@cloudflare/ai-chat修正

Key Points

  • 同一Worker内でDO経由のRPC接続
  • OAuthはオプトイン化
  • スキーマ変換が堅牢化

Summary

Agents SDK v0.6.0 は、同一 Worker 内で Durable Object バインディングを使った RPC 経路(HTTP を介さない低オーバーヘッド接続)を導入し、MCP 接続で OAuth をオプトイン化、JSON Schema→TypeScript 変換器を堅牢化、さらに @cloudflare/ai-chat の複数の信頼性問題を修正しました。開発者は接続コスト削減と運用安定化が得られます。RPC 実装は実験的で、API 変更の可能性があります。

Key Points

  • DO バインディング経由の RPC 接続

    • addMcpServer(name, namespaceOrUrl, opts?) は第2引数に string | DurableObjectNamespace を許容し、HTTP と RPC を型安全に区別します。
    • RPC 接続は Durable Object のハイバネーションを越えて復元され、接続 ID は安定しています。重複呼び出しは既存接続を返します。
    • 実装は簡素化され検証スキーマ(JSONRPCMessageSchema)を利用。実験的なため追跡イシューを確認してください。
  • OAuth はオプトイン化

    • addMcpServer() は既定で OAuth プロバイダを作成しません(認証不要なサーバには追加設定不要)。
    • サーバが 401 を返した場合は明確なエラーメッセージが投げられます(コールバックホストを指定して OAuth を有効化)。
    • ストレージからの復元フローはコールバック URL がなくても安全にスキップします。
  • JSON Schema → TypeScript 変換器の強化

    • 深さ・循環参照ガード、内部 $ref 解決(JSON Pointer)、tuple(prefixItems/items)対応、OpenAPI nullable 対応。
    • 単一の不正スキーマで全体を壊さないエラー分離、getAITools() の入力スキーマ欠如時は { type: "object" } にフォールバック。
  • @cloudflare/ai-chat の修正(主な項目)

    • ツール拒否フローの正常化(approved: false → output-denied)とカスタム拒否メッセージ対応。
    • ストリーミング応答の中断/キャンセル処理改善、リーダーループの終了通知。
    • persistMessages() の重複登録防止、requestId のハンドラ利用、Anthropic の redacted_thinking を保持。
    • /get-messages エンドポイントの信頼性向上、動的ツール利用の API 復活、onChatMessage 時の jsonSchema 初期化不具合修正。
  • アップグレード

    • パッケージ更新: npm i agents@latest @cloudflare/ai-chat@latest

Practical notes

  • 同一 Worker 内で DO を使う場合は addMcpServer に Durable Object Namespace を渡してネットワーク往復を避けてください。
  • OAuth が必要なサーバと不要なサーバが混在する環境では明示的に callbackHost を設定する運用を推奨します。
  • スキーマ変換の堅牢化により大規模/再帰スキーマでの生成が安定しますが、既存生成フローはテストしてから本番に反映してください。
  • RPC は実験的です。破壊的変更の可能性があるため依存する場合は追跡イシューとリリースノートを継続確認してください。

Full Translation

翻訳

原文の流れを保ったまま読める翻訳セクションです。

openaijamodel: gpt-5-mini-2025-08-07

Agents、Workers - Agents SDK v0.6.0:MCP向けRPCトランスポート、オプションのOAuth、強化されたスキーマ変換、@cloudflare/ai-chatの修正

Agents SDK v0.6.0:概要

公開日: 2026-02-25

最新の Agents SDK ↗ リリースでは、同一の Worker 内で Agent と McpAgent を RPC 経由で接続できるようになりました — HTTP を使わず、ネットワークのオーバーヘッドなしで通信できます。さらに、簡易な MCP 接続では OAuth をオプトインに変更し、プロダクションワークロード向けにスキーマ変換を強化し、@cloudflare/ai-chat に対する信頼性修正を複数含んでいます。


MCP 向け RPC トランスポート

同一 Worker 内で Durable Object バインディングを使って Agent と McpAgent を接続できるようになりました。接続は Cloudflare ランタイム内に留まり、ネットワーク往復やシリアライズのオーバーヘッドが発生しません。

addMcpServer に Durable Object namespace を直接渡します。

import { Agent } from "agents";
export class MyAgent extends Agent {
  async onStart() {
    // Connect via DO binding — no HTTP, no network overhead
    await this.addMcpServer("counter", env.MY_MCP);
    // With props for per-user context
    await this.addMcpServer("counter", env.MY_MCP, {
      props: { userId: "user-123", role: "admin" },
    });
  }
}

上記は JavaScript / TypeScript どちらでも動作します。addMcpServer メソッドは第二引数に string | DurableObjectNamespace を受け付けるようになり、HTTP と RPC の経路が型安全に区別され、混在できないようになっています。

主な機能:

  • ハイバネーション対応 — Durable Object のハイバネーション復帰後も RPC 接続は自動的に復元されます。バインディング名と props はストレージに保存され、起床時に復元されます。HTTP の MCP 接続と同等の挙動です。
  • 重複排除 — 同じサーバー名で addMcpServer を呼ぶと既存の接続を返し、重複した接続を作成しません。接続 ID はハイバネーション復元後も安定しています。
  • サーフェスの縮小 — RPC トランスポートの内部実装を 609 行から 245 行に縮小しました。RPCServerTransport は手作りのチェックの代わりに MCP SDK の JSONRPCMessageSchema を検証に使用します。

注意: RPC トランスポートは実験的です。API はフィードバックに応じて変更される可能性があります。更新はトラッキング issue ↗ を参照してください。


MCP 接続での OAuth をオプトインに

addMcpServer() はもはや接続ごとに自動的に OAuth プロバイダを作成しません。認証を必要としないサーバーでは、単純な呼び出しだけで動作します。

// No callbackHost, no OAuth config — just works
await this.addMcpServer("my-server", "https://mcp.example.com");

サーバーが 401 を返した場合、SDK は次の明確なエラーを投げます:

"This MCP server requires OAuth authentication. Provide callbackHost in addMcpServer options to enable the OAuth flow."

ストレージからの復元フローでもコールバック URL が欠落している場合は適切に処理され、OAuth を要求しないサーバーについては認証プロバイダ作成をスキップします。


JSON Schema -> TypeScript コンバータの強化

generateTypes()getAITools() で使われるスキーマコンバータが、以前は本番でクラッシュを引き起こしていたエッジケースに対応するようになりました。

  • 深さと循環参照のガード — 再帰的または深くネストされたスキーマでのスタックオーバーフローを防止します。
  • $ref 解決 — 内部 JSON Pointer(#/definitions/...#/$defs/...#)をサポートします。
  • タプル対応 — prefixItems(JSON Schema 2020-12)および配列 items(draft-07)をサポートします。
  • OpenAPI 3.0 nullable: true — すべてのスキーマ分岐でサポートされます。
  • ツール単位のエラー隔離 — 1 つの不正なスキーマが generateTypes()getAITools() の全パイプラインをクラッシュさせないようになりました。
  • 入力スキーマ欠落時のフォールバック — getAITools() は投げる代わりに { type: "object" } にフォールバックします。

@cloudflare/ai-chat の修正

  • ツール拒否フロー — 拒否されたツール承認(approved: false)は tool_result を伴う output-denied に遷移するようになり、Anthropic プロバイダ互換性の問題を修正しました。カスタム拒否メッセージは state: "output-error"errorText でサポートされます。
  • 中止/キャンセル対応 — ストリーミング応答は中止シグナル発火時にリーダーループを正しくキャンセルし、クライアントへ done シグナルを送ります。
  • 重複メッセージの永続化 — persistMessages() は内容と順序で assistant メッセージを照合し、クライアントが全履歴を再送した場合の重複行の挿入を防ぎます。
  • requestId in OnChatMessageOptions — ハンドラはストリーム前の失敗に対して適切にタグ付けされたエラーレスポンスを返せるようになりました。
  • redacted_thinking の保持 — メッセージサニタイザが Anthropic の redacted_thinking ブロックを除去しなくなりました。
  • /get-messages の信頼性 — エンドポイント処理を prototype の onRequest() オーバーライドからコンストラクタラッパーに移動し、ユーザーが onRequest をオーバーライドして super.onRequest() を呼ばない場合でも動作するようにしました。
  • クライアントツール API の復活 — createToolsFromClientSchemasclientToolsAIToolextractClientToolSchemas、および useAgentChattools オプションは、ランタイムでツールが動的に定義されるユースケースのために SDK で復活しました。
  • jsonSchema 初期化問題の修正 — onChatMessage 内で getAITools() を呼ぶ際の jsonSchema not initialized エラーを修正しました。

アップグレード

最新バージョンに更新するには:

npm i agents@latest @cloudflare/ai-chat@latest

参考・リソース

  • API ドキュメント
  • ヘルプセンター
  • System Status

© 2026 Cloudflare, Inc. Privacy Policy | Terms of Use