Sessions and memory
Compaction
ãã¹ãŠã®ã¢ãã«ã«ã¯ã³ã³ããã¹ããŠã£ã³ããŠãã€ãŸãåŠçã§ããããŒã¯ã³æ°ã®äžéããããŸããäŒè©±ããã®äžéã«è¿ã¥ããšãOpenClaw ã¯ãã£ãããç¶ç¶ã§ããããã«ãå€ãã¡ãã»ãŒãžãèŠçŽãžãš å§çž® ããŸãã
ä»çµã¿
- å€ãäŒè©±ã¿ãŒã³ãç°¡æœãªãšã³ããªã«èŠçŽãããŸãã
- èŠçŽãã»ãã·ã§ã³ãã©ã³ã¹ã¯ãªããã«ä¿åãããŸãã
- æè¿ã®ã¡ãã»ãŒãžã¯ãã®ãŸãŸä¿æãããŸãã
OpenClaw ã¯ãå§çž®ã®åå²ç¹ãéžã¶éãã¢ã·ã¹ã¿ã³ãã®ããŒã«åŒã³åºããšå¯Ÿå¿ãã toolResult ãšã³ããªã®çµãç¶æããŸããåå²ç¹ãããŒã«ãããã¯å
ã«å
¥ãå ŽåãOpenClaw ã¯ãã®çµãåé¢ããããçŸåšã®æªèŠçŽã®æ«å°Ÿéšåãä¿æãããããã«å¢çãç§»åããŸãã
å®å šãªäŒè©±å±¥æŽã¯ãã£ã¹ã¯äžã«æ®ããŸããå§çž®ã«ãã£ãŠå€ããã®ã¯ã次ã®ã¿ãŒã³ã§ã¢ãã«ã«è¡šç€ºãããå 容ã ãã§ãã
èªåå§çž®
èªåå§çž®ã¯ããã©ã«ãã§æå¹ã§ããã»ãã·ã§ã³ãã³ã³ããã¹ãäžéã«è¿ã¥ãããšãããŸãã¯ã¢ãã«ãã³ã³ããã¹ããªãŒããŒãããŒãšã©ãŒãè¿ãããšãã«å®è¡ãããŸãïŒåŸè ã®å ŽåãOpenClaw ã¯å§çž®ããŠå詊è¡ããŸãïŒã
次ã®è¡šç€ºã確èªã§ããŸãã
- éåžžã® Gateway ãã°ã®
embedded run auto-compaction start/completeã - 詳现ã¢ãŒãã®
ð§¹ Auto-compaction completeã /statusã«è¡šç€ºãããð§¹ Compactions: <count>ã
OpenClaw ãèªèãããªãŒããŒãããŒãšã©ãŒã®ãã¿ãŒã³
OpenClaw ã¯ããããã€ããŒåºæã®æ°åçš®é¡ã®ãªãŒããŒãããŒãšã©ãŒæååïŒAnthropicãOpenAIãBedrockãGeminiãOllamaãOpenRouter ãªã©ïŒã«äžèŽãããã確èªããŸããäžè¬çãªäŸã次ã«ç€ºããŸãã
request_too_largecontext length exceededinput exceeds the maximum number of tokensinput token count exceeds the maximum number of input tokensïŒBedrockïŒinput is too long for the modelollama error: context length exceeded
æåå§çž®
ä»»æã®ãã£ããã§ /compact ãšå
¥åãããšãå§çž®ã匷å¶å®è¡ã§ããŸããèŠçŽã®æ¹éãæå®ããã«ã¯ãæç€ºã远å ããŸãã
/compact API èšèšäžã®æ±ºå®äºé
ã«éç¹ã眮ãagents.defaults.compaction.keepRecentTokens ãèšå®ãããŠããå ŽåïŒããã©ã«ã: 20,000ïŒãæåå§çž®ã§ã¯ãã®åæç¹ãå°éãããåæ§ç¯ãããã³ã³ããã¹ãã«æè¿ã®æ«å°Ÿéšåãä¿æãããŸããæç€ºçãªä¿æäºç®ããªãå Žåãæåå§çž®ã¯å³å¯ãªãã§ãã¯ãã€ã³ããšããŠåäœããæ°ããèŠçŽã®ã¿ã䜿çšããŠç¶è¡ããŸãã
èšå®
openclaw.json ã® agents.defaults.compaction ã§å§çž®ãèšå®ããŸããæãäžè¬çãªèšå®é
ç®ã以äžã«ç€ºããŸããå®å
šãªãªãã¡ã¬ã³ã¹ã«ã€ããŠã¯ãã»ãã·ã§ã³ç®¡çã®è©³çްãåç
§ããŠãã ããã
å¥ã®ã¢ãã«ã®äœ¿çš
ããã©ã«ãã§ã¯ãå§çž®ã«ã¯ãšãŒãžã§ã³ãã®ãã©ã€ããªã¢ãã«ã䜿çšãããŸããèŠçŽããã髿§èœãªã¢ãã«ãŸãã¯ç¹åããã¢ãã«ã«å§ä»»ããã«ã¯ãagents.defaults.compaction.model ãèšå®ããŸãããªãŒããŒã©ã€ãã«ã¯ãprovider/model-id æååããŸã㯠agents.defaults.models ã§èšå®ãããåç¬ã®ãšã€ãªã¢ã¹ãæå®ã§ããŸãã
{ "agents": { "defaults": { "compaction": { "model": "openrouter/anthropic/claude-sonnet-4-6" } } }}èšå®æžã¿ã®åç¬ãšã€ãªã¢ã¹ã¯ãå§çž®ã®éå§åã«æ£èŠã®ãããã€ããŒãšã¢ãã«ãžè§£æ±ºãããŸããåç¬ã®å€ããšã€ãªã¢ã¹ãšèšå®æžã¿ã®ãªãã©ã«ã¢ãã« ID ã®äž¡æ¹ã«äžèŽããå Žåããªãã©ã«ã¢ãã« ID ãåªå ãããŸããäžèŽããªãåç¬ã®å€ã¯ãã¢ã¯ãã£ããªãããã€ããŒäžã®ã¢ãã« ID ãšããŠæ±ãããŸãã
ããã¯ããŒã«ã«ã¢ãã«ã§ãæ©èœããŸããããšãã°ãèŠçŽå°çšã® 2 ã€ç®ã® Ollama ã¢ãã«ã䜿çšã§ããŸãã
{ "agents": { "defaults": { "compaction": { "model": "ollama/llama3.1:8b" } } }}æªèšå®ã®å Žåãå§çž®ã¯ã¢ã¯ãã£ããªã»ãã·ã§ã³ã¢ãã«ã§éå§ãããŸããã¢ãã«ã®ãã©ãŒã«ããã¯å¯Ÿè±¡ãšãªããããã€ããŒãšã©ãŒã«ãã£ãŠèŠçŽã倱æããå ŽåãOpenClaw ã¯ã»ãã·ã§ã³ã®æ¢åã®ã¢ãã«ãã©ãŒã«ããã¯ãã§ãŒã³ã䜿çšããŠããã®å§çž®åŠçãå詊è¡ããŸãããã©ãŒã«ããã¯ã®éžæã¯äžæçãªãã®ã§ãããã»ãã·ã§ã³ç¶æ
ã«ã¯æžãæ»ãããŸãããæç€ºç㪠agents.defaults.compaction.model ãªãŒããŒã©ã€ãã¯å³å¯ã«é©çšãããã»ãã·ã§ã³ã®ãã©ãŒã«ããã¯ãã§ãŒã³ãç¶æ¿ããŸããã
èå¥åã®ä¿æ
å§çž®æã®èŠçŽã§ã¯ãããã©ã«ãã§äžéæãªèå¥åãä¿æãããŸãïŒidentifierPolicy: "strict"ïŒãç¡å¹ã«ããã«ã¯ identifierPolicy: "off" ãæå®ããã«ã¹ã¿ã æç€ºã䜿çšããã«ã¯ identifierPolicy: "custom" ãš identifierInstructions ãæå®ããŸãã
ã¢ã¯ãã£ããã©ã³ã¹ã¯ãªããã®ãã€ãæ°ã¬ãŒã
agents.defaults.compaction.maxActiveTranscriptBytes ãèšå®ãããŠããå Žåããã©ã³ã¹ã¯ãªããå±¥æŽããã®ãµã€ãºã«éãããšãOpenClaw ã¯å®è¡åã«éåžžã®ããŒã«ã«å§çž®ãéå§ããŸããããã¯ããããã€ããŒåŽã®ã³ã³ããã¹ã管çã«ãã£ãŠã¢ãã«ã®ã³ã³ããã¹ããå¥å
šã«ä¿ãããŠããŠããæ°žç¶åããããã©ã³ã¹ã¯ãªããå±¥æŽãå¢ãç¶ããé·æéå®è¡ã»ãã·ã§ã³ã«åœ¹ç«ã¡ãŸããçã®ãã€ãåãåå²ããã®ã§ã¯ãªããéåžžã®å§çž®ãã€ãã©ã€ã³ã«æå³çãªèŠçŽã®äœæãèŠæ±ããŸãã
åŸç¶ãã©ã³ã¹ã¯ãªãã
agents.defaults.compaction.truncateAfterCompaction ãæå¹ãªå ŽåãOpenClaw ã¯æ¢åã®ãã©ã³ã¹ã¯ãªããããã®å Žã§æžãæããŸãããå§çž®èŠçŽãä¿æãããç¶æ
ãæªèŠçŽã®æ«å°Ÿéšåãããæ°ããã¢ã¯ãã£ããªåŸç¶ãã©ã³ã¹ã¯ãªãããäœæããåå²ããã³åŸ©å
ãããŒããã®å§çž®æžã¿ã®åŸç¶ãåç
§ãããã§ãã¯ãã€ã³ãã¡ã¿ããŒã¿ãèšé²ããŸãã
åŸç¶ãã©ã³ã¹ã¯ãªããã§ã¯ãçãåè©Šè¡æéå
ã«å°çãããå®å
šã«éè€ããé·ããŠãŒã¶ãŒã¿ãŒã³ãé€å€ãããŸããããã«ããããã£ãã«ã®å詊è¡ã¹ããŒã ãå§çž®åŸã®æ¬¡ã®ã¢ã¯ãã£ããã©ã³ã¹ã¯ãªãããžåŒãç¶ãããŸããã
OpenClaw ã¯ãæ°ããå§çž®ã«å¯ŸããŠåå¥ã® .checkpoint.*.jsonl ã³ããŒãäœæããªããªããŸãããæ¢åã®ã¬ã¬ã·ãŒãã§ãã¯ãã€ã³ããã¡ã€ã«ã¯ãåç
§ãããŠããéã¯åŒãç¶ã䜿çšã§ããéåžžã®ã»ãã·ã§ã³ã¯ãªãŒã³ã¢ããã«ãã£ãŠåé€ãããŸãã
å§çž®éç¥
ããã©ã«ãã§ã¯ãå§çž®ã¯éç¥ãªãã§å®è¡ãããŸããå§çž®ã®éå§æãšå®äºæã«çãã¹ããŒã¿ã¹ã¡ãã»ãŒãžã衚瀺ããå§çž®åã®ã¡ã¢ãªãã©ãã·ã¥ã䜿ãæãããŠãå¿çãç¶è¡ãããå Žåã«çž®ééç¥ã衚瀺ããã«ã¯ãnotifyUser ãèšå®ããŸãã
{ agents: { defaults: { compaction: { notifyUser: true, }, }, },}ã¡ã¢ãªãã©ãã·ã¥
OpenClaw ã¯å§çž®åã«ãæ°žç¶çãªã¡ã¢ããã£ã¹ã¯ãžä¿åããããã® ãµã€ã¬ã³ãã¡ã¢ãªãã©ãã·ã¥ ã¿ãŒã³ãå®è¡ã§ããŸãããã®ä¿å®ã¿ãŒã³ã§ã¢ã¯ãã£ããªäŒè©±ã¢ãã«ã®ä»£ããã«ããŒã«ã«ã¢ãã«ã䜿çšããå Žåã¯ãagents.defaults.compaction.memoryFlush.model ãèšå®ããŸãã
{ "agents": { "defaults": { "compaction": { "memoryFlush": { "model": "ollama/qwen3:8b" } } } }}ã¡ã¢ãªãã©ãã·ã¥ã®ã¢ãã«ãªãŒããŒã©ã€ãã¯å³å¯ã«é©çšãããã¢ã¯ãã£ããªã»ãã·ã§ã³ã®ãã©ãŒã«ããã¯ãã§ãŒã³ãç¶æ¿ããŸããã詳现ãšèšå®ã«ã€ããŠã¯ãã¡ã¢ãªãåç §ããŠãã ããã
å·®ãæ¿ãå¯èœãªå§çž®ãããã€ããŒ
Plugin ã¯ãPlugin API ã® registerCompactionProvider() ãä»ããŠã«ã¹ã¿ã å§çž®ãããã€ããŒãç»é²ã§ããŸãããããã€ããŒãç»é²ããã³èšå®ããããšãOpenClaw ã¯çµã¿èŸŒã¿ã® LLM ãã€ãã©ã€ã³ã§ã¯ãªãããã®ãããã€ããŒã«èŠçŽãå§ä»»ããŸãã
ç»é²æžã¿ãããã€ããŒã䜿çšããã«ã¯ãèšå®ã§ãã® ID ãæå®ããŸãã
{ "agents": { "defaults": { "compaction": { "provider": "my-provider" } } }}provider ãèšå®ãããšãèªåçã« mode: "safeguard" ã匷å¶ãããŸãããããã€ããŒã¯çµã¿èŸŒã¿çµè·¯ãšåãå§çž®æç€ºããã³èå¥åä¿æããªã·ãŒãåãåããOpenClaw ã¯ãããã€ããŒã®åºååŸããæè¿ã®ã¿ãŒã³ãšåå²ãããã¿ãŒã³ã®æ¥å°Ÿã³ã³ããã¹ããä¿æããŸãã
å§çž®ãšãã«ãŒãã³ã°ã®æ¯èŒ
| å§çž® | ãã«ãŒãã³ã° | |
|---|---|---|
| åŠçå 容 | å€ãäŒè©±ãèŠçŽ | å€ãããŒã«çµæãåãè©°ãã |
| ä¿åãããã | ã¯ãïŒã»ãã·ã§ã³ãã©ã³ã¹ã¯ãªããå ïŒ | ãããïŒãªã¯ãšã¹ãããšã«ã¡ã¢ãªå ã®ã¿ïŒ |
| 察象ç¯å² | äŒè©±å šäœ | ããŒã«çµæã®ã¿ |
ã»ãã·ã§ã³ãã«ãŒãã³ã°ã¯ãèŠçŽãè¡ããã«ããŒã«åºåãåãè©°ããããã軜éãªè£å®æ©èœã§ãã
ãã©ãã«ã·ã¥ãŒãã£ã³ã°
å§çž®ã®é »åºŠãé«ãããŸããïŒ ã¢ãã«ã®ã³ã³ããã¹ããŠã£ã³ããŠãå°ããããããŒã«åºåã倧ããå¯èœæ§ããããŸããã»ãã·ã§ã³ãã«ãŒãã³ã°ãæå¹ã«ããŠã¿ãŠãã ããã
å§çž®åŸã«ã³ã³ããã¹ããå€ãæããããŸããïŒ /compact Focus on <topic> ã䜿çšããŠèŠçŽã®æ¹éãæå®ããããã¡ã¢ãä¿æãããããã«ã¡ã¢ãªãã©ãã·ã¥ãæå¹ã«ããŠãã ããã
çœçŽã®ç¶æ
ããå§ããå¿
èŠããããŸããïŒ /new ã䜿çšãããšãå§çž®ããã«æ°ããã»ãã·ã§ã³ãéå§ã§ããŸãã
é«åºŠãªèšå®ïŒäºçŽããŒã¯ã³ãèå¥åã®ä¿æãã«ã¹ã¿ã ã³ã³ããã¹ããšã³ãžã³ãOpenAI ãµãŒããŒåŽå§çž®ïŒã«ã€ããŠã¯ãã»ãã·ã§ã³ç®¡çã®è©³çްãåç §ããŠãã ããã
é¢é£é ç®
- ã»ãã·ã§ã³: ã»ãã·ã§ã³ã®ç®¡çãšã©ã€ããµã€ã¯ã«ã
- ã»ãã·ã§ã³ãã«ãŒãã³ã°: ããŒã«çµæã®åãè©°ãã
- ã³ã³ããã¹ã: ãšãŒãžã§ã³ãã¿ãŒã³çšã®ã³ã³ããã¹ããæ§ç¯ãããä»çµã¿ã
- ããã¯: å§çž®ã®ã©ã€ããµã€ã¯ã«ããã¯ïŒ
before_compactionãafter_compactionïŒã