dsh-memory-meow
项目级跨会话记忆:PROJECT.md 快照注入首条用户消息(缓存友好)+ memory_remember 工具 + ReAct 任务结束自动反思;各项目独立记忆文件,互不互通。
phant0meow
@phant0meow
⬇ 1
★ 2
main
安装
dsh plugin --profile web add github:phant0meow/dsh-memory-meow
需要可复现安装时,可在仓库后追加 #commit 固定提交。
项目级跨会话记忆:PROJECT.md 快照注入首条用户消息(缓存友好)+ memory_remember 工具 + ReAct 任务结束自动反思;各项目独立记忆文件,互不互通。
该插件未提供要点说明,请参考仓库 README。
agent-memorydeepseek-harnessdshdsh-pluginmemory
- 安装并启动 DeepSeek Harness:
npx @deepseek-ai/dsh web - 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
- 用 dsh plugins list 确认已安装,必要时重启 Harness 生效
插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。
| 代码仓库 | github.com/phant0meow/dsh-memory-meow |
| 许可证 | MIT |
| 主要语言 | main |
| 下载量 | 1 |
| GitHub 星标 | 2 |
| 最近推送 | 2026-08-14 |
| 收录日期 | 2026-09-19 |
| 分类 | 会话与消息 |
事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。
以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。
# meow-memory 🐱📝
Cross-session project memory for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH).
Born from the "meow" fork — hence the name — but works on any DSH profile.
**The idea**: every workspace keeps one human-readable memory file (`.dsh-meow/PROJECT.md`).
New sessions get it injected into the **first user message** (not the system prompt), so the
prompt prefix — and your LLM provider's KV/context cache — stays untouched. When the model
finishes a task (a ReAct turn that used tools), the plugin gently asks it to reflect and save
what's worth remembering.
## ✨ Features
- **Cache-friendly by design**: memory is injected as a plain user-message suffix on the
session's first user message. The system prompt never changes, and the snapshot is frozen
for the whole session — later memory updates cannot invalidate the request prefix.
- **Human-owned memory**: `.dsh-meow/PROJECT.md` per workspace. Plain Markdown, human-editable,
git-diffable, deletable with `rm`.
- **`memory_remember` tool**: the model can write a memory anytime (categories: fact / mistake /
preference / user_said / lesson / detail), appended atomically to the right section.
- **Automatic reflection**: after a task turn ends (model stopped calling tools), the plugin
steers a reflection prompt. The model decides whether anything is worth remembering — and
calls `memory_remember` only when there is. Chat-only turns never trigger reflection.
- **No recursion**: reflection rounds are marked; a turn that already reflected, or whose last
tool call was a `memory_` tool, is never asked again.
- **Zero runtime dependencies**: the host bundle is self-contained (esbuild bundles
schemastery / dsh-tools / dsh-llm into `lib/index.js`).
- **Per-workspace isolation**: different projects, different memory files.
## 📦 Install
### Via `dsh plugin` (requires the package to be published / linked)
```sh
dsh plugin --profile web add meow-memory
dsh web
```
### By hand (any DSH install, no npm needed)
1. Copy (or symlink) this package into the profile's `node_modules`:
```sh
# e.g. for the web profile of a DSH home at ~/.dsh
mkdir -p ~/.dsh/profiles/web/node_modules
ln -s /path/to/meow-memory ~/.dsh/profiles/web/node_modules/meow-memory
```
(On Windows: `New-Item -ItemType Junction ...` — NTFS junction, no admin needed.)
2. Register in the profile's `cordis.patch.yml`:
```yaml
- insert:
- id: meow-memory
name: 'meow-memory'
config:
enabled: true
```
3. Restart `dsh web`. New sessions pick up the plugin automatically.
## ⚙️ Configuration
All fields are optional (profile patch or `cordis.patch.yml`):
```yaml
- id: meow-memory
name: 'meow-memory'
config:
enabled: true # master switch (false = no injection, no tool, no reflection)
projectDir: '.dsh-meow' # memory directory, relative to the workspace
projectFile: 'PROJECT.md' # memory file name
maxInjectChars: 4000 # max chars injected into the first user message (truncated beyond)
reflect: true # auto-reflection after ReAct task turns
```
## 🧠 How it works
```
First user message memory_remember tool task end
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────────┐
│ [user text] │ │ model calls it │ │ agent/turn-stopping │
│ ───────────── │ │ → append to │ │ saw tool calls? │
│ [PROJECT.md │ │ .dsh-meow/ │ │ last tool memory_*? │
│ snapshot] │ │ PROJECT.md │ │ already reflected? │
└──────────────────┘ └──────────────────┘ │ → agent.steer(reflect│
injected once per atomic write │ prompt) if yes │
session, never again └──────────────────────┘
```
Memory content guidance (embedded in the tool description and the reflection prompt):
- important facts, conclusions, decisions;
- mistakes and **corrections from the user** (always worth keeping);
- the user's own description of the project (quote them);
- surprises;
- lessons from repeated failed attempts;
- user preferences (communication / working / coding style, project-related);
- hard-won details that took many tool calls to find.
## 🛠 Development
```sh
npm install
npm run build # esbuild bundle → lib/index.js (self-contained)
npm run test # 22 logic tests: tool, store, injection, reflection, recursion guard
```
The `@deepseek-ai/*` packages live in the dsh-meow pnpm workspace, not in this package's
`node_modules`. On Windows, `npm run link-workspace` (or `scripts/link-workspace.ps1`)
creates junction mirrors of the workspace packages so esbuild can resolve them;
`build.mjs` uses `nodePaths` to pick them up. The links are build-time only.
## 📄 License
MIT — see [LICENSE](LICENSE).
数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。