dsh-client-ui-obsidian-memory:用本地 Markdown 库给 DSH 智能体持久记忆

前言

在 DeepSeek Harness(DSH)里跑智能体,会话结束后上下文往往就丢了。把任务、人物、项目笔记写进外部文档再手动粘贴,能续上一点,但读写都靠人,Agent 无法自主检索和更新。

dsh-client-ui-obsidian-memory 走另一条路:把记忆落在本机 Obsidian(或纯 Markdown)库目录里,由插件注册文件系统工具,让 AI 直接读、搜、写、追加。数据留在本地,不依赖额外记忆服务。

这是什么

dsh-client-ui-obsidian-memory 是 DSH 的客户端 UI 插件,维护者为 detongz,分类为「记忆」。它通过 DSH 宿主运行时直接访问本地文件系统,在配置了 vaultPath 后向 Agent 暴露 5 个 obsidian_memory_* 工具,并在 DSH 左侧栏 sidebar.obsidian-memory 插槽渲染状态与工具说明面板。

插件当前版本为 v0.3.2,许可证 MIT。社区目录页见 SkillHub,源码见 GitHub

核心功能

下面介绍插件已文档化的能力,均来自 README 与 package.json

五个记忆工具

工具 作用
obsidian_memory_read 读取 Markdown 或文本文件
obsidian_memory_list 列出目录与文件
obsidian_memory_search .md.txt 中全文检索
obsidian_memory_write 写入或覆盖文件
obsidian_memory_append 在文件末尾追加内容

所有路径限制在 vaultPath 内;越界访问会报 “Path traversal detected”。

侧栏面板

浏览器端在 DSH 左栏显示 Obsidian Memory 面板,展示库状态、工具参考与推荐目录结构。需要 DSH 提供 sidebar.obsidian-memory 插槽(README 建议 DSH ≥ 0.1.0-rc.5)。

无外部服务、兼容 Codex 目录

插件不连远程记忆服务,读写经 DSH Host(Node.js)完成。目录结构可与社区推荐的 Codex/ 布局对齐,便于与现有 Obsidian 工作流共用。

安装与启用

1. 准备库目录

在任意位置创建 Codex/ 文件夹,例如放在 Obsidian 库内:

~/Documents/Obsidian Vault/
└── Codex/
    ├── AGENTS.md
    ├── TODO.md
    ├── people/
    ├── projects/
    ├── notes/
    └── daily/

AGENTS.md 可放 AI 操作说明,TODO.md 可放待办与未闭环事项;子目录按项目自行组织。

2. 安装插件

在任意目录执行:

dsh plugin add dsh-client-ui-obsidian-memory

也可从 GitHub 源安装:

dsh plugin add detongz/dsh-client-ui-obsidian-memory

插件自带 dsh.bundle 清单,dsh plugin add 会安装包并通过捆绑的 cordis.patch.yml 激活 ui-obsidian-memory 层,一般无需手改 profile 以加载插件。

若 Settings → Plugins 中看不到插件,README 建议重装最新版:

dsh plugin add dsh-client-ui-obsidian-memory@latest

(旧版 pre-0.3.2 可能只作为普通依赖安装。)

3. 配置 vaultPath

在 profile 的 cordis.patch.yml 中指向 Codex/绝对路径

- id: ui-obsidian-memory
  config:
    vaultPath: /Users/YOURNAME/Documents/Obsidian Vault/Codex

也可设置环境变量:

export OBSIDIAN_VAULT_PATH=/Users/YOURNAME/Documents/Obsidian Vault/Codex

若两者均未设置,插件会打警告并跳过工具注册。

4. 重启 DSH

dsh web

重启后,侧栏应出现 Obsidian Memory 面板;vaultPath 配置正确时,5 个工具对 Agent 可用。

典型用法

经过上面的步骤,Agent 可在对话中调用工具维护本地记忆,例如:

  1. obsidian_memory_list 查看 projects/ 下有哪些笔记;
  2. obsidian_memory_search 在库内检索关键词;
  3. obsidian_memory_read 读取 AGENTS.md 或某篇项目笔记;
  4. obsidian_memory_write 更新 TODO.md,或用 obsidian_memory_appenddaily/ 下追加当日记录。

具体调用由 DSH 会话中的 Agent 发起;你只需保证目录结构与 vaultPath 一致,并在 AGENTS.md 里写明 Agent 应如何使用这些文件。

架构简述

DSH Web(浏览器)
  └─ sidebar.obsidian-memory:侧栏面板(工具说明、库结构)
        │
DSH Host(Node.js)
  └─ 注册 obsidian_memory_* 工具,读写本地文件
        │
本地文件系统
  └─ vaultPath 指向的 Codex/ 目录

Host 入口为 lib/index.js,客户端为 lib/client.js;数据源即本地 Markdown 文件。

适用场景与注意

适合谁: 已用 Obsidian 或纯 Markdown 管理笔记、希望 DSH Agent 能跨会话读写同一份本地库的开发者。

权限与安全: 插件以当前 DSH 进程权限访问文件系统,能读写的范围即 vaultPath 及其子目录。安装前建议查看 源码仓库 与 MIT 许可证,确认符合你的环境策略。

版本依赖: 侧栏需要 DSH 客户端运行时提供 sidebar 插槽(peer 依赖 @deepseek-ai/dsh-client-runtime 等 ≥ 0.1.0-rc.5)。工具不可用或侧栏不显示时,先核对 vaultPath 与 DSH 版本。

结尾

dsh-client-ui-obsidian-memory 把 DSH 智能体的持久记忆落到本机 Markdown 库:5 个文件工具加侧栏参考,无需自建记忆服务,可与 Codex 目录习惯衔接。插件列于社区目录 SkillHub,实现与更新见 GitHub

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜