前言¶
用 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 服务本身解耦——插件负责桥接,记忆引擎需单独部署并启动。
核心功能¶
捕获、提炼、注入¶
工作流程分三步,全部自动:
- 捕获:对话保存为 L0 原始层(磁盘 Markdown,永久保留)
- 提炼:从原始对话提取标签化记忆(事实、偏好、项目状态、决策等),自动去重、合并、发现矛盾
- 注入:每次对话开始时,按场景挑选相关记忆注入——闲聊带身份与近况,编程带技术栈与项目上下文,不全量加载
画像注入走结构化 SQL 查询,README 说明其不调用大模型、零 token 成本。
DSH 侧暴露的能力¶
根据仓库 package.json 与 README,插件主要提供:
memory_search工具:通过 DSH ToolRuntime 以自然语言查询记忆,返回有界结构化结果- Wiki 工具:
wiki_search、wiki_pages、wiki_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 激活插件。典型流程:
- 会话开始:插件自动注入与当前场景相关的画像记忆
- 对话中:Agent 可调用
memory_search检索历史事实;涉及「之前/上次/还记得」类问题时,应先 search 再回答 - 每轮结束:当前轮次 append 落盘;会话结束触发
refine_trigger异步提炼 - 主动关怀:Agent 可通过 SSE(
GET /v1/events/stream)或signal_pull消费 care 信号并回执
Wiki 相关操作通过 wiki_search、wiki_pages、wiki_page 工具完成;/sgme 命令提供插件内快捷入口。
MCP 接入自检¶
若 Agent 支持 MCP,连接后调用 agent_onboarding() 可获取工具清单与配置模板(版本标记 SGME-ONBOARDING-v2),确认无 403 或超时即接入成功。
适用场景与注意¶
适合谁
- 长期使用 DSH 做开发或日常协作,希望跨会话、跨设备保留上下文
- 同时运行多个 Agent(DSH、Hermes 等),需要统一记忆池
- 重视数据本地化,愿意自托管 Python 服务
使用前注意
- 两层部署:仅装 DSH 插件不够,SGME 服务须先启动并可达(默认
localhost:9910) - 权限范围:插件声明权限为
harness:tool、harness:command、network:read;subprocess、shell、credentials均为none。插件以当前 DSH 进程权限运行,安装前应阅读源码与 MIT 许可证,确认符合你的安全要求 - 版本兼容:
package.json标明兼容 DSH0.1.0-rc.6,升级 DSH 或插件前核对版本 - 密钥管理:生产环境勿依赖默认 key;
SGME_AGENT_KEY/SGME_ADMIN_KEY应妥善保管 - 模型 Key:记忆提炼依赖外部 LLM(主链智谱 GLM-4.7-Flash,备用 deepseek),向量检索可用硅基流动 BAAI/bge-m3;缺失时
/v1/health的model_config.missing_keys会提示
结语¶
SGME 把「每次对话都是第一次见面」变成可沉淀、可检索、可按场景注入的长期记忆。对 DSH 用户而言,dsh-sgme 插件负责把 Harness 接到这台本地记忆引擎上——装好服务、配好密钥、装上插件,Agent 就能在下一轮对话里接着上次的话题继续。
- 目录页:SkillHub — freehul/sgme
- 源码与文档:GitHub — freehul/sgme