memoplus4dsh
将分散笔记记忆统一为知识图谱并提供检索注入与记忆工具 适合希望持久化会话事实并按相关性自动注入上下文的用户。
安裝
此插件尚未提供可驗證的 bundle,或相容性檢查未通過。請先閱讀倉庫說明。 閱讀完整 README ↗
說明文件
閱讀完整 README ↗Configuration
Set under the plugin's config: in the profile's cordis.patch.yml:
| Key | Default | Meaning |
|---|---|---|
extraction | turn_end | turn_end extracts facts after every completed turn; off disables extraction |
injection | true | Inject top-k relevant memories at the first step of each turn |
injectTopK | 8 | Max memories injected per turn |
injectMaxChars | 2000 | Character cap for the injected memory block |
injectMaxQueryChars | 4000 | Skip retrieval+injection for longer user messages (document dumps, not queries) |
tools | true | Register memory_search / memory_remember / memory_visualize / memory_status tools |
progressBridge | true | Bridge goal/todo/schedule/plan progress events into the memory graph (M8) |
stateDedup | true | Retrieval keeps only the newest bridge state event per entity+family; history stays in the graph |
embedding | true | Local ONNX embeddings; failure degrades to keyword-only retrieval |
embeddingModel | multilingual | multilingual = distiluse-base-multilingual-cased-v2 (512-dim, ~135MB first-download, 50+ languages incl. Chinese); english = all-MiniLM-L6-v2 (384-dim, ~23MB). Switching re-embeds stored vectors lazily |
embeddingBackend | auto | auto = harrier sidecar (microsoft/harrier-oss-v1-0.6b, 1024-dim, multilingual, ~10ms/text CPU) when its python env has sentence-transformers, else ONNX encoder; onnx / harrier to force. Query-side uses the model's trained instruction prompt |
embedPython | (nerPython or python3) | Python executable for the harrier embedding sidecar |
hfBaseUrl | https://huggingface.co | Mirror base URL for the embedding model download |
queryExpansion | true | LLM query expansion during retrieval + verbatim-quote query distillation for injection (1024-token/30s bounded calls, results cached on disk per query) |
entityMergeLlm | true | LLM-adjudicated entity merge at extraction (embedding candidates + one bounded call per turn; only explicit sure merges) |
supersedeLlm | true | LLM-adjudicated supersede detection (relation cardinality; older values marked supersededBy, history kept; re-mention guard + mark propagation) |
nerAssist | true | NER candidate hints for extraction (detector chain: PyTorch sidecar → ONNX package → off) |
nerPython | python3 | Python executable for the NER sidecar (needs torch gliner stanza in that env; models auto-download on first use) |
The plugin resolves
python3from the dsh process PATH — when dsh is launched from your shell it inherits that environment, so an interpreter that already has the packages works with zero configuration. If yours does not,scripts/setup-python.shcreates a dedicated venv (sentence-transformers + torch/gliner/stanza) and prints the exactnerPython/embedPythonlines to paste intocordis.patch.yml. |dataDir|/memoplus4dsh| Plugin data directory (journal, snapshots, model cache, expansion cache) | |extractionProvider/extractionModel| session's own route | Override the model route used for extraction/expansion calls | |extractionMaxTokens|8192| Output cap for extraction calls (reasoning models need the headroom) | |extractionCallTimeoutMs|120000| Per-call timeout; a stalled endpoint fails fast into the retry queue | |extractionMaxRetries|2| Retries after the first attempt; the turn is then skipped and logged | |snapshotThreshold|1000| Journal ops between snapshot compactions |
Extraction consumes your configured model's API quota — set extraction: off to opt out.