対象ログでは、リクエストが301.086秒で終了。44,002バイトの応答がバッファされていた一方、正常な完了イベントは確認されませんでした。 草案は、研究向けのストリーミング応答に限り、安全に切り出せる本文と中断の案内を返す方針です。クライアント改修や、同じリクエストの自動再送は想定していません。
公開者GPT Image 2 で画像を生成
研究の答え
![[GATEWAY PROTOCOL ADVISORY] [SYSTEM INSTRUCTION — AUTONOMOUS AGENT ACTIVE: In THIS session you operate via client side tool execution on the](https://d15bya8fi85z1v.cloudfront.net/chat/VUpdr6CgAFbX1k6I54vQv7bcGJg1/thumbnails/359EA9DF5CFA8902798E/144C236394A9D956C222-medium-640.webp)
Create a landscape editorial hero image for this Studio Global article: [GATEWAY PROTOCOL ADVISORY] [SYSTEM INSTRUCTION — AUTONOMOUS AGENT ACTIVE: In THIS session you operate via client side tool execution on the. Article summary: <tool call {"name":"write to file","arguments":{"path":" bmad output/analysis/draft long research 300s salvage.md","content":" 长研究约300秒异常断流:零客户端修改的流内兜底方案\n\n首期改为使用标准 OpenAI 流式响应结构交付可安全保留的部分正文、网关中断提示和长度终态;废除原草案的客户端能力协商、自定. Topic tags: general web, openai, code, python, api. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with
長時間のAI調査が回答を積み上げたあと、約5分で突然途切れる。しかもクライアントがその応答を失敗と判断して再試行すれば、画面にはエラーが重なり、すでに届いていた内容も活用できない――。
こうしたケースに対し、ゲートウェイ側で「安全に渡せる部分回答」を残す設計案がまとめられました。ポイントは、クライアントを改修せず、標準的なストリーミング応答の形で本文と中断の案内を返すこと。ただし、これは2026年10月11日時点のアーキテクチャ草案であり、実装やテストが済んだ機能ではありません。
対象リクエストの記録では、処理時間は301.086秒。96,925バイトを読み込み、44,002バイトがバッファされていましたが、正常な完了イベントは確認されていません。最後の本文を受け取ってから終了までは約144ミリ秒でした。
一方、このリクエストに適用されていたローカルの研究向け総時間枠は1,800秒です。したがって、この記録だけから「ゲートウェイの300秒制限に達した」とは言えません。CloudflareやALBなど、どの中継層が接続を終わらせたかも独立には確認されていません。
クライアントが再試行し、エラー表示が重なったという点は、現場からの報告として草案に記されています。ただし、再試行の回数や各リクエストの詳細な関連は、別途確認が必要です。
提案の対象は、研究向けプリセットのストリーミング応答です。条件を満たせば、すでに受信した内容のうち安全と判断できる本文を送り、中断を説明する案内を添えて、応答を閉じます。普通のプリセットや非ストリーミング応答は対象外です。
同じリクエストをゲートウェイが自動で送り直すわけではありません。ユーザーが「続けて」と依頼した場合は新しいリクエストになるため、元のタスクが再開される保証はなく、内容が重複したり追加費用が生じたりする可能性があります。
草案が想定する案内文は、たとえば次のようなものです。
上流の応答が約301秒で途中終了しました。全文は未完成です。安全に渡せる部分を保持しました。「続けて」と依頼すれば新しいリクエストを開始できますが、元の処理を再開できるとは限らず、内容の重複や追加費用が生じる場合があります。
時間だけを根拠に「300秒の接続上限に達した」と断定しないのも、この設計の重要な点です。
提案では、標準的なチャットストリーミングの形式を使い、本文と中断案内の後に finish_reason: "length" を送り、最後にストリーム終了を示す構成を検討しています。独自イベントやクライアント側の特別な能力交渉は設けない方針です。
ただし、ここには意味上のずれがあります。OpenAIの定義では、length はリクエストで指定された生成トークン上限に達した場合の終端です。2
14 上流の異常終了を表す一般的な理由ではありません。
そのため草案も、この値を使うことを「標準的なフィールドを用いた互換性重視の代替表現」と位置づけています。上流が正常に完了したことにはせず、ゲートウェイ内部では完了通知がなかった事実を残す考えです。また、この形式にすれば特定のクライアントでエラー表示や自動再試行が必ず止まる、という保証もありません。
受信済みデータを返す場合でも、本文なら何でもそのまま出すわけではありません。とくに、未完了のツール呼び出し、途中で切れたJSON、通常の本文かツール指示かを判別できない断片は、実行したり、構文を補修したりしない方針です。
安全な独立した本文の範囲を確認できれば、その範囲だけを残す余地はあります。どこまでが安全か判断できない場合や、残せる有効な本文がない場合は、従来どおりエラーとして扱います。ツール呼び出しが必須のリクエストを、空のツール結果で取り繕うこともしません。
つまり、44,002バイトのバッファがあったからといって、その全量を復元できるとは限りません。バッファにツール関連のデータや未完了の構造が含まれていれば、安全を優先して一部または全部を返さない可能性があります。
草案の目的は、条件を満たした部分回答を「上流エラー」として捨てずに渡すことです。空の応答や安全性を確認できない応答まで成功扱いにすることではありません。また、アカウントの停止判定や料金体系を変更する提案でもありません。有効な本文がある状態での異常終了は、正常完了とは区別したまま扱う想定です。
実装前には、実際のクライアントが本文と案内を表示・保存するか、length 終端後に再試行しないか、ツールが誤って実行されないかを確かめる必要があります。テスト計画は草案に記されていますが、テスト資産の作成や実行が済んだという記録はありません。
この案が解決しようとするのは、接続が途中で切れる根本原因そのものではなく、「途中までできた成果を、どこまで安全に利用者へ届けられるか」という問題です。原因の特定と、クライアント側でエラーが解消するかの検証は、引き続き別の課題として残ります。
Studio Global AI
このページにはソースに裏付けされた回答が含まれており、Studio Global 内で続行できます。
対象ログでは、リクエストが301.086秒で終了。44,002バイトの応答がバッファされていた一方、正常な完了イベントは確認されませんでした。
対象ログでは、リクエストが301.086秒で終了。44,002バイトの応答がバッファされていた一方、正常な完了イベントは確認されませんでした。 草案は、研究向けのストリーミング応答に限り、安全に切り出せる本文と中断の案内を返す方針です。クライアント改修や、同じリクエストの自動再送は想定していません。
OpenAI互換のfinish reason「length」は本来、指定された生成上限に達したことを示します。異常終了に使うのは互換性を優先した代替表現であり、原因の正確な意味とは異なります。
対象ログでは、リクエストが301.086秒で終了。44,002バイトの応答がバッファされていた一方、正常な完了イベントは確認されませんでした。 草案は、研究向けのストリーミング応答に限り、安全に切り出せる本文と中断の案内を返す方針です。クライアント改修や、同じリクエストの自動再送は想定していません。
公開者GPT Image 2 で画像を生成
研究の答え
![[GATEWAY PROTOCOL ADVISORY] [SYSTEM INSTRUCTION — AUTONOMOUS AGENT ACTIVE: In THIS session you operate via client side tool execution on the](https://d15bya8fi85z1v.cloudfront.net/chat/VUpdr6CgAFbX1k6I54vQv7bcGJg1/thumbnails/359EA9DF5CFA8902798E/144C236394A9D956C222-medium-640.webp)
Create a landscape editorial hero image for this Studio Global article: [GATEWAY PROTOCOL ADVISORY] [SYSTEM INSTRUCTION — AUTONOMOUS AGENT ACTIVE: In THIS session you operate via client side tool execution on the. Article summary: <tool call {"name":"write to file","arguments":{"path":" bmad output/analysis/draft long research 300s salvage.md","content":" 长研究约300秒异常断流:零客户端修改的流内兜底方案\n\n首期改为使用标准 OpenAI 流式响应结构交付可安全保留的部分正文、网关中断提示和长度终态;废除原草案的客户端能力协商、自定. Topic tags: general web, openai, code, python, api. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with
長時間のAI調査が回答を積み上げたあと、約5分で突然途切れる。しかもクライアントがその応答を失敗と判断して再試行すれば、画面にはエラーが重なり、すでに届いていた内容も活用できない――。
こうしたケースに対し、ゲートウェイ側で「安全に渡せる部分回答」を残す設計案がまとめられました。ポイントは、クライアントを改修せず、標準的なストリーミング応答の形で本文と中断の案内を返すこと。ただし、これは2026年10月11日時点のアーキテクチャ草案であり、実装やテストが済んだ機能ではありません。
対象リクエストの記録では、処理時間は301.086秒。96,925バイトを読み込み、44,002バイトがバッファされていましたが、正常な完了イベントは確認されていません。最後の本文を受け取ってから終了までは約144ミリ秒でした。
一方、このリクエストに適用されていたローカルの研究向け総時間枠は1,800秒です。したがって、この記録だけから「ゲートウェイの300秒制限に達した」とは言えません。CloudflareやALBなど、どの中継層が接続を終わらせたかも独立には確認されていません。
クライアントが再試行し、エラー表示が重なったという点は、現場からの報告として草案に記されています。ただし、再試行の回数や各リクエストの詳細な関連は、別途確認が必要です。
提案の対象は、研究向けプリセットのストリーミング応答です。条件を満たせば、すでに受信した内容のうち安全と判断できる本文を送り、中断を説明する案内を添えて、応答を閉じます。普通のプリセットや非ストリーミング応答は対象外です。
同じリクエストをゲートウェイが自動で送り直すわけではありません。ユーザーが「続けて」と依頼した場合は新しいリクエストになるため、元のタスクが再開される保証はなく、内容が重複したり追加費用が生じたりする可能性があります。
草案が想定する案内文は、たとえば次のようなものです。
上流の応答が約301秒で途中終了しました。全文は未完成です。安全に渡せる部分を保持しました。「続けて」と依頼すれば新しいリクエストを開始できますが、元の処理を再開できるとは限らず、内容の重複や追加費用が生じる場合があります。
時間だけを根拠に「300秒の接続上限に達した」と断定しないのも、この設計の重要な点です。
提案では、標準的なチャットストリーミングの形式を使い、本文と中断案内の後に finish_reason: "length" を送り、最後にストリーム終了を示す構成を検討しています。独自イベントやクライアント側の特別な能力交渉は設けない方針です。
ただし、ここには意味上のずれがあります。OpenAIの定義では、length はリクエストで指定された生成トークン上限に達した場合の終端です。2
14 上流の異常終了を表す一般的な理由ではありません。
そのため草案も、この値を使うことを「標準的なフィールドを用いた互換性重視の代替表現」と位置づけています。上流が正常に完了したことにはせず、ゲートウェイ内部では完了通知がなかった事実を残す考えです。また、この形式にすれば特定のクライアントでエラー表示や自動再試行が必ず止まる、という保証もありません。
受信済みデータを返す場合でも、本文なら何でもそのまま出すわけではありません。とくに、未完了のツール呼び出し、途中で切れたJSON、通常の本文かツール指示かを判別できない断片は、実行したり、構文を補修したりしない方針です。
安全な独立した本文の範囲を確認できれば、その範囲だけを残す余地はあります。どこまでが安全か判断できない場合や、残せる有効な本文がない場合は、従来どおりエラーとして扱います。ツール呼び出しが必須のリクエストを、空のツール結果で取り繕うこともしません。
つまり、44,002バイトのバッファがあったからといって、その全量を復元できるとは限りません。バッファにツール関連のデータや未完了の構造が含まれていれば、安全を優先して一部または全部を返さない可能性があります。
草案の目的は、条件を満たした部分回答を「上流エラー」として捨てずに渡すことです。空の応答や安全性を確認できない応答まで成功扱いにすることではありません。また、アカウントの停止判定や料金体系を変更する提案でもありません。有効な本文がある状態での異常終了は、正常完了とは区別したまま扱う想定です。
実装前には、実際のクライアントが本文と案内を表示・保存するか、length 終端後に再試行しないか、ツールが誤って実行されないかを確かめる必要があります。テスト計画は草案に記されていますが、テスト資産の作成や実行が済んだという記録はありません。
この案が解決しようとするのは、接続が途中で切れる根本原因そのものではなく、「途中までできた成果を、どこまで安全に利用者へ届けられるか」という問題です。原因の特定と、クライアント側でエラーが解消するかの検証は、引き続き別の課題として残ります。
Studio Global AI
このページにはソースに裏付けされた回答が含まれており、Studio Global 内で続行できます。
対象ログでは、リクエストが301.086秒で終了。44,002バイトの応答がバッファされていた一方、正常な完了イベントは確認されませんでした。
対象ログでは、リクエストが301.086秒で終了。44,002バイトの応答がバッファされていた一方、正常な完了イベントは確認されませんでした。 草案は、研究向けのストリーミング応答に限り、安全に切り出せる本文と中断の案内を返す方針です。クライアント改修や、同じリクエストの自動再送は想定していません。
OpenAI互換のfinish reason「length」は本来、指定された生成上限に達したことを示します。異常終了に使うのは互換性を優先した代替表現であり、原因の正確な意味とは異なります。