omdsh-dev/dsh-tool-csv:DSH 的 CSV 文本处理插件

前言

在 DSH 智能体会话中,经常会出现需要处理的 CSV 文本:导出片段、API 响应中的表格文本、报告里的数据行。如果每次让模型临时写解析脚本,容易在引号字段、分隔符、边界输入上出错。下面介绍 omdsh-dev/dsh-tool-csv。它把解析、查询、过滤、统计和转换 CSV 文本的动作收敛到一个 DSH 插件中,统一输出 JSON 文本字符串。

这是什么

omdsh-dev/dsh-tool-csv 是 DSH CSV 数据工具插件,由 omdsh-dev 维护,采用 MIT 许可。

它面向 DSH 插件场景,处理已经是文本形态的 CSV 数据,提供 parsequerystatsto_json 四个 action。插件采用零依赖、纯函数设计,使用 RFC 4180 状态机解析器。

核心功能

这里列出的能力均来自插件声明的功能:

  • 解析 CSV 文本为结构化结果。
  • 按列和值做查询过滤。
  • 统计行数、列数等基本信息。
  • 提供 to_json action,用于 JSON 输出场景。
  • 统一输出 JSON 文本字符串。
  • 零依赖:不引入 csv 解析库。
  • 纯函数:不读文件、不写文件、不联网、不 eval。
  • 使用 RFC 4180 状态机解析器。
  • 查询过滤仅做字面精确匹配,不支持表达式求值。

常见参数包括:

  • action:指定执行动作,可用 parsequerystatsto_json
  • csv:传入 CSV 文本。
  • column:查询过滤时指定列。
  • value:查询过滤时指定精确匹配值。
  • delimiter:指定分隔符。
  • header:指定是否按表头处理。
  • limit:限制返回行数,默认 100 行。

运行约束包括:

  • 输入上限为 256,000 字节,超限直接报错。
  • timeoutMs2000
  • 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

注意 webheadless 是不同 profile:web 安装不会自动覆盖 headlessdsh 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 字节会直接报错,不会截断处理。
  • webheadless 是两个不同 profile,按需安装到目标 profile。

结尾

omdsh-dev/dsh-tool-csv 的价值比较直接:为 DSH 提供一个零依赖、纯函数、按 RFC 4180 处理 CSV 文本的工具,并统一输出 JSON。

项目仓库:

https://github.com/omdsh-dev/dsh-tool-csv

社区目录页(来源为插件线索,未在本篇已抓取资料中核对,且为独立站点,不等同于官方应用商店):

https://www.skillhub.cn/plugins/omdsh-dev/dsh-tool-csv

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

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

小夜