DeepSHPlugins
dsh-plugin-memory 專案預覽
GITHUB / COMMUNITY PROJECT

dsh-plugin-memory

記憶與知識JavaScriptMIT

五層持久記憶系統:相關性注入、LLM 自動提取、畫像輪替與六個 agent 工具。

3 StarsNattoCB 更新時間 2026-08-21
訪問 GitHub 倉庫
dsh-plugin-memory 專案預覽

專案介紹

中文

五層持久記憶系統:相關性注入、LLM 自動提取、畫像輪替與六個 agent 工具。

English

Persistent five-layer memory system with relevance injection, LLM auto-extraction, profile rotation, and six agent tools.

專案資訊與收錄訊號

快照 2026-09-11
作者 / 組織
NattoCB
倉庫
NattoCB/dsh-plugin-memory
GitHub Stars
3
Forks
0
開發語言
JavaScript
許可證
MIT
最近推送
2026-08-21
Manifest
資料中檢測到宣告

公開倉庫不自動等於可商用;許可證與當前相容性以原專案文件為準。Manifest 和資料評分不構成安裝安全認證。

資料評分

57/ 100
維護活躍
86
文件與實用資訊
85
生態關注度
17
安裝便捷訊號
75
專案宣告訊號
100

近 21 天仍在更新;README 含完整安裝與使用說明;關注度尚低(3)。

評分來自已有資料快照的五維模型,僅作瀏覽參考,不是實際使用評測或安全檢測結論。

安裝與使用

所有專案資料與許可均以對應 GitHub 倉庫為準。

dsh plugin --profile web add github:NattoCB/dsh-plugin-memory

複製命令不會自動執行。請先閱讀倉庫文件,確認環境要求與許可證。

專案截圖

倉庫 README

GitHub 原文

已儲存的倉庫文件快照;文件抓取時間未記錄,可能與上方目錄介紹處於不同版本。安裝前請核對當前倉庫說明。

儲存庫檔案保留原文,指令與授權文字不作自動改寫。

@deepseek-ai/dsh-plugin-memory

English | 中文

Persistent five-layer memory for DeepSeek Harness: profile, project context, daily log, and recallable topics — so the agent remembers you across sessions, not just within one.

License

DeepSeek Harness Plugin

Relevance Injection

LLM Auto-Extraction

Profile Rotation

Truncation Budget

Agent Tools

awesome · DSH 插件

Two cordis seams — agent/pre-step injection + ctx.tools.register (six tools)

A persistent five-layer memory system for DeepSeek Harness (DSH): a user profile (L1), a per-project semantic index with topic files (L2), and append-only per-day logs (L3) under ~/.dsh/memory/ and <cwd>/.dsh/memory/. It injects relevant memories into every request and auto-extracts durable facts from finished sessions via the LLM. Integrates as a DSH plugin on two cordis seams — agent/pre-step for injection, ctx.tools.register for six memory_* agent tools. Without an llm route it still works: entry injection, keyword relevance, and profile rotation remain; only LLM ranking and auto-extraction are disabled.

✨ Features

  • 🧠 Five-layer model: L0 user-owned identity (~/.dsh/AGENTS.md, not managed by the plugin) → L1 profile → L2 project index + topics → L3 per-day append-only log → L4 skills (existing). Each layer has its own write path, truncation budget, and injection rule.
  • 📇 Index + topic split (L2): MEMORY.md is always an index of one-line pointers (≤150 chars each); details live in <topic>.md. Keeps single files small, searchable, and truncatable.
  • ✂️ Truncation budget: the booted index is hard-clamped to 200 lines / 40,000 chars, so cold-start context stays cheap.
  • 🎯 Relevance injection: on each step, the latest user query selects relevant topic files (LLM ranking when llm is configured, keyword scoring otherwise) and appends them as a <system-reminder data-role="memory"> block; files already surfaced in this session are de-duplicated. The two channels are labeled memory-entry (once per session) and memory-relevance (per step) in the GUI context rows.
  • 🤖 LLM auto-extraction: when a session goes idle, a debounced (60 s) best-effort pass scans the recent 40 events, asks the LLM for new topic files and index lines, and writes them. Never overwrites existing memories; degrades silently if the model is unavailable.
  • 🔄 Profile rotation (L1): memory_profile merges new facts into four fixed sections (工作背景 / 个人背景 / 当前关注 / 近期动态) and rotates the version, keeping the previous copy in profile.md.bak.
  • 🔒 Read-back data, not instructions: memory is written with fs/promises directly to the memory roots — intended persistence, not self-modification — and paths are confined to the store root. Memory files are context the agent reads back, never permission grants.
  • 🧩 Pure harness plugin: no HTTP API or GUI panel — injection and tools only. DSH serves a single user, so paths carry no <uid> layer.
  • 🛠️ Six agent tools registered via ctx.tools.register (defineTool from @deepseek-ai/dsh-tools):
ToolScopeEffect
memory_writeglobal/projectWrite/overwrite a topic file; optionally add an index line.
memory_readglobal/projectRead a topic file or the MEMORY index.
memory_searchglobal/project/bothKeyword-search topic files.
memory_dailycwdAppend a dated line to <cwd>/.dsh/memory/YYYY-MM-DD.md.
memory_forgetglobal/projectDelete a topic file and its index pointer.
memory_profileglobalRead, or merge-and-rotate, the single-user profile.

Quick Start

Prerequisites

  • A DeepSeek Harness (DSH) installation with a plugin-capable profile (e.g. web).
  • No LLM route required — the plugin falls back to keyword-only relevance.

Install

dsh plugin --profile web add github:NattoCB/dsh-plugin-memory

Run

Restart dsh web. On first use the plugin bootstraps both memory roots:

~/.dsh/memory/
  MEMORY.md        # global index (≤200 lines / 40K chars)
  profile.md       # L1 profile (Version N)
  profile.md.bak   # previous profile version
  <topic>.md       # global topic files
<cwd>/.dsh/memory/
  MEMORY.md        # project index
  YYYY-MM-DD.md    # daily memory (append-only)
  <topic>.md       # project topic files

Tell the agent something worth remembering, or let idle auto-extraction pick it up — then check the memory roots a session later.

Configuration

Deploy the plugin via a DSH bundle entry (see cordis.patch.yml and package.json exports):

KeyDefaultMeaning
enableEntryInjectiontruePrepend the how-to-save + index block once per session.
enableRelevancetrueAppend relevant topic files per step (data-role=memory).
enableExtractiontrueIdle-time LLM auto-extraction.
maxRelevant5Max files surfaced per step (1–20).
relevanceTopK8Max candidates the LLM selector may pick from (1–40).
relevanceBudgetChars2000Per-topic char cap fed to relevance selection (≥200).
extractionDebounceMs60000Idle debounce before an extraction pass runs.
extractionLookback40Recent events scanned per pass (5–200).
llm.provider""Provider for extraction / relevance ranking (empty → keyword-only).
llm.model""Model for extraction / relevance ranking.
llm.maxTokens1024Completion token cap for LLM calls.

Example entry:

- id: memory
  name: '@deepseek-ai/dsh-plugin-memory'
  config:
    enableEntryInjection: true
    enableRelevance: true
    enableExtraction: true
    maxRelevant: 5
    relevanceTopK: 8
    relevanceBudgetChars: 2000
    extractionDebounceMs: 60000
    extractionLookback: 40
    llm:
      provider: deepseek   # example: fill in your route
      model: deepseek-chat
      maxTokens: 1024

License

MIT — see LICENSE.


Open an issue · Source

使用前核對

安裝步驟、相容版本與授權範圍以原專案當前文件為準。Stars 和評分是快照中的導航訊號。

安裝與排錯 · 專案問題反饋

同類專案