前言¶
在 DSH 裏做多輪編碼或排查,上下文窗口會滿,換會話又容易丟「做到哪、結論是什麼」。有人靠導出整段會話再粘貼到新會話續寫,但導出裏工具輸出、鏈式思考佔很大篇幅,真正有用的往往是最後停在哪兒、下一步做什麼。官方也有面向 Hindsight 的 @vectorize-io/hindsight-coding-agents 插件,記憶走託管服務;若希望抽取、嵌入、檢索和知識頁都留在本機,只用自己已有的 LLM 密鑰,可以看社區插件 dsh-hindsight-local(維護者 dyrcjqlgcj,分類:記憶)。
下面介紹它是什麼、能做什麼,以及如何安裝與配置。
這是什麼¶
dsh-hindsight-local 在本機運行 Hindsight 記憶服務,並以 DeepSeek Harness 插件形式接入。心智模型與官方 coding-agents 插件相近:每個倉庫一個 bank、由 LLM 維護知識頁、按會話注入上下文;區別是自託管,除模型調用外不依賴託管記憶服務。
數據與推理密鑰留在本機;LLM 可使用 DeepSeek、OpenAI、Anthropic、Ollama 等已有配置。
核心功能¶
資料中明確的能力如下。
服務與 daemon¶
- 查找
uv已緩存的hindsight-api二進制,探測/health;未運行時以 detached 方式啓動,默認最多輪詢 240 秒直至就緒。 - 不隨插件打包 Python 環境,也不在會話內執行
uvx(首次安裝可能耗時數分鐘)。
會話注入與回寫¶
- 注入:每個會話一次,寫入該倉庫知識頁索引及若干召回事實,總長度受
injectMaxChars限制。 - 回寫:某輪對話進入 idle 後,將最近的用戶/助手消息 retain 進 bank,並抽取爲結構化事實。
十個工具¶
模型可用以下 hindsight_local_* 工具:搜索與閱讀頁面、召回事實、remember、reflect、查看狀態/日誌、啓停服務等。完整名單:
hindsight_local_status、_start、_stop、_logs、_search、_read、_recall、_remember、_reflect、_pages。
Handoff 快照(替代整段導出粘貼)¶
DSH「交接文檔」標籤頁對應的是整會話導出(含鏈式思考、工具參數與原始輸出)。插件在會話結束(disposed)時寫入 handoff snapshot:項目路徑、會話 id、本會話每條用戶請求(各 400 字符)、最終助手結論(800 字符),總長默認不超過 snapshotMaxChars(1500)。
- 同一會話的寫入共享
document_id = dsh-session:<session id>;快照標籤爲dsh-session+dsh-session-handoff,逐輪片段爲dsh-session+dsh-session-turn。 - 下一會話注入塊會帶「上次停在哪」:最多 3 條召回,每條 220 字符,不是全文。
- 可用
hindsight_local_recall("上次會話做到哪一步,下一步要做什麼")查看。 - 關閉:
handoffSnapshot: false。
注入說明要求把快照當背景、使用前再覈對,避免舊結論覆蓋當前用戶意圖。
與官方插件的關係¶
默認 bank 名、profile 與官方插件對齊,兩者可讀到同一套記憶;若同時啓用會重複注入上下文,應只保留其一。官方插件在 Windows 上會跳過依賴 which claude 的 daemon 探測;本插件不依賴該探測。
安裝與啓用¶
添加插件¶
安裝命令來自項目 README(路徑改爲你本機 clone 或下載後的目錄):
dsh plugin --profile desktop add /path/to/dsh-hindsight-local
添加後需重啓 DSH,插件在進程啓動時讀取配置。
當前 package.json 標註版本 0.3.0,許可證 MIT;要求 dsh >= 0.1.0-rc.6、node >= 20。
一次性準備 Hindsight 服務¶
插件不負責創建 Python 環境。先在本機執行:
uvx --from hindsight-embed@latest hindsight-embed profile create coding-agent \
--port 9077 \
--env HINDSIGHT_API_LLM_PROVIDER=deepseek \
--env HINDSIGHT_API_LLM_MODEL=deepseek-chat \
--env HINDSIGHT_API_LLM_BASE_URL=https://api.deepseek.com
將密鑰寫入 ~/.hindsight/profiles/coding-agent.env:
HINDSIGHT_API_LLM_API_KEY=sk-...
HINDSIGHT_API_EMBEDDINGS_PROVIDER=local
HINDSIGHT_API_PORT=9077
插件配置¶
各字段有默認值,按需覆蓋。優先級:插件 config → 進程環境變量 → profile env 文件 → 內置默認。
- id: hindsight-local
config:
apiUrl: http://127.0.0.1:9077
autoStart: true
profile: coding-agent
bankTemplate: 'coding-agent::{project}'
injectPages: true
recallLimit: 5
retainOnIdle: true
handoffSnapshot: true
snapshotMaxChars: 1500
dataDir: ''
offlineModels: true
dataDir 非空時,插件在拉起服務前會導出 UV_CACHE_DIR、HF_HOME、SENTENCE_TRANSFORMERS_HOME,便於把緩存放到其他盤;已有 ~/.pg0 仍需用倉庫內 scripts/relocate.mjs 遷移(支持 --dry-run)。
典型用法¶
- 完成上述 profile 與插件配置,重啓 DSH,打開目標倉庫會話。
- 會話開始時自動注入知識頁索引與召回事實;空閒時自動 retain 並抽取事實。
- 需要主動查記憶時,讓模型調用
hindsight_local_search、hindsight_local_recall等工具。 - 跨會話續作:依賴默認 handoff 注入,或顯式 recall 上次進度。
- 排查服務:
hindsight_local_status、hindsight_local_logs;必要時_start/_stop。
README 說明:不要用 hindsight-embed daemon start 作爲就緒依據——其 180 秒超時在冷啓動(約 450 MB 依賴與模型下載,實機約 3–5 分鐘)下易誤報失敗;本插件直接啓動 hindsight-api 並自行輪詢 /health。
適用場景與注意¶
適合:希望長期記憶與嵌入完全本地化、已自備 LLM API、在同一倉庫多會話協作且不想每次粘貼整段導出的 DSH 用戶。
注意:
- 插件以當前 DSH 進程權限運行;安裝前請自行查看 GitHub 源碼 與 MIT 許可證,確認可接受的行爲與依賴。
- Windows:插件會注入
PYTHONUTF8=1等以規避 GBK 控制台問題;首次從 Hugging Face 拉模型若遇證書錯誤,需按 README 導出 Windows 根證書到~/.hindsight/winroot.pem。 - DSH 生態是「一切皆插件」;社區目錄 SkillHub 插件頁 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-hindsight-local 把 Hindsight 記憶棧放在本機:daemon 管理、十項本地工具、會話注入與 idle 回寫,並用 handoff 快照銜接會話,減少整段導出粘貼的成本。詳情與腳本見 GitHub README;在 DSH 中通過本地路徑 dsh plugin add 啓用即可。
- 目錄頁:https://www.skillhub.cn/plugins/dyrcjqlgcj/dsh-hindsight-local
- 倉庫:https://github.com/dyrcjqlgcj/dsh-hindsight-local