src/config.ts organizes all plugin configuration into flat functional groups: capture, extraction (L1), persona (L2/L3), pipeline, recall, and embedding. The minimal valid config is {} — every field has a default.[1] The configSchema in openclaw.plugin.json sets "additionalProperties": true, so unrecognized config keys are accepted and not rejected by schema validation.[2]
The storeBackend option selects the storage backend: "sqlite" (local SQLite + sqlite-vec, the default) or "tcvdb" (Tencent Cloud Vector Database). Backend-specific behavior is covered in SQLite backend and TCVDB backend.[2] The timezone option defaults to "system" (follows the process system timezone); accepted values include IANA timezone names (e.g., "Asia/Shanghai") and UTC offset strings (e.g., "+08:00"). Storage timestamps are always UTC — this setting only affects the presentation layer.[2]
capture.l0l1RetentionDays defaults to 0, which disables cleanup of L0/L1 local files entirely. A non-zero value must be >= 3 unless capture.allowAggressiveCleanup is explicitly set to true, which permits 1- or 2-day retention.[1][2] Daily cleanup runs at 03:00 by default and is controlled by capture.cleanTime (format HH:mm). Cleanup only activates when retentionDays is a positive number.[1][2]
L1 background memory extraction is enabled by default (extraction.enabled: true), and smart deduplication — based on vector similarity or keyword conflict detection — is also enabled by default (extraction.enableDedup: true).[1][2] Extraction is capped at extraction.maxMemoriesPerSession memories per session per run (default 20). The extraction.model field is optional and falls back to the OpenClaw default model when omitted.[2][1] StandaloneLLMOverrideConfig allows using a different — typically cheaper or faster — model for memory extraction while the main agent uses a premium model. When enabled: false (the default), the host's native LLM mechanism is used instead.[1]
BM25Config defaults language to "zh" (Chinese); set to "en" for English-language pre-trained BM25 parameters. This setting uses the local @tencentdb-agent-memory/tcvdb-text package.[1] BM25 is a keyword-based ranking algorithm used for text search, providing a fast, non-vector recall path that complements semantic (embedding) search during memory retrieval.
Metrics reporting is disabled by default (report.enabled: false). When enabled, report.type: "local" outputs metrics as structured JSON logs via the Gateway logger.[1][2]
Sources