
omdsh-dev/dsh-tool-stat
40最近提交 2026年8月14日
dsh-tool-stat DSH 插件
dsh-tool-stat 是一个零依赖的纯函数 DSH 插件,对有限数值数组提供确定性统计计算。支持描述统计、百分位数、频数分布和相关性计算,具有强数值稳定性和安全约束。
如何安装 dsh-tool-stat DSH 插件
dsh plugin --profile web add github:omdsh-dev/dsh-tool-stat复制不会执行命令。安装 dsh-tool-stat DSH 插件前请核对仓库和版本。
dsh-tool-stat DSH 插件数据来源
dsh-tool-stat DSH 插件快照日期:2026年8月16日
discovered
dsh-tool-stat DSH 插件能做什么
- 计算描述统计量(计数、总和、最小值、最大值、均值、中位数、方差、标准差、四分位数、四分位距),使用 Neumaier 补偿求和和 Welford 在线算法。
- 线性插值计算一个或多个百分位数,支持重复请求并保持顺序。
- 生成频数分布表(值、计数、比例),最多 10,000 个不同值。
- 计算 Pearson 或 Spearman(midrank)相关系数,零方差时返回 defined:false。
- 严格限制输入为有限数值(拒绝 NaN/Infinity 并标记下标),溢出检查,输出确定性。
dsh-tool-stat DSH 插件适合哪些场景
- 在 DSH 中直接聚合 CSV/JSON 数值数组,无需外部工具。
- 计算百分位数(如中位数、P90)用于性能监控或数据分析。
- 构建数值数据的频数分布以发现模式。
- 计算两个数值序列之间的相关性以评估关系。
- 验证数值计算,获得可复现、可审计的结果。
dsh-tool-stat DSH 插件适合谁
- 需要将统计分析集成到 DSH 工作流中的 AI agent 开发者。
- 希望在聊天环境中快速获得可靠数值摘要的数据分析师。
- 需要确定性、可审计计算且无需外部依赖的 DSH 用户。
dsh-tool-stat DSH 插件的限制
- 仅接受有限数值数组(1 到 100,000 个值);NaN/Infinity 导致错误。
- 百分位数和频数请求有限制:≤100 个百分位数,≤10,000 个不同值。
- 零方差时相关性返回 undefined(defined:false),而非 NaN。
- 不读取文件、不访问网络、不创建进程;仅对传入值进行操作。
- 工具参数会记入会话日志;避免传入敏感数据。
dsh-tool-stat DSH 插件的仓库 README 摘录
以下文字摘自 dsh-tool-stat DSH 插件的上游仓库 omdsh-dev/dsh-tool-stat 的 README,版权归原作者,仅作引用。
DSH 统计工具插件 —— 描述统计、百分位数、频数分布、相关性计算。零依赖、纯函数、确定性。 [](LICENSE) ## 动机 Agent 处理数值数据时,从 CSV / JSON 提取出数值数组后往往需要聚合分析(均值、分位数、分布、相关性)。现有工具链没有这类能力: 1. **`calculator` 只做单表达式求值**——一个表达式算不出分位数分布,更算不了相关系数 2. **`dsh-tool-csv` 的 `stats` 只报告行/列结构**——不提供对一组观测值的统计聚合 3. **模型"心算"统计不可验证**——均值、方差、百分位、相关性涉及大量浮点运算,手算错误率极高,且无法给用户展示可复现的过程 本插件接收显式传入的有限数值数组或成对观测值,提供确定性的统计计算:一次函数调用,毫秒级返回结构化 JSON 报告。不读取文件、不访问网络、不创建进程、不保存状态——相同输入永远得到相同输出。 ## 安全模型 - **零依赖**:Neumaier 补偿求和、Welford 在线方差、线性插值百分位、Spearman midrank 全部手写,无第三方数值库 - **有限数强约束**:拒绝 `NaN` / `Infinity`(错误信息带下标定位,如 `values[3] must be a finite number (got Infinity)`);`-0` 在输入与输出中均规范化为 `0` - **溢出回检**:所有结果在返回前再次做有限数检查,中间或最终结果溢出返回 `numeric-overflow` 错误——canonical 输出**绝不含**非有限值 - **纯函数**:输入数组永不被修改(只读遍历;需要排序时先拷贝) - **零方差语义**:`correlation` 遇零方差配对返回 `defined: false` + `reason: "zero-variance"`,而不是 NaN 或 ±Infinity - **预算**: - 观测值 1..100,000(超限直接报错) - 百分位请求 ≤ 100 个 - distinct 输出 ≤ 10,000(超出按确定规则截断并标注) - `timeoutMs: 2000` - 工具参数会记入会话日志,不要传入敏感数据 ## 工具声明 注册 `stat` 工具(`@deepseek-ai/dsh-tool-stat`,row id `tool-stat`),统一输出 JSON 文本字符串。 | action | 作用 | 输出 | |---|---|---| | `describe` | 描述统计 | count / s
阅读完整 README仓库许可: MIT
dsh-tool-stat DSH 插件常见问题
如何安装 dsh-tool-stat 插件?
运行 `dsh plugin --profile web add github:omdsh-dev/dsh-tool-stat` 将其安装到 web profile。如需安装到 headless profile,使用 `--profile headless`。也可以使用 `npm pack` 生成的 tarball,然后运行 `dsh plugin --profile web add ./dsh-tool-stat-<version>.tgz`。
dsh-tool-stat 支持哪些操作?
支持四个操作:`describe`(描述统计)、`percentile`(百分位数)、`frequency`(频数分布)和 `correlation`(相关系数)。每个操作返回结构化的 JSON 结果。
数据中包含 NaN 或 Infinity 怎么办?
插件严格拒绝 NaN 和 Infinity。如果数据包含无效数字,调用会返回错误,例如 `values[3] must be a finite number (got Infinity)`。你需要先清理数据(如移除或填充缺失值),再传递给工具。
方差计算中的 'sample' 参数是什么意思?
`sample` 参数控制方差分母。当 `sample` 为 true 时,使用样本方差公式(除以 n-1)进行无偏估计;为 false 时(默认),使用总体方差公式(除以 n)。这会影响 `describe` 输出中的 `variance` 和 `standardDeviation` 字段。
两个数组长度不同时能计算相关系数吗?
不能,`other` 数组必须与 `values` 长度相同(至少 2 个元素)。长度不同会导致错误。相关系数要求成对观测值。