---
read_when:
    - आप ऑटो-Compaction और /compact को समझना चाहते हैं
    - आप लंबी अवधि के सत्रों में कॉन्टेक्स्ट सीमा तक पहुँचने की समस्या डीबग कर रहे हैं
summary: मॉडल की सीमाओं के भीतर बने रहने के लिए OpenClaw लंबी बातचीतों का सारांश कैसे बनाता है
title: Compaction
x-i18n:
    generated_at: "2026-07-27T19:09:22Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: eb1f794fa60affd602378bcff8b07786bfeca55ab3fa09d5fa7214a05fa48806
    source_path: concepts/compaction.md
    workflow: 16
---

हर मॉडल की एक संदर्भ विंडो होती है: उसके द्वारा संसाधित किए जा सकने वाले टोकन की अधिकतम संख्या। जब कोई वार्तालाप उस सीमा के पास पहुँचता है, तो OpenClaw पुराने संदेशों को एक सारांश में **संक्षिप्त** करता है, ताकि चैट जारी रह सके।

## यह कैसे काम करता है

1. वार्तालाप के पुराने चरणों को एक संक्षिप्त प्रविष्टि में सारांशित किया जाता है।
2. सारांश को सत्र ट्रांस्क्रिप्ट में सहेजा जाता है।
3. हाल के संदेशों को ज्यों का त्यों रखा जाता है।

Compaction विभाजन बिंदु चुनते समय OpenClaw सहायक के टूल कॉल को उनकी संगत `toolResult` प्रविष्टियों के साथ जोड़े रखता है। यदि बिंदु किसी टूल ब्लॉक के भीतर पड़ता है, तो OpenClaw सीमा को खिसका देता है, ताकि जोड़ी साथ रहे और वर्तमान असारांशित अंतिम भाग सुरक्षित रहे।

वार्तालाप का पूरा इतिहास डिस्क पर रहता है। Compaction केवल यह बदलता है कि मॉडल अगले चरण में क्या देखता है।

<Note>
नई कॉन्फ़िगरेशन में `agents.defaults.compaction.mode` का डिफ़ॉल्ट मान `"safeguard"` होता है (अधिक सख्त सुरक्षा सीमाएँ, सारांश गुणवत्ता ऑडिट)। इससे बाहर निकलने के लिए `mode: "default"` को स्पष्ट रूप से सेट करें।
</Note>

## स्वचालित Compaction

स्वचालित Compaction डिफ़ॉल्ट रूप से चालू होता है। यह तब चलता है, जब सत्र संदर्भ सीमा के पास पहुँचता है या मॉडल संदर्भ-ओवरफ़्लो त्रुटि लौटाता है (इस स्थिति में OpenClaw Compaction करके दोबारा प्रयास करता है)।

आपको यह दिखाई देगा:

- सामान्य Gateway लॉग में `embedded run auto-compaction start` / `complete`।
- विस्तृत मोड में `🧹 Auto-compaction complete`।
- `🧹 Compactions: <count>` दिखाता हुआ `/status`।

<Info>
Compaction से पहले, OpenClaw महत्वपूर्ण नोट्स को [मेमोरी](/hi/concepts/memory) फ़ाइलों में सहेजने के लिए एजेंट को स्वतः याद दिलाता है। इससे संदर्भ की हानि रुकती है।
</Info>

<AccordionGroup>
  <Accordion title="OpenClaw द्वारा पहचाने जाने वाले ओवरफ़्लो त्रुटि पैटर्न">
    OpenClaw दर्जनों प्रदाता-विशिष्ट ओवरफ़्लो त्रुटि स्ट्रिंग से मिलान करता है (Anthropic, OpenAI, Bedrock, Gemini, Ollama, OpenRouter और अन्य)। सामान्य उदाहरण:

    - `request_too_large`
    - `context length exceeded`
    - `input exceeds the maximum number of tokens`
    - `input token count exceeds the maximum number of input tokens` (Bedrock)
    - `input is too long for the model`
    - `ollama error: context length exceeded`

  </Accordion>
</AccordionGroup>

## मैन्युअल Compaction

Compaction को बाध्य करने के लिए किसी भी चैट में `/compact` टाइप करें। सारांश का मार्गदर्शन करने के लिए निर्देश जोड़ें:

```text
/compact API डिज़ाइन संबंधी निर्णयों पर ध्यान दें
```

जब `agents.defaults.compaction.keepRecentTokens` सेट हो (डिफ़ॉल्ट: 20,000), तो मैन्युअल Compaction उस कट-पॉइंट का पालन करता है और पुनर्निर्मित संदर्भ में हाल के अंतिम भाग को बनाए रखता है। स्पष्ट रखरखाव बजट के बिना, मैन्युअल Compaction एक कठोर चेकपॉइंट की तरह व्यवहार करता है और केवल नए सारांश से आगे बढ़ता है।

## कॉन्फ़िगरेशन

अपने `openclaw.json` में `agents.defaults.compaction` के अंतर्गत Compaction कॉन्फ़िगर करें। सबसे सामान्य विकल्प नीचे सूचीबद्ध हैं; पूरे संदर्भ के लिए [सत्र प्रबंधन का विस्तृत विवरण](/hi/reference/session-management-compaction) देखें।

### किसी भिन्न मॉडल का उपयोग

डिफ़ॉल्ट रूप से, Compaction एजेंट के प्राथमिक मॉडल का उपयोग करता है। सारांशीकरण को किसी अधिक सक्षम या विशिष्ट मॉडल को सौंपने के लिए `agents.defaults.compaction.model` सेट करें। ओवरराइड एक `provider/model-id` स्ट्रिंग या `agents.defaults.models` के अंतर्गत कॉन्फ़िगर किया गया सामान्य उपनाम स्वीकार करता है:

```json
{
  "agents": {
    "defaults": {
      "compaction": {
        "model": "openrouter/anthropic/claude-sonnet-4-6"
      }
    }
  }
}
```

Compaction शुरू होने से पहले कॉन्फ़िगर किए गए सामान्य उपनाम उनके कैनोनिकल प्रदाता और मॉडल में समाधान किए जाते हैं। यदि कोई सामान्य मान उपनाम और कॉन्फ़िगर किए गए शाब्दिक मॉडल ID—दोनों से मेल खाता है, तो शाब्दिक मॉडल ID को प्राथमिकता मिलती है। मेल न खाने वाला सामान्य मान सक्रिय प्रदाता पर मॉडल ID बना रहता है।

यह स्थानीय मॉडल के साथ भी काम करता है, उदाहरण के लिए सारांशीकरण के लिए समर्पित दूसरा Ollama मॉडल:

```json
{
  "agents": {
    "defaults": {
      "compaction": {
        "model": "ollama/llama3.1:8b"
      }
    }
  }
}
```

सेट न होने पर, Compaction सक्रिय सत्र मॉडल से शुरू होता है। यदि सारांशीकरण किसी ऐसे प्रदाता त्रुटि के कारण विफल होता है जो मॉडल फ़ॉलबैक के योग्य है, तो OpenClaw सत्र की मौजूदा मॉडल फ़ॉलबैक शृंखला के माध्यम से उस Compaction प्रयास को दोहराता है। फ़ॉलबैक चयन अस्थायी होता है और सत्र स्थिति में वापस नहीं लिखा जाता। स्पष्ट `agents.defaults.compaction.model` ओवरराइड सटीक रहता है और सत्र की फ़ॉलबैक शृंखला प्राप्त नहीं करता।

### पहचानकर्ता संरक्षण

Compaction सारांशीकरण डिफ़ॉल्ट रूप से अपारदर्शी पहचानकर्ताओं को सुरक्षित रखता है (`identifierPolicy: "strict"`)। अक्षम करने के लिए `identifierPolicy: "off"` से ओवरराइड करें। कस्टम मार्गदर्शन Compaction प्रदाता के `summarize()` कार्यान्वयन में होना चाहिए।

### सक्रिय ट्रांस्क्रिप्ट बाइट सुरक्षा सीमा

जब `agents.defaults.compaction.maxActiveTranscriptBytes` सेट हो, तो ट्रांस्क्रिप्ट इतिहास के
उस आकार तक पहुँचने पर OpenClaw रन से पहले सामान्य स्थानीय Compaction
ट्रिगर करता है। यह लंबे समय तक चलने वाले उन सत्रों के लिए उपयोगी है, जहाँ प्रदाता-पक्षीय संदर्भ
प्रबंधन मॉडल संदर्भ को स्वस्थ बनाए रख सकता है, जबकि स्थायी ट्रांस्क्रिप्ट इतिहास
बढ़ता रहता है। यह अपरिष्कृत बाइट को विभाजित नहीं करता; यह सामान्य Compaction
पाइपलाइन से एक अर्थपूर्ण सारांश बनाने के लिए कहता है।

<Warning>
बाइट सुरक्षा सीमा सक्रिय SQLite ट्रांस्क्रिप्ट इतिहास पर लागू होती है। पुराने JSONL
चेकपॉइंट आर्टिफ़ैक्ट सक्रिय Compaction लक्ष्य नहीं हैं।
</Warning>

### उत्तराधिकारी ट्रांस्क्रिप्ट

जब `agents.defaults.compaction.truncateAfterCompaction` सक्षम हो, तो OpenClaw मौजूदा ट्रांस्क्रिप्ट को उसी स्थान पर दोबारा नहीं लिखता। यह Compaction सारांश, सुरक्षित स्थिति और असारांशित अंतिम भाग से एक नया सक्रिय उत्तराधिकारी ट्रांस्क्रिप्ट बनाता है, फिर वह चेकपॉइंट मेटाडेटा दर्ज करता है जो शाखा/पुनर्स्थापना प्रवाहों को उस संक्षिप्त उत्तराधिकारी की ओर इंगित करता है।
उत्तराधिकारी ट्रांस्क्रिप्ट कम समय की पुनर्प्रयास विंडो के भीतर आने वाले
लंबे उपयोगकर्ता चरणों की हूबहू डुप्लिकेट प्रतियाँ भी हटा देते हैं, ताकि चैनल पुनर्प्रयासों की बाढ़
Compaction के बाद अगले सक्रिय ट्रांस्क्रिप्ट में न पहुँचे।

OpenClaw अब नए Compaction के लिए अलग `.checkpoint.*.jsonl` प्रतियाँ नहीं
लिखता। मौजूदा पुराने चेकपॉइंट फ़ाइलों को संदर्भित रहने तक उपयोग किया जा सकता है
और सामान्य सत्र सफ़ाई द्वारा हटाया जाता है।

### Compaction सूचनाएँ

डिफ़ॉल्ट रूप से, Compaction बिना सूचना के चलता है। Compaction शुरू और पूरा होने पर संक्षिप्त स्थिति संदेश दिखाने तथा Compaction-पूर्व मेमोरी फ़्लश समाप्त हो जाने पर, लेकिन उत्तर फिर भी जारी रहने की स्थिति में, सीमित क्षमता की सूचना प्रदर्शित करने के लिए `notifyUser` सेट करें:

```json5
{
  agents: {
    defaults: {
      compaction: {
        notifyUser: true,
      },
    },
  },
}
```

### मेमोरी फ़्लश

Compaction से पहले, OpenClaw स्थायी नोट्स को डिस्क पर संग्रहीत करने के लिए एक **मौन मेमोरी फ़्लश** चरण चला सकता है। जब इस रखरखाव चरण को सक्रिय वार्तालाप मॉडल के बजाय स्थानीय मॉडल का उपयोग करना चाहिए, तब `agents.defaults.compaction.memoryFlush.model` सेट करें:

```json
{
  "agents": {
    "defaults": {
      "compaction": {
        "memoryFlush": {
          "model": "ollama/qwen3:8b"
        }
      }
    }
  }
}
```

मेमोरी-फ़्लश मॉडल ओवरराइड सटीक होता है और सक्रिय सत्र की फ़ॉलबैक शृंखला प्राप्त नहीं करता। विवरण और कॉन्फ़िगरेशन के लिए [मेमोरी](/hi/concepts/memory) देखें।

## प्लग करने योग्य Compaction प्रदाता

Plugins, Plugin API पर `registerCompactionProvider()` के माध्यम से कस्टम Compaction प्रदाता पंजीकृत कर सकते हैं। जब कोई प्रदाता पंजीकृत और कॉन्फ़िगर किया जाता है, तो OpenClaw अंतर्निहित LLM पाइपलाइन के बजाय उसे सारांशीकरण सौंपता है।

पंजीकृत प्रदाता का उपयोग करने के लिए, अपनी कॉन्फ़िगरेशन में उसकी ID सेट करें:

```json
{
  "agents": {
    "defaults": {
      "compaction": {
        "provider": "my-provider"
      }
    }
  }
}
```

`provider` सेट करने पर `mode: "safeguard"` स्वतः बाध्य हो जाता है। प्रदाताओं को अंतर्निहित पथ के समान Compaction निर्देश और पहचानकर्ता-संरक्षण नीति मिलती है, और प्रदाता आउटपुट के बाद भी OpenClaw हाल के चरण और विभाजित चरण के प्रत्यय संदर्भ को सुरक्षित रखता है।

<Note>
यदि प्रदाता विफल होता है या खाली परिणाम लौटाता है, तो OpenClaw अंतर्निहित LLM सारांशीकरण पर फ़ॉलबैक करता है।
</Note>

## Compaction बनाम प्रूनिंग

|                  | Compaction                         | प्रूनिंग                              |
| ---------------- | ---------------------------------- | ------------------------------------- |
| **यह क्या करता है** | पुराने वार्तालाप का सारांश बनाता है | पुराने टूल परिणामों को छोटा करता है |
| **सहेजा जाता है?**       | हाँ (सत्र ट्रांस्क्रिप्ट में)          | नहीं (केवल मेमोरी में, प्रति अनुरोध) |
| **दायरा**        | पूरा वार्तालाप                    | केवल टूल परिणाम                      |

[सत्र प्रूनिंग](/hi/concepts/session-pruning) एक हल्का पूरक है, जो सारांश बनाए बिना टूल आउटपुट को छोटा करता है।

## समस्या निवारण

**Compaction बहुत बार हो रहा है?** मॉडल की संदर्भ विंडो छोटी हो सकती है या टूल आउटपुट बड़े हो सकते हैं। [सत्र प्रूनिंग](/hi/concepts/session-pruning) सक्षम करने का प्रयास करें।

**Compaction के बाद संदर्भ पुराना लग रहा है?** सारांश का मार्गदर्शन करने के लिए `/compact Focus on <topic>` का उपयोग करें या [मेमोरी फ़्लश](/hi/concepts/memory) सक्षम करें, ताकि नोट्स सुरक्षित रहें।

**नई शुरुआत चाहिए?** `/new` Compaction किए बिना नया सत्र शुरू करता है।

उन्नत कॉन्फ़िगरेशन (आरक्षित टोकन, पहचानकर्ता संरक्षण, कस्टम संदर्भ इंजन, OpenAI सर्वर-पक्षीय Compaction) के लिए [सत्र प्रबंधन का विस्तृत विवरण](/hi/reference/session-management-compaction) देखें।

## संबंधित

- [सत्र](/hi/concepts/session): सत्र प्रबंधन और जीवनचक्र।
- [सत्र प्रूनिंग](/hi/concepts/session-pruning): टूल परिणामों को छोटा करना।
- [संदर्भ](/hi/concepts/context): एजेंट चरणों के लिए संदर्भ कैसे बनाया जाता है।
- [हुक](/hi/automation/hooks): Compaction जीवनचक्र हुक (`before_compaction`, `after_compaction`)।
