dsh-global-memory
全局记忆(Global Memory):一条跨会话、跨任务的常驻要求,注入每一个会话的系统提示词,因此每次任务都必须遵循。设置页可视化编辑,global_memory 工具可读写;独立于 memory-eternal。 适合需要全局常驻记忆、跨会话保持特定任务要求的用户。
Other repositories with this package name
Install
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:07vvvv/dsh-global-memoryREADME
Read the full README ↗配置
配置层:config.enabled
cordis.patch.yml 里声明的装配开关:
- insert:
- id: global-memory
name: dsh-global-memory
config:
enabled: true # false → 整插件不加载(apply 立刻返回)
config.enabled: false 时:注入、global_memory 工具、/global-memory/api/* 路由全部不存在,就像没装这个插件;依赖与 bundles 项仍在。后层 patch(profile 自己的 cordis.patch.yml 或 --patch)可以按 id global-memory 覆盖/禁用它。
存储文件:$DSH_HOME/global-memory.json
DSH_HOME 未设置时回退为 ~/.dsh(Windows:%USERPROFILE%\.dsh),所以默认完整路径是:
- Windows:
%USERPROFILE%\.dsh\global-memory.json(或你设的%DSH_HOME%\global-memory.json) - 类 Unix:
$DSH_HOME/global-memory.json(默认~/.dsh/global-memory.json)
字段表:
| 字段 | 类型 | 说明 |
|---|---|---|
version | number | 存储结构版本,当前为 1;读取时按当前版本归一化 |
enabled | boolean | 运行期开关。true 注入;false 不注入任何内容(正文仍保留在文件里) |
text | string | 全局记忆正文。空字符串 → 不注入(保持原文,不自动补默认) |
updatedAt | string | 最后一次写入的 ISO 8601 时间;从未写入过为空串 |
文件不存在时:
{
"version": 1,
"enabled": true,
"text": "……内置默认正文……",
"updatedAt": ""
}
行为约定(据此排错):
- 读取永不抛异常:文件缺失 / JSON 损坏 / 字段类型不对 → 回退默认值(默认即启用),一个坏文件不会把宿主启动打挂。
- 损坏时不覆盖你的文件:只在内存里用默认值,原文件原样留着,交给你修。
- 写入原子:先写同目录临时文件再
rename覆盖,进程中断不会留下半截 JSON。 - 只有显式
false才算关闭:enabled缺失或类型不对,按启用处理。
运行期开关语义(enabled 字段)
| 层级 | 手段 | 效果 |
|---|---|---|
| 配置层 | config.enabled: false | 整插件不加载:注入 + 工具 + API 全消失 |
| 运行期 | enabled: false(工具 disable / 设置页开关 / POST /enabled) | 只停止注入:不卸载工具、不删正文、不删路由;enable 立刻恢复 |
也就是说「暂时不想让它影响会话」用运行期开关即可,正文不会丢。
配置层:config.enabled
cordis.patch.yml 里声明的装配开关:
- insert:
- id: global-memory
name: dsh-global-memory
config:
enabled: true # false → 整插件不加载(apply 立刻返回)
config.enabled: false 时:注入、global_memory 工具、/global-memory/api/* 路由全部不存在,就像没装这个插件;依赖与 bundles 项仍在。后层 patch(profile 自己的 cordis.patch.yml 或 --patch)可以按 id global-memory 覆盖/禁用它。