前言¶
在 DSH 智能體會話中,經常會出現需要處理的 CSV 文本:導出片段、API 響應中的表格文本、報告裏的數據行。如果每次讓模型臨時寫解析腳本,容易在引號字段、分隔符、邊界輸入上出錯。下面介紹 omdsh-dev/dsh-tool-csv。它把解析、查詢、過濾、統計和轉換 CSV 文本的動作收斂到一個 DSH 插件中,統一輸出 JSON 文本字符串。
這是什麼¶
omdsh-dev/dsh-tool-csv 是 DSH CSV 數據工具插件,由 omdsh-dev 維護,採用 MIT 許可。
它面向 DSH 插件場景,處理已經是文本形態的 CSV 數據,提供 parse、query、stats、to_json 四個 action。插件採用零依賴、純函數設計,使用 RFC 4180 狀態機解析器。
核心功能¶
這裏列出的能力均來自插件聲明的功能:
- 解析 CSV 文本爲結構化結果。
- 按列和值做查詢過濾。
- 統計行數、列數等基本信息。
- 提供
to_jsonaction,用於 JSON 輸出場景。 - 統一輸出 JSON 文本字符串。
- 零依賴:不引入 csv 解析庫。
- 純函數:不讀文件、不寫文件、不聯網、不 eval。
- 使用 RFC 4180 狀態機解析器。
- 查詢過濾僅做字面精確匹配,不支持表達式求值。
常見參數包括:
action:指定執行動作,可用parse、query、stats、to_json。csv:傳入 CSV 文本。column:查詢過濾時指定列。value:查詢過濾時指定精確匹配值。delimiter:指定分隔符。header:指定是否按表頭處理。limit:限制返回行數,默認 100 行。
運行約束包括:
- 輸入上限爲
256,000字節,超限直接報錯。 timeoutMs爲2000。delimiter僅支持單 UTF-16 code unit 或"tab"。- 拒絕 surrogate pair 與控制字符,
\t除外。 - 未閉合引號或閉合引號後非法字符會報錯。
安裝與啓用¶
下面是資料中給出的 web profile 安裝命令:
dsh plugin --profile web add github:omdsh-dev/dsh-tool-csv
安裝後,可以用下面命令確認插件是否出現在當前 profile 配置中:
dsh --profile web --dump-config | grep tool-csv
注意 web 與 headless 是不同 profile:web 安裝不會自動覆蓋 headless;dsh run 默認使用 headless profile。因此,如果你要在 dsh run 的默認運行環境中使用這個插件,應確保 headless profile 中也有該插件。
典型用法¶
以下示例來自插件資料,輸入中的 \n 表示換行。
parse¶
將 CSV 文本解析爲 JSON 對象數組:
csv { action: 'parse', csv: 'name,city\nalice,nyc\nbob,la' }
→ [{"name":"alice","city":"nyc"}, {"name":"bob","city":"la"}]
query¶
按列名和精確值過濾行:
csv { action: 'query', csv: 'name,city\nalice,nyc\nbob,la', column: 'city', value: 'la' }
→ [["name","city"],["bob","la"]]
這裏的 value: 'la' 是字面精確匹配,不是子串匹配,也不做表達式求值。
stats¶
統計 CSV 文本的基本結構:
csv { action: 'stats', csv: 'name,city\nalice,nyc' }
→ {"rows":1,"columns":2,"columnNames":["name","city"],"emptyRows":0,"warnings":[]}
適用場景與注意¶
這個插件適合在 DSH 會話中處理已有的 CSV 文本,尤其是需要確定性解析、過濾、統計或轉換爲 JSON 的場景。它把常見邊界交給固定實現,減少模型臨時編寫解析代碼的風險。
使用前需要注意:
- 工具參數會記入會話日誌,不要傳入敏感數據。
- DSH 插件以當前
dsh進程權限運行,安裝前應檢查源碼和 MIT 許可證。 - 查詢過濾只做字面精確匹配,不能替代數據庫查詢或表達式引擎。
- 輸入超過
256,000字節會直接報錯,不會截斷處理。 web和headless是兩個不同 profile,按需安裝到目標 profile。
結尾¶
omdsh-dev/dsh-tool-csv 的價值比較直接:爲 DSH 提供一個零依賴、純函數、按 RFC 4180 處理 CSV 文本的工具,並統一輸出 JSON。
項目倉庫:
https://github.com/omdsh-dev/dsh-tool-csv
社區目錄頁(來源爲插件線索,未在本篇已抓取資料中核對,且爲獨立站點,不等同於官方應用商店):