🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

项目记忆库 xiaozhugez/dsh-project-memory

DeepSeek Harness
xiaozhugez77 天前有提交已提供中文文档扫描:含敏感能力

记录踩坑与编码习惯,让 AI 越用越懂你

27.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add xiaozhugez/dsh-project-memory
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · chat
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 77 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 6 处,展示前 6 条)
  • 读取本地文件
    src/store.ts:92
    if (existsSync(join(dir, '.git'))) return dir
  • 读取本地文件
    src/store.ts:131
    return statSync(path).mtimeMs
  • 读取本地文件
    src/store.ts:139
    if (!existsSync(path)) return []
  • 读取本地文件
    src/store.ts:141
    const raw = readFileSync(path, 'utf8')
  • 写入本地文件
    src/store.ts:162
    mkdirSync(dirname(path), { recursive: true })
  • 写入本地文件
    src/store.ts:164
    writeFileSync(path, stringify(file), { mode: 0o600 })
扫描于 2026/11/3(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-commands@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-tools@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 记录项目踩坑
  • 记录用户代码习惯
  • 对话中自动注入

一个 DeepSeek Harness 插件,记录项目踩坑和你的代码习惯,在后续对话中自动注入,让 AI 越用越懂你。

README

由 DeepSeek 最新模型翻译生成
dsh-project-memory 一个 DeepSeek Harness 插件,让 AI 从每个项目中学习 —— 记录踩过的坑和用户的编码习惯,然后在未来的对话中注入这些内容,让你用得越多,AI 就越聪明。 它的作用 当你遇到常见错误、展示某种编码习惯,或明确要求 AI 记住某些内容时,AI 会调用 memory_write 工具将其保存下来。该项目中未来的每一次对话(对于用户级记忆,则是所有项目中的对话)都会自动接收这些记忆作为上下文,因此 AI 无需再次被告知就能基于过去的经验继续工作。 三项贡献: | 贡献 | 使用者 | 作用 | | memory_write 工具 | AI 模型 | 记录踩坑、习惯、偏好或事实 | | agent/pre-step 注入 | 自动 | 将全部记忆前置到每次模型请求中 | | /memory 命令 | 你(人类) | 查看、添加、编辑、删除和清空记忆 | 两种作用域 - 用户记忆(user)—— 适用于所有项目。存放于 /memory.yaml(默认为 ~/.dsh/memory.yaml)。 - 项目记忆(project)—— 仅适用于当前项目。 存放于 /.dsh/memory.yaml,其中项目根目录是最近的 .git 祖先目录。
展开完整文档(README 剩余 1 节)
dsh-project-memory

一个 DeepSeek Harness 插件,让 AI 从每个项目中学习 —— 记录踩过的坑和用户的编码习惯,然后在未来的对话中注入这些内容,让你用得越多,AI 就越聪明。

它的作用

当你遇到常见错误、展示某种编码习惯,或明确要求 AI 记住某些内容时,AI 会调用 memory_write 工具将其保存下来。该项目中未来的每一次对话(对于用户级记忆,则是所有项目中的对话)都会自动接收这些记忆作为上下文,因此 AI 无需再次被告知就能基于过去的经验继续工作。

三项贡献:

| 贡献 | 使用者 | 作用 |
| memory_write 工具 | AI 模型 | 记录踩坑、习惯、偏好或事实 |
| agent/pre-step 注入 | 自动 | 将全部记忆前置到每次模型请求中 |
| /memory 命令 | 你(人类) | 查看、添加、编辑、删除和清空记忆 |

两种作用域

- 用户记忆(user)—— 适用于所有项目。存放于 /memory.yaml(默认为 ~/.dsh/memory.yaml)。
- 项目记忆(project)—— 仅适用于当前项目。
存放于 /.dsh/memory.yaml,其中项目根目录是最近的 .git 祖先目录。

两种作用域均可由人工编辑(YAML 文件是纯文本),也可以通过 /memory 命令进行管理。

类别

每条记忆都属于以下四个类别之一:

| 类别 | 含义 | 示例 |
| pitfall | 常见错误及其修复方法 | "在 Windows 上,ESM 导入请使用 file:// URL" |
| habit | 用户的编码约定 | "所有代码注释使用中文" |
| preference | 工作流选择 | "推送前先运行测试" |
| fact | 重要的项目上下文 | "此项目要求 Node >= 22" |

/memory 命令

/memory 列出所有记忆(先用户,后项目) /memory list user 仅列出用户作用域的记忆 /memory list project 仅列出项目作用域的记忆 /memory add user habit: all comments in CN 添加一条用户作用域的记忆 /memory add project pitfall: never push main 添加一条项目作用域的记忆 /memory edit 2 new content here 编辑索引为 #2 的记忆 /memory delete 1 按索引删除(索引来自 /memory list) /memory delete 按完整 UUID 删除(搜索两种作用域) /memory clear project 清空所有项目记忆 /memory clear 清空所有记忆(两种作用域)

索引是连续的:用户记忆在前(#1..),项目记忆在后。
同一索引可用于 edit 和 delete。

安装

从 npm 安装(推荐)

npx @deepseek-ai/dsh plugin --profile web add @xiaozhugez/dsh-project-memory
预构建代码——一步安装,无需构建权限。

从 GitHub 安装

npx @deepseek-ai/dsh plugin --profile my-profile add github:xiaozhugez/dsh-project-memory

git 安装会拉取源码并运行 prepare 脚本(tsdown)来构建
lib/index.js。pnpm ≥10 在未明确允许之前会拒绝运行 git 依赖的构建脚本,因此第一次 add 会失败。将 pnpm 打印出的包键复制到该 profile 的 pnpm-workspace.yaml 中:

allowBuilds:
dsh-project-memory: true

然后重新运行 add 命令。请将此视为允许在安装时于你的机器上执行该包的代码——只允许你信任其源码的包,并固定一个提交(github:xiaozhugez/dsh-project-memory#),这样后续的推送就无法悄悄改变实际运行的内容。

从本地目录安装

npx @deepseek-ai/dsh plugin --profile my-profile add ./project-memory-plugin

卸载

npx @deepseek-ai/dsh plugin --profile web remove @xiaozhugez/dsh-project-memory

验证

npx @deepseek-ai/dsh --profile web --dump-config # confirm project-memory is in the tree
npx @deepseek-ai/dsh web # start using it

配置

通过此 bundle 之上的 profile 或 home patch 进行覆盖:

- id: project-memory
name: '@xiaozhugez/dsh-project-memory'
config:
memoryDir: .dsh # directory under project root; default .dsh
autoInject: true # inject memories into model context; default true

手动编辑

两个记忆文件都是纯 YAML,可以直接安全地编辑:

- 用户:~/.dsh/memory.yaml
- 项目:/.dsh/memory.yaml

memories:
- id: some-uuid
category: pitfall
content: never commit directly to main
createdAt: '2026-08-19T10:00:00.000Z'

内存缓存会在每次读取时检查文件的 mtime,因此手动编辑会在同一会话的下一个请求中被拾取——无需重启。

开发

此插件作为独立插件在 packages/ 工作区之外开发,遵循 Harness 插件开发指南。

从源码构建运行时产物:

pnpm install # runs prepare → tsdown → lib/index.js
pnpm build # re-run the build alone

要在开发期间测试,请从 harness 仓库根目录使用 dev overlay 运行(它通过 tsx 直接挂载 TypeScript 源码):

pnpm dsh web --patch ./project-memory-plugin/cordis.yml

然后打开 http://127.0.0.1:3080。该插件的 memory_write 工具和 /memory 命令在会话中可用。

文件

project-memory-plugin/
├── package.json # dsh bundle manifest (dsh.bundle.patch) + deps
├── pnpm-workspace.yaml # autoInstallPeers:false (dsh peers come from the host)
├── tsdown.config.ts # standalone build: src/ → lib/index.js (no type-check)
├── cordis.patch.yml # 可安装的 bundle 补丁(使用包名) ├── cordis.yml # 开发覆盖层(使用绝对源码路径) ├── src/ │ ├── index.ts # 三个注册项:tool + command + pre-step │ └── store.ts # 双作用域存储、mtime 缓存、YAML 持久化 └── tests/ ├── command.spec.ts # store 层:loadAllMemories/updateMemory/clearMemories/mtime └── dispatch.spec.ts # 命令分发:list/add/edit/delete/clear

一个 DeepSeek Harness 插件,让 AI 越用越懂你 —— 记录你踩过的坑和代码习惯,在以后的对话中自动注入,让 AI 在同一个项目里越用越聪明。

功能介绍

当你遇到一个常见报错、展现出某种代码习惯,或明确要求 AI 记住某件事时,AI 会调用 memory_write 工具把它记下来。之后在该项目(或所有项目,取决于记忆范围)的每次对话中,这些记忆会自动作为上下文注入,AI 就能在过往经验上继续积累,而不必你反复说明。

三个组成部分:

| 组成 | 使用者 | 作用 |
| memory_write 工具 | AI 模型 | 记录一个踩坑、习惯、偏好或事实 |
| agent/pre-step 注入 | 自动触发 | 把所有记忆追加到每次模型请求 |
| /memory 命令 | 你(人类) | 查看、添加、编辑、删除、清空记忆 |

两种范围

- 用户级记忆(user)—— 适用于所有项目。存储在 /memory.yaml(默认 ~/.dsh/memory.yaml)。
- 项目级记忆(project)—— 仅适用于当前项目。存储在 /.dsh/memory.yaml,项目根为最近一层含 .git 的目录。

两种范围都可以直接手动编辑(YAML 纯文本),也可以通过 /memory 命令管理。

记忆分类

每条记忆属于以下四类之一:

| 分类 | 含义 | 示例 |
| pitfall | 常见错误及其解决办法 | "Windows 上 ESM 导入要用 file:// URL" |
| habit | 用户的代码习惯 | "所有代码注释用中文" |
| preference | 工作流偏好 | "推送前先跑测试" |
| fact | 重要的项目上下文 | "本项目要求 Node >= 22" |

/memory 命令

/memory 列出所有记忆(用户级在前,项目级在后) /memory list user 只列出用户级记忆 /memory list project 只列出项目级记忆 /memory add user habit: 所有注释用中文 添加用户级记忆 /memory add project pitfall: 不要直接推 main 添加项目级记忆 /memory edit 2 新的内容 编辑编号 #2 的记忆 /memory delete 1 按编号删除(/memory list 显示的序号) /memory delete 按 UUID 删除(两个范围都搜) /memory clear project 清空项目级记忆 /memory clear 清空所有记忆(两个范围)

编号是连续的:用户级记忆排前面(#1..),项目级排后面。edit 和 delete 用的是同一套编号。

安装

从 npm 安装(推荐)

npx @deepseek-ai/dsh plugin --profile web add @xiaozhugez/dsh-project-memory

已预构建,一步安装,无需构建授权。

从 GitHub 安装

npx @deepseek-ai/dsh plugin --profile my-profile add github:xiaozhugez/dsh-project-memory

Git 安装会拉取源码并运行 prepare 脚本(tsdown)构建出 lib/index.js。
pnpm ≥10 要求显式授权才会运行 git 依赖的构建脚本,所以第一次 add 会失败。
把 pnpm 打印的包名填进该 profile 的 pnpm-workspace.yaml:

allowBuilds:
dsh-project-memory: true

然后重新运行 add 命令。请注意:这等于授权该包在你的机器上、安装时执行它的代码。只对你信任其源码的包授权,并固定 commit (github:xiaozhugez/dsh-project-memory#),防止后续推送悄悄改变执行内容。

从本地目录安装

npx @deepseek-ai/dsh plugin --profile my-profile add ./project-memory-plugin

卸载

npx @deepseek-ai/dsh plugin --profile web remove @xiaozhugez/dsh-project-memory

验证

npx @deepseek-ai/dsh --profile web --dump-config # 确认 project-memory 出现在配置树中
npx @deepseek-ai/dsh web # 启动使用

配置

通过 profile 或 home patch 在本 bundle 之上覆盖:

- id: project-memory
name: '@xiaozhugez/dsh-project-memory'
config:
memoryDir: .dsh # 项目根下的存储目录;默认 .dsh autoInject: true # 是否注入记忆到模型上下文;默认 true

手动编辑

两个记忆文件都是纯 YAML,可以直接编辑:

- 用户级:~/.dsh/memory.yaml
- 项目级:/.dsh/memory.yaml

memories:
- id: some-uuid
category: pitfall
content: never commit directly to main
createdAt: '2026-08-19T10:00:00.000Z'

内存缓存在每次读取时检查文件 mtime,所以手动编辑后同一会话内的下一次请求就能生效 —— 无需重启。

开发

本插件在 packages/ 工作区之外独立开发,遵循 Harness 插件开发指南。

从源码构建运行时产物:

pnpm install # 会自动运行 prepare → tsdown → lib/index.js
pnpm build # 单独重新构建

开发时测试,在 harness 仓库根目录用 dev overlay 运行(通过 tsx 直接加载 TypeScript 源码):

pnpm dsh web --patch ./project-memory-plugin/cordis.yml

然后打开 http://127.0.0.1:3080。会话中即可使用 memory_write 工具和 /memory 命令。

文件结构

project-memory-plugin/
├── package.json # dsh bundle 清单 (dsh.bundle.patch) + 依赖 ├── pnpm-workspace.yaml # autoInstallPeers:false(dsh peer 由宿主提供) ├── tsdown.config.ts # 独立构建:src/ → lib/index.js(不做类型检查) ├── cordis.patch.yml # 可安装的 bundle patch(用包名引用) ├── cordis.yml # 开发 overlay(用源码绝对路径) ├── src/ │ ├── index.ts # 三个注册点:工具 + 命令 + pre-step 注入 │ └── store.ts # 双范围存储、mtime 缓存、YAML 持久化 └── tests/ ├── command.spec.ts # 存储层:loadAllMemories/updateMemory/clearMemories/mtime └── dispatch.spec.ts # 命令分发:list/add/edit/delete/clear
预览分享卡片长什么样 ↓xiaozhugez/dsh-project-memory
分享 · DeepSeek Harness Hub
xiaozhugez/dsh-project-memory

记录踩坑与编码习惯,让 AI 越用越懂你

这是你的仓库?认领条目

回到顶部