dsh-memory-hub:多端 AI 角色的本机记忆与跨端收发

前言

在 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 用户;希望数据留在本机、并自行选择是否绑定本地或云端模型。

注意:

  1. 插件以当前 DSH 进程权限运行,安装前应阅读源码与 MIT 许可证,确认通道 URL、API Key 等敏感配置由自己保管。
  2. 本包不含任何个人数据、账号、路径或聊天记录;安装后只保存本客户端写入的数据。
  3. 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜