त्वरित शुरुआत
सुरक्षित-डिफ़ॉल्ट सेटअप के लिए इसेopenclaw.json में पेस्ट करें — Plugin चालू, main एजेंट तक सीमित, केवल सीधे-संदेश सत्र, उपलब्ध होने पर सत्र मॉडल विरासत में लेता है:
plugins.entries.active-memory.enabled: truePlugin को चालू करता हैconfig.agents: ["main"]केवलmainएजेंट को Active Memory में शामिल करता हैconfig.allowedChatTypes: ["direct"]इसे सीधे-संदेश सत्रों तक सीमित करता है (समूहों/चैनलों को स्पष्ट रूप से शामिल करें)config.model(वैकल्पिक) एक समर्पित रिकॉल मॉडल तय करता है; सेट न होने पर मौजूदा सत्र मॉडल विरासत में लेता हैconfig.modelFallbackकेवल तब उपयोग होता है जब कोई स्पष्ट या विरासत में मिला मॉडल हल नहीं होताconfig.promptStyle: "balanced"recentमोड के लिए डिफ़ॉल्ट है- Active Memory फिर भी केवल पात्र इंटरैक्टिव स्थायी चैट सत्रों के लिए चलता है
गति संबंधी सुझाव
सबसे सरल सेटअप हैconfig.model को अनसेट छोड़ना और Active Memory को वही मॉडल उपयोग करने देना जिसे आप सामान्य उत्तरों के लिए पहले से उपयोग करते हैं। यह सबसे सुरक्षित डिफ़ॉल्ट है क्योंकि यह आपके मौजूदा प्रदाता, auth, और मॉडल प्राथमिकताओं का पालन करता है।
यदि आप चाहते हैं कि Active Memory तेज़ महसूस हो, तो मुख्य चैट मॉडल उधार लेने के बजाय एक समर्पित inference मॉडल उपयोग करें। रिकॉल गुणवत्ता मायने रखती है, लेकिन मुख्य उत्तर पथ की तुलना में latency अधिक मायने रखती है, और Active Memory की टूल सतह संकरी है (यह केवल उपलब्ध मेमोरी रिकॉल टूल कॉल करता है)।
अच्छे तेज़-मॉडल विकल्प:
cerebras/gpt-oss-120bएक समर्पित कम-latency रिकॉल मॉडल के लिएgoogle/gemini-3-flashआपके प्राथमिक चैट मॉडल को बदले बिना कम-latency fallback के रूप में- आपका सामान्य सत्र मॉडल,
config.modelको अनसेट छोड़कर
Cerebras सेटअप
एक Cerebras प्रदाता जोड़ें और Active Memory को उसकी ओर इंगित करें:chat/completions access है — केवल /v1/models में दिखाई देना इसकी गारंटी नहीं देता।
इसे कैसे देखें
Active Memory मॉडल के लिए एक छिपा हुआ अविश्वसनीय prompt prefix इंजेक्ट करता है। यह सामान्य client-visible उत्तर में raw<active_memory_plugin>...</active_memory_plugin> tags उजागर नहीं करता।
सत्र toggle
जब आप config संपादित किए बिना मौजूदा चैट सत्र के लिए Active Memory को रोकना या फिर शुरू करना चाहते हों, तो Plugin command का उपयोग करें:plugins.entries.active-memory.enabled, एजेंट targeting, या अन्य global configuration नहीं बदलता।
यदि आप चाहते हैं कि command config लिखे और सभी सत्रों के लिए Active Memory को रोके या फिर शुरू करे, तो explicit global form उपयोग करें:
plugins.entries.active-memory.config.enabled लिखता है। यह plugins.entries.active-memory.enabled को चालू छोड़ता है ताकि command बाद में Active Memory को फिर से चालू करने के लिए उपलब्ध रहे।
यदि आप देखना चाहते हैं कि Active Memory किसी live session में क्या कर रहा है, तो अपने इच्छित output से मेल खाने वाले session toggles चालू करें:
/verbose onहोने परActive Memory: status=ok elapsed=842ms query=recent summary=34 charsजैसी Active Memory status line/trace onहोने परActive Memory Debug: Lemon pepper wings with blue cheese.जैसा पढ़ने योग्य debug summary
/trace raw भी सक्षम करते हैं, तो traced Model Input (User Role) block hidden Active Memory prefix को इस तरह दिखाएगा:
यह कब चलता है
Active Memory दो gates उपयोग करता है:- Config opt-in
Plugin enabled होना चाहिए, और मौजूदा agent id
plugins.entries.active-memory.config.agentsमें दिखाई देनी चाहिए। - सख्त runtime eligibility enabled और targeted होने पर भी, Active Memory केवल पात्र interactive persistent chat sessions के लिए चलता है।
सत्र प्रकार
config.allowedChatTypes नियंत्रित करता है कि किस प्रकार के वार्तालाप Active Memory चला सकते हैं।
डिफ़ॉल्ट है:
config.allowedChatIds और config.deniedChatIds उपयोग करें।
allowedChatIds resolved conversation ids की explicit allowlist है। जब यह non-empty हो, तो Active Memory केवल तब चलता है जब session की conversation id उस list में हो। यह हर allowed chat type को एक साथ संकरा करता है, direct messages सहित। यदि आप सभी direct messages और केवल specific groups चाहते हैं, तो direct peer ids को allowedChatIds में शामिल करें या allowedChatTypes को उस group/channel rollout पर focused रखें जिसे आप test कर रहे हैं।
deniedChatIds एक explicit denylist है। यह हमेशा allowedChatTypes और allowedChatIds पर प्राथमिकता लेता है, इसलिए matching conversation skip किया जाता है, भले ही उसका session type अन्यथा allowed हो।
ids persistent channel session key से आते हैं: उदाहरण के लिए Feishu chat_id / open_id, Telegram chat id, या Slack channel id। Matching case-insensitive है। यदि allowedChatIds non-empty है और OpenClaw session के लिए conversation id resolve नहीं कर सकता, तो Active Memory अनुमान लगाने के बजाय turn को skip करता है।
उदाहरण:
यह कहाँ चलता है
Active Memory एक conversational enrichment feature है, platform-wide inference feature नहीं।| Surface | Active Memory चलता है? |
|---|---|
| Control UI / web chat persistent sessions | हाँ, यदि Plugin enabled है और agent targeted है |
| उसी persistent chat path पर अन्य interactive channel sessions | हाँ, यदि Plugin enabled है और agent targeted है |
| Headless one-shot runs | नहीं |
| Heartbeat/background runs | नहीं |
Generic internal agent-command paths | नहीं |
| Sub-agent/internal helper execution | नहीं |
इसका उपयोग क्यों करें
Active Memory का उपयोग करें जब:- सत्र persistent और user-facing हो
- एजेंट के पास खोजने के लिए सार्थक long-term memory हो
- continuity और personalization raw prompt determinism से अधिक महत्वपूर्ण हों
- स्थिर preferences
- recurring habits
- long-term user context जिसे स्वाभाविक रूप से सामने आना चाहिए
- automation
- internal workers
- one-shot API tasks
- ऐसी जगहें जहाँ hidden personalization आश्चर्यजनक लगे
यह कैसे काम करता है
runtime shape है: अवरोधक मेमोरी उप-एजेंट केवल configured memory recall tools उपयोग कर सकता है। डिफ़ॉल्ट रूप से वह है:memory_searchmemory_get
plugins.slots.memory memory-lancedb हो, तो डिफ़ॉल्ट इसके बजाय memory_recall होता है। जब कोई दूसरा memory provider अलग recall tool contract expose करता हो, तो config.toolsAllow सेट करें।
यदि connection कमजोर है, तो उसे NONE return करना चाहिए।
Query modes
config.queryMode नियंत्रित करता है कि blocking memory sub-agent कितना conversation देखता है। सबसे छोटा mode चुनें जो फिर भी follow-up questions का अच्छी तरह उत्तर देता हो; timeout budgets context size के साथ बढ़ने चाहिए (message < recent < full)।
- message
- recent
- full
केवल latest user message भेजा जाता है।इसका उपयोग करें जब:
- आप सबसे तेज़ behavior चाहते हों
- आप stable preference recall की ओर सबसे मजबूत bias चाहते हों
- follow-up turns को conversational context की आवश्यकता न हो
config.timeoutMs के लिए लगभग 3000 से 5000 ms से शुरू करें।Prompt styles
config.promptStyle नियंत्रित करता है कि मेमोरी लौटानी है या नहीं तय करते समय
अवरोधक मेमोरी उप-एजेंट कितना तत्पर या सख्त हो।
उपलब्ध शैलियां:
balanced:recentमोड के लिए सामान्य-उद्देश्य डिफॉल्टstrict: सबसे कम तत्पर; तब सबसे अच्छा जब आप पास के संदर्भ से बहुत कम रिसाव चाहते होंcontextual: निरंतरता के लिए सबसे अनुकूल; तब सबसे अच्छा जब बातचीत का इतिहास अधिक मायने रखना चाहिएrecall-heavy: हल्के लेकिन फिर भी संभावित मिलानों पर मेमोरी सामने लाने के लिए अधिक इच्छुकprecision-heavy: जब तक मिलान स्पष्ट न हो, आक्रामक रूप सेNONEको प्राथमिकता देता हैpreference-only: पसंदीदा चीजों, आदतों, दिनचर्या, रुचि, और बार-बार आने वाले व्यक्तिगत तथ्यों के लिए अनुकूलित
config.promptStyle सेट न हो तो डिफॉल्ट मैपिंग:
config.promptStyle को स्पष्ट रूप से सेट करते हैं, तो वही override प्रभावी होगा।
उदाहरण:
मॉडल fallback नीति
यदिconfig.model सेट नहीं है, तो Active Memory इस क्रम में मॉडल resolve करने की कोशिश करता है:
config.modelFallback कॉन्फिगर किए गए fallback चरण को नियंत्रित करता है।
वैकल्पिक कस्टम fallback:
config.modelFallbackPolicy को केवल पुराने configs के लिए deprecated compatibility
field के रूप में रखा गया है। यह अब runtime behavior नहीं बदलता।
मेमोरी tools
डिफॉल्ट रूप से Active Memory अवरोधक recall उप-एजेंट कोmemory_search और memory_get call करने देता है। यह अंतर्निहित memory-core
contract से मेल खाता है। जब plugins.slots.memory memory-lancedb चुनता है और
config.toolsAllow सेट नहीं होता, तो Active Memory मौजूदा LanceDB behavior बनाए रखता है
और इसके बजाय memory_recall का उपयोग करता है।
यदि आप कोई दूसरा मेमोरी plugin उपयोग करते हैं, तो config.toolsAllow को उन सटीक tool
names पर सेट करें जिन्हें वह plugin register करता है। Active Memory उन tools को recall
prompt में सूचीबद्ध करता है और वही सूची embedded उप-एजेंट को पास करता है। यदि configured
tools में से कोई उपलब्ध नहीं है, या मेमोरी उप-एजेंट विफल हो जाता है, तो Active Memory
उस turn के लिए recall छोड़ देता है और मुख्य reply मेमोरी context के बिना जारी रहती है।
कस्टम recall tools के लिए, non-empty model-visible tool output को recall
evidence माना जाता है, जब तक structured result fields स्पष्ट रूप से empty result या
failure report न करें।
toolsAllow केवल ठोस मेमोरी tool names स्वीकार करता है। Wildcards, group:*
entries, और core agent tools जैसे read, exec, message, और
web_search hidden मेमोरी उप-एजेंट शुरू होने से पहले ignore कर दिए जाते हैं।
डिफॉल्ट behavior नोट: Active Memory अब memory_recall को
memory-core डिफॉल्ट allowlist में शामिल नहीं करता। मौजूदा memory-lancedb setups काम करते रहते हैं
जब plugins.slots.memory को memory-lancedb पर सेट किया गया हो। स्पष्ट toolsAllow
हमेशा automatic default को override करता है।
अंतर्निहित memory-core
डिफॉल्ट setup को स्पष्टtoolsAllow की जरूरत नहीं होती:
LanceDB मेमोरी
Bundledmemory-lancedb plugin memory_recall expose करता है। मेमोरी slot चुनना
Active Memory को उस recall tool का उपयोग कराने के लिए पर्याप्त है:
Lossless Claw
Lossless Claw अपने recall tools वाला context-engine plugin है। पहले इसे context engine के रूप में install और configure करें; Context engine देखें। फिर Active Memory को Lossless Claw recall tools उपयोग करने दें:toolsAllow में lcm_expand शामिल न करें।
Lossless Claw इसे lower-level delegated expansion tool के रूप में उपयोग करता है।
उन्नत escape hatches
ये विकल्प जानबूझकर recommended setup का हिस्सा नहीं हैं।config.thinking अवरोधक मेमोरी उप-एजेंट thinking level को override कर सकता है:
config.promptAppend डिफॉल्ट Active
Memory prompt के बाद और बातचीत context से पहले अतिरिक्त operator instructions जोड़ता है:
toolsAllow के साथ promptAppend का उपयोग करें।
config.promptOverride डिफॉल्ट Active Memory prompt को बदल देता है। OpenClaw
फिर भी उसके बाद बातचीत context append करता है:
NONE
या compact user-fact context लौटाने के लिए tune किया गया है।
Transcript persistence
Active memory अवरोधक मेमोरी उप-एजेंट runs, अवरोधक मेमोरी उप-एजेंट call के दौरान एक वास्तविकsession.jsonl
transcript बनाते हैं।
डिफॉल्ट रूप से, वह transcript temporary होता है:
- यह temp directory में लिखा जाता है
- यह केवल अवरोधक मेमोरी उप-एजेंट run के लिए उपयोग होता है
- run समाप्त होते ही इसे तुरंत delete कर दिया जाता है
config.transcriptDir से relative subdirectory बदल सकते हैं।
इसे सावधानी से उपयोग करें:
- व्यस्त sessions पर अवरोधक मेमोरी उप-एजेंट transcripts तेजी से जमा हो सकते हैं
fullquery mode बहुत सारा conversation context duplicate कर सकता है- इन transcripts में hidden prompt context और recalled memories होती हैं
कॉन्फिगरेशन
सभी active memory कॉन्फिगरेशन यहां रहता है:| Key | Type | अर्थ |
|---|---|---|
enabled | boolean | Plugin को स्वयं सक्षम करता है |
config.agents | string[] | वे एजेंट id जो Active Memory का उपयोग कर सकते हैं |
config.model | string | वैकल्पिक अवरोधक मेमोरी उप-एजेंट मॉडल ref; सेट न होने पर, Active Memory वर्तमान सत्र मॉडल का उपयोग करती है |
config.allowedChatTypes | ("direct" | "group" | "channel")[] | वे सत्र प्रकार जो Active Memory चला सकते हैं; डिफ़ॉल्ट direct-message शैली के सत्र हैं |
config.allowedChatIds | string[] | वैकल्पिक प्रति-वार्तालाप allowlist, जो allowedChatTypes के बाद लागू होती है; गैर-खाली सूचियां बंद अवस्था में विफल होती हैं |
config.deniedChatIds | string[] | वैकल्पिक प्रति-वार्तालाप denylist, जो अनुमत सत्र प्रकारों और अनुमत id को ओवरराइड करती है |
config.queryMode | "message" | "recent" | "full" | नियंत्रित करता है कि अवरोधक मेमोरी उप-एजेंट कितना वार्तालाप देखता है |
config.promptStyle | "balanced" | "strict" | "contextual" | "recall-heavy" | "precision-heavy" | "preference-only" | नियंत्रित करता है कि मेमोरी लौटानी है या नहीं तय करते समय अवरोधक मेमोरी उप-एजेंट कितना तत्पर या सख्त है |
config.toolsAllow | string[] | ठोस मेमोरी टूल नाम जिन्हें अवरोधक मेमोरी उप-एजेंट कॉल कर सकता है; डिफ़ॉल्ट ["memory_search", "memory_get"], या plugins.slots.memory के memory-lancedb होने पर ["memory_recall"]; wildcards, group:* प्रविष्टियां, और कोर एजेंट टूल अनदेखे किए जाते हैं |
config.thinking | "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "adaptive" | "max" | अवरोधक मेमोरी उप-एजेंट के लिए उन्नत thinking ओवरराइड; गति के लिए डिफ़ॉल्ट off |
config.promptOverride | string | उन्नत पूर्ण prompt प्रतिस्थापन; सामान्य उपयोग के लिए अनुशंसित नहीं |
config.promptAppend | string | डिफ़ॉल्ट या ओवरराइड किए गए prompt में जोड़े जाने वाले उन्नत अतिरिक्त निर्देश |
config.timeoutMs | number | अवरोधक मेमोरी उप-एजेंट के लिए कठोर timeout, 120000 ms तक सीमित |
config.setupGraceTimeoutMs | number | recall timeout समाप्त होने से पहले उन्नत अतिरिक्त सेटअप बजट; डिफ़ॉल्ट 0 है और 30000 ms तक सीमित है। v2026.4.x अपग्रेड मार्गदर्शन के लिए कोल्ड-स्टार्ट छूट देखें |
config.maxSummaryChars | number | active-memory सारांश में अनुमत कुल वर्णों की अधिकतम संख्या |
config.logging | boolean | ट्यूनिंग के दौरान Active Memory लॉग उत्सर्जित करता है |
config.persistTranscripts | boolean | temp फ़ाइलें हटाने के बजाय अवरोधक मेमोरी उप-एजेंट transcripts को डिस्क पर रखता है |
config.transcriptDir | string | एजेंट सत्र फ़ोल्डर के अंतर्गत सापेक्ष अवरोधक मेमोरी उप-एजेंट transcript निर्देशिका |
| Key | Type | अर्थ |
|---|---|---|
config.maxSummaryChars | number | active-memory सारांश में अनुमत कुल वर्णों की अधिकतम संख्या |
config.recentUserTurns | number | queryMode के recent होने पर शामिल करने के लिए पिछले उपयोगकर्ता turns |
config.recentAssistantTurns | number | queryMode के recent होने पर शामिल करने के लिए पिछले assistant turns |
config.recentUserChars | number | प्रत्येक हालिया उपयोगकर्ता turn के लिए अधिकतम वर्ण |
config.recentAssistantChars | number | प्रत्येक हालिया assistant turn के लिए अधिकतम वर्ण |
config.cacheTtlMs | number | बार-बार समान queries के लिए cache पुनः उपयोग (range: 1000-120000 ms; default: 15000) |
config.circuitBreakerMaxTimeouts | number | समान एजेंट/model के लिए लगातार इतने timeouts के बाद recall छोड़ें। सफल recall पर या cooldown समाप्त होने के बाद रीसेट होता है (range: 1-20; default: 3)। |
config.circuitBreakerCooldownMs | number | circuit breaker trip होने के बाद recall को कितनी देर तक छोड़ना है, ms में (range: 5000-600000; default: 60000)। |
अनुशंसित सेटअप
recent से शुरू करें।
/verbose on और active-memory debug summary के लिए /trace on का उपयोग करें।
चैट चैनलों में, ये diagnostic पंक्तियां मुख्य assistant reply से पहले के बजाय
उसके बाद भेजी जाती हैं।
फिर इस पर जाएं:
messageयदि आप कम latency चाहते हैंfullयदि आप तय करते हैं कि अतिरिक्त context धीमे अवरोधक मेमोरी उप-एजेंट के लायक है
कोल्ड-स्टार्ट छूट
v2026.5.2 से पहले Plugin cold-start के दौरान आपके कॉन्फ़िगर किए गएtimeoutMs
को चुपचाप अतिरिक्त 30000 ms से बढ़ा देता था, ताकि model warm-up,
embedding-index load, और पहला recall एक बड़ा बजट साझा कर सकें। v2026.5.2 ने
उस grace को स्पष्ट setupGraceTimeoutMs config के पीछे कर दिया है — आपका
कॉन्फ़िगर किया गया timeoutMs अब डिफ़ॉल्ट रूप से recall-work budget है, जब तक
आप opt in नहीं करते। blocking hook उस budget के आसपास दो सीमित phases का उपयोग
करता है: recall शुरू होने से पहले session/config preflight के लिए 1500 ms तक,
फिर recall work रुकने के बाद abort settlement और transcript recovery के लिए
अलग fixed 1500 ms। कोई भी allowance model या tool execution को नहीं बढ़ाता।
यदि आपने v2026.4.x से अपग्रेड किया है और आपने timeoutMs को पुराने implicit-grace
world के लिए tuned value पर सेट किया था (अनुशंसित starter timeoutMs: 15000
एक उदाहरण है), तो prompt-build hook और outer watchdog budgets को pre-v5.2
effective values तक वापस बढ़ाने के लिए setupGraceTimeoutMs: 30000 सेट करें:
timeoutMs + setupGraceTimeoutMs + 3000 ms है।
एम्बेडेड रिकॉल रनर वही प्रभावी टाइमआउट बजट उपयोग करता है, इसलिए
setupGraceTimeoutMs बाहरी प्रॉम्प्ट-बिल्ड वॉचडॉग और भीतरी
ब्लॉकिंग रिकॉल रन, दोनों को कवर करता है। प्रीफ़्लाइट कैप उस बजट के शुरू होने से पहले
सत्र/कॉन्फ़िग जांचों को कवर करता है। पोस्ट-रिकॉल अनुमति बाहरी हुक को अबॉर्ट
क्लीनअप व्यवस्थित करने और किसी भी अंतिम ट्रांसक्रिप्ट स्थिति को पढ़ने देती है।
संसाधन-सीमित gateways के लिए, जहां कोल्ड-स्टार्ट विलंबता एक ज्ञात समझौता है,
कम मान (5000–15000 ms) भी काम करते हैं — समझौता यह है कि gateway रीस्टार्ट के बाद
सबसे पहला रिकॉल, वॉर्म-अप पूरा होने के दौरान, खाली लौटने की संभावना अधिक होती है।
डीबगिंग
यदि active memory वहां दिखाई नहीं दे रही जहां आप अपेक्षा करते हैं:- पुष्टि करें कि plugin
plugins.entries.active-memory.enabledके अंतर्गत सक्षम है। - पुष्टि करें कि वर्तमान agent id
config.agentsमें सूचीबद्ध है। - पुष्टि करें कि आप एक इंटरैक्टिव स्थायी चैट सत्र के माध्यम से परीक्षण कर रहे हैं।
config.logging: trueचालू करें और gateway लॉग देखें।- सत्यापित करें कि memory खोज स्वयं
openclaw memory status --deepके साथ काम करती है।
maxSummaryChars
queryModeकम करेंtimeoutMsकम करें- हालिया टर्न गणनाएं घटाएं
- प्रति-टर्न वर्ण कैप घटाएं
सामान्य समस्याएं
Active Memory कॉन्फ़िगर किए गए memory plugin की रिकॉल पाइपलाइन पर चलता है, इसलिए अधिकांश रिकॉल आश्चर्य embedding-provider समस्याएं होते हैं, Active Memory बग नहीं। डिफ़ॉल्टmemory-core पथ memory_search और memory_get का उपयोग करता है;
memory-lancedb स्लॉट memory_recall का उपयोग करता है। यदि आप कोई दूसरा memory plugin उपयोग करते हैं,
तो पुष्टि करें कि config.toolsAllow उन टूल्स के नाम देता है जिन्हें वह plugin वास्तव में पंजीकृत करता है।
Embedding provider बदला या काम करना बंद कर दिया
Embedding provider बदला या काम करना बंद कर दिया
यदि
memorySearch.provider सेट नहीं है, तो OpenClaw OpenAI embeddings का उपयोग करता है। स्थानीय, Ollama, Gemini, Voyage,
Mistral, DeepInfra, Bedrock, GitHub Copilot, या OpenAI-संगत
embeddings के लिए memorySearch.provider स्पष्ट रूप से सेट करें। यदि कॉन्फ़िगर किया गया provider नहीं चल सकता, तो memory_search
lexical-only retrieval तक degrade हो सकता है; provider पहले से चुने जाने के बाद runtime विफलताएं
स्वतः fallback नहीं करतीं।वैकल्पिक memorySearch.fallback केवल तब सेट करें जब आप जानबूझकर
एकल fallback चाहते हों। providers और उदाहरणों की पूरी सूची के लिए Memory Search देखें।Recall धीमा, खाली या असंगत लगता है
Recall धीमा, खाली या असंगत लगता है
- सत्र में plugin-स्वामित्व वाला Active Memory डीबग
सारांश सामने लाने के लिए
/trace onचालू करें। - हर उत्तर के बाद
🧩 Active Memory: ...स्थिति पंक्ति भी देखने के लिए/verbose onचालू करें। active-memory: ... start|done,memory sync failed (search-bootstrap), या provider embedding त्रुटियों के लिए gateway लॉग देखें।- memory-search backend और index health जांचने के लिए
openclaw memory status --deepचलाएं। - यदि आप
ollamaउपयोग करते हैं, तो पुष्टि करें कि embedding model इंस्टॉल है (ollama list)।
Gateway रीस्टार्ट के बाद पहला रिकॉल `status=timeout` लौटाता है
Gateway रीस्टार्ट के बाद पहला रिकॉल `status=timeout` लौटाता है
v2026.5.2 और बाद में, यदि कोल्ड-स्टार्ट सेटअप (model warm-up + embedding
index load) पहला रिकॉल चलने तक पूरा नहीं हुआ है, तो रन
कॉन्फ़िगर किए गए
timeoutMs बजट तक पहुंच सकता है और खाली आउटपुट के साथ status=timeout
लौटा सकता है। Gateway लॉग रीस्टार्ट के बाद पहले पात्र उत्तर के आसपास active-memory timeout after Nms
दिखाते हैं।अनुशंसित setupGraceTimeoutMs मान के लिए Recommended setup के अंतर्गत कोल्ड-स्टार्ट ग्रेस देखें।