dsh-plugin: Native OpenViking memory for DeepSeek Harness (automatic session capture + memory tools + profile injection) #1436
Replies: 5 comments
Update (v0.2.0) - memory is now a pure global capability + experience closed-loopThanks to the research and live verification since v0.1.0:
Measured numbers are in Repo: https://github.com/zouyuanqing/dsh-memory-openviking (topic |
Update (v0.3.0) - per-input targeted injection is liveImplemented the "inject relevant memory BEFORE each turn" layer, verified end-to-end in real sessions: Mechanism (all on the host plane, every preset):
Bugs found & fixed while verifying in real sessions (all unit-tested):
Measured overhead per turn: one local context search (~1.1s, embedding on Ark) - budgeted, cached, and silently skippable. Repo: https://github.com/zouyuanqing/dsh-memory-openviking (topic |
v0.4.0 — durability & safety hardening(独立代码审查 S1–S4 / M1–M9 / E1–E5 / A1–A4 全量修复)Tag: 修复摘要P0 数据正确性
P1 一致性/资源/安全
P2 工程
P3 评测方法学
两个值得社区注意的实测发现(0.4.13)
另:OpenViking 记忆文件删除不可恢复(快照层不含记忆文件、无 trash)—— |
|
Saw this while researching the same area — cross-linking a related idea I just opened: #5333 (#5333) asks for DSH to natively auto-inject a user's own It's adjacent but not the same as this one: #1436 targets a native memory backend (automatic session capture + memory tools + profile injection), while #5333 is about giving the user's existing markdown memory convention a first-class load point — so it isn't only picked up because an AGENTS.md rule happens to point to it. Flagging in case you want the two to be linked/consolidated. |
Uh oh!
There was an error while loading. Please reload this page.
What
A community
dsh-pluginthat turns OpenViking (volcengine/OpenViking, self-evolving context database) into native long-term memory for DeepSeek Harness - no separate plugin framework, no second persistence layer. Two packages, two rows in the host composition, works for every agent preset:@deepseek-ai/dsh-memory-openviking(host plane): publishes thememoryservice and automatically captures sessions - bufferssession/event(user/assistant surface messages) and drains at the awaitedsession/flushdurability checkpoint into OpenViking (batchAddMessages? asynccommitSession, server-side LLM distillation into preferences/entities/events). Failure-isolated: a dead server never blocks the session loop.@deepseek-ai/dsh-tool-memory(global registration): five thin tools (memory_write/recall/search/profile/forget) plus an automatic<memory_profile>prompt section (session working-memory overview + cross-session recalled preferences/entities/events; 1200-char budget, 5-min cache, synchronous provider with async refresh - prompt assembly never blocks on network).Repo: https://github.com/zouyuanqing/dsh-memory-openviking (topic
dsh-plugin, tag v0.1.0, MIT).Design notes (what we verified against the live runtime)
$DSH_HOME/cordis.patch.yml) so memory is infrastructure, not a per-preset option - globaltools.register/systemPrompt.sectionare visible to every scope unless a preset explicitly restricts global tools (none shipped does).@openviking/sdk0.1.0find/search(list mode) cannot return extracted memory leaves;POST /api/v1/search/search {mode:"context"}is the modern equivalent of the deprecated/api/v1/search/recalland returns the flat<memory>block suitable for injection (see docs/sdk-0.1.0-live-notes.md).actorPeerId(X-OpenViking-Actor-Peer) +peerScopeare wired, but OpenViking 0.4.13 dev mode has no peers (verified:viking://user/default/peersis empty), so it is a production-multi-tenant switch.Measured
LoCoMo-style synthetic eval (scripts in the repo): 91.7% fact-level recall (short sessions), 77.8% (40-turn sessions), cross-session & temporal 100%; 58.9% token compression per long session (memory representation vs full transcript, same heuristic as the harness token meter).
Questions for the community
memoryservice contract (write/recall/search/profile) so backends other than OpenViking can plug in?All reactions