Fundamentals
ã³ã³ããã¹ããšã³ãžã³
ã³ã³ããã¹ããšã³ãžã³ã¯ãOpenClaw ãåå®è¡ã®ã¢ãã«ã³ã³ããã¹ããã©ã®ããã«æ§ç¯ããããå¶åŸ¡ããŸããã©ã®ã¡ãã»ãŒãžãå«ããããå€ãå±¥æŽãã©ã®ããã«èŠçŽãããããµããšãŒãžã§ã³ãå¢çããŸããã§ã³ã³ããã¹ããã©ã®ããã«ç®¡çããããæ±ããŸãã
OpenClaw ã«ã¯çµã¿èŸŒã¿ã® legacy ãšã³ãžã³ãä»å±ããŠãããããã©ã«ãã§äœ¿çšãããŸããã»ãšãã©ã®ãŠãŒã¶ãŒã¯ããã倿Žããå¿
èŠã¯ãããŸãããç°ãªãçµã¿ç«ãŠãã³ã³ãã¯ã·ã§ã³ããŸãã¯ã»ãã·ã§ã³æšªæã®æ³èµ·åäœãå¿
èŠãªå Žåã«ã®ã¿ããã©ã°ã€ã³ãšã³ãžã³ãã€ã³ã¹ããŒã«ããŠéžæããŠãã ããã
ã¯ã€ãã¯ã¹ã¿ãŒã
æå¹ãªãšã³ãžã³ã確èªãã
openclaw doctor# or inspect config directly:cat ~/.openclaw/openclaw.json | jq '.plugins.slots.contextEngine'ãã©ã°ã€ã³ãšã³ãžã³ãã€ã³ã¹ããŒã«ãã
ã³ã³ããã¹ããšã³ãžã³ãã©ã°ã€ã³ã¯ãä»ã® OpenClaw ãã©ã°ã€ã³ãšåãããã«ã€ã³ã¹ããŒã«ããŸãã
npm ãã
openclaw plugins install @martian-engineering/lossless-clawããŒã«ã«ãã¹ãã
openclaw plugins install -l ./my-context-engineãšã³ãžã³ãæå¹åããŠéžæãã
// openclaw.json{ plugins: { slots: { contextEngine: "lossless-claw", // must match the plugin's registered engine id }, entries: { "lossless-claw": { enabled: true, // Plugin-specific config goes here (see the plugin's docs) }, }, },}ã€ã³ã¹ããŒã«ãšèšå®ã®åŸãGateway ãåèµ·åããŸãã
legacy ã«æ»ãïŒä»»æïŒ
contextEngine ã "legacy" ã«èšå®ããŸãïŒãŸãã¯ããŒãå®å
šã«åé€ããŸãã"legacy" ãããã©ã«ãã§ãïŒã
ä»çµã¿
OpenClaw ãã¢ãã«ããã³ãããå®è¡ãããã³ã«ãã³ã³ããã¹ããšã³ãžã³ã¯4ã€ã®ã©ã€ããµã€ã¯ã«ãã€ã³ãã«é¢äžããŸãã
1. åã蟌ã¿
æ°ããã¡ãã»ãŒãžãã»ãã·ã§ã³ã«è¿œå ããããšãã«åŒã³åºãããŸãããšã³ãžã³ã¯ã¡ãã»ãŒãžãèªèº«ã®ããŒã¿ã¹ãã¢ã«ä¿åãŸãã¯ã€ã³ããã¯ã¹åã§ããŸãã
2. çµã¿ç«ãŠ
åã¢ãã«å®è¡ã®åã«åŒã³åºãããŸãããšã³ãžã³ã¯ãããŒã¯ã³äºç®å
ã«åãŸãé åºä»ãã®ã¡ãã»ãŒãžã»ããïŒããã³ä»»æã® systemPromptAdditionïŒãè¿ããŸãã
3. ã³ã³ãã¯ãå
ã³ã³ããã¹ããŠã£ã³ããŠãæºæ¯ã«ãªã£ããšãããŸãã¯ãŠãŒã¶ãŒã /compact ãå®è¡ãããšãã«åŒã³åºãããŸãããšã³ãžã³ã¯å€ãå±¥æŽãèŠçŽããŠç©ºãé åãäœããŸãã
4. ã¿ãŒã³åŸ
å®è¡ãå®äºããåŸã«åŒã³åºãããŸãããšã³ãžã³ã¯ç¶æ ãæ°žç¶åããããããã¯ã°ã©ãŠã³ãã³ã³ãã¯ã·ã§ã³ãããªã¬ãŒããããã€ã³ããã¯ã¹ãæŽæ°ãããã§ããŸãã
忢±ã®é ACP Codex ããŒãã¹ã§ã¯ãOpenClaw ã¯çµã¿ç«ãŠæžã¿ã³ã³ããã¹ãã Codex éçºè æç€ºãšçŸåšã®ã¿ãŒã³ããã³ããã«æåœ±ããããšã§ãåãã©ã€ããµã€ã¯ã«ãé©çšããŸããCodex ã¯åŒãç¶ãããã€ãã£ãã®ã¹ã¬ããå±¥æŽãšãã€ãã£ãã®ã³ã³ãã¯ã¿ãŒãææããŸãã
ãµããšãŒãžã§ã³ãã®ã©ã€ããµã€ã¯ã«ïŒä»»æïŒ
OpenClaw ã¯2ã€ã®ä»»æã®ãµããšãŒãžã§ã³ãã©ã€ããµã€ã¯ã«ããã¯ãåŒã³åºããŸãã
prepareSubagentSpawnmethodåã®å®è¡ãå§ãŸãåã«ãå
±æã³ã³ããã¹ãç¶æ
ãæºåããŸãããã®ããã¯ã¯èŠª/åã»ãã·ã§ã³ããŒãcontextModeïŒisolated ãŸã㯠forkïŒãå©çšå¯èœãªãã©ã³ã¹ã¯ãªãã ID/ãã¡ã€ã«ãä»»æã® TTL ãåãåããŸããããŒã«ããã¯ãã³ãã«ãè¿ããå ŽåãæºåãæåããåŸã«ã¹ããŒã³ã倱æãããš OpenClaw ããããåŒã³åºããŸããlightContext ãèŠæ±ããcontextMode="isolated" ã«è§£æ±ºããããã€ãã£ããµããšãŒãžã§ã³ãã¹ããŒã³ã¯ããã®ããã¯ãæå³çã«ã¹ãããããŸããããã«ãããåã¯ã³ã³ããã¹ããšã³ãžã³ç®¡çã®ã¹ããŒã³åç¶æ
ãªãã§ã軜éãªããŒãã¹ãã©ããã³ã³ããã¹ãããéå§ããŸãã
onSubagentEndedmethodãµããšãŒãžã§ã³ãã»ãã·ã§ã³ãå®äºããããŸãã¯ã¹ã€ãŒãããããšãã«ã¯ãªãŒã³ã¢ããããŸãã
ã·ã¹ãã ããã³ããã®è¿œå
assemble ã¡ãœãã㯠systemPromptAddition æååãè¿ããŸããOpenClaw ã¯ãããå®è¡ã®ã·ã¹ãã ããã³ããã®å
é ã«è¿œå ããŸããããã«ããããšã³ãžã³ã¯éçãªã¯ãŒã¯ã¹ããŒã¹ãã¡ã€ã«ãå¿
èŠãšããã«ãåçãªæ³èµ·ã¬ã€ãã³ã¹ãæ€çŽ¢æç€ºãã³ã³ããã¹ãèªèåã®ãã³ããæ³šå
¥ã§ããŸãã
legacy ãšã³ãžã³
çµã¿èŸŒã¿ã® legacy ãšã³ãžã³ã¯ãOpenClaw ã®å
ã®åäœãä¿æããŸãã
- åã蟌ã¿: äœãããŸããïŒã»ãã·ã§ã³ãããŒãžã£ãŒãã¡ãã»ãŒãžã®æ°žç¶åãçŽæ¥åŠçããŸãïŒã
- çµã¿ç«ãŠ: ãã¹ã¹ã«ãŒã§ãïŒã©ã³ã¿ã€ã å ã®æ¢åã® sanitize â validate â limit ãã€ãã©ã€ã³ãã³ã³ããã¹ãçµã¿ç«ãŠãåŠçããŸãïŒã
- ã³ã³ãã¯ãå: çµã¿èŸŒã¿ã®èŠçŽã³ã³ãã¯ã·ã§ã³ã«å§è²ããŸããããã¯å€ãã¡ãã»ãŒãžã®åäžã®èŠçŽãäœæããæè¿ã®ã¡ãã»ãŒãžããã®ãŸãŸä¿æããŸãã
- ã¿ãŒã³åŸ: äœãããŸããã
legacy ãšã³ãžã³ã¯ããŒã«ãç»é²ãããsystemPromptAddition ãæäŸããŸããã
plugins.slots.contextEngine ãèšå®ãããŠããªãå ŽåïŒãŸã㯠"legacy" ã«èšå®ãããŠããå ŽåïŒããã®ãšã³ãžã³ãèªåçã«äœ¿çšãããŸãã
ãã©ã°ã€ã³ãšã³ãžã³
ãã©ã°ã€ã³ã¯ããã©ã°ã€ã³ API ã䜿çšããŠã³ã³ããã¹ããšã³ãžã³ãç»é²ã§ããŸãã
export default function register(api) { api.registerContextEngine("my-engine", (ctx) => ({ info: { id: "my-engine", name: "My Context Engine", ownsCompaction: true, }, async ingest({ sessionId, message, isHeartbeat }) { // Store the message in your data store return { ingested: true }; }, async assemble({ sessionId, messages, tokenBudget, availableTools, citationsMode }) { // Return messages that fit the budget return { messages: buildContext(messages, tokenBudget), estimatedTokens: countTokens(messages), systemPromptAddition: buildMemorySystemPromptAddition({ availableTools: availableTools ?? new Set(), citationsMode, }), }; }, async compact({ sessionId, force }) { // Summarize older context return { ok: true, compacted: true }; }, }));}ãã¡ã¯ã㪠ctx ã«ã¯ä»»æã® configãagentDirãworkspaceDir
å€ãå«ãŸããããããã©ã°ã€ã³ã¯æåã®ã©ã€ããµã€ã¯ã«ããã¯ãå®è¡ãããåã«ããšãŒãžã§ã³ãåäœãŸãã¯ã¯ãŒã¯ã¹ããŒã¹åäœã®ç¶æ
ãåæåã§ããŸãã
次ã«èšå®ã§æå¹åããŸãã
{ plugins: { slots: { contextEngine: "my-engine", }, entries: { "my-engine": { enabled: true, }, }, },}ContextEngine ã€ã³ã¿ãŒãã§ã€ã¹
å¿ é ã¡ã³ããŒ:
| ã¡ã³ã㌠| çš®é¡ | ç®ç |
|---|---|---|
info |
ãããã㣠| ãšã³ãžã³ IDãååãããŒãžã§ã³ãããã³ã³ã³ãã¯ã·ã§ã³ãææãããã©ãã |
ingest(params) |
ã¡ãœãã | åäžã®ã¡ãã»ãŒãžãä¿åãã |
assemble(params) |
ã¡ãœãã | ã¢ãã«å®è¡çšã®ã³ã³ããã¹ããæ§ç¯ããïŒAssembleResult ãè¿ãïŒ |
compact(params) |
ã¡ãœãã | ã³ã³ããã¹ããèŠçŽ/åæžãã |
assemble ã¯æ¬¡ãå«ã AssembleResult ãè¿ããŸãã
messagesMessage[]requiredã¢ãã«ã«éä¿¡ããé åºä»ãã¡ãã»ãŒãžã
estimatedTokensnumberrequiredçµã¿ç«ãŠæžã¿ã³ã³ããã¹ãå ã®åèšããŒã¯ã³æ°ã«é¢ãããšã³ãžã³ã®æšå®å€ãOpenClaw ã¯ãããã³ã³ãã¯ã·ã§ã³ãããå€ã®å€æãšèšºæã¬ããŒãã«äœ¿çšããŸãã
systemPromptAdditionstringã·ã¹ãã ããã³ããã®å é ã«è¿œå ãããŸãã
promptAuthority"assembled" | "preassembly_may_overflow"ããªãšã³ããã£ããªãªãŒããŒãããŒäºåãã§ãã¯ã§ã©ã³ããŒã䜿çšããããŒã¯ã³æšå®å€ãå¶åŸ¡ããŸããããã©ã«ã㯠"assembled" ã§ããã€ãŸããã³ã³ãã¯ã·ã§ã³ãææããŠããªããšã³ãžã³ã§ã¯ãçµã¿ç«ãŠæžã¿ããã³ããã®æšå®å€ã ãããã§ãã¯ãããŸããownsCompaction: true ãèšå®ãããšã³ãžã³ã¯ãèªèº«ã§ããã³ããã®åãå
¥ãã管çãããããOpenClaw ã¯ããã©ã«ãã§æ±çšã®ããã³ããåäºåãã§ãã¯ãã¹ãããããŸããçµã¿ç«ãŠæžã¿ãã¥ãŒãåºç€ãšãªããã©ã³ã¹ã¯ãªããå
ã®ãªãŒããŒãããŒãªã¹ã¯ãé ãå¯èœæ§ãããå Žåã«ã®ã¿ã"preassembly_may_overflow" ãèšå®ããŠãã ããããã®å Žåãã©ã³ããŒã¯æ±çšäºåãã§ãã¯ãæå¹ãªãŸãŸã«ããããªãšã³ããã£ãã«ã³ã³ãã¯ãåãããã©ããã倿ãããšãã«ãçµã¿ç«ãŠæžã¿æšå®å€ãšçµã¿ç«ãŠåïŒãŠã£ã³ããŠåãããŠããªãïŒã»ãã·ã§ã³å±¥æŽæšå®å€ã®æå€§å€ã䜿çšããŸããã©ã¡ãã®å Žåã§ããè¿ããã¡ãã»ãŒãžãã¢ãã«ã«èŠããå
容ã§ããpromptAuthority ã¯äºåãã§ãã¯ã«ã®ã¿åœ±é¿ããŸãã
compact 㯠CompactResult ãè¿ããŸããã³ã³ãã¯ã·ã§ã³ãã¢ã¯ãã£ããªãã©ã³ã¹ã¯ãªãããããŒããŒã·ã§ã³ããå Žåãresult.sessionId ãš result.sessionFile ã¯æ¬¡ã®ãªãã©ã€ãŸãã¯ã¿ãŒã³ã䜿çšããå¿
èŠã®ããåŸç¶ã»ãã·ã§ã³ãèå¥ããŸãã
ä»»æã¡ã³ããŒ:
| ã¡ã³ã㌠| çš®é¡ | ç®ç |
|---|---|---|
bootstrap(params) |
ã¡ãœãã | ã»ãã·ã§ã³ã®ãšã³ãžã³ç¶æ ãåæåããããšã³ãžã³ãã»ãã·ã§ã³ãåããŠèŠããšãã«äžåºŠåŒã³åºãããŸãïŒäŸ: å±¥æŽã®ã€ã³ããŒãïŒã |
ingestBatch(params) |
ã¡ãœãã | å®äºããã¿ãŒã³ãããããšããŠåã蟌ããå®è¡å®äºåŸããã®ã¿ãŒã³ã®ãã¹ãŠã®ã¡ãã»ãŒãžãšãšãã«äžåºŠã«åŒã³åºãããŸãã |
afterTurn(params) |
ã¡ãœãã | å®è¡åŸã®ã©ã€ããµã€ã¯ã«äœæ¥ïŒç¶æ ã®æ°žç¶åãããã¯ã°ã©ãŠã³ãã³ã³ãã¯ã·ã§ã³ã®ããªã¬ãŒïŒã |
prepareSubagentSpawn(params) |
ã¡ãœãã | åã»ãã·ã§ã³ãå§ãŸãåã«å ±æç¶æ ãèšå®ããã |
onSubagentEnded(params) |
ã¡ãœãã | ãµããšãŒãžã§ã³ãçµäºåŸã«ã¯ãªãŒã³ã¢ããããã |
dispose() |
ã¡ãœãã | ãªãœãŒã¹ãè§£æŸãããGateway ã®ã·ã£ããããŠã³æãŸãã¯ãã©ã°ã€ã³ã®ãªããŒãæã«åŒã³åºãããŸããã»ãã·ã§ã³åäœã§ã¯ãããŸããã |
ã©ã³ã¿ã€ã èšå®
OpenClaw å
ã§å®è¡ãããã©ã€ããµã€ã¯ã«ããã¯ã¯ãä»»æã®
runtimeSettings ãªããžã§ã¯ããåãåããŸããããã¯ããŒãžã§ã³ä»ãã®èªã¿åãå°çšã®å
éš
ãããã¥ãŒãµãŒ/ã³ã³ã·ã¥ãŒã㌠API ãµãŒãã§ã¹ã§ããOpenClaw ãéžæãããã³ã³ããã¹ã
ãšã³ãžã³åãã«çæããã³ã³ããã¹ããšã³ãžã³ãã©ã€ããµã€ã¯ã«ããã¯å
ã§æ¶è²»ããŸããããã¯
ãŠãŒã¶ãŒã«çŽæ¥è¡šç€ºããããå°çšã®ã¬ããŒããµãŒãã§ã¹ãäœæããŸããã
schemaVersion: çŸåšã¯1runtime: OpenClaw ãã¹ããã©ã³ã¿ã€ã ã¢ãŒãïŒnormalãfallbackããŸãã¯degradedïŒãããã³ä»»æã®ããŒãã¹/ã©ã³ã¿ã€ã IDcontextEngineSelection: éžæãããã³ã³ããã¹ããšã³ãžã³ ID ãšéžæãœãŒã¹executionHost: ããã¯ãåŒã³åºããŠãããµãŒãã§ã¹ã®ãã¹ã ID ãšã©ãã«model: èŠæ±ãããã¢ãã«ã解決æžã¿ã¢ãã«ããããã€ããŒãããã³ä»»æã®ã¢ãã«ãã¡ããªãŒlimits: æ¢ç¥ã®å Žåã®ããã³ããããŒã¯ã³äºç®ãšæå€§åºåããŒã¯ã³æ°diagnostics: æ¢ç¥ã®å Žåã®éãããã©ãŒã«ããã¯ãšå£åçç±ã³ãŒã
äžæã«ãªãåŸããã£ãŒã«ã㯠null ãšããŠè¡šãããŸããã©ã³ã¿ã€ã ã¢ãŒããéžæãœãŒã¹ãªã©ã®å€å¥åãã£ãŒã«ãã¯é null ã®ãŸãŸã§ããå€ããšã³ãžã³ã¯åŒãç¶ãäºææ§ããããŸããå³å¯ãª legacy ãšã³ãžã³ã runtimeSettings ãäžæãªããããã£ãšããŠæåŠããå ŽåãOpenClaw ã¯ãšã³ãžã³ãéé¢ãã代ããã«ããããªãã§ã©ã€ããµã€ã¯ã«åŒã³åºããå詊è¡ããŸãã
ãã¹ãèŠä»¶
ã³ã³ããã¹ããšã³ãžã³ã¯ info.hostRequirements ã§ãã¹ãæ©èœèŠä»¶ã宣èšã§ããŸãã
OpenClaw ã¯æäœãéå§ããåã«ãããã®èŠä»¶ããã§ãã¯ããéžæãããã©ã³ã¿ã€ã ãæºãããªãå Žåã¯èª¬æçãªãšã©ãŒã§ãã§ã€ã«ã¯ããŒãºããŸãã
ãšãŒãžã§ã³ãå®è¡ã§ã¯ããšã³ãžã³ã assemble() ãéããŠå®éã®ã¢ãã«ããã³ãããå¶åŸ¡ããå¿
èŠãããå Žåãassemble-before-prompt ã宣èšããŸãã
info: { id: "my-context-engine", name: "My Context Engine", hostRequirements: { "agent-run": { requiredCapabilities: ["assemble-before-prompt"], unsupportedMessage: "Use the native Codex or OpenClaw embedded runtime, or select the legacy context engine.", }, },}ãã€ãã£ã Codex ãš OpenClaw åã蟌ã¿ãšãŒãžã§ã³ãå®è¡ã¯ assemble-before-prompt ãæºãããŸãã
æ±çš CLI ããã¯ãšã³ãã¯æºãããªãããããããèŠæ±ãããšã³ãžã³ã¯ CLI ããã»ã¹ã®éå§åã«æåŠãããŸãã
é害ã®åé¢
OpenClaw ã¯ãéžæããã Plugin ãšã³ãžã³ãã³ã¢ã®è¿ä¿¡ãã¹ããåé¢ããŸããé legacy ãšã³ãžã³ãèŠã€ãããªããã³ã³ãã©ã¯ãæ€èšŒã«å€±æããããã¡ã¯ããªäœæäžã«äŸå€ãæããããŸãã¯ã©ã€ããµã€ã¯ã«ã¡ãœããããäŸå€ãæããå ŽåãOpenClaw ã¯çŸåšã® Gateway ããã»ã¹ã§ãã®ãšã³ãžã³ãéé¢ããã³ã³ããã¹ããšã³ãžã³åŠçãçµã¿èŸŒã¿ã® legacy ãšã³ãžã³ã«ããŠã³ã°ã¬ãŒãããŸãããšã©ãŒã¯å€±æããæäœãšãšãã«ãã°ã«èšé²ãããããããªãã¬ãŒã¿ãŒã¯ãšãŒãžã§ã³ããå¿çããªããªãããšãªããPlugin ãä¿®åŸ©ãæŽæ°ããŸãã¯ç¡å¹åã§ããŸãã
ãã¹ãèŠä»¶ã®å€±æã¯ç°ãªããŸãããšã³ãžã³ããã©ã³ã¿ã€ã ã«å¿ èŠãªæ©èœããªããšå®£èšããå ŽåãOpenClaw ã¯å®è¡ãéå§ããåã«ãã§ã€ã«ã¯ããŒãºããŸããããã«ããããµããŒããããŠããªããã¹ãã§å®è¡ãããšç¶æ ãç Žæãããšã³ãžã³ãä¿è·ããŸãã
ownsCompaction
ownsCompaction ã¯ãOpenClaw ã©ã³ã¿ã€ã çµã¿èŸŒã¿ã®è©Šè¡å
èªå Compaction ãããã®å®è¡ã§æå¹ãªãŸãŸã«ãããã©ãããå¶åŸ¡ããŸãã
ownsCompaction: true
ãšã³ãžã³ã Compaction åäœãææããŸããOpenClaw ã¯ããã®å®è¡ã«ã€ã㊠OpenClaw ã©ã³ã¿ã€ã çµã¿èŸŒã¿ã®èªå Compaction ãšæ±çšã®ããã³ããåãªãŒããŒãããŒããªãã§ãã¯ãç¡å¹åãããšã³ãžã³ã® compact() å®è£
ã /compactããããã€ããŒã®ãªãŒããŒãããŒå埩 Compactionãããã³ afterTurn() ã§å®è¡ãããããã¢ã¯ãã£ã㪠Compaction ãæ
åœããŸãããšã³ãžã³ã assemble() ãã promptAuthority: "preassembly_may_overflow" ãè¿ãå ŽåãOpenClaw ã¯åŒãç¶ãããã³ããåãªãŒããŒãããŒä¿è·ãå®è¡ããŸãã
ownsCompaction: false or unset
OpenClaw ã©ã³ã¿ã€ã çµã¿èŸŒã¿ã®èªå Compaction ã¯ããã³ããå®è¡äžã«ãŸã å®è¡ãããå ŽåããããŸãããã¢ã¯ãã£ããªãšã³ãžã³ã® compact() ã¡ãœãã㯠/compact ãšãªãŒããŒãããŒå埩ã®ããã«åŒãç¶ãåŒã³åºãããŸãã
ã€ãŸããæå¹ãª Plugin ãã¿ãŒã³ã¯ 2 ã€ãããŸãã
ææã¢ãŒã
ç¬èªã® Compaction ã¢ã«ãŽãªãºã ãå®è£
ããownsCompaction: true ãèšå®ããŸãã
å§è²ã¢ãŒã
ownsCompaction: false ãèšå®ããcompact() ã§ openclaw/plugin-sdk/core ã® delegateCompactionToRuntime(...) ãåŒã³åºããŠãOpenClaw ã®çµã¿èŸŒã¿ Compaction åäœã䜿çšããŸãã
no-op ã® compact() ã¯ãã¢ã¯ãã£ããªéææãšã³ãžã³ã§ã¯å®å
šã§ã¯ãããŸããããã®ãšã³ãžã³ã¹ãããã®éåžžã® /compact ãšãªãŒããŒãããŒå埩 Compaction ãã¹ãç¡å¹åããŠããŸãããã§ãã
èšå®ãªãã¡ã¬ã³ã¹
{ plugins: { slots: { // Select the active context engine. Default: "legacy". // Set to a plugin id to use a plugin engine. contextEngine: "legacy", }, },}Compaction ãšã¡ã¢ãªãšã®é¢ä¿
Compaction
Compaction ã¯ã³ã³ããã¹ããšã³ãžã³ã®è²¬åã® 1 ã€ã§ããlegacy ãšã³ãžã³ã¯ OpenClaw ã®çµã¿èŸŒã¿èŠçŽã«å§è²ããŸããPlugin ãšã³ãžã³ã¯ä»»æã® Compaction æŠç¥ (DAG èŠçŽããã¯ãã«æ€çŽ¢ãªã©) ãå®è£ ã§ããŸãã
ã¡ã¢ãª Plugin
ã¡ã¢ãª Plugin (plugins.slots.memory) ã¯ã³ã³ããã¹ããšã³ãžã³ãšã¯å¥ã§ããã¡ã¢ãª Plugin ã¯æ€çŽ¢/ååŸãæäŸããã³ã³ããã¹ããšã³ãžã³ã¯ã¢ãã«ã«èŠããå
容ãå¶åŸ¡ããŸããäž¡è
ã¯é£æºã§ããŸã - ã³ã³ããã¹ããšã³ãžã³ã¯ã¢ã»ã³ããªäžã«ã¡ã¢ãª Plugin ããŒã¿ã䜿çšããå ŽåããããŸããã¢ã¯ãã£ãã¡ã¢ãªã®ããã³ãããã¹ã䜿çšããã Plugin ãšã³ãžã³ã¯ãopenclaw/plugin-sdk/core ã® buildMemorySystemPromptAddition(...) ãåªå
ããã¹ãã§ããããã¯ã¢ã¯ãã£ãã¡ã¢ãªã®ããã³ããã»ã¯ã·ã§ã³ããå
é ã«è¿œå ã§ãã systemPromptAddition ã«å€æããŸãããšã³ãžã³ãããäœã¬ãã«ã®å¶åŸ¡ãå¿
èŠãšããå Žåã¯ãbuildActiveMemoryPromptSection(...) ãéã㊠openclaw/plugin-sdk/memory-host-core ããçã®è¡ãååŸããããšãã§ããŸãã
ã»ãã·ã§ã³ã®åã蟌ã¿
ã©ã®ã³ã³ããã¹ããšã³ãžã³ãã¢ã¯ãã£ãã§ãã£ãŠããå€ãããŒã«çµæã®ã¡ã¢ãªå ããªãã³ã°ã¯åŒãç¶ãå®è¡ãããŸãã
ãã³ã
openclaw doctorã䜿çšããŠããšã³ãžã³ãæ£ããããŒããããŠããããšã確èªããŸãã- ãšã³ãžã³ãåãæ¿ããå Žåãæ¢åã®ã»ãã·ã§ã³ã¯çŸåšã®å±¥æŽã®ãŸãŸç¶è¡ãããŸããæ°ãããšã³ãžã³ã¯å°æ¥ã®å®è¡ããåŒãç¶ããŸãã
- ãšã³ãžã³ãšã©ãŒã¯ãã°ã«èšé²ãããéžæããã Plugin ãšã³ãžã³ã¯çŸåšã® Gateway ããã»ã¹ã§éé¢ãããŸããè¿ä¿¡ãç¶ç¶ã§ãããããOpenClaw ã¯ãŠãŒã¶ãŒã¿ãŒã³ã§
legacyã«ãã©ãŒã«ããã¯ããŸãããããã§ãå£ãã Plugin ãä¿®åŸ©ãæŽæ°ãç¡å¹åããŸãã¯ã¢ã³ã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã - éçºã§ã¯ãã³ããŒããã«ããŒã«ã« Plugin ãã£ã¬ã¯ããªããªã³ã¯ããããã«
openclaw plugins install -l ./my-engineã䜿çšããŸãã
é¢é£
- Compaction - é·ãäŒè©±ã®èŠçŽ
- ã³ã³ããã¹ã - ãšãŒãžã§ã³ãã¿ãŒã³ã®ã³ã³ããã¹ããã©ã®ããã«æ§ç¯ãããã
- Plugin ã¢ãŒããã¯ã㣠- ã³ã³ããã¹ããšã³ãžã³ Plugin ã®ç»é²
- Plugin ãããã§ã¹ã - Plugin ãããã§ã¹ããã£ãŒã«ã
- Plugin - Plugin ã®æŠèŠ