dsh-siyuan:在 DeepSeek Harness 里用 Agent 读写思源笔记

前言

在 DeepSeek Harness(DSH)里做智能体时,知识往往落在本地笔记里,而对话界面和笔记窗口通常是两套应用。你只能自己复制粘贴,或者让 Agent 去碰工作区里的 .sy 文件和 siyuan.db,风险和权限都不好控。

@yogemow/dsh-siyuan(仓库 YOGEMOW/dsh-siyuan)走另一条路:全部通过思源桌面内核的公开 HTTP API 与笔记本交互,不读写工作区文件。Agent 侧提供 9 个工具用于检索与读写;客户端侧提供左栏文档树、右栏边聊边读的笔记视图,以及把助手回答确认后写入思源。维护者为 YOGEMOW,在社区目录 skillhub.cn 中归类为客户端插件。

下面按定位、能力、安装配置、用法与注意点说明如何在 DSH 0.2.x 环境下使用(思源侧需 3.8.x 桌面端在运行)。

这是什么

包名 @yogemow/dsh-siyuan,当前版本 0.3.5,许可证 MIT。入口分为 Host 侧 index.js(Agent 工具与 /siyuan/* 路由)和 Client 侧 client.js(侧栏、设置、回答动作)。设计细节见仓库内 docs/DESIGN.md、docs/KERNEL-NOTES.md、docs/CONTRACT.md。

一句话定位:把思源笔记接入 DSH,让 Agent 能搜读写作业记,并在界面里按文档树浏览、在右栏预览,回答可二次确认后存入思源。

核心功能

Agent 工具(9 个,默认只读)

写入能力受插件「写入开关」约束;关闭时写工具与写路由返回 SIYUAN_WRITE_DISABLED。

工具 作用 读/写
siyuan_status 连通性、版本、Token 状态、写入开关、笔记本清单 读
siyuan_notebooks 笔记本列表(id/名称/文档数) 读
siyuan_search 全库检索(正文/标题/别名/备注子串) 读
siyuan_read_doc 读文档 Markdown,行分页(工具默认约 400 行) 读
siyuan_recent 最近更新的文档 读
siyuan_sql 只读 SQL(单条 SELECT,内核 mode:'readonly') 读
siyuan_create_doc 新建文档(可指定父文档) 写
siyuan_append 追加或前后插入;id="daily" 写今日日记 写
siyuan_open 生成 siyuan:// 深链 / Web 链接 / 块引用 读

界面与交互

  1. 左栏「思源笔记」:笔记本下拉、可折叠文档树(顺序与思源一致,默认展开 8 层,更深层懒加载)、关键词搜索(有词时切平铺结果)、新建文档、设置抽屉。点笔记默认在右栏打开。
  2. 右栏「思源笔记」标签(Agentero 风格):笔记本、文档树、正文预览,以及「在思源打开」「复制块链接」「追加内容」「新建文档」。左栏点笔记会直接在右栏展示;右栏不可用则退回左栏内联预览。
  3. 输入框工具行「思源」按钮:随时打开右栏笔记视图。
  4. 每条助手回答下方「存入思源」:选笔记本、标题(缺省取首行)、可追加到已有文档,仅在你点「确认存入」后写入。

正文预览默认一次读 1500 行,超过可「加载更多」按 offset 续读。文档树会记住展开、选中与滚动(左右栏、按笔记本分开);顶栏「重置」可折叠回顶部。

安装与启用

前提:思源 3.8.x 桌面端保持运行(最小化到托盘亦可),DSH 0.2.x。

插件以当前 DSH 进程所在用户的权限访问本机思源内核;安装前请自行审阅 源码与 MIT 许可证。DSH 生态强调「一切皆插件」;skillhub.cn 为社区目录,与 DeepSeek / 幻方无官方从属关系。

web / headless / 自建 profile

在对应 profile 下执行(命令出自项目 README):

dsh plugin --profile web add github:YOGEMOW/dsh-siyuan

将 web 换成你的实际 profile 名称。

desktop profile

桌面端 profile 由 Electron 独占,CLI 会拒绝 dsh plugin --profile desktop。需先把仓库放到本地目录,再在 DSH 会话里用插件管理安装 bundle:

git clone https://github.com/YOGEMOW/dsh-siyuan "<本地目录>"
# 然后在 DSH 会话里:
plugin_manager install_bundle  target=<本地目录>

安装或卸载 bundle 后,Host 侧需重启对应 profile 才会重新装载;Client 侧半刷新页面后生效。

卸载:

plugin_manager remove_bundle  target=@yogemow/dsh-siyuan

运行时无需额外 npm 依赖:fetch 用 Node 内置,React 由宿主提供。

配置

思源侧

  1. 桌面端保持运行。
  2. 内核默认 http://127.0.0.1:6806;若改过端口,使用实际地址。
  3. 本机 127.0.0.1 且未设访问码/锁屏时可免 Token;否则在思源「设置 → 关于 → API token」复制,填入插件设置。

插件侧

在 DSH「设置 → 思源笔记」或面板齿轮中配置。非 Token 项落在 $DSH_HOME/storages/siyuan/config.json。

项 默认 说明
内核地址 http://127.0.0.1:6806 以 dsh 进程所在机器视角访问
API Token 空 写入 DSH 凭据库(CredentialKey=siyuan),页面不回显;留空保存表示不修改
默认笔记本 空 写入、日记、回答动作未指定笔记本时使用
默认打开文档 空 22 位文档 id 或精确路径;首次打开且无当前笔记时自动打开
显示对话区页签 开 关则对话区不再出现「思源笔记」页签
显示输入框按钮 开 关则输入框工具行不显示「思源」按钮
写入开关 关 关则所有写工具与写路由禁用

配置好后可在设置页使用「测试连接」验证。

典型用法

直接对 Agent 发自然语言即可,例如(示例来自 README):

  • 「搜一下我记的 XX」
  • 「把这篇笔记读给我听」
  • 「把刚才的结论存到 00-收件箱」
  • 「今天日记里追加一条:…」

侧栏流程:搜索 → 预览 → 在思源打开 / 追加 / 新建,可减少在 DSH 与思源窗口间来回切换。回答旁的「存入思源」只有你确认后才会落库。

安全模型与适用注意

  • 仅使用内核公开 HTTP API;一期不做删除、移动、重命名;不写工作区文件。
  • 写入默认关闭;开启后也只允许新建与追加,且回答写入需二次确认。
  • siyuan_sql 在插件侧做单条 SELECT 预检,并配合内核只读 mode。
  • Token 只在 Host 进程内使用;/siyuan/* 路由不返回 Token;写路由要求头 x-dsh-siyuan: 1。

适合谁: 已在用思源 3.8.x 做个人知识库、希望在 DSH 里让 Agent 检索与(在显式开启写入时)更新笔记的开发者或重度用户。

已知限制(节选): 新建文档后约 1 秒内索引未完成时读取可能 404,可稍后重试;siyuan_read_doc 与面板预览的行数上限策略不同;右栏「当前笔记」全局共享、不按会话隔离;左栏树按单笔记本展示,无合并全库树。完整列表见 GitHub README「已知限制」。

结尾

dsh-siyuan 把思源留在内核 API 边界之内,同时把检索、阅读、有条件的写入和 Agentero 式右栏预览放进同一会话。若你要在 DSH 里以插件方式接本地笔记,可从社区目录了解条目信息,并以 GitHub 仓库 的安装说明与 docs/ 文档为准部署与排错。

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

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

Xiaoye