OpenViking
volcengine
Self-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:GLFzr/dsh-hermes-memory-bridge
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
把 DeepSeek Harness(DSH)的会话压缩总结,自动桥接进 Hermes Agent 的永久记忆。
DSH(DeepSeek Harness)是 DeepSeek 的开源 agent harness("一切皆插件"),每个项目独立会话;Hermes Agent(Nous Research)是自带四层记忆与学习闭环的自进化 agent。本工具让两者互补:
<compacted-summary>)是天然的"项目快照"DSH 会话(多帧 zstd JSONL)
│ 内置 dsh-compaction-basic 自动/手动触发压缩
▼
compaction/summary 事件(含 <compacted-summary> 总结块)
│ watcher 每 60 秒轮询(bridge-state.json 去重)
▼
dsh-hermes-bridge.mjs
├─ mode=file:总结全文 → 项目 AGENTS.md「DSH 记忆总结」节
│ + 指针行 → Hermes MEMORY.md(2200 字符预算控制)
└─ mode=chat(推荐):hermes -z 让 Hermes 自行蒸馏进记忆
(失败自动回退 file 模式,保证不丢)
▼
Hermes:MEMORY.md 蒸馏行 + 会话记录(session_search 可检索)
+ 项目 AGENTS.md 归档 → 下次会话自动注入,跨项目"记得"DSH 做过的一切
# 依赖:Node.js ≥ 22.12(node:zlib 自带 zstd)、本机已安装 hermes CLI
# 单次扫描(调试)
node dsh-hermes-bridge.mjs --once --mode chat
# 常驻轮询(60s 间隔)
node dsh-hermes-bridge.mjs --daemon --mode chat
# 备选模式:不调用 hermes,纯文件路由(AGENTS.md + MEMORY.md 指针)
node dsh-hermes-bridge.mjs --daemon --mode file
| 变量 | 默认值 | 说明 |
|---|---|---|
DSH_HOME |
~/.dsh |
DSH 数据目录(会话在 $DSH_HOME/sessions) |
HERMES_HOME |
~/.hermes |
Hermes 数据目录 |
HERMES_EXE |
win32: $HERMES_HOME/hermes-agent/venv/Scripts/hermes.exe,其他: hermes |
hermes 可执行文件 |
HERMES_MEMORY |
$HERMES_HOME/memories/MEMORY.md |
Hermes 记忆文件 |
BRIDGE_STATE |
$DSH_HOME/bridge-state.json |
去重状态文件 |
BRIDGE_LOCK |
$DSH_HOME/bridge-daemon.lock |
daemon 锁文件 |
| 模式 | 谁写记忆 | 用途 |
|---|---|---|
| B · file | 桥接器自己(全文进 AGENTS.md,指针进 MEMORY.md) | 手动/验证,无 LLM 开销 |
| A · watcher | 轮询自动化机制 | 与 B/C 组合使用 |
| C · chat(推荐) | Hermes 自己决定(蒸馏、修剪、归档) | 生产终态;MEMORY.md 满时 Hermes 会自我管理预算 |
session.jsonl.zstd),按帧魔数拆分逐帧解压;也兼容明文 .jsonltype === "compaction/summary" 且带 data.summary 的事件,提取 text 块并剥掉 <compacted-summary> 标签(会话文件 + compactionId) 记录在 BRIDGE_STATE,重启不重放cwd 字段定位工作区,各项目 AGENTS.md 独立维护(互不污染),每个项目保留最近 5 条仓库自带测试工具(均为合成事件,格式与 dsh-compaction-basic 写入 schema 一致):
make-test-event.mjs — 生成单个格式真实的压缩事件gen-deep-tests.mjs — 生成深度测试事件集(真实 zstd 帧 / 跨项目 / 回退 / 回读)scan-compactions.mjs — 只读扫描 DSH 会话里的压缩总结(不写任何东西)已通过的验证路径:
| 测试 | 内容 | 结果 |
|---|---|---|
| T1 | 真实 zstd 多帧文件 + 追加帧 → 解码提取 | ✅ |
| T2 | 两个项目事件 → 各自 AGENTS.md 隔离 | ✅ |
| T3 | hermes 不可用 → 自动回退 file 模式 | ✅ |
| T4 | 吸收 → 全新 Hermes 会话回读测试标记(引用 MEMORY.md 与 AGENTS.md 两个来源) | ✅ |
MEMORY.md 官方上限 2200 字符;已满时 file 模式的指针行会跳过(chat 模式无此问题,Hermes 自己会修剪)hermes -z 每次吸收消耗一次 LLM 调用(本机默认 DeepSeek V4 Pro)CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: memory-bridge。