🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

舰队记忆中枢 Noelune/unified-agent-memory

DeepSeek Harnessv0.8.8
Noelune4 天前有提交已提供中文文档扫描:含敏感能力

为 DeepSeek Harness 打造的全舰队统一智能体记忆系统——dsh、Codex、Claude Code 和 Hermes 共用 Obsidian Vault,核心是零依赖的 Python FTS5。

35.5/100
综合分
8
GitHub 星标
830
npm 周下载
—/5
用户评分

数据截至 2026/10/31 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-unified-agent-memory
npm 源 · dsh-unified-agent-memory 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · chat
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 4 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-unified-agent-memory @ 0.8.8
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 16:36:31

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 59 处,展示前 27 条)
  • 读取本地文件
    lib/index.js:47
    const text = readFileSync(path, "utf-8");
  • 执行外部命令来自配置/变量
    lib/index.js:153
    const child = execFile(
  • 读取本地文件
    lib/index.js:244
    const raw = JSON.parse(readFileSync2(file, "utf8"));
  • 写入本地文件
    lib/index.js:253
    mkdirSync(dirname2(file), { recursive: true });
  • 写入本地文件
    lib/index.js:254
    writeFileSync(file, `${JSON.stringify(state, null, 2)}
  • 读取本地文件
    lib/index.js:263
    return Object.keys(TARGET_FILES).map((agent) => ({ agent, path: join2(home, ...TARGET_FILES[agent]) })).filter((target) => existsSync2(target.path));
  • 读取本地文件
    lib/index.js:564
    if (!existsSync3(ctxDir)) {
  • 发起网络请求
    lib/index.js:664
    const answer = await approval.request({ toolName: "memory_setup", reason, displayReason: reason });
  • 写入本地文件
    lib/index.js:756
    mkdirSync2(dirname3(path), { recursive: true });
  • 写入本地文件
    lib/index.js:757
    writeFileSync2(path, content, "utf8");
  • 读取本地文件
    lib/index.js:761
    return readFileSync3(path, "utf8");
  • 读取本地文件
    lib/index.js:766
    exists: (path) => existsSync3(path),
  • 写入本地文件
    lib/index.js:769
    chmodSync(path, mode);
  • 执行外部命令来自配置/变量
    lib/index.js:774
    execFile2(
  • 发起网络请求
    lib/index.js:1080
    const res = await fetch(`${base}/${PKG_NAME}/latest`, { signal });
  • 写入本地文件
    lib/index.js:2012
    mkdirSync3(dirname5(path), { recursive: true });
  • 删除本地文件
    lib/index.js:2294
    unlinkSync(target.path);
  • 执行外部命令来自配置/变量
    lib/index.js:2348
    execFile3(
  • 发起网络请求
    lib/client-ui.js:698
    window.fetch(STATUS_URL, { signal: abort.signal, cache: "no-store" }).then(function(r) {
  • 发起网络请求
    lib/client-ui.js:788
    const r = await fetch(UPDATE_URL, {
  • 发起网络请求
    lib/client-ui.js:820
    const r = await fetch(url, { cache: "no-store" });
  • 发起网络请求
    lib/client-ui.js:866
    const r = await fetch(url, { cache: "no-store" });
  • 发起网络请求
    lib/client-ui.js:917
    const r = await fetch(url, { cache: "no-store" });
  • 发起网络请求
    lib/client-ui.js:972
    const r = await fetch(url, { cache: "no-store" });
  • 读取本地文件
    lib/utils.js:47
    const text = readFileSync(path, "utf-8");
  • 读取本地文件
    lib/utils.js:110
    if (!existsSync(ctxDir)) {
  • 执行外部命令来自配置/变量
    lib/utils.js:163
    const child = execFile(
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 多智能体共享记忆库
v0.9.22026-10-31
· Fixed — npm 包内容(0.9.1 的 npm 产物不可用,请直接装本版) · 0.9.1 的 npm tarball 缺失整个分层核心(app/domain/infra/surface 与钩子集成文件不在包里),装出来的包一跑就 ImportError。根因:files 白名单仍是 0.8.8 时代的顶层匹配,且发布流程在打包修复之前的工作树上执行。0.9.2 从修正后的白名单发布,发布前对注册表产物做了内容核验(58 个分层文件 + 钩子文件 + 0 个字节码)与真实导入冒烟。 · files 白名单改为整棵 core/unified_memory(否定模式排除字节码——.npmignore 对 files 白名单目录实测不生效),并补上 integrations/hooks 与 integrations/claude/hooks。 · 0.9.1 的 git 仓库内容本身没有问题;只有 npm 产物坏。已装 0.9.1 的用户请升级到本版。 · Verified 注册表 tarball 内容核验 + 解包导入冒烟通过;npm run check 完整链 exit 0(typecheck → drift → sync → JS 886 → Python 534 → setup 32 → build → node → drift:python)。 · 用户更新 npm install dsh-unified-agent-memory@0.9.2 或 dsh 桌面端的插件更新。数据库自动迁移,无需手动操作。
v0.9.12026-10-31
· Changed — 参与度层默认启用(不再是自愿开启) · block ID 补写自动执行:每个 vault 一次性的 backfill-ids 不再需要手动跑——memory sync、catchup(dsh 每小时补跑路径)与 setup init 在标记缺失时自动执行(marker 防重、幂等、只追加 ID 后缀、走唯一执行器,绝不进入检索读路径)。 · Claude Code 钩子默认安装:setup init 与新的 setup hooks 把三条钩子幂等追加进 ~/.claude/settings.json(首次写入自动备份;你的已有钩子原样保留;无法解析的 settings 绝不触碰;--no-hooks / hooks --remove 随时退出)。手动粘片段仍是等价方式。 · 钩子队列默认排水:catchup 每次运行顺带 digest --queue(session transcript → 事实抽取 → 提交区),失败只计报告、绝不拖垮补跑。 · 要退出:setup hooks --remove + 已打标记的 vault 不会再动。 · Verified Python 534 / JS 886 / setup 32 / bench 一致 / 快照 46 逐字节 / e2e 46;新增 8 例默认启用行为测试。 ⚠️ 注意:本版本的 npm 产物不完整(发布流程事故),请直接安装 v0.9.2。git 仓库内容本身没有问题。
v0.9.02026-10-31
· 一次大版本累积(80 个提交,五个批次) 兼容性:数据库首次打开自动迁移 v10 → v11(只增不减——memories/embeddings/access_log 一行不动,自动留 .v.bak 备份;已在真实库副本上验证 164/130/848 守恒)。无需任何手动操作。 · Added — 批次 A:止血(12 项修复 + 1 个现场迁移 bug) · 迁移不再失忆:版本不符从"全表 DELETE"改为增量注册表 + 单事务 + 失败回滚 + 自动备份;并修掉一个会让所有真实 0.8.8 库升级直接崩溃的顺序 bug。 · 事实身份改为 occurrence 身份(跨文档同句不再静默合并、删一篇不丢另一篇)。 · 中文检索:三套词法表收敛为一张 fts_lex(ASCII 词 + CJK bigram)——旧表对中文恒 0 命中却拿最高权重。 · 哈希审计链全接入(memory audit [--verify]);遗忘去毒(retrieved/used 拆分,只有被引用才强化);查询向量预算 0.8s→0.12s;图流门控;预算按价值密度装填。 · 完整清单见 BATCH-A-REPORT.md。 · Added — 批次 B/C/D/E:地基、置信度、Claim Ledger、参与度层 · 四层架构(surface/app/domain/infra),依赖方向由架构测试钉住,六类白名单全部清零,规模预算门开启。 · 检索弃答:零支持的弱命中不再返回,--json 新增 confidence。问不存在的东西得到空结果,而不是 8 条 0.03 分的弱匹配。 · 遗忘收敛:保护网从 20+ 关键词宽网(命中约 75% 事实、遗忘形同虚设)收敛为显式白名单(凭据/红线/端点/协作);可触达率 41.7% → 75%。旧事实现在会真的参与衰减评分——全部可回滚(进 记忆遗忘区/)。 · Claim Ledger(schema v11):每条事实一个永久 block ID(^c-…,Obsidian 原生语法,改文字不改 ID);memory backfill-ids [--dry-run] 幂等补写;memory search --as-of YYYY-MM-DD 与 memory explain 。 · 参与度钩子:integrations/hooks/memory_hook.py 平台无关钩子运行时(会话开始常驻包 / 每轮本地检索 / 会话结束排队沉淀)+ Claude Code 接入物 + memory digest --queue。 · README.md 不再进事实索引。 · Verified Python 526 / JS 886 / setup 32 / typecheck 0;bench 检索指标与 0.8.8 逐字段一致(五批次未触碰排序权重);CLI 快照逐字节;46 项真功能 e2e;真实库副本迁移守恒。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
🧠 unified-agent-memory Unified Fleet-Wide Agent Memory System for DeepSeek Harness & Multi-Agent Runtimes 跨 Agent 统一持久化记忆系统 — 基于 Obsidian Vault 存储规范与 SQLite FTS5 本地索引的知识生命周期管理基座 产品定位 • 核心优势 • 存储结构 • 部署 • 快速开始 • Standalone 📌 产品定位与问题定义 传统 Agent 记忆插件多数绑定于特定的 Agent 运行时(Single-Agent Scope),存储空间与会话相互隔离,缺乏统一的状态持久化与跨代理知识共享能力。 unified-agent-memory 为多 Agent 舰队提供统一的知识管理基座:dsh、Codex、Claude Code 与 Hermes 等多个独立代理共享同一 Obsidian Vault 知识仓库,配合纯 Python 标准库核心与 SQLite FTS5 本地索引,构建涵盖知识摄取 (Ingestion)、晋升 (Promotion)、冲突裁决 (Adjudication)、衰减遗忘 (Decay/Retention) 的全闭环生命周期管理系统。
展开完整文档(README 剩余 1 节)
🧠 unified-agent-memory

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

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

产品定位 • 核心优势 • 存储结构 • 部署 • 快速开始 • Standalone

📌 产品定位与问题定义

传统 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。

🚀 核心技术优势

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

🤖 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 任务书完成 vault 初始化、core 安装、各 Agent 指令文件托管段注入(幂等 + 自动备份),并以 selfcheck 收尾。部署决策矩阵(主控 Agent / 索引模式 / 晋升模式 / 接入范围)见任务书 Step 0。

非 DSH 环境部署:复制 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 · 系统架构:docs/ARCHITECTURE.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 插件在启动时/每小时自动补跑错过的任务;其他带调度的运行时可承担同一角色(--review → 裁决冲突 → --apply),错过就跑 python -m unified_memory.catchup。细节见 docs/DEPLOY.md 的 Full mode 章节。
3. 读/注入:dsh 用户不需要自己做这一步——插件内置 agent/pre-step 自动召回(细节见 docs/DSH-MEMORY-ADAPTERS.md)。其他运行时可参考 integrations/hermes/README.md 的 hook 草图,把 memory search / memory show 的输出包进 <memory-data> 注入到系统提示。

Hermes 集成(integrations/hermes/)只是"其中一个 Agent 接进来"的可选示例,不是前提条件。

📂 仓库目录结构 (Repository Layout)

| 路径 | 功能说明 |
| core/ | 零第三方依赖 Python 包:memory.py (初始化/检索/提交), promoter.py (审核/应用/裁决), forgetter.py (衰减归档), catchup.py (错过补跑), conflict.py (冲突判定) |
| vault-template/ | 即用型 Obsidian Vault 模版:7 份标准化 Canonical 笔记、提交区、情境信息与记忆遗忘区 |
| src/ | DSH 宿主半边:工具注册、路由、agent/pre-step 自动召回、浏览器侧边栏面板、升级规划器与唯一写入点 |
| lib/ | dsh 插件构建产物:五个 memory_ 工具与自动召回 |
| integrations/ | AGENTS.md (Codex)、CLAUDE.md (Claude) 与 Hermes Hook 集成示例 |
| setup/ | setup.py (init/cron/selfcheck)、deploy.py (托管段注入) 与 selfcheck.py |
| docs/ | ARCHITECTURE / DEPLOY / DESKTOP / SECURITY 等 |

🔧 环境要求 (Requirements)

- Python ≥ 3.10 (核心 Engine,仅需 Python 标准库)
- Node.js ≥ 20 + DSH 0.2.1-rc.3(兼容 0.2.1-rc.2、0.2.0-rc.2、0.1.5-rc.2)(仅 dsh 插件需要;桌面端见 docs/DESKTOP.md)
- 推荐使用 Obsidian 浏览和查看 Vault 知识库,但非强制要求 — 所有文件均为标准 Markdown 与 SQLite 数据库。

📌 维护状态 (Maintenance Status)

- Maintainer: Noelune
- Community-maintained — 欢迎提交 Issue 与 Pull Request。缺陷修复通常在 1–2 周内处理,安全问题优先解决。
- Compatibility: 验证目标为 DSH 0.2.1-rc.2 与 0.2.0-rc.2(含桌面端)。升级 DSH 后若工具消失,先核对版本线——宿主会整体跳过 peer 范围不匹配的插件包(docs/DEPLOY.md › Upgrading)。上游 API 变更说明记录于 CHANGELOG.md。
- License: MIT License — 允许商业化使用。

🛡️ 安全规范 (Security)

详细说明请参阅 docs/SECURITY.md。

存储隔离:Vault 内部存储的所有内容均被视为纯文本数据(Data),绝不可直接作为推理指令执行。
* 凭据保护:敏感凭据在进入 Vault 存储前必须经过脱敏过滤,默认索引数据库仅在本地宿主机进行持久化。
* 审核机制:知识晋升过程默认采用人工确认模式,结合原子文件锁与原子写入确保并发控制安全。

🤝 贡献指南 (Contributing)

欢迎提交 Pull Request。提交前请确保运行核心测试套件(python -m unittest discover -s core/tests)。项目的 CI 流程会在每次 Push 时自动执行测试、代码密钥扫描(gitleaks)与开源许可证合规检查。
预览分享卡片长什么样 ↓Noelune/unified-agent-memory
分享 · DeepSeek Harness Hub
Noelune/unified-agent-memory

为 DeepSeek Harness 打造的全舰队统一智能体记忆系统——dsh、Codex、Claude Code 和 Hermes 共用 Obsidian Vault,核心是零依赖的 Python FTS5。

这是你的仓库?认领条目

回到顶部