前言¶
在 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
社区目录页(来源为插件线索,未在本篇已抓取资料中核对,且为独立站点,不等同于官方应用商店):