Pi の圧縮の仕組み

2026/08/14 2:57

Pi の圧縮の仕組み

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

コーディングエージェントである Pi、Claude Code、Codex は、大規模言語モデル(LLM)のコンテキストウィンドウを超える会話履歴を管理する必要があります。履歴がこれらの制限を超えると、「リクエストは最大サイズを超えています」といったエラーで要求が拒否されます。各要求にはシステムプロンプト、読み込まれたファイル(例:AGENTS.md)、ツール定義、および拡大する会話履歴が含まれており、1 つのターンはユーザーメッセージ、ツールの呼び出しと実行結果を含むアシスタントの応答、およびその後の出力で構成されます。コンテキストオーバーフローに対処するために、エージェントは履歴を破棄して新しい空の会話を開始するか、または過去の内容の圧縮表現を作成するコンパクト化(compaction)を使用できます。コンパクト化では、LLM が生成した要約により古いメッセージを置換し、直近の相互作用を保持しながら、以前の段階からの主要な目標、進捗、決定を保持します。Pi では、コンテキスト使用量が総ウィンドウサイズに近づくときに自動コンパクト化がトリガーされ、また

/compact
コマンドを手動で呼び出すことも可能です。コンパクト化の間、Pi は設定可能な数の直近メッセージ(デフォルトでは約 5〜20 ターンまたは 20k トークン)を変えずに保持し、より古いコンテンツは「専門のコーディングアシスタント」という LLM の役割を「コンテキスト要約アシスタント」に再定義するプロンプトを使用して要約し、目標、進捗、主要な決定を網羅する構造化された要約を要求します。得られたコンパクト化されたテキストはプレーンテキストとして追加され、異なるモデル間での読みやすさと汎用性を確保します。コンパクト化はプロンプトキャッシングを破断させるため、最初の変わったトークン以降のトークンは再計算が必要となりますが、プロジェクトが進化する中で重要なセッションデータを失うことなく継続的な動作を保証します。ユーザーはこのプロセスをさらにカスタマイズするために、Pi のデフォルトのメカニズムを置き換えるための独自コンパクト化プロンプトを持つ拡張機能を作成することで対応できます。

本文

コードエージェントにおける「コンパクション」の仕組みと Pi の実装

長時間にわたるコーディングセッションを行う際、文脈ウィンドウの制限により対話が続けられなくなる経験がある方も多いでしょう。本稿では、その解決策である**コンパクション(要約)**の仕組みと、特に Pi がそれをどのように実行すべき時機を見極めているかについて解説します。

1. LLM 対話における文脈の制約

大規模言語モデル(LLM)には処理可能な情報量の上限、すなわち文脈ウィンドウが存在します。コードエージェントのセッションは、会話履歴やツール呼び出しが増えるにつれて膨らみ、この容量を超えるとリクエストが却下されます。

対話の拡大とエラー

エージェントと LLM のやり取り(ターン)が進むごとに、以下の構成要素が文脈に追加されます。

  • Request 1

    • 構成要素:
      [system][tools][user]
    • 結果:LLM がアシスタントメッセージ(ツール呼び出しを含む)を返すか、ターンの開始となる。
  • After Request 1

    [system][tools][user][assistant: tool call][tool result][assistant]
    
  • Request 2

    • ユーザーが新たなメッセージを送信し、対話がさらに拡大する。
    • 構成要素:
      [system][tools][user][assistant: tool call][tool result][assistant][user]

このようにターンを重ねることで、やがて文脈ウィンドウの容量を超える状態になります。

  • Context Window を超過
    [system][tools][user][assistant][....][tool result][user]
                                                   ^
                                        exceeds context window
    
    • エラーメッセージ例:
      "Request size exceeds maximum"

2. 文脈オーバーフローへの対応策

履歴が破棄されても対話を継続したい場合、以下の二つの選択肢があります。

  1. 新しい空の対話を開始する

    • 蓄積されたコンテキストを持たないため、過去の決定や未解決作業は失われます。
    • ただし、LLM の出力性能は文脈が長くなるにつれて低下するため、合理的な場合もあります。
  2. 対話コンテキストを要約する(コンパクション)

    • 履歴の一部を圧縮された表現で置き換え、新しいメッセージやツール呼び出しのための余地を残す手法です。

3. コンパクションの仕組み

理論的には決定論的な関数で一部データを保存・破棄することも可能ですが、実用上はLLM を使用して要約する方法が一般的です。

圧縮後の構造

コンパクションにより、膨大な履歴が短い**サマリー(要約)**に集約されます。

  • After Compaction
    [system][tools][compaction result][user]
                                ^
                       new message space available
    

4. Pi におけるコンパクションの実装

Pi は、対話が長くなりすぎた際に自動的または手動でコンパクションをトリガーします。

トリガーのタイミング

  • 文脈ウィンドウの容量に近づいた際
    • Pi は自動的に古い内容を要約し、最新の作業は保持します。
  • 手動実行
    • ユーザーが
      /compact
      コマンドを実行する場合もあります。
  • エラー発生時
    • ターン中に文脈オーバーフローエラーが発生した場合にも処理されます。

保持するメッセージ数の目安

  • Pi は構成可能なトークン予算に応じて、要約対象の範囲(カットポイント)を調整します。
    • デフォルト設定(2 万トークン)では、およそ 5〜20 回のターンに相当する内容を抽出・要約します。
  • カットポイント以前のメッセージはすべてシリアライズされ、要約対象となります。

プロンプトの工夫

Pi のコンパクションプロンプトは「交代制勤務の引き継ぎブリーフィング」のような役割を果たします。

  • システムプロンプトの変更
    • 通常:「あなたは優秀なコードアシスタントです」
    • コンパクション時:「あなたは文脈要約アシスタントです」
  • ユーザーメッセージの内容
    • 「後で戻った際に利用する文脈として、この対話ブランチの構造化された要約を作成してください」と指示します。

プロンプトの特徴

プロンプトは以下のセクションを指定して実行されます:

  1. 目標
  2. 進捗状況
  3. 重要な決定
  • これらの要約はスタンドアロン(既存履歴なし)で生成されるため、不要なコストを増やさずに別の LLM モデルを使用可能です。
  • 結果はセッション内の圧縮されたコンテキストエントリとして追加され、読みやすく、モデル切り替え時에도使用可能なプレーンテキストとして保存されます。

5. コンパクションとプロンプトキャッシング

LLM 提供者は、同一セッション内でのプレフィックス一致を検出し、コスト削減のためにプロンプトキャッシングを利用しています。

カッチングの有効性

  • Compaction 前
    • 既存の履歴(
      [older history]
      )と最新のターンが一致するため、キャッシュが有効化されます。
    [system][tools][older history][recent retained turns]
    <-------------------- cached prefix -------------------->
    
  • Compaction 後
    • 「older history」部分が「summary」に置換されるため、プレフィックスが変化します。
    • キャッシュは無効化され、新しいリクエストからはキャッシュの恩恵を受けません。

コストへの影響

[system][tools][summary][recent retained turns][new user message]
<-- reusable -->^
                |
        first changed token
                |
                +-- この時点以降は全て再計算が必要
  • 保持されたターン(
    recent retained turns
    )のトークンは同じですが、それ以前のプロンプト構造が変化するため、キャッシュ再利用は不可能です。
  • ただし、コンパクション後からの新しい対話開始からは、再びプロンプトキャッシングの恩恵を受けることが可能です。

6. 実験と拡張性

Pi のコンパクション機構は柔軟にカスタマイズ可能です。

  • 異なる要約メカニズムをテストするには、Pi にカスタムコンパクションプロンプトを持つ拡張機能を作成することで検証できます。

同じ日のほかのニュース

一覧に戻る →

2026/08/14 19:41

神のために、Kubernetes で CPU リミットを使用するのをやめてください

## Japanese Translation: 元の要約は明確で正確であり、よく構成されています。厳密な改善は必要ありませんが、以下に全ての情報を保持しつつさらにより滑らかで流れの良い、やや推敲されたバージョンを示します: **改訂された要約:** 主な推奨事項は、Kubernetes コンテナからの CPU リミットの廃止です。これは記憶容量制限(OOM キルを防ぐ保護機能)とは異なり、Linux CFS スケジューラによって 100 ミリ秒以内のウィンドウ内で人工的な凍結を引き起こします。このスロットリングは、処理器数に基づいて動的にリソースを割り当てる .NET アプリケーションに特に悪影響を与える、ガベージコレクションへの飢餓や沈黙するロジックエラーなどの重大な失敗につながります。 これらの制限を撤去することで、以下の顕著な利益が得られます:クラスタあたり年間約 92,000 ドルのハードウェア統合による節約、トラフィックスパイク時のテールレイテンシの減少、および計算集約型タスクに対する起動時間の大幅な短縮です。これを安全に実装するためには、組織はプロセッサ数(具体的には `DOTNET_PROCESSOR_COUNT`)に対してフラートワイドデフォルトを設定し、スロットリング比率の観測可能性を向上させた上で変更を展開する必要があります。今後のステップとしては、長期にわたる P95 使用データに基づいてリソースリクエストを再サイズ化し、オートスケーリングを最適化することです。未信憑性の高いワークロードや Guaranteed QoS を必要とするワークロードについては、例外を残して近隣のアプリケーションに影響を与えることを防ぐ必要があります。

2026/08/14 18:55

DeepSeek ピークオフピーク料金更新

## Japanese Translation: DeepSeek-V4-Pro が本日公式リリースされ、AI エージェントに重大なアップグレードが施され、生産性が大幅に向上しました。今回の更新では、V4-Pro および V4-Flash の両方で利用可能な柔軟な推論モードを導入しており、「low」は単純なタスク向け、「high」は日常のエージェントワークフロー向け、「max」は複雑な課題向けです。目玉機能として、OpenAI Responses API のネイティブサポートと最適化された Codex インテグレーションを提供し、開発をシームレスに行うためのワンクリック設定が可能です。特筆すべきは、アプリ上で「Expert モード」を通じてこれらの強化機能をアクセスできる一方で、元の API インターフェースでは標準的なモデル名をそのまま維持できる点です。重要なのは、API 料金体系が変更され、2026 年 8 月 16 日 UTC 午後 4 時より有効となるオフピーク時の料金がピーク時の半額という新構造が導入されたことです。この変更は、企業が重負荷な処理をコストのかからない時間帯にスケジュールすることで運用費を削減することを促しており、ビジネスは現在の技術ワークフローを維持しつつ、支出を最適化し、複雑な業務も容易に遂行できるようになります。

2026/08/14 2:23

Gemini 3.7 Flash

## 日本語翻訳: ## サマリー: Google は、開発者の効率性を即時に向上させることを目的として 160 カ国で利用可能にし、最も高度なコーディングモデルとなる Gemini 3.7 Flash を公開しました。これは先行モデルからわずか 3 週間後のリリースであり、開発者のフィードバックおよびアルゴリズムの革新に応じたものであり、この急速な更新によりコストが大幅に削減されました(価格が半減し、100 万入力トークンあたり 0.75 ドル、100 万出力トークンあたり 3.75 ドル)。技術的ベンチマークは能力の著しい飛躍を確認しています:モデルはゼロから動作するコードを生成する際に 43.6% の精度を達成しました(対して 34.4%)、およびソフトウェアのエラーを修正する際の成功率は 65.3% に向上しました(対して 49.0%)。また、複雑なドキュメントの解析、現実世界の業務ワークフロー(AutomationBench スコアが 17.0% から 30.4% に改善)、Web 開発タスクにおいて優れており、Arena.ai で Elo スコア 1588 を達成しました。開発者は、Google Antigravity、Google AI Studio、Android Studio、または公式 API を活用して、これらの改善点を直ちにプロジェクトに統合することができます。この発表は、セキュリティサイバー分野など機密性の高い領域での乱用を防ぐために更新された Frontier Safety の防護措置を通じて厳格な安全プロトコルを維持しつつ、Google Workspace アプリ内でより高い生産性を約束します。安価さと多面的な高性能を組み合わせることで、このモデルは専門家のソフトウェアエンジニアリングにおける人工知能の新たな基準を設定します。

Pi の圧縮の仕組み | そっか~ニュース