dsh-calc-tool:为 DSH Agent 提供可验证的算术工具

前言

在 DeepSeek Harness(DSH)里跑 Agent 时,账单核对、配比换算、统计汇总这类任务经常落到「让模型心算」。大模型对四则运算没有确定性的执行路径:既可能输出看起来合理却错误的数字,也可能在思维链里反复列竖式,消耗大量推理 Token。社区插件 dsh-calc-tool(维护者 yhy854,分类:模型推理)的思路很直接——把算术交给专用工具 calc,由手写解析器求值,避免 eval 类动态执行带来的安全风险。

下面介绍插件定位、能力边界、安装方式与典型用法;事实均以 GitHub 仓库 README 与 package.json 为准。

这是什么

dsh-calc-tool 是面向 DSH 的计算器插件,npm 包名为 dsh-calc-tool,当前版本 0.1.0,许可证 MIT。安装并启用后,Agent 会获得名为 calc 的工具;传入数学表达式即可得到数值结果,用于替代模型在上下文中的「脑补算术」。

插件目录页:https://www.skillhub.cn/plugins/yhy854/dsh-calc-tool(社区目录站点,与 DeepSeek / 幻方无官方从属关系)。

核心功能

计算能力

README 中列出的支持范围如下。

类别 支持内容
基础算术 + - * / % //(整除)**(幂运算,右结合)
数学函数 abs ceil floor round trunc sign sqrt cbrt exp log log2 log10 sin cos tan asin acos atan pow hypot max min
常用常量 PI、E
语法特性 括号优先级、一元正负号、科学计数法(如 1.5e3)

三角函数默认使用弧度;若按角度计算,可写 sin(30 * PI / 180)。运算优先级为:**(右结合) > 一元 ± > * / % // > + -。

安全与资源上限

实现上采用手写词法分析与递归下降解析,README 明确 不使用 eval 与 new Function。词法层对白名单外的字符(如引号、分号、反引号、{}、[])直接报错;白名单查表使用 Object.create(null) 与 Object.hasOwn,并配有针对原型链污染的回归测试。

护栏包括:表达式最长 4096 字符、括号嵌套最多 64 层、单函数参数最多 32 个;结果为 NaN 或 Infinity 时拒绝返回。

结构化错误

算式不合法或越界时,插件返回带错误码的提示,便于 Agent 自行修正,例如:

错误码 含义
CALC_PARSE_ERROR 语法错误(含出错位置)
CALC_UNKNOWN_IDENTIFIER 非白名单函数或变量
CALC_DIVIDE_BY_ZERO 除数为 0
CALC_NOT_FINITE 溢出或对负数开偶次方等
CALC_LIMIT_EXCEEDED 超长 / 过深嵌套 / 参数过多
CALC_BAD_ARGUMENT 参数类型或数量错误

安装与启用

DSH 理念是「一切皆插件」;安装走桌面端官方插件面板,无需自行 git clone。步骤如下。

  1. 打开 DeepSeek Harness 桌面端,左侧进入 插件;
  2. 右上角 添加插件;
  3. 填入下面 npm 包名 或 GitHub 地址 之一,确认安装。

npm 包名:

dsh-calc-tool

GitHub 地址:

https://github.com/yhy854/dsh-calc-tool

装完后按面板提示重启,并 新开一个会话 再试用。插件可在面板中随时关闭,不使用时无需卸载。

兼容性:README 标明与 DSH 内核 0.2.x 兼容;peerDependencies 为 @deepseek-ai/dsh-tools 的 >=0.2.0-0(覆盖 rc 预发布版)。

典型用法

启用后 Agent 调用 calc,参数为 expression 字符串。README 示例:

calc { expression: "1280 * 0.85 + 42.5" }  →  1130.5
calc { expression: "15 + 27 * sqrt(9)" }   →  96

适用场景与注意

适合谁: 需要在对话或任务流中做确定性数值计算、又希望减少模型心算幻觉与 Token 浪费的 DSH 用户。

已知边界(README 原文):

  1. 遵循 JavaScript IEEE 754 双精度浮点,例如 0.1 + 0.2 为 0.30000000000004;固定位数可配合 round()。
  2. 安全整数约在 ±9e15(Number.MAX_SAFE_INTEGER)内;更大整数可能有精度损失。
  3. 不支持符号代数、矩阵或解方程。

权限与审阅: 插件在 当前 DSH 进程权限 下运行。安装前建议浏览 源码仓库 与 MIT 许可证,确认符合你的安全策略。

本地验证测试(开发者参考):

node test/evaluate.test.mjs

README 称内置 43 条测试,覆盖运算正确性、恶意载荷拦截、原型链回归与资源上限等。

结尾

dsh-calc-tool 把 Agent 中的算术从概率生成改为工具调用,并在解析层规避常见的不安全求值方式。若你在 DSH 里频繁遇到算错或推理链里反复验算的问题,可通过面板安装 dsh-calc-tool 启用 calc 工具。

  • 目录页:https://www.skillhub.cn/plugins/yhy854/dsh-calc-tool
  • GitHub:https://github.com/yhy854/dsh-calc-tool
羽毛球分组比赛记分
小程序二维码

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

小夜