DSH Wenmai 文脉插件:本地 Markdown 知识库指南

说明 Wenmai 文脉如何在 DeepSeek Harness 中建立本地 Markdown 知识库,并审计安装、读写范围和卸载边界。

社区整理已复核原始来源
DSH
0.1.0-rc.8
风险
medium

Wenmai 适合解决什么问题

Wenmai(文脉)是一个面向文字工作者的 DeepSeek Harness 社区插件。它把本地 Markdown 原文复制进只追加的 raw/ 区域,再由 Agent 整理为带 [[wikilinks]] 的概念页、实体页、索引和日志,适合查询“这个选题以前写过没有”、整理成稿以及生成本地关联图。

本文在 2026 年 8 月 22 日审阅了仓库版本 0.1.0、MIT 许可证、README、工具定义和文件读写代码。作者文档明确使用 DSH 0.1.0-rc.8;52DSH 当前上游基线是 0.1.1-rc.2,但编辑部没有在该新版本中实际安装,所以不能宣称已兼容 0.1.1-rc.2

项目审计结果
分发方式GitHub 源码,本次核验时没有同名 npm 包
插件版本0.1.0
作者文档使用的 DSH0.1.0-rc.8
许可证MIT
默认数据目录~/wenmai
主要读写当前工作区、额外 sourceRoots、文脉目录
网络依赖插件本身以本地文件为主;模型 Provider 仍可能接收上下文
编辑验证已审阅源码,未执行安装与端到端验收

数据是怎样流动的

Wenmai 不是向量数据库,也不会自动抓取网页或解析 PDF。它的主要工作流是:

本地 Markdown 成稿
  → wenmai_ingest 复制到 raw/
  → wenmai_write 编译 concepts/ 与 entities/
  → 更新 index.md 和 log.md
  → wenmai_search / wenmai_read 查询
  → 按需生成 graph.html

raw/ 被设计为原文留档区,插件规则禁止 wenmai_write 修改这里。纠错和补充应写进编译页。这个约束便于保留证据链,但它不是操作系统级不可变保护:拥有文件系统权限的其他程序或用户仍然可以修改文件。

安装前先固定源码版本

Wenmai 当前通过 GitHub 本地路径安装。为了避免默认分支后续变化,先检出本文审阅的 commit:

git clone https://github.com/chrislee121/wenmai.git
cd wenmai
git checkout 44e84de0cc2c52a120c1e40b121a543f23f7d934

检查 package.jsonprepare 和依赖后再安装构建。仓库的 prepare 会执行 TypeScript 编译:

corepack enable
pnpm install
pnpm test
pnpm build

然后把本地目录加入 Web Profile。作者文档使用 DSH 0.1.0-rc.8

npx --yes @deepseek-ai/dsh@0.1.0-rc.8 \
  plugin --profile web add "$(pwd)"

npx --yes @deepseek-ai/dsh@0.1.0-rc.8 \
  --profile web --dump-config

npx --yes @deepseek-ai/dsh@0.1.0-rc.8 web

预期在配置输出中看到 dsh-wenmai 层和 id: wenmai。不要为了追新而直接把命令改成最新版;应先在独立 Profile 中验证 0.1.1-rc.2 的兼容性。

第一次初始化

启动 DSH Web UI 后,先在左上角选择一个明确的文稿目录作为工作区。不要选择整个家目录。然后对 Agent 说:

用 wenmai_init 初始化文脉,领域是“个人文字工作:文章、脚本、文案和文档”。

初始化后可以检查:

/wenmai status
/wenmai lint
/wenmai orient

预期 ~/wenmai 中出现 SCHEMA.mdindex.mdlog.mdraw/ 以及编译页目录。若机器上没有 ~/wenmai、但存在旧的 ~/tongjian,仓库文档说明插件可能沿用旧目录,升级前要先确认实际数据根。

三个日常使用场景

检查选题是否写过

对 Agent 说:

用 wenmai_written 查一下“DSH Telegram 插件”以前写过没有。

wenmai_written 会搜索编译页,也会查看当前工作区及额外 sourceRoots 中的 Markdown 文件名和标题。它解决的是本地内容防撞,不等于互联网检索。

收录一篇成稿

给出明确的本地路径和材料类型:

/path/to/article.md 以 articles 类型 ingest 进文脉,再编译为概念页并更新索引。

推荐顺序是 ingest、搜索已有实体或概念、write、更新索引并写日志。不要让 Agent 直接修改 raw/

生成关联图

/wenmai graph

插件会在数据根写出自包含的 graph.html。关联图读取编译页的 Wiki 链接,也可以纳入工作区和 sourceRoots 中的 Markdown。大型目录应按需生成,不要每轮会话都运行。

文件权限与隐私边界

Wenmai 的核心风险不是远程账号,而是本地文件访问范围:

  • 默认读取当前 DSH 工作区;
  • 可读取配置中的额外 sourceRoots
  • 默认写入 ~/wenmai
  • wenmai_ingest 会复制原文;
  • wenmai_write 会创建或修改编译页、索引和日志;
  • wenmai_graph 会写出 HTML 并可能调用系统浏览器打开。

不要把 /Users/你的名字、整个文档目录或包含客户资料的上级目录加入 sourceRoots。插件代码主要在本地处理 Markdown,但 Agent 为了总结、分类或回答问题,可能把读取到的正文发送给当前模型 Provider。本地存储不自动等于数据不会离开电脑。

如果工作区包含隐私、商业秘密或未公开稿件,应先选择本地模型或确认远程 Provider 的数据政策,并使用独立测试副本。更完整的边界说明见安全工作区指南

如何验收

安装后至少完成以下检查:

  1. --dump-config 只新增预期的 Wenmai 配置层。
  2. /wenmai status 显示的数据根和扫描路径正确。
  3. 用测试 Markdown 验证 ingest 后原文复制到 raw/
  4. wenmai_write 拒绝把目标路径写到 raw/
  5. wenmai_lint 能报告断链、孤儿页和原文哈希漂移,但不自动修改。
  6. 未配置的目录不能被 wenmai_writtenwenmai_search 扫描。
  7. 生成的 graph.html 不包含测试范围之外的文件名和内容。

52DSH 尚未完成这些运行测试,因此本文不能作为生产兼容保证。

卸载为什么不会删除知识库

使用作者文档对应的 Profile 卸载:

npx --yes @deepseek-ai/dsh@0.1.0-rc.8 \
  plugin --profile web remove dsh-wenmai

卸载后重新运行 --dump-config,确认配置层消失。仓库明确说明卸载插件不会删除 ~/wenmai 数据,这有利于回滚,也意味着敏感原文和编译页仍然留在磁盘。需要清理时应先备份、确认真实数据根,再单独处理,不能把“插件已卸载”当作“数据已删除”。

如果你的需求更偏向会话记忆而不是成稿编译,应先比较其他 LLM Wiki 实现,不要只根据名称相似就重复安装多个能扫描同一目录的插件。

来源与维护信息

本文根据以下原始资料整理。版本变化后,请以官方资料和页面标注的验证日期为准。