x-000001/dsh-memory-plugin ↗★ 0

dsh-plugin-memory

Cross-project long-term memory for DeepSeek Harness: four isolated stores, progressive disclosure, audited habit learning, zero-LLM core. 适合需要跨会话、跨项目持久化存储和召回习惯与知识的用户。

パッケージ
dsh-plugin-memory
互換性
未検証
バージョン
0.1.0
ライセンス
MIT
最終更新
2026/10/18

同名パッケージの別リポジトリ

インストール

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:x-000001/dsh-memory-plugin

ドキュメント

README 全文を読む ↗

Minimal usage example (agent side)

// tool call
{ "name": "memory_remember", "arguments": {
    "title": "Indentation style",
    "content": "This repo uses tabs, never spaces.",
    "tags": ["style", "formatting"],
    "layer": "project"
} }
// -> { "ok": true, "id": "mem_ab12cd34", "version": 1, "layer": "project", "deduped": false }

{ "name": "memory_recall", "arguments": { "query": "indentation style" } }
// -> { "items": [{ "id": "mem_ab12cd34", "title": "Indentation style", "excerpt": "…", "chars": 41 }],
//      "tier": "full", "spentChars": 41, "sessionSpentChars": 41, "dedupedIds": [] }

Every response is plain JSON; the model-facing text is the canonical value rendered by output.render.

Configuration

Loader row defaults live in cordis.patch.yml. All keys are optional and merge over the defaults in src/config.ts:

KeyDefaultMeaning
projectMemoryDir.dsh/memoryrepo-relative project store
globalMemoryDir~/.dsh/memoryglobal store (~ = DSH_HOME)
habitDir~/.dsh/storages/habithabit store
cacheStabletruekeep the injected prefix byte-stable
budget.indexMaxLines24resident index hard cap
budget.indexMaxLineChars150one index line cap
budget.indexMaxChars3000total index cap
budget.recallMaxResults5top-K per recall
budget.recallMaxCharsPerMemory1200body cap per recall item
budget.recallMaxTotalChars4000total injected chars per call
budget.recallSessionBudgetChars12000per-session cumulative recall budget
budget.habitPromptMaxChars800habit hint injection cap
budget.unloadThresholdChars16000long-output offload threshold
lifecycle.expireDays30expiry
lifecycle.dormantDays14dormant after
lifecycle.weakRecallDays30weak renewal window
lifecycle.capacity500entries before eviction
habit.enabledtruedeterministic observation
habit.threshold3corrections per session before one judge call
habit.maxEvidence5evidence slices sent to the judge
habit.judgeEnabledfalseoptional judge (off = not a failure)
habit.judgeProvider / habit.judgeModel""explicit route; never guessed
habit.judgeTimeoutMs4000timeout → fail open
habit.minSessionsForAuto2distinct sessions required before auto
guard.blockEnvAssignmentstruealso reject FOO_SECRET=… style assignments
guard.extraDenyPatterns[]extra regex sources