dsh-persona-gateway: OpenAI-Compatible API Gateway with Persona and Long-term Memory

前言

在 DeepSeek Harness(DSH)里接 AstrBot、Cline、Continue、iShellPro 等客户端时,常见情况是:每个客户端各自写 system prompt,对话记忆也不互通——在聊天机器人里聊过的偏好,换到 IDE 插件里往往要从头再说一遍。

dsh-persona-gateway 把「人格 + 长期记忆」放到本机网关层:客户端只需改 base URL 和二级 Key,同一套人格与记忆可以跟着你在不同工具之间复用。下面介绍它的定位、能力与安装用法;事实以仓库 README 与 package.json 为准。

这是什么

dsh-persona-gateway 是 DSH 社区插件(维护者 1292858901),在 SkillHub 分类为「工作流」。插件在本机起一个 OpenAI 兼容(及部分 Anthropic 兼容)端点,上游默认指向 DeepSeek API;人格与记忆状态集中在 ~/.dsh/persona/ 目录,便于备份与迁移。

当前 package 版本为 0.8.0,许可证 MIT,运行环境要求 DSH 0.2.0 及以上。

核心功能

人格

人格以稳定前缀形式叠加在客户端自带 system prompt 之前,不覆盖客户端原有提示词。内容来自 ~/.dsh/persona/persona.md,可在 DSH 设置面板中维护。

记忆

  • 存储:~/.dsh/persona/memory.jsonl,一行一条,便于 diff。
  • 注入:每轮按相关性选取最多 4 条、合计 900 字符以内,避免整库塞进上下文。
  • 抽取:对话结束后由 AI 判断是否值得写入;默认开启「自动记忆」,关闭后不再抽取。
  • 节流:一分钟内最多抽取一次;寒暄与过短回答会跳过。
  • 上限:默认 300 条;超出时触发 AI 压缩,仍超则淘汰最旧条目;面板提供「压缩」按钮合并重复、删除过时项(置顶条目不参与压缩)。
  • 导入导出:支持 JSON 包、裸数组或原始 jsonl,自动去重。

检索方式为关键词打分(中文二元组 + 英文词),不依赖 embedding。

网关与安全

  • 客户端使用面板生成的二级 Key(sk-l2-…,只显示一次);库内仅存 SHA-256 哈希,面板仅展示前缀与尾号。
  • 官方 DeepSeek API Key 写在本地 config.json(权限 0600),用于网关调用 api.deepseek.com;不能用 DSH 登录凭证代替,否则上游会 401。
  • 控制面路径 /persona-gw/* 仅允许本机回环访问;非回环请求会被拒绝。

安装与启用

需要已安装 DSH 0.2.0+。README 推荐仅通过 git 方式安装,勿对同一 profile 用 install_bundle 指向本地目录(易引发 pnpm ERR_PNPM_EPERM;若已踩坑见仓库 TROUBLESHOOTING.md)。

安装命令(与插件市场按钮一致):

dsh plugin --profile desktop add github:1292858901/dsh-persona-gateway

装好后在 DSH 打开 设置 → 人格网关(「插件」页同一张卡片进入同一面板)。

典型用法

  1. 填官方 Key:在面板填写 DeepSeek API Key,点「测试连通性」确认可用。
  2. 创建二级 Key:生成供客户端使用的 sk-l2-…,妥善保存(只显示一次)。
  3. 改客户端配置:
    - Base URL:面板上的「客户端地址」,例如 http://192.168.0.58:8787/v1
    - API Key:上一步的二级 Key
    - 模型:persona(推荐,走网关配置的模型)
  4. 验证:客户端发一句话,在面板日志中查看是否出现类似 request … 注入 N 条记忆 的记录。

网关配置项(面板)

项 说明
客户端地址 留空则按监听地址自动生成;走反代或隧道时填对外地址
监听地址 127.0.0.1 仅本机;0.0.0.0 允许局域网(需放行防火墙端口)
端口 默认 8787,改动后即时重启监听
上游地址 默认 https://api.deepseek.com/v1
记忆上限 默认 300 条
自动记忆 关闭后不再抽取新记忆

Anthropic 协议客户端

Claude Code 等走 Anthropic Messages 的客户端可透传到 DeepSeek Anthropic 兼容端点。示例(将地址与 Token 换成你的值;ANTHROPIC_BASE_URL 结尾不要加 /v1):

export ANTHROPIC_BASE_URL=http://192.168.0.58:8787
export ANTHROPIC_AUTH_TOKEN=sk-l2-...

人格注入 system,记忆注入最后一条 user 消息。

适用场景与注意

适合谁:需要在多个 OpenAI 兼容(或部分 Anthropic 兼容)客户端之间共享同一套人格与长期记忆、且愿意在本机跑一层网关的 DSH 用户。

数据与隐私:记忆为明文,可能含服务器地址等敏感信息,导出或分享前请自行检查。记忆不能跨设备自动同步,迁移靠导出/导入或拷贝 ~/.dsh/persona/ 目录。

已知限制(摘自 README):Anthropic 侧仅从 text_delta 收集文本用于记忆抽取,tool_use 原样透传不参与;检索非语义向量,相关性依赖关键词规则。

运行权限:插件随当前 DSH 进程与用户权限运行,可访问本机配置与记忆文件。安装前建议在 GitHub 阅读源码与 MIT 许可证,确认符合你的安全策略。

DSH 生态理念是「一切皆插件」;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-persona-gateway 把人格与长期记忆从各客户端里抽到网关层,换 base URL 即可在多工具间复用同一状态。进一步了解与安装:

  • 目录页:https://www.skillhub.cn/plugins/1292858901/dsh-persona-gateway
  • 源码与文档:https://github.com/1292858901/dsh-persona-gateway
羽毛球分组比赛记分
小程序二维码

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

Xiaoye