前言¶
在 DSH 里给同一个 AI 角色接多个客户端时,常见问题是:对话片段散落在不同端,删改没有备份,手机和电脑之间也不好互传一句「到家了」这类短消息。云端记忆服务会把数据放到别人服务器上;纯本地插件又往往只管读写 JSON,不负责收件箱、发件箱和常见 IM 通道适配。
下面介绍维护者 shenmingsolar-01 发布的 dsh-memory-hub(社区分类:记忆)。它在安装者本机起一个 HTTP 服务,按角色和来源分开存记忆,写入前自动快照,并提供 Inbox / Outbox、可选 AI 绑定与可选支付入口。数据默认落在 ~/.dsh/memory-hub.json 及派生文件,不上传云端。当前 README 标注版本为 1.1.10.3,许可证 MIT。
这是什么¶
dsh-memory-hub 是 DeepSeek Harness(DSH)插件:多端 AI 角色的本机记忆助手——记得住、能收发、能接安装者自己的 AI、可选支付;英文简述为 local memory helper for AI characters。
它不自带聊天机器人、桌宠或聊天客户端,不包含模型、不替用户调用外部 AI,不会自动读取其他插件数据。同一个插件实例可被多个本地客户端调用;角色名与来源名支持任意 Unicode,插件不设固定端数上限。
核心功能¶
记忆¶
按角色(character)和来源(source)分开记录。写入前自动备份,删错可通过快照恢复。HTTP 侧支持读取、写入、按来源删除、恢复指定或最近快照;重复消息会自动去重。
容量可通过 profile 配置软上限,0 表示不限制,例如:
config:
historyLimit: 1000 # 每个来源保留条数,0 = 不限
snapshotLimit: 100 # 快照份数,0 = 不限
inboxLimit: 200 # 收件箱条数,0 = 不限
outboxLimit: 200 # 发件箱条数,0 = 不限
实际能存多少只受本机磁盘限制。
收发(Inbox / Outbox / cross)¶
- Inbox:任意一端写入,其他端轮询
GET /inbox取走;适合「手机收到消息,电脑端角色再处理」。 - Outbox:在配置里声明本机 HTTP 通道后,调用接口把消息投递出去。Slack、Discord、Telegram、飞书、企业微信、LINE、Matrix 等有内置适配类型;也可用
generic接任意 HTTP。 - POST /cross:先写入收件箱,再按
to投递到已配置通道,适合一端说一句、另一端也收到。
离线消息可先存、上线再收;离线记忆可并回。收件箱与 Outbox 默认不含任何地址、账号或数据,需安装者自行配置通道。
AI 接入¶
安装后默认注册 memory_hub_* 工具,安装者绑定的模型可直接读写记忆。插件可探测本机 Ollama / LM Studio / vLLM 等及常用云端模型,选定后提供本地接口;也可通过对话方式添加自定义 API。未绑定模型时仍可正常做记忆与收发;/bind 在无可选 AI 时不可用。
支付(可选)¶
用于 Token 余额充值的付款入口:按国家显示货币与方式,可手动切换国家。只提供入口,不接触支付密码。未配置充值链接时 /payment 返回未配置,不影响其他功能。
本机运行与边界¶
- 自动选择空闲端口,监听
127.0.0.1,端口写入<DSH_HOME>/memory-hub.port(默认~/.dsh)。 - 默认无遥测;未绑定模型前只探测本机服务。可通过
GET /privacy查看telemetry、collectsData等状态。 - 可随时
enabled: false或disabled: true停用:不启 HTTP、不注册工具、不读写记忆文件,且不影响模型本身运行。
安装与启用¶
安装前需满足:Node.js ≥ 20,DSH ≥ 0.2.0(支持 dsh plugin add),DSH_HOME 可写且建议至少 50 MB 空闲,以及一个本地 HTTP 端口。不需要 npm install、不需要数据库。
官方安装命令如下:
dsh plugin --profile <你的 profile> add <这个包的路径或 npm 包名>
从 npm 安装示例:
dsh plugin --profile default add dsh-memory-hub
从本地压缩包安装:
dsh plugin --profile default add ./dsh-memory-hub.tgz
重启该 profile 后生效;启动日志会打印监听地址,例如 memory-hub 监听 http://127.0.0.1:43127。
可选配置(在 profile 的 cordis.patch.yml 覆盖):
- id: memory-hub
config:
host: 127.0.0.1
port: 0 # 0 = 自动选端口
snapshotLimit: 100
file: "" # 默认 ~/.dsh/memory-hub.json
安装自检:访问 GET http://127.0.0.1:<端口>/requirements 或 GET /health(含 requirements 字段),核对 Node、数据目录、磁盘等项。
典型用法¶
模型通过工具写记忆¶
DSH 启动后,模型调用已注册的 memory_hub_* 工具即可读写;默认角色 default、来源 model,不写入真实身份,且只有模型调用工具时才会写入。
HTTP 写入一段对话历史¶
POST /memory
{
"character": "assistant",
"source": "mobile",
"history": [
{ "role": "user", "text": "在吗" },
{ "role": "assistant", "text": "在的,你好" }
]
}
跨端一句话¶
POST /cross
{
"character": "assistant",
"from": "chat-app",
"to": "chat-channel",
"text": "我到家了"
}
需事先在 config.channels 里配置名为 chat-channel 的通道(类型与 URL 见 README 示例)。
配置 Slack / Telegram 等通道(片段)¶
- id: memory-hub
config:
channels:
team-slack:
type: slack
url: https://hooks.slack.com/services/...
GET /channels 可查看已配置通道与可用适配器。
适用场景与注意¶
适合谁:需要在同一台机器上为 AI 角色维护可分来源的记忆、做跨客户端收件箱、并把短消息投到自建 IM Webhook 的 DSH 用户;希望数据留在本机、并自行选择是否绑定本地或云端模型。
注意:
- 插件以当前 DSH 进程权限运行,安装前应阅读源码与 MIT 许可证,确认通道 URL、API Key 等敏感配置由自己保管。
- 本包不含任何个人数据、账号、路径或聊天记录;安装后只保存本客户端写入的数据。
- DSH 社区插件目录(SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系;安装方式以 README 为准,勿凭仓库名自行拼接未文档化的命令。
结尾¶
dsh-memory-hub 把「分角色分来源的记忆 + 快照恢复 + 本机 Inbox/Outbox + 常见 IM 适配 + 可选 AI 绑定」收在一个插件里,默认本地回环监听、无遥测,适合作为 DSH 生态里「记忆」类插件落地本机数据闭环。
- 社区目录页:https://www.skillhub.cn/plugins/shenmingsolar-01/dsh-memory-hub
- 源码与完整 API:https://github.com/shenmingsolar-01/dsh-memory-hub