# コンテキスト管理

> PentAGIが各agentのチェーンの古い部分を要約することで、長いflowsをモデルのコンテキストウィンドウ内に収める方法と、それを調整する設定について説明します。

長い[flows](https://pentagi.com/ja/docs/glossary/#flow)では、あらゆるモデルが保持できる量を超える会話が発生します。PentAGIは**チェーン要約**を用いて各[agent](https://pentagi.com/ja/docs/glossary/#agent)のチェーンを適切な範囲内に維持します。具体的には、agentのターンごとに古いセクションを圧縮しつつ、最新のセクションはサイズ制限を超えない限り完全な形で保持されます。PentAGIが組み込みのモデルカタログから、あるいはモデルリストでそれを報告するカスタムエンドポイントからモデルのコンテキストウィンドウを把握しており、それでもチェーンが収まらない場合は、モデル呼び出しの直前にもう一度圧縮が行われます。Ollamaモデルやその他ウィンドウが不明なモデルではこの手順は実行されないため、コンテキストが小さいモデルの場合は以下のサイズを小さくしてください。

```mermaid
flowchart TD
  accTitle: Chain summarization steps after each agent turn and before each model call
  A[Agent turn finished] --> B[Condense each older section into one summary]
  B --> C[Keep the recent sections within their size limits]
  C --> D[Summarize old question-answer pairs]
  D --> E{Next model call: fits the context window?}
  E -->|Yes| F[Send the chain]
  E -->|No| G[Compact to the window size]
  G --> F
```

## [チューニング](https://pentagi.com/ja/docs/concepts/context/#tuning)

デフォルト設定はほとんどのモデルに適しています。Agentsと対話型[assistant](https://pentagi.com/ja/docs/glossary/#assistant)にはそれぞれ別の設定があり、assistantの方がより多くの最新履歴を保持します。

| 設定                                     | Agents                            | Assistant                                   |
| -------------------------------------- | --------------------------------- | ------------------------------------------- |
| 直近のセクションを制限する                          | `SUMMARIZER_PRESERVE_LAST=true`   | `ASSISTANT_SUMMARIZER_PRESERVE_LAST=true`   |
| 直近のセクションのサイズ制限                         | `SUMMARIZER_LAST_SEC_BYTES=51200` | `ASSISTANT_SUMMARIZER_LAST_SEC_BYTES=76800` |
| 単一[tool](https://pentagi.com/ja/docs/glossary/#tool)結果の最大サイズ | `SUMMARIZER_MAX_BP_BYTES=16384`   | `ASSISTANT_SUMMARIZER_MAX_BP_BYTES=16384`   |
| 保持する質問応答セクション数                         | `SUMMARIZER_MAX_QA_SECTIONS=10`   | `ASSISTANT_SUMMARIZER_MAX_QA_SECTIONS=7`    |
| それらのセクションのサイズ                          | `SUMMARIZER_MAX_QA_BYTES=65536`   | `ASSISTANT_SUMMARIZER_MAX_QA_BYTES=76800`   |
| 要約にまとめない最新セクション数                       | `SUMMARIZER_KEEP_QA_SECTIONS=1`   | `ASSISTANT_SUMMARIZER_KEEP_QA_SECTIONS=3`   |

`false`を使用すると、最新のセクションには独自のサイズ制限がなく、単一のツール結果の制限も適用されません。

`SUMMARIZER_USE_QA` は質問応答戦略を有効にします（デフォルトでオン）。また `SUMMARIZER_SUM_MSG_HUMAN_IN_QA` はその戦略内でユーザー自身のメッセージも要約対象に含めます（デフォルトでオフ）。これらは agent にのみ適用されます。assistant は常にこの戦略を使用し、ユーザーのメッセージを要約することはありません。