memory-tree
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
dsh-memory-tree
DSH(DeepSeek Harness)记忆树插件 —— 让 agent 拥有「主线记忆永不丢、支线过程可清理、闲聊完全隔离」的长期记忆。
DSH 原生是线性聊天上下文。本插件在 DSH 之上实现一套记忆树架构,把对话沉淀为可版本化、可清理、可隔离的结构化记忆。以零依赖 MCP server 形式运行(用 DSH 已有的、验证可用的 MCP 客户端加载),无需任何第三方 SDK 或联网安装。
为什么需要它
线性上下文会丢约束:长会话里早期定下的硬性约束/决策,会被滚动摘要慢慢"吃掉"。
试错污染主线:探索性追问、踩坑过程混进主线,让每次推理都背着噪声。
闲聊挤占 token:无关闲聊和项目记忆混在一起。
本插件用三件套解决:隔离路由 + 记忆树(Root/Branch)+ Checkpoint。
Related MCP server: HYTHE
核心架构
用户消息
│
▼
[隔离路由] ── 命中闲聊 ──▶ 闲聊分区(激进压缩,细节可丢,不写主线)
│
└── 命中项目关键词 ──▶ 绑定到 项目 Root 节点
│
┌─────────────┴─────────────┐
主线 (Root Node) 支线 (Branch Node)
结构化 state(约束/决策/成果/待解) 每次临时追问/试错自动新开
持久化到资料库,不滚动摘要 独立上下文,用完归档隔离
│ │
│ mt_merge │
└──── 提炼结构化结论 ◀──────────┘
(原始聊天不进 token)
│
mt_checkpoint(里程碑)
│
冻结为复盘文档 → 新基线1. 隔离路由(简单规则)
对用户消息做意图分类:
命中闲聊词(你好/谢谢/天气…)→ 路由到闲聊分区,不写入项目主线;
命中项目关键词(代码/bug/调研/架构/部署…)→ 绑定到对应项目根节点。
闲聊分区使用激进压缩策略(阈值很低、频繁摘要、细节可丢);项目主线不走这条路径。
2. 记忆树(替代默认单一线性上下文)
Root Node(主线):结构化 state(JSON / 结构化 md),含核心约束、关键决策、成果、待解问题,持久化到资料库。不使用滚动摘要——靠结构化 state + 最近少量主线对话,避免摘要漂移吃掉硬性约束。
Branch Node(支线):每次临时追问、试错自动新开分支,有自己独立上下文。分支原始日志默认不注入主线的上下文窗口。
分支可 attach 到主线,但原始日志不进 token。
3. Merge(手动触发,合并入主线、清理支线)
指令:mt_merge(branchId, summary)。插件自动:
读取支线全部对话,提炼结构化结论(由 LLM 预提炼
summary,或插件启发式抽取);追加到主线 state(只存结论,不复制原始聊天);
标记该支线为归档,不再参与后续上下文注入;原始事件日志保留备查,但不再进 token。
4. Checkpoint(里程碑复盘)
指令:mt_checkpoint(title, review)。插件:
冻结当前主线 state,导出一份复盘文档存入项目资料库;
主线把这份复盘文档作为新基线,清空本阶段所有支线引用与最近对话日志。
5. 上下文策略差异(关键)
分区 | 压缩策略 | 说明 |
闲聊 | 激进压缩 | 阈值低、频繁摘要、细节可丢 |
支线 | 普通压缩 | 用完归档隔离 |
主线 | 不滚动摘要 | 结构化 state + 最近少量主线对话;靠 checkpoint 快照做版本管理 |
安装到 DSH
方式 A:直接加载(已在本机验证)
把本插件目录放到任意位置(如
~/.dsh/memory-tree-plugin)。在你的
cordis.patch.yml(profile 层)的mcp-manager.config.servers下加:- id: mcp-manager config: servers: memory-tree: transport: stdio command: '<你的 node.exe 绝对路径>' args: - '<插件目录>/src/server.js' enabled: true提示:DSH GUI 启动进程不继承 shell PATH,请务必用绝对路径指向 node 与 server.js。
把
system-instruction.md的内容粘贴进 DSH 的「人设 / 自定义指令」。重启 DSH。对话工具列表应出现
mcp__memory-tree__*(或mt_*)。
方式 B:作为 DSH 插件包
本仓库 package.json 已带 dsh 元数据块(含 bundle.patch 与兼容 0.2.2-rc.2 的版本闸门),可被 DSH 插件市场/CLI 识别为可分发包。具体加载方式取决于你使用的 DSH 插件分发渠道。
使用(在 DSH 对话里)
装好并重启后,agent 会自动:
你每次发言 →
mt_route做分类与隔离路由,把主线上下文作为背景;深入某话题 →
mt_branch("名词调研")开支线折腾;得出结论 →
mt_merge(branchId, "结构化结论…")并入主线;阶段收尾 →
mt_checkpoint("阶段1复盘")冻结为新基线。
你也可以手动调用任意 mt_* 工具。完整命令见 system-instruction.md 或调用 mt_help。
数据存储
~/.dsh/memory-tree/
_config.json # 活跃项目、路由词配置
<项目>/
mainline.state.json # 结构化 state(约束/决策/成果/待解)
mainline.md # 人类可读主线状态
mainline.events.jsonl # 最近少量主线对话(仅注入用,定期裁剪)
branches/<id>/
meta.json # 支线元信息(status: active|archived)
events.jsonl # 支线原始事件日志(保留备查,不进 token)
conclusion.md # 合并时提炼的结构化结论
checkpoints/<id>.md # 冻结的复盘文档(新基线)
chat/chat.events.jsonl # 闲聊分区(激进压缩)可用 MEMORY_TREE_ROOT 环境变量改根目录。
工具清单
工具 | 作用 |
| 命令手册 |
| 当前项目/主线状态/活跃支线/路由词 |
| 切换激活项目(记忆树根节点) |
| 意图分类 + 隔离路由 + 返回主线上下文 |
| 新开支线,返回 branchId |
| 支线合并入主线并归档 |
| 里程碑复盘,冻结为新基线 |
| 取主线上下文注入对话 |
| 闲聊写入隔离分区(激进压缩) |
| 列出支线 |
开发 / 测试
# 冒烟测试(自动拉起 server 走完整流程)
node test/smoke.mjs
# 手动以 MCP 客户端连接(stdio)
MEMORY_TREE_ROOT=/tmp/mt node src/server.js纯 Node 标准库、零运行时依赖,Node ≥ 18 即可。
License
MIT © dsh-memory-tree contributors
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Correction-first memory for AI agents. Run it locally or connect any MCP agent to the hosted server.
1377One memory, every AI. A shared, user-owned markdown memory your AI clients read and write over MCP.
Persistent, inspectable memory for AI agents with lineage, correction, and a hosted MCP endpoint.
Team memory for AI coding agents and code reviews, reviewed by humans and served over MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA local-first MCP server for AI programming branch notes and mainline decision logging, supporting branch management, summary merging, and Markdown export with optional Git-mode for isolated branch conversations.3MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that lets multiple AI coding agents share state, preserve context across sessions, and coordinate via a knowledge graph, messaging, and branch-preserving checkpoint/resume with conflict handling.63 npm1Apache 2.0
- AlicenseNot gradedqualityCmaintenanceLocal-first MCP server that persists AI coding agent memory and session context, enabling seamless resume across sessions with searchable memories and checkpoints.6 npm1MIT
- AlicenseNot gradedqualityDmaintenanceMCP server providing persistent, local-first memory for AI agents via Markdown files in a git repo, with search, branching, and auditability.11 npm2MIT