前言¶
用 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