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:Noelune/unified-agent-memory
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
跨 Agent 统一持久化记忆系统 — 基于 Obsidian Vault 存储规范与 SQLite FTS5 本地索引的知识生命周期管理基座
产品定位与问题定义 • 核心技术优势 • Obsidian 存储规范 • Agent 全流程自动部署 • 生命周期控制流 • 安全隔离与防护机制
传统 Agent 记忆插件多数绑定于特定的 Agent 运行时(Single-Agent Scope),其存储空间与会话相互隔离,缺乏统一的状态持久化与跨代理知识共享能力。
unified-agent-memory 架构旨在为多 Agent 舰队提供统一的知识管理基座:它允许 dsh、Codex、Claude Code 与 Hermes 等多个独立代理共享基于 Markdown 规范的 Obsidian Vault 知识仓库,配合纯 Python 标准库核心与 SQLite FTS5 本地索引,构建涵盖知识摄取 (Ingestion)、知识晋升 (Promotion)、冲突裁决 (Adjudication) 与衰减遗忘 (Decay/Retention) 的全闭环生命周期管理系统。
core/ 模块完全基于 Python 标准库(sqlite3, json, hashlib, argparse, os)实现,无外部依赖开销,具备毫秒级冷启动性能。~/.unified-memory/index-<vault-hash>.db,按 Vault 隔离;基于 SQLite FTS5 引擎实现毫秒级全文匹配与相关度计算,数据隐私完全归属于本地宿主机。<memory-data> 安全隔离标记包装,明确提示 LLM 区分数据上下文与系统指令;知识摄取前自动对敏感凭据(API Keys/Tokens)执行掩码清洗。| 特性维度 | 🧠 unified-agent-memory | ❌ 单 Agent 存储插件 (dsh-mnemon 等) | ❌ 外部向量桥接器 (sgme 等) |
|---|---|---|---|
| 跨 Agent 共享粒度 | 全 Fleet 共享 (dsh/Codex/Claude/Hermes) | 强绑定单一 Harness 运行时 | 依赖集中式向量数据库中转 |
| 核心组件依赖 | 纯 Python 标准库,无第三方依赖 | 依赖 Host 宿主插件环境 | 需要部署额外的数据库中间件 |
| 生命周期控制能力 | 包含 摄取/晋升/裁决/遗忘 全链路 | 通常仅具备 存储+召回 基础功能 | 仅实现向量空间映射 |
| 知识可视化与可介入性 | Obsidian 原生 Markdown,人类直接可读 | 数据库黑盒 / 私有 JSON 格式 | 向量数据结构不可直观校验 |
| 安全审计与防护机制 | 标签隔离包装 + 凭据正则自动脱敏 | 依赖上层应用手工干预 | 易在向量库中泄露明文凭据 |
系统自动在指定目录生成标准化 Obsidian Vault 存储层层级:
~/Documents/AgentMemory/
├── 00_Inbox/ # 代理提交的待审核临时知识节点 (Draft Notes)
├── 10_Canonical/ # 经 Promoter 归纳晋升的标准化主知识库 (Canonical Notes)
├── 20_Conflicts/ # 多代理矛盾事实等待裁决的队列 (Conflict Queue)
├── 99_Forget/ # 已衰减或废弃的历史知识归档区 (Archived Memories)
└── .vault_config.json # Vault 属性与索引配置文件
flowchart TD
A[Agent 提交接口: memory_submit] --> B{凭据自动脱敏引擎}
B -- 匹配 API Key / Token 模式 --> C[应用掩码清洗 REDACTED]
B -- 校验通过 --> D[写入 00_Inbox/ 暂存区]
D --> E[更新 SQLite FTS5 本地索引]
D --> F[触发 Promoter 审核 Pipeline]
F -- 事实无冲突 --> G[晋升至 10_Canonical/ 主知识库]
F -- 存在矛盾记录 --> H[拦截入 20_Conflicts/ 待裁决队列]
H --> I[Adjudicator 裁决机制]
I --> G
G --> J[Forgetter 记忆衰减 Cron]
J -- 触发长期衰减条件 --> K[归档至 99_Forget/ 归档区]
将多 Agent 接入统一记忆系统涉及跨代理配置文件(AGENTS.md / CLAUDE.md 等)的规则注入与校验。根据项目原生架构设计,部署工作完全由 AI Agent (DSH) 主导并自动执行,无需手动修改环境规则文件。
flowchart LR
A[挂载 dsh 记忆插件] --> B[DSH 识别首次安装通知]
B --> C[读取任务书 docs/AGENT-DEPLOY.md]
C --> D[环境检测、安装 Core 与 Vault 模版初始化]
D --> E[自主装配各 Agent 指令文件 AGENTS.md / CLAUDE.md]
E --> F[执行 selfcheck 并汇报部署决策]
dsh plugin --profile web add dsh-unified-agent-memory
memory_status。全新安装状态下,系统将自动输出部署提示并引导定位至 docs/AGENT-DEPLOY.md。~/.dsh/AGENTS.md、~/.codex/AGENTS.md、~/.claude/CLAUDE.md 及 Hermes 规则文件)。selfcheck 进行校验。部署任务书中已完备封装决策矩阵,DSH 在无人工干预下可根据环境自主判定:
| # | 部署决策项 (Decision Item) | 默认裁定策略 (Default Strategy) |
|---|---|---|
| 1 | 主控 Agent (Main Agent) 归属(负责每日晋升 Cron 调度) | 优先分配给 Hermes,若未检测到则分配给部署 Agent |
| 2 | 索引模式 (Indexing Mode) | 默认采用本地宿主机模式 (local machine) |
| 3 | 知识晋升模式 (Promotion Mode) | 默认采用人工确认模式 (human-confirmed review) |
| 4 | 连接 Agent 范围 (Connected Fleet) | 自动扫描并连接所有已感知的代理(dsh / Codex / Claude / Hermes) |
非 DSH 环境部署:对于通用 AI 编码代理,只需复制 docs/AGENT-DEPLOY-PROMPT.md 中的 Prompt 发送给 Agent 即可触发全自动部署。
# 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
完整指南:docs/DEPLOY.md · 系统架构:docs/ARCHITECTURE.md · 安全文档:docs/SECURITY.md
核心完全不依赖 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 -m unified_memory.forgetter --apply # 6. 定期衰减遗忘(可选)
对接你自己的运行时(不一定是 Hermes)只需要三件事:
memory submit(或 dsh 插件的 memory_submit)。python -m unified_memory.promoter --review 先审核待晋升清单、adjudicate 裁决冲突、再 --apply 晋升,并做错过补跑。只有当部署里完全没有带调度能力的 Agent 时,才退回用系统 cron 跑 daily_cron.py 脚本兜底。integrations/hermes/README.md 的 hook 草图,把 memory search / memory show 的输出包进 <memory-data> 注入到你的系统提示——那个模式适用于任何 Python 运行时。Hermes 集成(integrations/hermes/)只是"其中一个 Agent 接进来"的可选示例,不是前提条件。详细说明见 docs/DEPLOY.md 的 Full mode 章节。
| 路径 | 功能说明 |
|---|---|
core/ |
零第三方依赖 Python 包:包含 memory.py (初始化/检索/查看/提交), promoter.py (审核/应用/裁决), forgetter.py (衰减归档), conflict.py (冲突判定) |
vault-template/ |
即用型 Obsidian Vault 模版:包含 7 份标准化 Canonical 笔记、00_Inbox 提交区、情境信息与记忆遗忘区 |
lib/ |
dsh 插件核心:提供 memory_search / memory_show / memory_submit / memory_status 工具接口 |
integrations/ |
提供 AGENTS.md (Codex), CLAUDE.md (Claude) 与 Hermes Hook 集成示例 |
setup/ |
部署与自检脚本 setup.py (init/cron/selfcheck) 与 selfcheck.py |
docs/ |
ARCHITECTURE (系统架构), DEPLOY (部署指南), SECURITY (安全规范) |
详细说明请参阅 docs/SECURITY.md。
欢迎提交 Pull Request。提交前请确保运行核心测试套件(python -m unittest discover -s core/tests)。项目的 CI 流程会在每次 Push 时自动执行测试、代码密钥扫描(gitleaks)与开源许可证合规检查。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: agent-memory、claude-code、multi-agent、sqlite-fts5。