GPT-6 Astraエージェントを会話状態と圧縮で長期稼働させる方法
previous_response_id、会話、明示的な状態、コンテキスト予算、コンパクション、チェックポイント、リカバリパターンを使用して、耐久性のあるGPT-6 Astraエージェントを設計します。

長時間稼働するエージェントは、単に膨大なトランスクリプトを持つチャットボットではありません。それは、有限のコンテキストウィンドウ内に留まりながら、目標、完了した作業、ツールの結果、権限、未解決の決定を保持しなければならないステートフルなシステムです。GPT-6 Astraは、1,050,000トークンのコンテキストウィンドウ、永続的な推論サポート、会話状態、および圧縮を提供しますが、ワークフローが数時間または数日後に一貫性を保つかどうかは、依然としてアーキテクチャによって決まります。
4種類の状態を分離する
すべてのイベントを会話テキストとして扱うと、復旧が困難になります。明確なレイヤーを維持してください:
- 対話状態: ユーザーとモデルが言ったこと。
- タスクの状態: 目標、計画、制約、完了したステップ、および障害。
- ワールド状態: データベース、ファイル、チケット、その他の外部システムにおける記録。
- 実行状態: ツール呼び出しID、冪等性キー、承認、再試行、チェックポイント。
最初のレイヤーだけが自然にトランスクリプトに属します。他の3つはアプリケーションが所有する表現を持つべきです。モデルはそれらを更新するのに役立ちますが、唯一の記録システムであってはなりません。
応答を続ける2つの方法
最もシンプルな継続メカニズムは previous_response_id です。
const first = await client.responses.create({
model: "gpt-6-astra",
input: "移行のための実装計画を立案してください。"
});
const next = await client.responses.create({
model: "gpt-6-astra",
previous_response_id: first.id,
input: [{ role: "user", content: "認証モジュールから始めてください。" }]
});
チェーンが作成されます。セッションには便利ですが、課金の近道ではありません。OpenAIは、チェーン内の以前の入力トークンが入力として課金されることを文書化しています。レスポンスは、store: false を使用しない限り、デフォルトで30日間保存されます。
耐久性のあるスレッドを使用するには、Conversations API を使用します。会話にはメッセージ、ツール呼び出し、ツール出力を含めることができ、セッション、デバイス、ジョブ間で再利用できます。会話オブジェクトは30日間の応答TTLの対象ではありません。リクエストで conversation と previous_response_id の両方を使用することはできません。状態モデルを意図的に選択してください。
必要になる前にコンテキスト予算を設定する
コンテキストには、入力、出力、および推論トークンが含まれます。モデルが制限に達するまで待たないでください。次のツール結果と最終回答のためにスペースを確保し、しきい値を超える前に圧縮または削減してください。
役立つ予算は、以下の項目に割合を割り当てることができます:
- 耐久性のある指示とツール;
- 現在のタスクの概要;
- 最近の会話の詳細;
- 取得された証拠;
- 期待される推論と出力;
- 異常に大きなツール結果に対する緊急マージン。
大規模なコンテキストには価格面での影響もあります。GPT-6 Astraモデルのページでは、入力が272Kトークンを超えるリクエストに対して、リクエスト全体に適用されるより高い料金が記載されています。この閾値により、ウィンドウ全体がまだ使い切られていない場合でも、早期のコンテキスト管理が経済的に重要になります。
コンパクションの機能
圧縮は、将来のターンに必要な情報を引き継ぎつつ、以前のコンテキストを削減します。OpenAIは明示的な/responses/compactエンドポイントと自動コンテキスト管理を公開しています。返される圧縮素材は不透明です。指示に従ってそのまま渡し、解析、編集、またはユーザー向けの要約として扱わないでください。
意味的な節目でコンパクトに:
- 研究が統合され、生の情報源の探索が不要になった後。
- コードフェーズがテストに合格した後;
- ユーザーがプランを承認した後;
- 新しい独立フェーズを開始する前に;
- 測定されたコンテキストが計画した閾値に近づいたとき。
毎ターン後にコンパクト化するのは避けてください。作業が増え、有用な局所的な詳細が失われる可能性があり、再利用可能なプロンプトプレフィックスが変更されることで、プロンプトキャッシュの動作に影響を与える可能性があります。
const compacted = await client.responses.compact({
model: "gpt-6-astra",
input: accumulatedItems
});
// Persist the returned compacted items and use them as the base for later work.
正確な型については現在のSDKリファレンスを参照してください。ベータ版やSDKの表面は変更される可能性があります。不変のルールは、不透明な出力を変更せずに保持することです。
作業をチェックポイントする、言葉だけではなく
本番チェックポイントは以下を記録する必要があります:
- ユーザーから見える目標と最新の承認済みスコープ;
- 完了した手順と検証証拠;
- 保留中のツール呼び出しと承認状態;
- 外部リソース識別子とバージョン;
- 出典のある重要な決定事項。
- 応答または会話の識別子;
- 単調なチェックポイントバージョン。
アニメーションワークフローがスクリプトを承認し、キャラクターリファレンスを生成し、シーンアセンブリを開始したと仮定します。エージェントは、アセットID、承認、シーンステータスをアプリケーションデータに保存する必要があります。Elser AIのようなプラットフォームはクリエイティブアセットの自然な保存先ですが、オーケストレーション層は、再開されたエージェントが承認済みシーンを再生成しないように、明示的な状態を依然として必要とします。
中断後の復旧
少なくとも1回の実行を想定した設計。ツールが動作した後、クライアントが結果を受け取る前に接続が切れる可能性があります。状態を変更するすべてのツールは、冪等性キーを受け入れるか、書き込み前読み取りチェックをサポートする必要があります。再開時:
- 最新のコミット済みチェックポイントをロードします。
- 不確実な操作のために外部状態を検査する;
- コールまたは冪等性IDによってツールの結果を調整する;
- 圧縮された状態と最近のイベントからコンテキストを再構築します。
- 明示的に保留中の作業からモデルに続行を依頼します。
クラッシュ後に「続けて」と構造化されたステータスなしでモデルに伝えないでください。アクションを繰り返したり、間違ったマイルストーンを推測したりする可能性があります。
コンパクションとビジネスメモリを分離する
圧縮はモデルにとって最適化されたコンテキストです。ビジネスメモリは、アプリケーション向けの耐久性があり検査可能な記録です。人間が読める簡潔なタスク台帳を、不透明な圧縮アイテムと共に維持してください。この台帳により、オペレーターは決定を監査し、モデルを移行し、応答チェーンが利用できない場合に回復できます。
優れた台帳には、説得力のある文章ではなく事実が含まれます。例えば、「顧客は14:32 UTCにプランv7を承認した」は、「顧客はプランに満足しているようだった」よりも強いです。ツールから得た主張にはソースIDを保存してください。
長時間実行の品質管理
最終的な回答の正確さだけでなく、テストしてください。測定項目:
- 20、50、100ターン後のゴール保持率;
- 注入された切断後の重複した副作用;
- コンパクション後の正しい再開;
- ツール結果の出典;
- 認可の永続性と有効期限;
- マイルストーンごとのコスト;
- タスク台帳と外部状態との間のずれ。
古いメッセージが新しい指示と矛盾する場合、ツールが巨大なペイロードを返す場合、またはエージェントが一時停止中に承認が期限切れになる場合の敵対的テストを含めてください。長時間実行される信頼性は、主に遷移に関するものです。
FAQ
Conversations と previous_response_id のどちらを使うべきですか?
previous_response_idは単純な応答チェーンに使用します。セッションやジョブをまたいで再利用可能な永続的なオブジェクトが必要な場合は、会話を使用します。これらは同じリクエスト内で一緒に指定することはできません。
100万トークンのウィンドウでコンパクションは不要になるのか?
いいえ、コスト、レイテンシ、関連性、そして文書化された長文脈の価格閾値はすべて、ハードリミットに達する前にコンテキスト管理が有用であることを示しています。
圧縮されたコンテンツを編集できますか?
圧縮されたアイテムは不透明なものとして扱ってください。編集可能なタスク台帳は別途保持してください。
store: false は何を変更するのですか?
デフォルトのレスポンス保存を無効にします。この場合、アプリケーションは必要な状態を明示的に保持し、独自の保存と復旧要件を満たす必要があります。
結論
耐久性のあるGPT-6 Astraエージェントは、API管理された会話の継続性とアプリケーションが所有するタスクおよび実行状態を組み合わせます。応答を意図的に連鎖または永続化し、コストが高くなる前にコンテキストを予算化し、マイルストーンでコンパクト化し、不透明なコンパクト化項目を保持し、すべての外部アクションを回復可能にします。その結果、単に長いチャットを記憶するだけでなく、安全に作業を再開できるエージェントが実現します。






























































































