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/ 文檔爲準部署與排錯。

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

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

小夜