前言¶
讓大模型寫 SQL,現在已經不算新鮮事。難的是寫完之後:語句能不能在真實庫上跑通,報錯了要不要改 JOIN,結果和業務問題對不上時,下一步該拆哪個維度。很多助手只能根據靜態表結構或幾句註釋生成一段 SQL,執行、讀結果、再改寫,往往還得人來回粘貼。
DeepSeek Harness(以下簡稱 DSH)把這件事放進了插件體系裏。官方倉庫把核心理念寫成「一切皆插件」:模型、工具、會話、UI 都可以在配置層裝卸,不必改 Harness 源碼。社區裏有人專門做了一層「數據模式」:會話裏連上數據庫,只保留寫 SQL、跑查詢、改文件這幾類能力,讓模型對着真實執行結果迭代。這個插件叫 dsh-data-agent,收錄在獨立的社區插件目錄 deepseek-harness-plugin.com 中。該目錄與 DeepSeek / 幻方沒有官方從屬關係,不是官方應用商店。
本文按插件目錄頁、GitHub 倉庫 README、package.json 和 npm 包頁面交叉覈對後整理:它是什麼、裝哪條命令、Web UI 和終端裏怎麼用,以及連生產庫之前要看清的權限邊界。
這是什麼¶
dsh-data-agent 是一款面向 DeepSeek Harness 的數據分析插件,目錄分類爲「會話與消息」,由 GitHub 組織 omdsh-dev 維護,倉庫地址爲 omdsh-dev/dsh-data-agent。npm 包名是 @yejiming/dsh-data-agent,當前版本爲 0.0.9(發佈於 2026-08-16)。許可證爲 MIT。目錄頁標註主要語言爲 TypeScript;倉庫同時提交了構建產物 lib/,安裝時不必本地編譯。截至 2026-08-17 查詢,GitHub 顯示 34 stars。
目錄頁給它的一句話是:會話級數據庫連接,加上專用預設,讓 AI 寫 SQL 並迭代。倉庫 README 把使用方式說得更具體:連上庫之後用自然語言提業務問題,DSH 會查看錶結構、編寫並執行 SQL,再根據報錯或返回數據繼續調整,而不是停在一段未經驗證的語句上。插件同時掛到 Web UI 和 dsh-tui,不修改 DSH 源碼。
它要填的坑,README 寫得很直接:模型寫代碼已經比較強,但 SQL 邏輯經常寫不對,原因是沒有和數據庫操作形成 Agent Loop——感知不到執行結果,也就無法按報錯或返回行動態調優。
核心功能¶
下面幾條都來自當前倉庫 README 與 package.json 描述,不額外發揮。
1. 把「寫 SQL」放進 Agent 循環¶
連接成功後,會話按數據分析工作流處理後續問題。模型會根據當前問題查看庫表、生成 SQL、執行查詢,並結合報錯或真實結果繼續改寫。你可以追問,分析沿同一會話上下文深入,而不是每輪重新從零猜表名。
README 舉的入口問題是:分析最近 30 天訂單變化,找出銷售額下降最明顯的地區和商品,並解釋主要原因。插件不會保證分析結論一定正確,它提供的是「查結構 → 執行 → 根據結果再查」這條閉環。
2. 數據模式:收窄工具面¶
會話會啓用名爲「數據模式」的 Agent 預設(預設標識 data-agent)。按 README,這個模式下:
- 文件操作用 DSH 原生的
str_replace_editor - 數據相關工具保留
sql-query、sql-write、sql-cmd - Web 界面額外提供
render-analysis describe_image、ssh_*等宿主或社區插件工具不會進入數據模式
目的是讓模型把上下文花在查庫和寫 SQL 上,而不是同時去 SSH、看圖或調用一堆無關工具。package.json 也把能力概括爲:共享的數據庫連接、帶掩碼的 TUI 表單、credential reference、SQL 工具,以及 data-agent 預設。
3. 會話級連接,覆蓋常見業務庫¶
支持的數據庫類型,README 列出的是 MySQL、PostgreSQL、SQLite、Oracle、Hive、Impala,覆蓋業務庫、分析庫、本地文件和數倉場景。連接按會話隔離:不同會話可以連不同項目、客戶或環境,不會混用同一條連接。
Web UI 內嵌數據庫工作臺,可以瀏覽庫表、看字段,或臨時跑一條 SQL;開始對話後,工作臺會移到側欄。dsh-tui 則通過 /database 系列命令完成連接、測試和斷開。
4. Web 端的分析報告¶
僅 Web 界面提供 render-analysis。README 的約定是:Agent 先用 sql-query 探查並覈對事實,再自行判斷要不要畫圖。schema 探查、單標量查詢不會被強制生成圖表。
判斷需要可視化時,一次工具調用生成一份版本化報告:
- 1–6 個只讀數據集,1–8 個視圖(metric / line / bar / pie / scatter / table)
- 同一數據集可被多個視圖複用;聚合和 Top N 寫在 SQL 裏
- 簡單問題給單圖內聯預覽;複雜問題給摘要,再打開「查看分析」Modal
- 報告快照隨會話日誌持久化,刷新或回放歷史不會重新查庫
dsh-tui 不加載這套圖表依賴,工具面保持不變。
5. 只讀與口令處理¶
連接表單可以打開只讀模式;README 建議再配一個數據庫只讀賬號。TUI 裏密碼只顯示爲 *,重新打開表單不會把密碼當草稿恢復。需要跨進程恢復認證時,可以用 DSH 的 credential reference,避免把明文密碼寫進命令參數。未開只讀時,插件可以按你的要求執行更新或管理語句——這是明確寫出的能力,不是疏漏。
安裝與啓用¶
插件目錄頁給出的安裝命令是:
dsh plugin add github:omdsh-dev/dsh-data-agent
目錄頁同時提醒:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前請檢查源代碼倉庫和許可證。若需要可復現安裝,固定 commit 哈希:
dsh plugin add github:omdsh-dev/dsh-data-agent#<commit>
把 <commit> 換成倉庫裏實際的提交哈希,不要照抄佔位符。
倉庫 README 把 Web UI 和 dsh-tui 寫成兩套獨立 profile,並推薦走 npm。只用一種界面時裝對應那一條;兩種都用就執行兩條:
dsh plugin --profile web add @yejiming/dsh-data-agent
dsh plugin --profile dsh-tui add @yejiming/dsh-data-agent
從 GitHub 安裝、同樣按 profile 分開寫的寫法是:
dsh plugin --profile web add github:omdsh-dev/dsh-data-agent
dsh plugin --profile dsh-tui add github:omdsh-dev/dsh-data-agent
README 寫明:插件會自動安裝「數據模式」預設,倉庫已提交 lib/,安裝時無需本地構建。若出現 failed to mount,或提示找不到 @yejiming/dsh-data-agent,文檔給出的原因通常是當前 profile 還沒裝這個插件;確認對應命令執行過後再重啓 DSH。
卸載按 README:
dsh plugin --profile web remove @yejiming/dsh-data-agent
dsh plugin --profile dsh-tui remove @yejiming/dsh-data-agent
rm -rf $DSH_HOME/.agent-presets/data-agent
卸載不會主動刪除已經保存的非敏感連接信息。要徹底清理,需要先備份,再刪掉 DSH 裏對應的數據 Agent 存儲記錄。
典型用法¶
查詢實際跑在本機到目標庫的網絡路徑上,因此本機還要裝對應客戶端:SQLite 在 macOS / Linux 上通常已有;MySQL 需要 mysql;PostgreSQL 需要 psql;Oracle、Hive、Impala 需要各自的命令行客戶端。建議先準備只讀賬號,再開始探索。
在 Web UI 中使用¶
啓動:
dsh --profile web
README 給出的步驟是:
- 新建會話,選擇「數據模式」。
- 在數據庫工作臺填寫連接信息。
- 連接成功後,直接在對話框裏提分析問題。
- 根據第一輪結果繼續追問:縮小範圍、比較維度,或總結結論。
倉庫推薦的 Web 界面是 zhu1090093659/dsh-web-ui,這是另一款社區插件,不是 dsh-data-agent 本身。
在 dsh-tui 中使用¶
啓動:
dsh --profile dsh-tui
空白會話裏先切到數據模式,再連庫:
/preset data-agent
/database connect
連接表單一次展示相關字段。Tab / Shift+Tab 切換輸入項;數據庫類型和只讀模式按 Enter 展開,方向鍵選擇後再按 Enter 確認。連接成功後回到聊天框提問即可。
同一會話裏還會用到:
/database status 查看當前連接
/database test 測試當前連接
/database disconnect 斷開當前連接
再次打開連接表單時,會恢復最近填寫的數據庫類型、地址、端口、用戶、數據庫名和只讀模式;密碼始終隱藏且不會恢復。終端界面 README 推薦的是 ccch1mneyyy/dsh-TUI,同樣是獨立社區插件。
提問時把目標寫清楚¶
README 建議在問題裏補上業務目標、時間範圍和關注維度,例如:
分析2026年第二季度各地區的銷售額和毛利率變化,找出表現異常的地區,
繼續拆解到品類和核心客戶,並給出三條可執行的業務建議。
也可以讓 DSH 把 SQL 落到文件裏,方便複查:
完成會員復購分析,把最終SQL保存到analysis/repurchase.sql,
並用一段適合週報的文字總結主要發現。
第二條能成立,是因爲數據模式裏仍保留了 str_replace_editor,可以把最終語句寫進工作區,而不是隻留在對話氣泡裏。
適用場景與注意事項¶
比較適合這些情況:
- 本機能直接訪問業務庫或分析庫,需要反覆「提問 → 查表 → 改 SQL」
- 已經在用 DSH 的 Web UI 或 dsh-tui,希望單獨開一個數據會話,而不是讓普通編碼會話去碰生產庫
- 需要把查詢結果整理成結論,或在 Web 裏看
render-analysis生成的圖表/表格報告 - 同時維護多套環境,希望連接按會話隔離
使用前注意下面幾條,均來自目錄頁或倉庫 README,不是額外發揮:
- 先看源碼和許可證再裝。 目錄頁寫明:插件以當前 dsh 進程權限運行,安裝時可能執行代碼。這是社區插件,不是 DeepSeek 官方組件。
- 生產庫默認按只讀對待。 開只讀模式,並用只讀賬號。未開只讀時,數據 Agent 可以執行更新或管理語句;連生產庫前要確認賬號權限和備份策略。
- 客戶端必須在本機可用。 缺
mysql/psql等客戶端時,工具調不起來,與模型是否會寫 SQL 無關。 - Web 和 TUI 要分別安裝。 兩套 profile 互不影響;只裝其中一個,另一個界面裏會找不到包。
- 圖表只在 Web。
render-analysis不會出現在 dsh-tui;不要按 Web 截圖去終端裏找「查看分析」。 - 不要把目錄頁當成官方商店。 deepseek-harness-plugin.com 是社區目錄;DSH 本體以 deepseek-ai/deepseek-harness 爲準。安裝命令以目錄頁原文和倉庫 README 爲準,不要憑插件名自行拼接 npm 或 GitHub 路徑。
小結¶
dsh-data-agent 做的事情很集中:給 DSH 會話接上數據庫,換上只保留 SQL 與文件編輯的數據模式,讓模型對着真實執行結果改語句。MySQL、PostgreSQL、SQLite、Oracle、Hive、Impala 都在 README 的支持列表裏;Web 還可以按問題生成分析報告,TUI 則走 /database 表單。安全邊界同樣寫得很清楚——只讀是可選項,不是默認鎖死寫操作。
目錄頁與倉庫:
- 插件目錄:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-data-agent/
- GitHub:https://github.com/omdsh-dev/dsh-data-agent
- npm:https://www.npmjs.com/package/@yejiming/dsh-data-agent
- DeepSeek Harness:https://github.com/deepseek-ai/deepseek-harness