dsh-unified-agent-memory

memorytested: passnpmMIT

One shared Obsidian vault for every agent: dependency-free Python core (search/promote/adjudicate/forget), vault template, dsh plugin (memory_search/show/submit/status).

下载量 / Downloads
2,573
依赖体积 / node_modules
11.12 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-unified-agent-memory

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

<div align="center">

<a href="docs/images/logo.jpg"><img src="docs/images/logo.jpg" alt="unified-agent-memory logo" width="320"></a>

🧠 unified-agent-memory

Unified Fleet-Wide Agent Memory System for DeepSeek Harness & Multi-Agent Runtimes

跨 Agent 统一持久化记忆系统 — 基于 Obsidian Vault 存储规范与 SQLite FTS5 本地索引的知识生命周期管理基座

![npm version](https://www.npmjs.com/package/dsh-unified-agent-memory)

![License: MIT](LICENSE)

![Python Stdlib](#)

![Obsidian Native](#)

![Search Engine](#)

[产品定位](#-产品定位与问题定义) • [核心优势](#-核心技术优势) • [存储结构](#-obsidian-vault-存储结构规范) • [部署](#-agent-全流程自动部署流程) • [快速开始](#-命令行快速体验-manual-quick-start) • [Standalone](#-没有-hermes--任何-agent-运行时怎么办-standalone--no-hermes-required)

</div>


📌 产品定位与问题定义

传统 Agent 记忆插件多数绑定于特定的 Agent 运行时(Single-Agent Scope),存储空间与会话相互隔离,缺乏统一的状态持久化与跨代理知识共享能力。

unified-agent-memory 为多 Agent 舰队提供统一的知识管理基座:dsh、Codex、Claude Code 与 Hermes 等多个独立代理共享同一 Obsidian Vault 知识仓库,配合纯 Python 标准库核心与 SQLite FTS5 本地索引,构建涵盖知识摄取 (Ingestion)、晋升 (Promotion)、冲突裁决 (Adjudication)、衰减遗忘 (Decay/Retention) 的全闭环生命周期管理系统。核心与 DSH 适配层以单个包发布,职责与写入边界见 [docs/DSH-MEMORY-ADAPTERS.md](docs/DSH-MEMORY-ADAPTERS.md)。


🚀 核心技术优势

  • 统一单一真理来源 — 全 Fleet 代理共享一套 Markdown 知识库,Obsidian 直接可读、可审、可改。
  • 纯 Python 标准库核心 — core/ 零第三方依赖,SQLite FTS5 本地索引按 Vault 隔离,毫秒级检索,数据不出本机。
  • 三路混合检索 — lexical(FTS5,含中英文 bigram)、语义向量、概念图谱;加权 RRF,可选 Token 预算裁剪。
  • 完整生命周期管线 — 收件箱暂存 → Promoter 审核晋升 → 冲突裁决 → 版本化取代 → Forgetter 衰减归档,全程可逆、原子锁并发安全。
  • 自动召回(dsh 内置) — 每轮对话开始前自动判断是否值得查记忆,命中就注入 <memory-data> 上下文,模型不必记得调工具。
  • 提示词隔离与凭据脱敏 — 检索输出强制 <memory-data> 包装;凭据形状的行整行拒绝落盘,脱敏只在 digest 输入与检索输出侧;OneDrive 等同步冲突副本不入索引。
  • 升级自愈 — 插件启动时自动核对 CLI shim、各 Agent 托管段与 vault 模版,只补不覆盖、改前备份、失败下次重试(见 [docs/DEPLOY.md › Upgrading](docs/DEPLOY.md#upgrading))。

⚖️ 系统特性对比 (Feature Matrix)

特性维度 · 🧠 unified-agent-memory · ❌ 单 Agent 存储插件 (dsh-mnemon 等) · ❌ 外部向量桥接器 (sgme 等)

跨 Agent 共享粒度 · 全 Fleet 共享 (dsh/Codex/Claude/Hermes) · 强绑定单一 Harness 运行时 · 依赖集中式向量数据库中转

核心组件依赖 · 纯 Python 标准库,无第三方依赖 · 依赖 Host 宿主插件环境 · 需要部署额外的数据库中间件

生命周期控制能力 · 包含 摄取/晋升/裁决/遗忘 全链路 · 通常仅具备 存储+召回 基础功能 · 仅实现向量空间映射

知识可视化与可介入性 · Obsidian 原生 Markdown,人类直接可读 · 数据库黑盒 / 私有 JSON 格式 · 向量数据结构不可直观校验

安全审计与防护机制 · 标签隔离包装 + 凭据正则自动脱敏 · 依赖上层应用手工干预 · 易在向量库中泄露明文凭据


📂 Obsidian Vault 存储结构规范

系统自动在指定目录生成标准化 Obsidian Vault 存储层级。事实总库位于 50-Agent-Context/:

50-Agent-Context/
├── 上下文索引.md          # 话题 → 文件映射表(入口)
├── 我的偏好摘要.md         # L3 用户画像:偏好/风格/语言
├── 常用路径与环境.md       # L3 画像:路径/版本/环境/服务器
├── 工程执行规则.md         # L3 画像:工程规则/验证红线
├── UI审美准则.md           # L3 画像:界面与设计偏好
├── 工具可用性检查.md       # L3 画像:工具/服务状态
├── Codex-Claude-Hermes协作规则.md  # L3 画像:多 Agent 协作边界
├── Agent提交区/           # 写入口:<agent>-<时间戳>.md(唯一写入通道)
│   └── 已处理/            # 晋升后归档留痕
├── 情境信息/              # L2:待晋升清单 / 冲突待裁决 / 已裁决 / 未归类
├── 记忆遗忘区/            # 衰减降级(可逆,不删除)
├── 会话归档/              # L0:脱敏会话历史
└── Hermes会话自动归档/     # L0:Hermes 每日会话归档
记忆数据库(派生副本)在 ~/.unified-memory/index-<vault-hash>.db:docs / FTS5 /
memories(逐行记忆,带类型/重要性/版本/来源)/ embeddings(向量,可选)/ 图谱 / 审计。

🏗️ 知识生命周期控制流

提交 → 脱敏 → 收件箱 → 索引 → Promoter 审核 →(无冲突)晋升 canonical /(有冲突)裁决队列 → 衰减遗忘。完整流程图与逐步说明见 [docs/ARCHITECTURE.md › Lifecycle](docs/ARCHITECTURE.md#lifecycle)。


🤖 Agent 全流程自动部署流程 (Agent-Driven Automated Deployment)

部署工作完全由 AI Agent (DSH) 主导并自动执行,无需手动修改规则文件:

1. 挂载插件:dsh plugin --profile web add dsh-unified-agent-memory

2. 状态感知:新会话调用 memory_status / memory_setup——memory_setup 先返回部署计划(建/复用哪个 vault、改哪些指令文件),确认后才动手。

3. 全自动装配:DSH 按 [docs/AGENT-DEPLOY.md](docs/AGENT-DEPLOY.md) 任务书完成 vault 初始化、core 安装、各 Agent 指令文件托管段注入(幂等 + 自动备份),并以 selfcheck 收尾。部署决策矩阵(主控 Agent / 索引模式 / 晋升模式 / 接入范围)见任务书 [Step 0](docs/AGENT-DEPLOY.md#5-部署流程按顺序执行一步一验)。

非 DSH 环境部署:复制 [docs/AGENT-DEPLOY-PROMPT.md](docs/AGENT-DEPLOY-PROMPT.md) 中的 Prompt 发送给任意 AI 编码代理即可触发全自动部署。

💻 命令行快速体验 (Manual Quick Start)

# 1. 克隆仓库并安装 Core
git clone https://github.com/Noelune/unified-agent-memory.git && cd unified-agent-memory
pip install -e ./core

# 2. 初始化 Vault 模版结构
python setup/setup.py init --vault ~/Documents/AgentMemory

# 3. 提交与检索知识测试
memory submit "staging 服务器环境绑定在 127.0.0.1:8080" --agent alpha
memory search "staging 服务器"

# 4. 执行 Promoter 归纳与应用
python -m unified_memory.promoter --review
python -m unified_memory.promoter --apply

新事实与既有事实冲突时默认由 Agent 先裁决(memory decide / memory advise),判不了才轮到人——命令与四种裁决的含义见 [docs/DEPLOY.md › Conflicts](docs/DEPLOY.md#conflicts--the-agent-decides-first-you-get-asked-only-when-it-cant)。

完整指南:[docs/DEPLOY.md](docs/DEPLOY.md) · 系统架构:[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) · 安全文档:[docs/SECURITY.md](docs/SECURITY.md)


🚫 没有 Hermes / 任何 Agent 运行时怎么办?(Standalone — no Hermes required)

核心完全不依赖 Hermes 或任何 Agent 运行时——vault、inbox、promoter、forgetter、SQLite FTS5 索引都是纯 Python 标准库,直接当命令行工具用即可:

# 一个完整的"人肉"工作流,无需任何 agent:
python setup/setup.py init --vault ~/Documents/AgentMemory   # 1. 初始化 vault
memory submit "the build server is at 127.0.0.1:8080" --agent you   # 2. 写一条事实
memory search "build server"                                # 3. 检索(FTS5 本地索引)
python -m unified_memory.promoter --review                   # 4. 生成待晋升清单
python -m unified_memory.promoter --apply                    # 5. 晋升进 canonical
python setup/setup.py cron --vault ~/Documents/AgentMemory   # 6. 定时:每日晋升+每周遗忘,错过自动补跑

对接你自己的运行时(不一定是 Hermes)只需要三件事:

1. 写:调 memory submit(或 dsh 插件的 memory_submit)。

2. 定期晋升(dsh 默认主导,需要 Agent 参与,不是裸脚本):setup.py cron 一键注册每日晋升与每周遗忘的定时,dsh 插件在启动

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::26,最后更新 2026-11-06

Links

GitHub · Homepage · npm

Same category