obsidian-wiki如何把Vault变成多Agent共享的记忆服务?Docker+MCP部署完整教程

发布时间:2026/9/28 21:03:40
obsidian-wiki如何把Vault变成多Agent共享的记忆服务?Docker+MCP部署完整教程 obsidian-wiki如何把Vault变成多Agent共享的记忆服务DockerMCP部署完整教程【免费下载链接】obsidian-wikiFramework for AI agents to build and maintain a digital brain through Obsidian wiki | Memory System for Agents项目地址: https://gitcode.com/gh_mirrors/obs/obsidian-wikiobsidian-wiki是一个让 AI Agent 通过 Obsidian Wiki 构建和维护数字大脑的框架也即Memory System for AgentsAgent 记忆系统。本文介绍如何用Docker MCP把它部署成一个多 Agent 共享的记忆服务一个容器、一个 Vault、一个 API Key远端的 Agent 就能通过 HTTP 或 MCP 搜索、读写这份记忆。为什么你的多个 Agent 需要一座共享的记忆服务你是否遇到过这种情况周二在一个项目里解决了某个难题三个月后在另一个项目里又从零开始——因为答案躺在某个再也翻不到的聊天记录里。本地安装的 obsidian-wiki 解决了一个人 一个 Agent的记忆问题但当你有多个 Agent 分布在不同机器开发机、CI、云端 Agent时就需要把 Vault 放到一个 URL 后面让它们都能搜索和写入同一份记忆。这正是 docs/deployment.md 描述的场景把 Vault 装进容器背后是一个挂载卷上的纯 Markdown 目录——你仍然可以用 Obsidian 直接打开它。部署前的核心设计为什么多 Agent 并发写入也安全共享记忆服务最关键的问题是多个 Agent 同时写会互相覆盖吗obsidian-wiki 的答案是一个写入者一把锁index.md、log.md、hot.md和_meta/下的 profile、todo 文件全部走同一条写入路径加锁后原子替换。无论是 API 写入、技能写入还是批量摄取都不会丢失更新。容器本身不做任何 LLM 工作——它只负责搜索、读取、写入和打包上下文思考由调用方的 Agent 完成。这让镜像又小又稳。Docker 部署教程3 步启动记忆服务第 1 步获取仓库git clone https://gitcode.com/gh_mirrors/obs/obsidian-wiki cd obsidian-wiki第 2 步生成 API Key服务没有默认密钥缺失WIKI_API_KEY时进程会拒绝启动本地开发可设WIKI_ALLOW_ANONYMOUS1临时关闭鉴权echo WIKI_API_KEY$(openssl rand -hex 24) .env第 3 步构建并启动docker compose up --builddocker-compose.yml 已预置好端口映射8080、密钥注入和名为wiki-data的数据卷Dockerfile 基于python:3.12-slim以非 root 用户运行并内置了每 30 秒一次的/health健康检查。启动后验证一下curl localhost:8080/health # - {ok: true, vault: /vault}想复用已有的 Vault把 compose 里的命名卷换成绑定挂载即可volumes: - /path/to/your/vault:/vault不想用 Docker本地直接跑也可以pip install obsidian-wiki[server] WIKI_API_KEYdev OBSIDIAN_VAULT_PATH~/vault python -m obsidian_wiki.serverMCP 接入让 Agent 一句话连接记忆服务服务在/mcp路径上挂载了一个 MCP Server暴露8 个工具分两组类型工具用途知识memory_search搜索 Vault返回带摘要的排序页面知识memory_read按路径读取单页 Markdown知识memory_write写入页面_raw可存草稿知识memory_context_pack按 token 预算打包某主题的上下文记忆memory_recap会话开始时注入档案 开放线程 近期活动记忆memory_profile读取/设置关于某个人的持久事实记忆memory_todo跨会话传递的待办线程记忆memory_sync写入后在单锁内重建 index 与 hot 缓存以 Claude Code 为例一条命令完成接入claude mcp add --transport http wiki-memory http://localhost:8080/mcp/ \ --header Authorization: Bearer $WIKI_API_KEY其他支持 MCP 的 AgentCursor、Codex、Windsurf 等按同样思路配置/mcp端点和 Bearer 头即可。多 Agent 共享一份大脑user_id 命名空间memory_recap、memory_profile、memory_todo都接受user_id参数它把某个人的 profile 和 todo 列表隔开让一次部署服务多个人/多个 Agent而知识页面保持共享。user_id会被当作文件名使用因此服务会严格校验1–64 位字母、数字、.、_、-非法值直接返回 400杜绝文件系统注入。memory_recap是会话开始时最该调用的工具——它把档案、开放线程、近期活动合并成单个文本块返回可选按project限定范围。REST API 与运维控制台除了 MCP服务还提供完整的 REST 接口/v1/*均需要Authorization: Bearer keyGET /v1/search?qlimit— 与wiki-query技能同源的 GraphRAG 搜索GET/POST /v1/pages— 按路径读页 / 写入页面POST /v1/context-pack— 主题上下文打包GET/POST /v1/memory/*— 与 MCP 工具一一对应的记忆端点API 写入会落到category/slug.md带完整 frontmatter并通过共享记忆写入者追加一行log.md——一次 API 写入和一次技能写入享有同等的加锁与可解析性。写入后记得调POST /v1/memory/sync把新页面折进index.md和hot.md。浏览器打开/ui还能得到一个只读运维控制台页面统计、摄取来源、git 状态、lint 报告全部实时从磁盘派生不引入第二份状态。实现见 obsidian_wiki/server.py。接入已有 Vault先跑一次 memory migrate如果你的 Vault 早于记忆写入器存在即文件没有generated_by标记memory_sync会返回409而不是覆盖你精心维护的文件。这时对挂载的 Vault 执行一次迁移obsidian-wiki memory migrate # 预览不改动任何东西 obsidian-wiki memory migrate --apply # 备份到 _archives/ 后正式接入迁移会先写带时间戳的备份保留你手写的所有章节把Active Threads解析成 todo 条目。细节见 docs/memory.md。备份与安全边界备份Vault 就是一个目录像备份目录一样备份——aws s3 sync同步到 S3或配置 git 远端后用obsidian-wiki sync。安全边界要心里有数这是单租户设计——一个容器、一个 Vault、一个 Key。user_id只是记忆层面的命名空间不是权限隔离拿到 Key 的人可读任何范围。服务间没有配额、限流和计费要给多人服务请每个 Vault 一个容器 反向代理终结 TLS容器本身只说 HTTPKey 的安全性取决于承载它的连接。小结目标一条命令启动共享记忆服务docker compose up --build接入你的 Agentclaude mcp add --transport http wiki-memory http://localhost:8080/mcp/验证服务curl localhost:8080/health接入旧 Vaultobsidian-wiki memory migrate --apply至此你的 Obsidian Vault 不再只是本地笔记而是一个多 Agent 可搜索、可读写、锁保护的共享记忆服务——Markdown 在磁盘上随时可读、可 grep、可 diff没有任何锁定。完整配置变量参考 docs/configuration.md全部子命令见 docs/cli.md。【免费下载链接】obsidian-wikiFramework for AI agents to build and maintain a digital brain through Obsidian wiki | Memory System for Agents项目地址: https://gitcode.com/gh_mirrors/obs/obsidian-wiki创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考