前言¶
在 DeepSeek Harness(DSH)里让模型维护团队 Wiki,常见做法是临时拼 curl、脚本或浏览器自动化:搜索、列表、写回、删页、传媒体各走一条路,权限还要自己猜。DokuWiki 既有 XML-RPC,也有需要表单登录的编辑与媒体管理;ACL 不对外暴露完整 API,写错还可能撞上「缺 wikitext 字段等于取消编辑」的静默失败。
下面介绍社区插件 dsh-dokuwiki(维护者 ycAlphi):把读、搜、写、删页面以及媒体的发现、下载、上传封装成 DSH 原生工具,并随插件附带 dokuwiki skill,便于模型按规则调用。插件归类为联网工具,当前 GitHub 星标为 0;源码与文档见 GitHub 仓库,目录页为 SkillHub 插件页。
这是什么¶
dsh-dokuwiki 是面向 DeepSeek Harness 的 DokuWiki 集成插件(npm 包名 dsh-dokuwiki,README 标明许可证 MIT)。它通过一组 wiki_* 工具连接任意可达的 DokuWiki——本机、局域网或公网 URL——账号与密码在 DSH 官方 Plugins 流程里配置,密码存入 DSH 凭据服务(DOKUWIKI_PASSWORD),不写入插件配置文件。
运行时仅依赖 Node.js 内置 fetch 与小型 XML-RPC 编解码,无额外 npm 依赖、无构建步骤;package.json 要求 Node ^22.19.0 || >=24.0.0,DSH >=0.2.0 <0.3.0。
核心能力¶
原生工具,而非外挂脚本¶
模型直接调用例如 wiki_read_page、wiki_search、wiki_write_page、wiki_upload_media 等工具,而不是在 shell 里调外部脚本。写、删、上传类工具仅在探测到账号具备对应能力后才注册;每次调用仍由 Wiki 侧 ACL 裁决。
双通路访问 DokuWiki¶
- XML-RPC + HTTP Basic Auth:用于较完整的读操作(页面列表、搜索、历史等)。
- 浏览器一致的表单登录 +
export_raw/edit/save:用于写入,以及不允许 XML-RPC 的账号。
可配置多个 Base URL,按行依次尝试,第一个可达的生效(例如本机 http://127.0.0.1:8080、内网 http://192.168.1.10:8080、公网 https://wiki.example.com)。
权限探测与诚实写回¶
DokuWiki 不通过 API 完整暴露 ACL,插件根据网络响应推断当前账号权限,并用 wiki_permissions 按命名空间探测读/建/改/删/上传。wiki_write_page 保存后会读回校验;若触发 DokuWiki「无 wikitext 即取消编辑」的陷阱会明确报错。删页只允许通过 wiki_delete_page(需摘要、读回验证);wiki_write_page 拒绝空正文,避免误删。
媒体与变更¶
wiki_list_media:在已登录会话下列出某媒体命名空间内文件(媒体管理器需登录)。wiki_download_media:将文件拉到工作区并返回本地路径。wiki_upload_media:经媒体管理端点上传,并下载回存文件做字节级校验。
wiki_recent_changes 从 Wiki 变更日志读取近期页面与媒体变更(可选命名空间过滤)。页面读取默认缓存 5 分钟,参数 fresh: true 可绕过,返回中会标明是否来自缓存。
可选:Wiki 自建写作规范页¶
团队可在普通 Wiki 页面写明命名空间、模板、摘要风格等规则;在插件配置里填写该页面 id 后,模型在 substantial 写操作前可通过 wiki_get_conventions 读取。功能默认关闭,且不会阻塞写入。
安全相关行为¶
登录失败不会自动重试,以免 DokuWiki 因连续失败锁定账号(锁定也会阻断 XML-RPC)。
工具一览¶
| 工具 | 说明 |
|---|---|
wiki_status |
连接、访问模式、登录及已探测权限 |
wiki_read_page |
单页原始 DokuWiki 源码(短缓存) |
wiki_get_conventions |
已配置的写作规范页内容 |
wiki_list_pages |
按命名空间列页(depth 控制递归) |
wiki_search |
全文搜索(XML-RPC 或搜索页回退) |
wiki_recent_changes |
近期变更(limit、命名空间过滤) |
wiki_page_history |
修订列表(需 XML-RPC) |
wiki_can_edit |
探测单页编辑权并释放编辑锁 |
wiki_permissions |
按命名空间探测五项权限 |
wiki_write_page |
创建/编辑(必填 summary,读回校验) |
wiki_delete_page |
显式删页(必填 summary,读回校验) |
wiki_list_media / wiki_download_media / wiki_upload_media |
媒体浏览、下载、上传 |
插件自带 dokuwiki skill,内含操作规则,指导模型何时、如何调用上述工具。
安装与配置¶
安装¶
在 README 给出的命令如下(需将 <your-profile> 换成你的 DSH profile):
dsh plugin --profile <your-profile> add dsh-dokuwiki
也可在 DSH Plugins 页粘贴包名 dsh-dokuwiki 安装;DSH 会自动加载插件的 cordis.patch.yml 层。
配置项¶
打开 Plugins → dsh-dokuwiki,完成:
- Base URL(s):每行一个,按顺序尝试。
- Username:DokuWiki 用户名。
- Password:经 DSH 凭据服务保存,不写回浏览器或插件明文配置。
- Test connection:登录、读页、探测编辑/上传权限并汇报;探测后会立即释放编辑锁。
- Writing conventions page(可选):规范页的页面 id,留空则关闭该功能。
非敏感设置保存在 $DSH_HOME/dokuwiki.config.json(规范页也可通过字段 conventionsPage 设置)。
典型用法示意¶
配置写作规范页(可选)¶
- 在 Wiki 创建规则页,例如
wiki:conventions,内容宜短、用祈使句,并引用模板页而非复制大段正文。README 示例骨架:
====== 页面写作规范 ======
* 新页面放在:<命名空间>:<页面名>;不确定时先问用户。
* 新建日志页:先套模板页 <模板页 id>,再填内容。
* 图片:小写英文/数字/下划线命名,正文用 {{:...?direct&400|}} 缩略图。
* 编辑摘要:中文、动词开头、说清改了什么。
* 禁止:凭据、个人隐私、删除他人记录。
- 在插件设置填入该页面 id;配置账号须能读取此页。
- 模型在新建或大幅改写前调用
wiki_get_conventions;缺页、无权限或未启用时,工具会说明情况,模型再依用户指令行事。
对话中的工作流(概念)¶
安装并 Test connection 通过后,可在 DSH 对话中让模型例如:用 wiki_search 查关键词 → wiki_read_page 读源码 → 按规范 wiki_write_page 更新并填写中文摘要 → 需要插图时用 wiki_upload_media。删页应明确使用 wiki_delete_page,而不是试图用空内容「顺带」删除。
适用场景与注意¶
适合:已在用 DokuWiki 作知识库或运行日志,且希望 DSH 智能体在 ACL 范围内自动查改 Wiki、同步媒体文件的团队或个人。
注意:
- 插件以当前 DSH 进程权限运行;安装前请自行审阅 源码 与 MIT 许可证。
- SkillHub 等为社区目录,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本插件是其中一条 DokuWiki 连线。
- 写作规范页会进入提示上下文,勿在其中存放密钥或隐私数据。
- 仅配置你信任可达的 Wiki URL 与账号;密码仅存 DSH 凭据服务。
结尾¶
dsh-dokuwiki 把 DokuWiki 的常见操作收敛为 DSH 原生工具:多 URL 回退、读写双通路、ACL 感知暴露、写删与上传的读回校验,并可选挂载 Wiki 自建写作规范。若你正在 DSH 里维护 DokuWiki,可按上文命令安装并在 Plugins 页完成连接测试。
- 目录页:https://www.skillhub.cn/plugins/ycAlphi/dsh-dokuwiki
- GitHub:https://github.com/ycAlphi/dsh-dokuwiki