SGME:让 DSH 记住你聊过的每一件事

前言

用 DeepSeek Harness(DSH)写代码、做方案、日常闲聊时,会话一关上下文就清零:昨天交代过的项目背景、偏好、踩过的坑,今天得从头再说一遍。换台机器、换一个 Agent,更是「第一次见面」。

DSH 生态里插件可以扩展能力。下面介绍 SGME(拾光记忆引擎,ShiGuang Memory Engine)——由 freehul 维护的记忆类插件,在 GitHub 上约 9 stars,MIT 许可证。它把对话沉淀为结构化记忆,在下次会话时按场景注入,并通过 memory_search 等工具供 Agent 主动检索。

这是什么

SGME 是一个自托管的记忆中枢:捕获你与 AI 的对话,提炼成带标签的记忆,在后续对话中按场景送回 Agent。数据留在本机(Python + SQLite),不依赖 GPU 或外部数据库。

作为 DSH 插件(npm 包名 dsh-sgme,当前版本 v0.1.1),它通过 Cordis SDK 接入 Harness:会话首步画像注入、memory_search / wiki_search 等工具、/sgme 命令、逐轮会话入库,以及会话结束后的自进化回写。与 SGME 服务本身解耦——插件负责桥接,记忆引擎需单独部署并启动。

核心功能

捕获、提炼、注入

工作流程分三步,全部自动:

  1. 捕获:对话保存为 L0 原始层(磁盘 Markdown,永久保留)
  2. 提炼:从原始对话提取标签化记忆(事实、偏好、项目状态、决策等),自动去重、合并、发现矛盾
  3. 注入:每次对话开始时,按场景挑选相关记忆注入——闲聊带身份与近况,编程带技术栈与项目上下文,不全量加载

画像注入走结构化 SQL 查询,README 说明其不调用大模型、零 token 成本。

DSH 侧暴露的能力

根据仓库 package.json 与 README,插件主要提供:

  • memory_search 工具:通过 DSH ToolRuntime 以自然语言查询记忆,返回有界结构化结果
  • Wiki 工具wiki_searchwiki_pageswiki_page
  • /sgme 命令:插件内命令入口
  • 逐轮入库与自进化:turn/end 触发经验回写

插件声明兼容 DSH 0.1.0-rc.6,以 harness-profile 协议集成,激活需重启 profile。

记忆引擎的其他能力(服务层)

以下由 SGME 服务提供,经插件或 MCP/HTTP 间接使用:

  • 记忆可溯源:每条记忆可追溯到原始对话
  • 多 Agent 共享:Hermes、DSH 等接入同一记忆池
  • 主动关怀:通过 care 信号让 Agent 在适当时机主动关心用户
  • 人格洞察:基于对话沉淀人格画像,每月校准
  • 统一检索:关键词 + 语义 + 标签三重融合,同时覆盖记忆池与知识库
  • 中文优化:针对中文对话的提炼与召回调优
  • 混合检索:BM25 + 向量 + 标签过滤,可不装向量库运行

安装与启用

SGME 分两层:先部署记忆服务,再安装 DSH 插件。

1. 部署 SGME 服务

需要 Python 3.11+。在 SGME 仓库根目录执行:

# 创建虚拟环境
python -m venv .venv
# macOS/Linux: source .venv/bin/activate

# 安装依赖
pip install -e .[dev]

# 启动 Server(默认端口 9910)
python -m sgme

正式使用建议在 config/.env 配置密钥:

SGME_ADMIN_KEY=<随机串>
SGME_AGENT_KEY=<随机串>
# 生成:python -c "import secrets;print(secrets.token_hex(32))"

不配置时使用内置默认 key,仅限本机首次体验;配置后默认 key 失效。可选模型 Key(智谱 ZHIPU_API_KEY、硅基流动 SILICONFLOW_API_KEY)用于提炼与向量检索,详见仓库 docs/guide/免费模型Key申请指南.md

2. 安装 DSH 插件

官方 README 给出的安装命令:

# 从 npm 安装(推荐)
dsh plugin --profile web add dsh-sgme

# 或从 GitHub 仓库安装
dsh plugin --profile web add github:freehul/sgme

启动 dsh 前,确保环境变量中 SGME 服务可见:

SGME_BASE_URL=...
SGME_AGENT_KEY=...
SGME_ADMIN_KEY=...

仓库提供 adapters/dsh/install.py 可自动注册 agent 并写入密钥,完整步骤见 adapters/dsh/README.md

典型用法

服务健康检查

Agent 或运维可先探测服务是否在线:

curl http://localhost:9910/v1/health

默认 HTTP 端口 9910,MCP 端口 9913(http://localhost:9913/mcp)。地址也可从 ~/.sgme/install.json 或环境变量 SGME_HTTP_URL / SGME_MCP_URL 读取。

在 DSH 会话中的行为

安装并配置密钥后,重启 DSH profile 激活插件。典型流程:

  1. 会话开始:插件自动注入与当前场景相关的画像记忆
  2. 对话中:Agent 可调用 memory_search 检索历史事实;涉及「之前/上次/还记得」类问题时,应先 search 再回答
  3. 每轮结束:当前轮次 append 落盘;会话结束触发 refine_trigger 异步提炼
  4. 主动关怀:Agent 可通过 SSE(GET /v1/events/stream)或 signal_pull 消费 care 信号并回执

Wiki 相关操作通过 wiki_searchwiki_pageswiki_page 工具完成;/sgme 命令提供插件内快捷入口。

MCP 接入自检

若 Agent 支持 MCP,连接后调用 agent_onboarding() 可获取工具清单与配置模板(版本标记 SGME-ONBOARDING-v2),确认无 403 或超时即接入成功。

适用场景与注意

适合谁

  • 长期使用 DSH 做开发或日常协作,希望跨会话、跨设备保留上下文
  • 同时运行多个 Agent(DSH、Hermes 等),需要统一记忆池
  • 重视数据本地化,愿意自托管 Python 服务

使用前注意

  1. 两层部署:仅装 DSH 插件不够,SGME 服务须先启动并可达(默认 localhost:9910
  2. 权限范围:插件声明权限为 harness:toolharness:commandnetwork:readsubprocessshellcredentials 均为 none。插件以当前 DSH 进程权限运行,安装前应阅读源码与 MIT 许可证,确认符合你的安全要求
  3. 版本兼容package.json 标明兼容 DSH 0.1.0-rc.6,升级 DSH 或插件前核对版本
  4. 密钥管理:生产环境勿依赖默认 key;SGME_AGENT_KEY / SGME_ADMIN_KEY 应妥善保管
  5. 模型 Key:记忆提炼依赖外部 LLM(主链智谱 GLM-4.7-Flash,备用 deepseek),向量检索可用硅基流动 BAAI/bge-m3;缺失时 /v1/healthmodel_config.missing_keys 会提示

结语

SGME 把「每次对话都是第一次见面」变成可沉淀、可检索、可按场景注入的长期记忆。对 DSH 用户而言,dsh-sgme 插件负责把 Harness 接到这台本地记忆引擎上——装好服务、配好密钥、装上插件,Agent 就能在下一轮对话里接着上次的话题继续。

羽毛球分组比赛记分
小程序二维码

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

小夜